NMAP은 port Scanning 툴로서 호스트나 네트워크를 스캐닝 할 때, 아주 유용한 시스템 보안툴인 동시에, 해커에게는 강력한 해킹툴로 사용될 수 있습니다.
IDC 에서 근무를 하다보면 어느서버의 어떤 포트가 닫혀있느지, 실제적으로 서버가 다운되었는지를 아느냐에 따라서 조치가 틀려질수 있습니다.
수 많은 포트와 서비스를 효과적으로 체크해서 관리하기 위해서 NMAP과 같은 포트 스캔 툴이 필요합니다.
NMAP은 기존의 포트스캔툴에 비해 다양한 옵션과 방화벽 안쪽의 네트웍도 스캔할 수 있는 강력한 기능이 있습니다.
1. 설치
윈도우 같은경우는 http://nmap.org 사이트에 접속 해서 다운로드 및 설치를 할수 있습니다.
리눅스 같은경우 , 위 사이트에서 rpm 파일이나 소스를 다운로드 받은 후 설치를 진행하거나
yum install -y nmap 명령어를 통해 쉽게 설치를 진행 할 수 있습니다.
(# 2014/08/29 기준으로 yum install 로 설치 시 5.51 버전 , 다운로드 후 수동설치시에는
6.47버전 의 NMAP 을 설치 하실수 있습니다.)
(↑ 사진 1) Nmap 공식 홈페이지 nmap.org)
2. nmap 의 스캔타입, 사용
일반적으로 흔히사용하는 nmap 의 스캔 타이밍에는 다음과 같은것들이 있습니다.
-sT 일반적인 TCP 포트스캐닝. (그냥 nmap 입력후 포트 체크시 자동으로 이 옵션으로
포트를 체크합니다.)
-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 스캔 대상 호스트의 정보를 지정한 파일에서 읽어서 스캔.
(↑사진2)윈도우 cmd 창에서 Nmap 사용시 )
(↑사진3)Nmap -sS -O 옵션을 사용했을때 나오는 정보들 )
# 위 스캔타입은 일반적으로 사용을 많이 하는 스캔타입(옵션)이며 , 좀더 깊숙히 들어가서
-h 옵션을 입력하거나 man page 를 이용하면 아주 상세한 사용 방법이 나와있습니다.
(단, 메뉴얼페이지 나 -h 옵션 모두 영어로 되어있기 때문에..영어를 잘해야 합니다..ㅠㅠ)
# 끝으로..
NMAP 은 아벨과 카인 같이 정당하게 쓰면 좋으나, 악용하게 되면 한없이 위험한 프로그램입니다.
(실제로 자세하게 서버쪽을 알지 못하는 크래커 (cracker) 라도 nmap 옵션을 통해 서버의 해킹을 손쉽게 할수 있습니다.)
이는 비단, NMAP 만의 문제가 아닌 네트워크 스캐닝 프로그램의 공통점 이기도 합니다.
네트워크 스캐닝 의 원래 취지에 맞게, 절대 NMAP 의 옵션을 통해 악용하는일이 없어야 하겠습니다.
[polldaddy rating=”7739789″]