japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~

 
SW 리뷰
기타
ftp 관련 강좌
telnet, ssh 접속 클라이언트
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.
 
 
    소프트웨어>>SW 리뷰>>


Netcat 소개와 활용가이드
 

Netcat 소개와 활용가이드

작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀


목차

1. 소개
2. 설치
3. 옵션설명
4. 사용법
5. 참고문헌 또는 URL



1. 소개

top


Netcat(이하 nc로 표기)은 Network connection 에서 raw-data read, write를 할수 있는 유틸리티 프로그램입니다. 일반적으로는 UNIX의 cat과 비슷한 사용법을 가지고 있지만 cat이 파일에 쓰거나 읽듯이 nc는 네트워크에 읽거나 쓸수 있습니다. 이것은 스크립트와 병용하여 network에 대한 debugging, testing tool로써 매우 편리하고, 원하는 포트로 원하는 데이터를 주고받을수 있는 특징때문에 해킹에도 널리 이용되며, 컴퓨터 포렌식에 있어서 라이브시스템의 데이터를 손상없이 가져오기위해서도 사용될수 있습니다.

nc은 원하는 거의 모든 종류의 접속형태를 만들어 낼 수 있고 흥미로운 몇 가지 내장기능을 갖고 있기 때문에 다기능의 네크워크 문제해결/조사시 유용하게 사용가능합니다.


2. 설치

top


리눅스에서 사용가능한 nc은 http://netcat.sourceforge.net/ 에서 다운로드 받을수 있으며 RPM ,Source 가 제공됩니다.

윈도우에서 nc을 사용하시려면 http://www.securityfocus.com/tools/139/scoreit 에서 윈도우용 nc를 다운받아서 사용하실수 있습니다.

 


3. 옵션설정

top


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 한다는 것입니다.

 


4. 사용법

top


multi-port connection

nc은 한 호스트에 한 번에 여러 connection 을 만들수 있습니다.
이 때 다음과 같이 여러개의 포트를 기술할 수 있다.

1. nc [target host] 20-30

이후로 표준입력으로 입력되는 데이터들은 [target host] 의 20-30 사이로 한꺼번에 보내지게 됩니다.


port scanning


[target host] 의 지정된 범위내에서의 어떤 포트가 어떻게 사용되고 있는 가를 검색할 수 있다.

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
Broken pipe
$ yes AAAAAAAAAAAAAAAAAAAAAA l /tmp/nc -v -v -l -p 2222 >/dev/null
listening on [any] 2222 ...
connect to [x.x.x.x] from x.x.x.x [x.x.x.x] 2790
sent 6643712, rcvd 9542784

A가 많이 받음 B 서버

33. $ yes AAAAAAAAAAAAAAAAAAAAAA l nc -v -v -l -p 2222 >/dev/null
listening on [any] 2222 ...
203.239.110.12: inverse host lookup failed: Unknown host
connect to [x.x.x.x] from (UNKNOWN) [x.x.x.x] 1672
sent 11145216, rcvd 8092008
$ yes BBBBBBBBBBBBBBBBBBBBBB l nc x.x.x.x 2222 >/dev/null
Broken pipe

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


5. 참고문헌 또는 URL

top


http://security.kaist.ac.kr/docs/netcat.html

http://www.oac.uci.edu/indiv/franklin/doc/netcat.html


 
 
   
강사 소개
  도리    
도리(Doly)
(주)수퍼유저 기술이사 (CTO)
리눅스마스터 1급,2급 추천교재(2014년) 집필
리눅스마스터 1급,2급 전문위원(출제)(한국정보통신진흥협회, 2005년~)
SULinux 1.0, 1.5, 2.0, 2014 개발 총괄(sulinux.net, 1998년~)
SSU,LSCP,LSMP,CCMT외 다수 오픈소스 프로젝트 개발 및 운용 (lscp.sf.net외,2009년~)
리눅스 대량 시스템 구축 및 관리(5,000대리눅스 서버 구축 및 관리 경험, 2000년~)

E-Mail : doly골뺑이superuser.co.kr
소개 : 하루 하루 최선을 다합시다!!
 
Install Links
Text Browser Roundup

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.