Netcat 소개와 활용가이드
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 8,917 조회
- 0 추천
- 목록
본문
Netcat 소개와 활용가이드 | ||
작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀 | ||
목차1. 소개 | ||
| ||
nc은 원하는 거의 모든 종류의 접속형태를 만들어 낼 수 있고 흥미로운 몇 가지 내장기능을 갖고 있기 때문에 다기능의 네크워크 문제해결/조사시 유용하게 사용가능합니다. | ||
| ||
윈도우에서 nc을 사용하시려면 http://www.securityfocus.com/tools/139/scoreit 에서 윈도우용 nc를 다운받아서 사용하실수 있습니다.
| ||
| ||
-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 한다는 것입니다.
| ||
| ||
1. nc [target host] 20-30 이후로 표준입력으로 입력되는 데이터들은 [target host] 의 20-30 사이로 한꺼번에 보내지게 됩니다. 2. nc -v -w 3 -z 210.183.235.15 20-30, 70-90 위의 명령은 다음 결과와 같이 20-30, 70-90 까지의 포트들에 대한 정보를 보여준다. 3. [root@tsc13 ~/work] 4. # nc -v -w 3 -z ostsc.co.kr 20-30, 70-90 5. DNS fwd/rev mismatch: ostsc.co.kr.ostsc.co.kr != ns.ostsc.co.kr 6. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 22 (ssh) open 7. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 80 (http) open 8. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 79 (finger) open 이것보다 더 자세한 정보를 얻고자 할때는 9. echo QUIT l nc -v -w 3 [target host] [ports] 라고 하면 응답이나 에러메세지로 부터 버전 정보 등도 얻을 수 있습니다. 아래의 실행결과를 보면 각 포트에서 알려주는 메세지를 확인 할 수 있습니다. 10. [root@tsc13 ~/work] 11. # echo QUIT|nc -v -w 3 ostsc.co.kr 10-80 12. DNS fwd/rev mismatch: ostsc.co.kr.ostsc.co.kr != ns.ostsc.co.kr 13. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 80 (http) open 14. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 15. <html><head> 16. <title>501 Method Not Implemented</title> 17. </head><body> 18. <h1>Method Not Implemented</h1> 19. <p>QUIT to /index.html not supported.<br /> 20. </p> 21. <hr /> 22. <address>Apache/2.0.51 (Fedora) Server at 210.183.235.13 Port 80</address> 23. </body></html> 24. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 79 (finger) open 25. ** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY.ostsc.co.kr.ostsc.co.kr [210.183.235.13] 53 (domain) open 26. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 22 (ssh) open 27. ostsc.co.kr.ostsc.co.kr [210.183.235.13] 15 (netstat) open 28. ** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY.ostsc.co.kr.ostsc.co.kr [210.183.235.13] 11 (systat) open 29. ** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY. nc을 이용하여 DATA를 전송하는 방법을 알아보겠습니다. 전송받을 시스템에서는 nc을 대기모드로 작동시켜 둡니다. 30. nc -l -p 1234 l uncompress -c l tar xvfp - 데이터를 보낼 시스템에서는 아래처럼 명령을 내립니다 31. tar cfp - /some/dir l compress -c l nc -w 3 [other machine] 1234 성능테스트 nc를 이용해서 큰 데이터를 서로 보내고 받음으로써 network의 performance를 테스트할수 있습니다. A 서버 32. $ yes BBBBBBBBBBBBBBBBBBBBBB l /tmp/nc x.x.x.x 2222 >/dev/null A가 많이 받음 B 서버 33. $ yes AAAAAAAAAAAAAAAAAAAAAA l nc -v -v -l -p 2222 >/dev/null B가 많이 보냄 프로그램에서 활용 쉘 스크립트에서 데이터의 전송에 사용할수도 보낼 수 있습니다
분석할 시스템에서 nc을 이용해서 조사대상 시스템으로부터 복사할 파티션을 저장하도록 설정해 둡니다. 34. #nc -l -p 10000 > target.hda2.dd 조사대상 시스템에서 dd 명령을 이용해서 파티션을 복사하고 이를 nc을 이용해서 분석할 시스템으로 전송합니다. 35. #dd if=/dev/hda2 bs=1024 | nc 210.183.234.15 10000 -w 3 | ||
| ||
http://www.oac.uci.edu/indiv/franklin/doc/netcat.html | ||
![]() |
관련자료
-
이전
-
다음