@ 04_nmap 스캔 도구
- 시스템 운영 체제 정보, 활성화된 서비스 이름/버전 및 포트 번호를 스캔하는 정보 수집 도구이다.
- 또한, 스크립트를 이용하여 취약점 점검 및 세부 스캔이 가능하다.
- nmap 사이트 : nmap.org
- 도움말 : nmap -h
root@kali:~# whereis nmap
root@kali:~# ls -l /usr/bin/nmap
root@kali:~# ls /usr/share/nmap
root@kali:~# ls /usr/share/nmap/scripts
~ 중간 생략 ~
root@kali:~# file /usr/share/nmap/scripts/smb-vuln-ms17-010.nse
root@kali:~# cat /usr/share/nmap/scripts/smb-vuln-ms17-010.nse
~ 중간 생략 ~
1. TCP Open 스캔
- TCP Flag 중에 'SYN'가 설정된 TCP 세그먼트를 전송하여 스캔하는 방식이다.
- 이 방식은 공격자와 타겟이 'TCP 3-Way' 핸드쉐이킹을 실시하여 TCP 연결이 성립되기 때문에 잘 사용하지 않는다.
- TCP 연결이 성립되면 서버에서 로그가 남기때문이다.
포트 Open 상태 포트 Close 상태
root@kali:~# nmap -sT -p 22 192.168.20.200 root@kali:~# nmap -sT -p 26 192.168.20.200
공격자 타겟 공격자 타겟
Syn -> Syn ->
<- Syn+Ack <- RST+Ack
Ack ->
RST+Ack ->
2. TCP Half-Open 스캔
- TCP Flag 중에 'SYN'가 설정된 TCP 세그먼트를 전송하여 스캔하는 방식이다.
- 공격자는 타겟과 TCP 연결이 성립되지 않기 때문에 잘사용하는 스캔 방법이다.
포트 Open 상태 포트 Close 상태
root@kali:~# nmap -sS -p 22 192.168.20.200 root@kali:~# nmap -sS -p 26 192.168.20.200
공격자 타겟 공격자 타겟
Syn -> Syn ->
<- Syn+Ack <- RST+Ack
RST ->
3. TCP Fin 스캔
- TCP Flag 중에 'FIN'가 설정된 TCP 세그먼트를 전송하여 스캔하는 방식이다.
포트 Open 상태 포트 Close 상태
root@kali:~# nmap -sF -p 22 192.168.20.200 root@kali:~# nmap -sF -p 26 192.168.20.200
공격자 타겟 공격자 타겟
Fin -> Fin ->
<- X 응답 <- RST+Ack
4. TCP Null 스캔
- TCP Flag를 설정하지 않고 TCP 세그먼트를 전송하여 스캔하는 방식이다.
포트 Open 상태 포트 Close 상태
root@kali:~# nmap -sN -p 22 192.168.20.200 root@kali:~# nmap -sN -p 26 192.168.20.200
공격자 타겟 공격자 타겟
Null -> Null ->
<- X 응답 <- RST+Ack
5. TCP X-Mas 스캔
- TCP Flag 중에 'URG', 'PSH', 'FIN'가 설정된 TCP 세그먼트를 전송하여 스캔하는 방식이다.
포트 Open 상태 포트 Close 상태
root@kali:~# nmap -sX -p 22 192.168.20.200 root@kali:~# nmap -sX -p 26 192.168.20.200
공격자 타겟 공격자 타겟
URG, PSH, FIN -> URG, PSH, FIN ->
<- X 응답 <- RST+Ack
6. UDP 스캔
포트 Open 상태 포트 Close 상태
root@kali:~# nmap -sU -p 53 192.168.20.200 root@kali:~# nmap -sU -p 54 192.168.20.200
공격자 타겟 공격자 타겟
UDP 패켓 -> UDP 패켓 ->
<- 응답 <- ICMP Unreachable
7. ping(arp) 스캔
- 공격자가 ARP 요청 메세지를 브로드케스트로 전송하여 ARP 응답 여부에 따라서 시스템 상태를 확인할 수 있다.
- 단, ARP 요청 메세지 및 ARP 응답 메세지를 이용하는 방식이기 때문에 같은 네트워크 안에서만 가능하다.
시스템 연결 상태 O 시스템 연결 상태 X
root@kali:~# nmap -sP 192.168.20.200 root@kali:~# nmap -sP 192.168.20.206
공격자 타겟 공격자 타겟
ARP 요청 -> ARP 요청 ->
<- ARP 응답 <- X ARP 응답
6. 자주 사용하는 nmap 옵션
-sS TCP Half-Open 스캔
-sV 서비스 버전
-O 운영체제 정보
-F 기본 포트 보다 범위를 줄여서 스캔
root@kali:~# nmap -sS -sV -O -F 192.168.20.200
- 만약, 포트 번호 범위를 지정할 경우에는 '-p' 옵션을 사용한다. 이때, '-F' 옵션을 사용하면 오류메세지가 출력된다.
root@kali:~# nmap -sS -sV -p 1-50 192.168.20.200
root@kali:~# nmap -sS -sV -p 80,443 192.168.20.200
- '/usr/share/nmap/nmap-services' 파일에 정의된 가장 많이 쓰는 포트순으로 스캔할 수 있다.
root@kali:~# nmap --top-ports 1000 192.168.20.200
- '-A' 옵션을 이용하면 각각의 서비스에 대한 상세 내용까지 스캔할 수 있다.
root@kali:~# nmap -sS -sV -O -A -p 1-50 192.168.20.200
[참고] 네트워크 대역 스캔
- 다음은 '192.168.20.1 ~ 192.168.20.254' 시스템을 타켓으로 nmap 스캔을 실시한다.
root@kali:~# nmap -sS -sV 192.168.20.0/24
7. nmap 스캔 결과 파일 추출
- nmap 스캔 결과를 파일로 추출하려면 '-oA' 옵션을 사용한다.
root@kali:~# mkdir nmapscan
root@kali:~# cd nmapscan
root@kali:~/nmapscan# nmap -sS -sV -O 192.168.20.200 -oA CentOS > /dev/null
root@kali:~/nmapscan#
root@kali:~/nmapscan# ls -l
root@kali:~/nmapscan# cat CentOS.nmap
[참고] 출력 재지정을 이용하여 스캔 결과 추출
root@kali:~/nmapscan# nmap -sS -sV -O 192.168.20.200 > CentOS.scan
root@kali:~/nmapscan# ls -l CentOS.scan
-rw-r--r-- 1 root root 1165 5월 14 16:13 CentOS.scan
root@kali:~/nmapscan# cat CentOS.scan
~ 중간 생략 ~
Ex) nmap 스캔 파일 추출
- '-oA' 옵션을 이용하여 Windows2008(192.168.20.201), Windows7(192.168.20.202)를 스캔하여 파일로 추출한다.
- 이때, 파일명은 각각 Windows2008, Windows7으로 한다.
root@kali:~/nmapscan# nmap -sS -sV -O 192.168.20.201 -oA Windows2008 > /dev/null
root@kali:~/nmapscan# nmap -sS -sV -O 192.168.20.202 -oA Windows7 > /dev/null
root@kali:~/nmapscan# ls
CentOS.gnmap CentOS.scan Windows2008.gnmap Windows2008.xml Windows7.nmap
CentOS.nmap CentOS.xml Windows2008.nmap Windows7.gnmap Windows7.xml
root@kali:~/nmapscan# cat Windows2008.nmap
root@kali:~/nmapscan# cat Windows7.nmap
8. Zenmap
root@kali:~/nmapscan# zenmap &
Ex) Zenmap 스캔 파일 추출
- Zenmap을 이용하여 Meta(192.168.20.204)를 스캔하여 파일로 추출한다.
- 이때, 파일명 'Meta.xml'로 하며, '/root/nmapscan' 디렉토리에 저장한다.
Save Scan
저장
root@kali:~/nmapscan# ls -l Meta.xml
root@kali:~/nmapscan# cd
9. 스크립트를 이용한 nmap
- Windows2008, Windows7는 스크립트를 이용하여 스캔을 하면 'ms17-010' 취약점이 있는 것을 확인할 수 있다.
root@kali:~# nmap -p 445 192.168.20.201 --script=smb-vuln-ms17-010.nse
root@kali:~# nmap -p 445 192.168.20.202 --script=smb-vuln-ms17-010.nse
- Windows10는 스크립트를 이용하여 스캔을 하면 'ms17-010' 취약점이 없는 것을 확인할 수 있다.
root@kali:~# nmap -p 445 192.168.20.1 --script=smb-vuln-ms17-010.nse
'시스템 보안' 카테고리의 다른 글
레지스터 구조 (0) | 2022.07.06 |
---|---|
Metasploit (0) | 2022.07.04 |
Bash Shellshock 취약점 (0) | 2022.07.03 |
Bind&Reverse TCP (0) | 2022.06.30 |