Open Source/Kali Linux

[Network Scanner] Dnmap on Kali Linux

DarkSoul.Story 2013. 5. 23. 17:35
반응형



1.  개요

Dnmap는 서버와 클라이언트로 이루어져 있으며, 서버는 클라이언트로 nmap 명령어를 보내면, 클라이언트는 내용을 받아 실행한다. Dnmap을 사용하면, 여러 검사를 혼자 수행할 경우 부하가 심해지는데, 이 부하를 클라이언트로 분산시키는 효과를 볼 수 있다. 또한 Nmap의 결과는 서버와 클라이언트 양쪽에 로그 파일로 저장된다.




Dnmap 서버의 특징

- 의도하지 않은 상황에서 서버가 다운되었을 경우, 처음부터 다시 작업을 하지 않고 이어서 작업이 가능하다. 즉, 서버를 다시 실행되 다운되기 직전 명령부터 클라이언트에게 보내게 된다.


- 서버가 가동중 일때 새로운 명령을 추가 할 일이 생기면, 서버를 중지하지 않고 원본 파일에 새 명령을 추가 할 수 있다. 서버는 추가된 새로운 명령을 자동으로 로드한다.


- 일부 클라이언트가 다운된 경우, 서버는 클라이언트가 다운되기 직전의 명령을 기억하였다가 클라이언트가 실행되면 다운 직전 명령부터 다시 보낸다.


- 작업 내용은 로그로 저장한다.


- 서버는 아래 내용들을 포함하여, 각 클라이언트가 작업하는 내용을 실시간 통계로 보여준다.

  실행 된 명령의 수

  마지막보고

  가동 시간

  클라이언트 버전

  클라이언트가 root 여부로 실행되는 경우 분당 실행 된 명령의 양 산출

  실행된 명령의 양을 분당 평균치로 산출

  클라이언트의 상태 (오프라인/온라인/실행/저장)


Dnmap 클라이언트 특징

- 서버가 다운된 경우 서버가 다시 실행될 때까지 연결을 유지한다.


- 서버에서 전송되는 명령에서 이상한 문자가 존재할시 이상한 문자를 제거. 


- 사용자의 별칭을 선택할 수 있다.


- 클라이언트가 서버로 연결하는 포트를 변경할 수 있다.


서버에서 보낸 명령에서 -oA 옵션이없는 경우에도, 클라이언트는 명령에 대한 출력을 항상 로컬 복사한다. 


2. 테스트 환경


Dnmap 서버 : Kali Linux 1.0.3 : Dnmap v0.6

Dnmap 클라이언트 : Kali Linux 1.0 

대상 서버 : Metasploitable2 / Ubuntu 12.04


3. 상세 테스트


Dnmap을 사용하기 위해서는 가장 먼저 Nmap 명령어들을 저장한 명령어 파일을 만들어야 한다. 사용자가 원하는 Nmap 명령어를 파일로 저장한다.



명령어 파일을 만들었으면, Dnmap 서버를 실행 시킨다. 



Dnmap 서버에서 사용할 수 있는 옵션의 종류는 아래와 같다.


        

           

-f, --nmap-commands

Nmap 명령어가 저장되어있는 파일

-p, --port

Dnmap 클라이언트가 Dnmap 서버에 연결  TCP 포트

-L, --log-file

로그 파일. 기본값 : /var/log/dnmap_server.conf

-l, --log-level

로그 레벨(저장되는 로그 정보). 기본값 : info

-v, --verbose_level

자세히 보기 레벨 (1~5사이 지정) 기본값 : 1

-t, --client-timeout

클라이언트가 지정한 시간 만큼 응답이 없는 경우 다운으로 판단

-s, --sort

정렬할 필드값 지정

#Commands, UpTime, RunCmdXMin, AvrCmdXMin, Status

-P, --pem-file

TLS 연결 시 사용할 pem 파일 지정


Dnmap 서버를 실행하기 위해서는 아래와 같이 사용한다.


 root@kali#/usr/bin/dnmap_server [옵션]


여기서는 별다른 옵션을 적용하지 않고 테스트하였다. Dnmap 서버를 실행 시키면 아래와 같이 Dnmap 클라이언트를 기다린다.



다음으로 Dnmap 클라이언트를 실행 시킨다. 



Dnmap 클라이언트에서 사용할 수 있는 옵션은 아래와 같다. 


     

               

-s, --server-ip

Dnmap 서버 IP

-p, --server-port

Dnmap 서버가 대기하고 있는 TCP 포트

-a, --alias

별칭

-d, --debug

디버깅

-m, --max-rate

Nmap 명령어를 수행할 때 속도 지정


Dnmap 클라이언트를 실행하기 위해서는 아래와 같이 사용한다.


 root@kali#/usr/bin/dnmap_client [옵션]


여기서는 별다른 옵션을 적용하지 않고 테스트하였다. Dnmap 클라이언트를 실행 시키면 아래와 같이 Dnmap 서버로 연결을 한 후 명령어를 받아와 nmap 명령을 수행한다.



Dnmap 서버로 부터 받은 명령을 처리하면 nmap_output이라는 폴더가 생성된다. nmap_output에 명령을 수행한 결과가 저장되어 있다.


 




반응형