2012년 5월 19일 토요일

nmap 사용법

해킹을 하기 위한 프로그램으로 많이 이용되었었던.



--------------------------

usage: nc [options] [target host] [ports]

-n : 호스트 네임과 포트를 숫자로만 입력받는다.

-v : verbosity 를 증가 시킨다. 더 많은 정보를 얻을수 있다.

-o [filename]: 보내거나 받은 데이터를 헥스덤프하여 파일에 저장한다.

-u : TCP connection 대신에 UDP connection 이 이루어 진다.

-p [port number or name]: local-port 를 지정한다. 주로 -l 과 같이 사용하게 된다.

-s [ip address or DNS]: local ip address 를 지정한다. 모든 플렛폼에서 지원되지는 않는다.

-l : listen 모드로 nc을 띠우게 된다. 당연히 target host는 입력하지 않는다. -p와 같이 사용하게 된다. nc를 server 로서 쓸때 사용.

-e [filename]: -DGAPING_SECURITY_HOLE 옵션으로 Make 되었을 때 사용가능하다.
connection 이 이루어 졌을 때 file을 exec 시킨다. -l 과 같이 사용되면 한 instance만을 사용하는 inetd와 비슷하다.


-t : -DTELNET 옵션으로 컴파일 되었을 때 사용가능하다. telnetd에 접속이 가능하도록 접속시 telnet과 같은 협상과정을 거친다.

-i [interval time]: nc는 일반적으로 8K 씩 데이터를 보내고 받는데 그렇게 Standard input의 한 라인씩 interval time마다 보내게 된다.

-z : connection을 이루기위한 최소한의 데이터 외에는 보내지 않도록 하는 옵션.

-r : port 지정이 여러개로 되어 있으면 이때 scanning 순서를 randomize하고 (일반적으로 범위로 지정하면 높은 번호의 포트부터 스캔한다) 또한 -p 옵션에서 지정가능한 local port도 randomize한다. 이때 주의 할 것은 -p가 -r을 override 한다는 것이다.

-g : ??

-G : ??



Using

--------------------------------------------------------------------------------

multi-port connection

nc는 한 호스트에 한 번에 여러 connection 을 만들수 있다. 이 때 다음과 같이 여러개의 포트를 기술할 수 있다.
nc [target host] 20-30

이때 std input으로 입력되는 데이터는 한꺼번에 보내지게 된다.


port scanning

target host 의 지정된 범위내에서의 어떤 포트가 어떻게 사용되고 있는 가를 검색할 수 있다.
nc -v -w 3 -z sparcs.kaist.ac.kr 20-30, 70-90

위의 명령은 다음 결과와 같이 20-30, 70-90 까지의 포트들에 대한 정보를 보여준다.

sparcs.kaist.ac.kr [143.248.8.2] 25 (smtp) open
sparcs.kaist.ac.kr [143.248.8.2] 23 (telnet) open
sparcs.kaist.ac.kr [143.248.8.2] 21 (ftp) open
sparcs.kaist.ac.kr [143.248.8.2] 80 (http) open
sparcs.kaist.ac.kr [143.248.8.2] 79 (finger) open
sparcs.kaist.ac.kr [143.248.8.2] 70 (gopher) open

이것보다 더 자세한 정보를 얻고자 할때는

echo QUIT | nc -v -w 3 [target host] [ports]

라고 하면 응답이나 에러메세지로부터 버전정보등도 얻을 수 있다.

[songa@sparcs.kaist.ac.kr] ~ 13 echo QUIT | nc -v -w 3 sparcs 20-30, 70-90
sparcs.kaist.ac.kr [143.248.8.2] 25 (smtp) open
220 sparcs.kaist.ac.kr ESMTP Sendmail 8.8.7/8.8.7; Fri, 8 Jan 1999 15:21:36
+0900
221 sparcs.kaist.ac.kr closing connection
sparcs.kaist.ac.kr [143.248.8.2] 23 (telnet) open
????????sparcs.kaist.ac.kr [143.248.8.2] 21 (ftp) open
220 sparcs.kaist.ac.kr FTP server (Version wu-2.4.2-academ[BETA-18](1) Mon Aug 3 19:17:20 EDT 1998) ready.
221 Goodbye.
sparcs.kaist.ac.kr [143.248.8.2] 80 (http) open
sparcs.kaist.ac.kr [143.248.8.2] 79 (finger) open
finger: QUIT: no such user.
sparcs.kaist.ac.kr [143.248.8.2] 70 (gopher) open


simple data transfer agent

nc를 이용해 간단한 data 전송을 할 수 있다.
receiver : nc -l -p 1234 | uncompress -c | tar xvfp -

sender : tar cfp - /some/dir | compress -c | nc -w 3 othermachine 1234


substitute of inetd

nc를 이용해 inetd에 등록하지 않고, 별다른 네트웍 설정 없이 프로그램을 테스트할 수 있다.
nc -l -p [port] -e [filename]


/*test.c*/
#include < stdio.h >
main(){
getchar();
printf("햐하\n");


nc -l -p 1234 -e test

이렇게 하면 간이 www server 도 된다.

connection redirecting
inetd.conf을 아래와 같은 還컥막?고쳐서 다른 서버로 redirecting을 할수 있다.

www stream tcp nowait /etc/tcpd /bin/nc -w 3 zero 80

위의 것은 현재 서버에서 http서비스를 zero서버로 redirect시켰다.

performance testing
nc를 이용해서 큰 데이터를 서로 보내고 받음으로써 network의 performance를 테스트할수 있다.
[songa@sparcs.kaist.ac.kr] /etc 31 > yes AAAA | nc -v -v -l -p 1234 > /dev/nul&
[1] 3258 3259
[songa@sparcs.kaist.ac.kr] /etc 32 > listening on [any] 1234 ...
[songa@sparcs.kaist.ac.kr] /etc 32 >
[songa@sparcs.kaist.ac.kr] /etc 32 >
[songa@sparcs.kaist.ac.kr] /etc 32 > yes BBBB | nc sparcs 1234 > /dev/null &
[2] 3475 3476
[songa@sparcs.kaist.ac.kr] /etc 33 > connect to [143.248.8.2] from sparcs.kaisac.kr [143.248.8.2] 31844
[songa@sparcs.kaist.ac.kr] /etc 33 > kill %
[songa@sparcs.kaist.ac.kr] /etc 34 > sent 23470080, rcvd 21675480

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...