Nmap


1 개요

Network Mapper#. 네트워크 스캐닝 툴의 일종으로 쉽고 유연하며 좋은쪽으로도 나쁜쪽으로도 강력한 기능들이 미리 스크립팅 되어있다.
네트워크상에 호스트를 찾아내거나, 호스트의 정보(가령 운영체제는 무엇이고 어떤 포트를 어떤 프로그램이 사용하고 있는지, 버전은 어떤지 등) 스캔, 스텔스 스캔, 방화벽 사용 감지, 보안 취약점 검사 등등을 할 수 있다.

1997년 해킹 매거진 phrack에 소스코드와 함께 처음 공개되어 지금까지 오픈소스로 개발되어 엄청난 점유율을 자랑하며 수많은 바리에이션을 낳았다.

모든 보안프로그램이 그러하듯, 이 역시 좋은 목적으로 사용하면 관리에 편의를 제공하지만 공격자가 사용하면 풋프린팅의 기초가 되는 프로그램이다.

2 활용법

설치는 리눅스 데비안 환경에서 apt-get install nmap 을 통해 할 수 있고, 이후의 실행은 nmap (사용할 인수) 를 통하여 할 수 있다.
당연히 로우(raw) 소켓을 사용하기 때문에 루트권한이 없으면 사용할 수 없다.

사용법이야 그냥 nmap 만 쳐도 매뉴얼을 보여준다만, 정말 유용하게 쓰이는 필수적인 인수를 몇가지 나열해보자면

-sn 192.168.0.* : 이 명령은 1에서부터 254까지 접속되어있는 호스트의 맥주소와 기본적인 정보(Apple이라던지 Samsung이라던지)의 내용을 핑스캔을 통해 보여준다. 가령 와이파이에 접속하여 위 명령을 실행하면 그 와이파이에 접속된 기기들을 확인할 수 있다.

-Pn : 이 명령은 반대로 핑을 사용하지 않는다. nmap은 스캔에있어 사전에 핑을 통해 호스트가 살아있음을 확인하고 진행하는데, 보안문제로 인해 핑을 무시하는 호스트에대해서는 스캔을 할 수 가 없다. 그러한 경우에는 위 명령을 통해 확인절차를 스킵하자.

-sT : 일반적인 TCP의 3-Way-Handshake방식을 이용한 포트스캔, 당연히 위 절차를 통해 로그가 남는다.

-sS : TCP 스탤스 스캔, 위 절차에서 마지막에 보내야하는 ACK대신 RST를 보내 절차 성립을 방해하여 로그를 남기지 안.... 기는 무슨 남을 로그는 남는다. 로그 남는게 두려울 짓은 하지 마라.

-sN, -sF, -sX : 차래대로 TCP Null 스캔, Fin 스캔, Xmas 스캔이다. 스텔스스캔의 일종으로 로그를 남기지 안.. 자세한 설명은 생략한다

-sU : UDP 방식을 이용한 스캔.

-p : 특정 포트만을 지정하여 스캔할 수 있도록 도와주는 인수다. 가령 -p 22 는 SSH포트만을 스캔한다.

-sV : 그 호스트의 포트를 통해 어떤 버전의 어떤 프로그램이 돌아가고 있는지 상세히 알려준다. 앞서 말한 운영체제도 이를 통해 알 수 있다.

-O : 단순히 운영체제만을 알 수 있게 해주는 스캔이다.

-f : 어떤 경우에는 방화벽이 스캔 패킷을 차단할 수 도 있다. 그를 막기 위해 패킷을 단편화하여 보내는 인수이다.

-S : 스캔에 가짜 아이피를 사용할 필요가 있다면 사용하는 인수이다. 다시 말하지만, 굳이 가짜 아이피가 필요한 일은 하지 마라.

-A : 정보 수집계의 종합선물 세트 sV보다 더 상세하게 많은것을 알려준다.

3 기타

앞서도 실컷 말했지만, 단순한 스캔도 '공격이다.' 가령 아무 생각 없이 날린 패킷이 서비스장애를 불러일으킬 수 도 있다. 그리고 정보통신망법에 명확히 위배되는 행위임으로, 사전허락을 득했거나가령 교수님 서버라던지, 자신의 서버에서만 하도록 하자. 127.0.0.1은 만인의 동네북임으로 마음껏 공격해도 좋다. 미친놈아


컴퓨터가 나오는 영화에서도 단골로 출현하기도 한다. 사진의 영화는 매트릭스 2 리로리드.