★Scanning
○ 탐색(Scan, Scanning)
- Footprint 단계에서 수집한 정보의 사실 유무 확인 및 누락된 정보 확인
- 대상 시스템에 직접적으로 데이터를 전송하여 확인함 -> 대상 시스템에 Log를 남길 확률이 높음 고로 공격자, 모의해컹의 흔적이 노출됨
- 침투 대상의 네트워크에서 실제 동작 중인 시스템, 서비스, 프로그램, OS확인
- 확인된 시스템 및 프로그램의 취약점 정보 수집
○ Active Host Scanning
- 목적 : 침투 대상이 될 수 있는 시스템을 식별 -> 실제 동작중인 시스템 확인
- 추가로 시스템의 기본적인 정보를 확인함 : 데이터 전송 시간, OS 종류, IP주소, MAC주소..
- 주의 -> 방화벽에 의해 정확한 정보를 획득 못할 수 있음
- 종류
ICMP echo ping : ICMP 메시지를 이용해 동작중인 호스트를 식별함
ARPing : ARP 패킷을 이용해 동작중인 호스트를 식별함
TCP ping : TCP 패킷을 이용해 동작중인 호스트를 식별함
UDP ping : UDP 패킷을 이용해 동작중인 호스트를 식별함
○ Active Host Scanning 도구
- ping
- arping
- netenum, fping
- atk6-alive6(IPv6)
- nbtscan, nmap(zenmap), hping3, nping
○ Port Scanning
-
목적 : 침투 대상이 될 수 있는 서비스(Port)를 식별 -> 공격데이터를 전송할 수 있는
프로그램 식별
-
주의 -> 방화벽에 의해 정확한 정보를 획득 못할 수 있음
-
종류
UDP Port Scanning : ICMP 메시지를 이용해 동작중인 호스트를 식별함
TCP Port Scanning
Connect() Scan(Full Connection Scanning)
SYN Stealth Scan(Half Open Scanning)
X-MAS Scan, FIN Scan, NULL Scan
IDLE Scan
FTP Bounce Scanning
○ NMAP(Network MAPper)
-
운영체제, 장치종류, 운영시간, 서비스 소프트웨어 제품, 제품의 정확한 버전, 방화벽 기술의 존재와 근거리 네트워크에서 네트워크 카드의 공급자 정보를 알아냄
-
옵션
sT : TCP Connet() Scanning
sS : TCP SYN Scanning
sF : TCP FIN Scanning
sX : TCP X-Mas Scanning
sN : TCP Null Scanning
sU : UDP Scanning
sO : Protocol Scanning
PO : Scan 하기전에 ping을 보내지 않음
O : OS Detection
v : 스캔 세부사항 표시
p : Port 지정
f : Packet 분할
○ UDP Port Scanning
- UDP Packet을 이용해 대상 시스템 Post Scan
- Close Port -> ICMP Destination Unreachable 응답
- Open Port -> 응답 없음
- 단점 : UDP 혹은 ICMP의 경우 필터링 장치에 의해 차단될 가능성 높음
응답이 없을 경우 Open으로 인식해, 방화벽에 의해 패킷이 차단된 경우 여부가 불분명
- 장점 : 정상적인 통신이 아니어서 Log가 남지 않음
○ TCP Port Scanning
- TCP Packet을 이용해 대상 시스템 Port Scan
- TCP의 Flag를 이용해 다양한 방법으로 Scan을 수행
○ TCP Flag 용도 및 종류
- URG : 긴급히 처리할 경우'
- ACK : 응답
- PSH : 데이터를 Buffering 하지 않고 즉시 Application에게 전달
- RST : 연결 강제 종료
- SYN : 연결 요청
- FIN : 데이터 전송 종료
○ TCP Connect Scanning(Full Connection Scan)
- 3 Way-Handshaking으로 대상 시스템의 포트 상태 확인
- Port가 열려있을 경우 세션 수립/닫혔을 경우 RST Packet 수신
- 결과가 정확하고 일반 계정으로 Scanning 가능함
- Overhead가 크고 Log가 남아 발각이 쉬움
○ SYN Stealth Scanning(Half Open Scan)
- 포트가 열려있을 경우 S/A Packet을 받은 후 RST Packet을 보내 연결을 끊는 방법
- 닫혀 있을 경우 RST Packet을 수신
- 세션이 수립되지 않게 ACK신호를 안 보내 비교적으로 Log를 조금 남김
○ FIN Scanning
- RST Flag가 설정된 Packet을 확인함으로써 포트가 닫혔음을 판단
- UNIX플랫폼일 경우만 IDS를 회피할 가능성이 높음
- Open/Filter/오류의 결과가 불분명함
○ X-mas Scanning
- FIN, PSH, URH Flag를 동시에 설정하여 scan함
- UNIX/Linux 플랫폼일 시 IDS를 회피할 가능성이 높음
- Open/Filter/오류의 결과가 불분명
○ NULL Scanning
- 모든 Flag를 설정하지 않고 Scan
- UNIX/Linux 플랫폼일 시 IDS를 회피할 가능성이 높음
- Open/Filter/오류의 결과가 불분명함
★IDLE Scanning
○ IDLE Scanning
- TCP Scanning의 일종, IDLE Host(Zombie PC)의 반응을 통해 침투 대상의 활성화된 port정보를 확인함
-IP Header의 Identification필드를 지속적으로 모니터링하여 변화를 관찰 단 다른 프로그램이 동작 중이면 정확한 결과 확인이 어려움
○ IP의 ID 모니터링
- IDLE Host(Zombie)의 ID값의 변화를 확인하기 위한 단계
- Attacker -> 무조건 응답을 발생시킬 수 있는 임의의 요청을 전송 -> Null Flag TCP 요청(비정상TCP)
- IDLE Host -> Null 요청에 대한 RST응답을 전송
- RST를 encapsulation하는 IP헤더의 ID필드 값이 초기에는 Random값으로 선택되고 순차적으로 값이 증가함
○ Target에게 port scan 요청 전송
- 출발지 IP를 IDLE PC로 변조하여 확인하고 싶은 서비스의 연결요청(SYN)을 전달함
○ Target의 Port가 Open일 경우
- 연결 요청(SYN)에 대한 응답(SYN/ACK)을 출발지로 지정된 IDLE PC로 전송함
- 비정상 TCP(SYN/ACK)을 요청 받은 IDLE Host(Windows)에서 RST를 응답으로 전송
- 지속적으로 모니터링을 수행함 -> 모니터링 ID가 1씩 증가함
○ Target의 Port가 Close일 경우
- 연결 요청(SYN)에 대한 응답(SYN/ACK)을 출발지로 지정된 IDLE PC로 전송함
- RST 요청 받은 IDLE Host(Windows)에서 RST에 대한 응답을 발생시키지 않음
- 지속적으로 모니터링을 수행함 -> 모니터링 ID가 1씩 증가함
○ Hping3를 이용한 IDLE Scanning
- TCP/IP packet generator
- Header 값을 옵션을 통해 지정/변경 할 수 있게 만들어주는 네트워크 보안 테스트 툴
- port scanning, hid pinging, Dos Attack, firewall rull test등 네트워크 성능과 보안을 검증하기 위해 사용
○ 사용법
-
hping3 [options]
-
option
-r : ID 모니터링
-p : 목적지 Port 주소 설정
-a : 출발지 IP 주소 변조
-S : TCP flag에서 SYN 셋팅
○ IDLE host 상태 모니터링
-ex)
hping3 -r 20.20.20.100
○ Target 시스템 Port Scan 요청 전송
-ex)
hping3 -a 20.20.20.100 23.0.0.200 -p 80 -S