자격증과 세미나, 프로그램 이야기를 주저없이 써봅니다.

Since 2008. 10.

IT 자격증/리눅스마스터 및 LPIC

포트 스캐닝 도구 - Nmap

럭키맨 운수 2009. 1. 25. 16:08

Nmap은 포트 스캐닝 도구로 공격자가 공격대상 시스템의 열려진 포트를 스캐닝하는 것으로써 OS 판별, 공격 경로선택 등을 위해서 수행하는 도구입니다.

 

Nmap을 이용하여 오픈된 포트를 조사하는 방법은 아래와 같습니다.

 

예제) 특정시스템의 오픈된 TCP 포트와 OS를 조사하여 결과를 portlost.txt에 저장
nmap -sS -O 192.168.188.128 -o portlost.txt

 

-sS: {TCP SYN Scan} Half - open scan 또는 Stealth scan으로 불리며 완전하게 TCP 연결을 하지않고, 대상포트로 SYN 패킷을 전송해 SYN/ACK을 받으면 open 상태, RST/ACK를 받으면 close 상태입니다. SYN scan은 Half-open 연결을 통하여 포트의 open/close 상태를 확인하기 때문에 TCP connect() scan에 비하여 비밀스런 연결로 시스템에 로그가 기록되지 않습니다. (TCP scan()보다 빠르기 때문에 가장 많이 사용됩니다)

 

-O: OS 탐지 수행
-o: 로그파일 기록

 

 

위 사진을 보면 특정사이트의 운영체제를 확인할 수 있는 -O 옵션과 -sS Half-open(stealth scan)을 사용해 포트스캐닝을 시도한 화면입니다. Nmap을 통해 서버의 운영체제는 Linux 2.6.21 이라는 것과 열려진 포트를 확인할 수 있습니다.

 

기타 옵션

 

-sT       일반적인 TCP 포트 스캐닝
-sS       이른바 'Half-open'스캔으로 추적이 어려움
-sP       ping을 이용한 일반적인 스캔
-sU       UDP 포트 스캐닝
-PO       대상 호스트에 대한 ping 응답을 요청하지 않음. log 기록과 filtering을 피할 수 있음
-PT       일반적인 ICMP ping이 아닌 ACK 패킷으로 ping을 보내고 RST 패킷으로 응답을 받음
-PI        일반적인 ICMP ping으로 방화벽이나 필터링에 의해 걸러짐
-PB       ping을 할 때 ICMP ping과 TCP ping을 동시에 이용
-PS       ping을 할 때 ACK 패킷 대신 SYN 패킷을 보내 스캔
-O         대상 호스트의 OS 판별
-p         대상 호스트의 특정 포트를 스캔하거나, 스캔할 포트의 범위를 지정
            ex) -p 1-1024
-D         Decoy 기능으로 대상 호스트에게 스캔을 실행한 호스트의 주소를 속임
-F         /etc/services 파일 내에 기술된 포트만 스캔
-I          TCP 프로세서의 identd 정보를 가져옴
-n         IP 주소를 DNS 호스트명으로 바꾸지 않음, 속도가 빠름
-R         IP 주소를 DNS 호스트명으로 바꿔서 스캔, 속도가 느림
-o         스캔 결과를 텍스트 파일로 저장
-i          스캔 대상 호스트의 정보를 지정한 파일에서 읽어서 스캔
-h         도움말 보기

 

위의 스캔 타입은 자주 쓰이는 내용이고 -h 옵션을 쓰거나 man page를 이용하면 아주 상세한 사용방법을 보실 수 있습니다.