[Network Security] Nmap을 활용한 네트워크 스캐닝
1. nmap을 활용한 활성화 된 Host 스캔
- Nmap Option
| -sT | connect() 함수를 이용한 Open 스캔(오픈) | -PS | TCP SYN 패킷 만을 보내 시스템 활성화 여부 검사 |
| -sS | 세션을 성립시키지 않는 SYN 스캔(하프오픈) | -PI | 시스템 활성화 여부를 ICMP로 검사 |
| -sF | FIN 패킷을 이용한 스캔 | -PB | TCP와 ICMP 둘 다 사용하여 HOST 활성화 여부 검사 |
| -sN | NULL 패킷을 이용한 스캔 | -O | 시스템 운영체제 수정 |
| -sX | X-MAS 패킷을 이용한 스캔 | -I | Ident 프로토콜(RFC1413)을 사용해 열려있는 프로세스가 어떤 사용자에 의한 것인지 검사 |
| -sP | ping을 이용한 HOST 활성화 여부 확인 | -n | DNS Lookup을 하지 않음 |
| -sU | UDP 포트 스캔 | -R | DNS Lookup을 함 |
| -sR | RPC 포트 스캔 | -PR | ARP Ping |
| -sA | ACK 패킷에 대한 TTL 값의 분석 | --traceroute | HOST까지 경로를 추적 |
| -sW | ACK 패킷에 대한 윈도우 크기 분석 | -PE | ICMP Echo를 이용한 스캐닝 |
| -b | FTP 바운스 스캔 | -PU | UDP를 이용한 Ping |
| -f | 스캔 시 방화벽을 통과할 수 있도록 패킷을 조작 | -PS | TCP SYN Ping |
| -v | 스캔의 세부 사항 표시 | -sL | List Scan |
| -P0 | 스캔 전 ping을 하지 않음 | -sn | Port Scan을 하지 않음 |
| -PT | ping의 대용으로 TCP 패킷을 이용 | --packet-trace | 전송 및 수신된 모든 패킷 표시 |
192.168.0.0/24 대역에 활성화 된 Host 검색
(-sP 옵션으로 Ping을 통해 확인)
192.168.0.1 : VMware 예약
192.168.0.2 : 게이트웨이
192.168.0.17 : CentOS 6.9
192.168.0.18 : CentOS 7.6
192.168.0.254 : VMware 예약
192.168.0.15 : Kali

ICMP Echo Request
- 대부분의 경우, 특히 대상이 라우터나 인터넷 상의 원격 호스트일 때, ICMP Echo Request 패킷을 보냄
- ICMP Echo Request는 일반적인 ping 명령과 동일하게 작동하며, 대상 호스트가 응답할 경우 활성 상태임을 확인
- IP 계층에서 동작하며, 네트워크 내의 경로를 통해 패킷이 전송됨ARP Request
- 대상이 동일 네트워크에 있을 때, ARP Request 패킷을 사용하여 호스트 탐지를 수행
- ARP Request는 동일 네트워크 내에서 IP 주소에 해당하는 MAC 주소를 찾기 위해 사용됨
- ARP는 데이터 링크 계층(2계층)에서 작동하며, 브로드캐스트 방식으로 네트워크 내 모든 장치에 요청을 보내고 해당 IP를 가진 장치의 응답을 기다림
2. 상위 N개의 포트 스캐닝
- 가장 많이 쓰는 상위 N개의 포트 스캐닝
- 옵션 : –top-ports N(개수)
- ex) nmap –top-ports 5
CentOS 6.9(192.168.0.17)을 대상으로 스캔한 것이 아닌 통계적으로 가장 많이 사용하는 포트 5개 스캔 (ftp, telnet, http, https는 해당 시스템에 설치가 되어 있지 않아서 closed)

3. Script를 이용한 스캐닝
- 옵션 : –script
- ex) nmap -p 139, 445 –script=smb-vuln-ms17-010 [IP]
smb-vuln-ms17-010 스크립트를 이용한 MS17-010 취약점 및 Eternalblue 감염 여부 확인
스크립트의 위치는 /usr/share/nmap/scripts에 있음( find / -name “scripts” ) 
4. 보내고 받은 모든 패킷 표시하며 스캐닝 수행
- 옵션 : –packet-trace





