다운로드 사이트
http://dag.wieers.com/rpm/packages/ngrep/
사용법
ngrep은 접속 호스트별, 포트별, 장비별 패킷 확인이 가능하다.
– 특정 IP의 80 포트로 통신하는 패킷 확인 방법
1 |
<SPAN style="COLOR: rgb(0,0,0)">#</SPAN><SPAN><SPAN style="COLOR: rgb(0,0,255)"> ngrep -v -qt host 123.123.123.124 and port 80</SPAN></SPAN> |
– 오라클(특정 포트 : 1521)로 전송되는 SQL 등을 확인할 때
1 |
<SPAN style="COLOR: rgb(0,0,0)">#</SPAN><SPAN><SPAN style="COLOR: rgb(0,0,255)"> ngrep -qx dest port 1521</SPAN></SPAN> |
– 특정 IP의 80 포트를 제외한 패킷 확인 방법
1 |
<SPAN style="COLOR: rgb(0,0,0)">#</SPAN><SPAN><SPAN style="COLOR: rgb(0,0,255)"> ngrep -v -qt host 123.123.123.124 and not port 80</SPAN></SPAN> |
ngrep 옵션(별 필요성을 못느끼는 옵션.. ^^)
-t : 시간 표시
-x : 16진수 표시
-d device : device 표시
-i : grep 처럼 대소문자 무시
4. ngrep
마지막으로 살펴볼 프로그램은ngrep이라는 프로그램이다.
ngrep은 network grep의 의미로서,홈페이지
(http://www.packetfactory.net/projects/ngrep/) 또는 http://rpmfind.net/에서 rpm 버전으
로 다운로드 가능하다. ngrep은 앞에서 언급한 tcpdump나 snort와 비슷한 기능을 제공하
지만 snort와 같이 설치과정이 복잡하지도 않고 바이너리 파일만 복사해서 바로 사용할 수
있을만큼 가벼워서 모니터링시 유용하게 사용 가능하다.
사실, 개인적으로는 tcpdump나 snort보다 이 프로그램을 더욱 많이 사용하고 있는데,역시
기본적으로 BPF도 제공한다.몇 가지 유용한 기능을 예와 함께 살펴보도록 하자.
# ngrep -qi -c 80 port 80
T 221.xxx.68.251:3414 -> 211.47.xx.xx:80 [AP]
GET /tt/site/skin/member/CONNECT_LIST/SITE_CONNECT_LIST/images/title_all.gi
f HTTP/1.1..Accept: */*..Referer: http://test.tt.co.kr/tt/site/ttmember.c
gi?act=connect_list..Accept-Language: ko..Accept-Encoding: gzip, deflate..I
f-Modified-Since: Tue, 21 Feb 2006 06:19:41 GMT..If-None-Match: “2a4043-77-
43fab0fd”..User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; M
axthon; i-NavFourF; InfoPath.1; .NET CLR 1.1.4322)..Host: test.tt.co.kr..
Connection: Keep-Alive..Cookie: WRITE=store_user_info=0&; X2VID=Z4402067
F93; oldserver=done; _home_test_public_html_tt_site_
SESSION_ID=ee641d3190188207f3320f075f1c2b10….
위의 경우 port 80번에 대한 패킷을 캡처한 것으로 패킷의 상세한 내용까지 보여주고 있는
것을 알 수 있다. 여기에서 -c 80은 출력되는 컬럼의 폭을 80자로 제한하여 가동성을 높이
기 위한 설정이다.
# ngrep -qwi ‘user|pass’ port 110
T 211.47.xx.xx:2502 -> 211.47.xx.xx:110 [AP]
USER antihong..
T 211.47.xx.xx:110 -> 211.47.xx.xx:2502 [AP]
+OK User name accepted, password please..
10.2.3.4:110 -> 10.2.4.39:1763 TCP TTL:121 TOS:0x0 ID:22164 IpLen:20
DgmLen:40
***AP*** Seq: 0x2B9D2415 Ack: 0x6405A45C Win: 0x16D0 TcpLen: 20
2B 4F 4B 20 50 4F 50 33 20 73 74 61 66 66 73 2E +OK POP3 mail.
74 74 2E 63 6F 2E 6B 72 20 76 32 30 30 31 2E 37 server.com v2001.7
38 72 68 20 73 65 72 76 65 72 20 72 65 61 64 79 8rh server ready
0D 0A
T 211.47.xx.xx:4567 -> 211.47.xx.xx:110 [AP]
PASS sdlkjlfsdf.
이는 port 110번에 대한 패킷 중 대소문자에 관계없이(-i) ‘user’또는 ‘pass’라는 문자열
이 보이는 패킷만을 보여주는 것으로, 특정한 문자열만을 캡처해서 보고자 할 때 유용하게
사용할 수 있다.
# ngrep -tW byline port 80
#
T 2006/03/13 17:30:16.416882 222.xxx.xx.254:4767 -> 211.47.xx.xx:80 [AP]
GET /tt/site/skin/member/CONNECT_LIST/SITE_CONNECT_LIST/images/bt_profile.gif
HTTP/1.1.
Accept: */*.
Referer: http://test.tt.co.kr/tt/site/ttmember.cgi?act=connect_list.
Accept-Language: ko.
Accept-Encoding: gzip, deflate.
If-Modified-Since: Tue, 21 Feb 2006 06:19:41 GMT.
If-None-Match: “2a403f-1eb-43fab0fd”.
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; i-NavFourF).
Host: custom.tt.co.kr.
Connection: Keep-Alive.
Cookie: WRITE=store_user_info=0&; main_ttnews_276_no_popup=20060116;
X2VID=Z43D56FAC3AF43; main_ttnews_281_no_popup=20060208;
Recruit200603=done; oldserver=done;
_home_test_public_html_tt_site_SESSION_ID=9796a3f30d4473ca6c7382e8a7ab42b6.
.
##
T 2006/03/13 17:30:16.418319 211.47.xx.xx:80 -> 222.235.xx.xxx:4767 [AP]
HTTP/1.1 304 Not Modified.
Date: Mon, 13 Mar 2006 08:30:16 GMT.
Server: Microsoft-IIS/5.0.
Connection: Keep-Alive, Keep-Alive.
Keep-Alive: timeout=15, max=99.
ETag: “2a403f-1eb-43fab0fd”.
위와 같이 -t 옵션을 추가하면 패킷이 캡처되는 시간이 함께 보이고, -W byline을 추가하
면 앞에서와 달리 캡처되는 내용들이 한 줄에 나열되지 않고 항목에 따라 여러 줄에 나누어
보여주므로 패킷을 분석하는데 편리하게 사용가능하다.
추가적으로, ngrep에 대한 자세한 내용은 ngrep –help를 참고하기 바라며 패킷 캡처와
관련하여 생각해 볼만한 이슈가 두 가지가 있는데, 만약 패킷 캡처된 내용을 별도의 파일에
저장하고자 할 경우에는 어떻게 하여야 할까?
이러한 경우 각 프로그램에서 자체적으로 제공하는 별도의 저장 옵션을 이용해도 되고 간단
히 ngrep > cap.txt와 같이 실행하여도 된다.
아울러, 패킷 캡처시 시스템에 부하를 유발하지는 않지만 패킷 캡처를 장기간 지속적으로
실행할 경우 패킷 캡처 자체가 부하를 유발할 수도 있으므로 주의하기 바란다.
출저 : http://www.linuzer.net/zbxe/?document_srl=1776
4. ngrep
마지막으로 살펴볼 프로그램은ngrep이라는 프로그램이다.
ngrep은 network grep의 의미로서,홈페이지
(http://www.packetfactory.net/projects/ngrep/) 또는 http://rpmfind.net/에서 rpm 버전으
로 다운로드 가능하다. ngrep은 앞에서 언급한 tcpdump나 snort와 비슷한 기능을 제공하
지만 snort와 같이 설치과정이 복잡하지도 않고 바이너리 파일만 복사해서 바로 사용할 수
있을만큼 가벼워서 모니터링시 유용하게 사용 가능하다.
사실, 개인적으로는 tcpdump나 snort보다 이 프로그램을 더욱 많이 사용하고 있는데,역시
기본적으로 BPF도 제공한다.몇 가지 유용한 기능을 예와 함께 살펴보도록 하자.
# ngrep -qi -c 80 port 80
T 221.xxx.68.251:3414 -> 211.47.xx.xx:80 [AP]
GET /tt/site/skin/member/CONNECT_LIST/SITE_CONNECT_LIST/images/title_all.gi
f HTTP/1.1..Accept: */*..Referer: http://test.tt.co.kr/tt/site/ttmember.c
gi?act=connect_list..Accept-Language: ko..Accept-Encoding: gzip, deflate..I
f-Modified-Since: Tue, 21 Feb 2006 06:19:41 GMT..If-None-Match: “2a4043-77-
43fab0fd”..User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; M
axthon; i-NavFourF; InfoPath.1; .NET CLR 1.1.4322)..Host: test.tt.co.kr..
Connection: Keep-Alive..Cookie: WRITE=store_user_info=0&; X2VID=Z4402067
F93; oldserver=done; _home_test_public_html_tt_site_
SESSION_ID=ee641d3190188207f3320f075f1c2b10….
위의 경우 port 80번에 대한 패킷을 캡처한 것으로 패킷의 상세한 내용까지 보여주고 있는
것을 알 수 있다. 여기에서 -c 80은 출력되는 컬럼의 폭을 80자로 제한하여 가동성을 높이
기 위한 설정이다.
# ngrep -qwi ‘user|pass’ port 110
T 211.47.xx.xx:2502 -> 211.47.xx.xx:110 [AP]
USER antihong..
T 211.47.xx.xx:110 -> 211.47.xx.xx:2502 [AP]
+OK User name accepted, password please..
10.2.3.4:110 -> 10.2.4.39:1763 TCP TTL:121 TOS:0x0 ID:22164 IpLen:20
DgmLen:40
***AP*** Seq: 0x2B9D2415 Ack: 0x6405A45C Win: 0x16D0 TcpLen: 20
2B 4F 4B 20 50 4F 50 33 20 73 74 61 66 66 73 2E +OK POP3 mail.
74 74 2E 63 6F 2E 6B 72 20 76 32 30 30 31 2E 37 server.com v2001.7
38 72 68 20 73 65 72 76 65 72 20 72 65 61 64 79 8rh server ready
0D 0A
T 211.47.xx.xx:4567 -> 211.47.xx.xx:110 [AP]
PASS sdlkjlfsdf.
이는 port 110번에 대한 패킷 중 대소문자에 관계없이(-i) ‘user’또는 ‘pass’라는 문자열
이 보이는 패킷만을 보여주는 것으로, 특정한 문자열만을 캡처해서 보고자 할 때 유용하게
사용할 수 있다.
# ngrep -tW byline port 80
#
T 2006/03/13 17:30:16.416882 222.xxx.xx.254:4767 -> 211.47.xx.xx:80 [AP]
GET /tt/site/skin/member/CONNECT_LIST/SITE_CONNECT_LIST/images/bt_profile.gif
HTTP/1.1.
Accept: */*.
Referer: http://test.tt.co.kr/tt/site/ttmember.cgi?act=connect_list.
Accept-Language: ko.
Accept-Encoding: gzip, deflate.
If-Modified-Since: Tue, 21 Feb 2006 06:19:41 GMT.
If-None-Match: “2a403f-1eb-43fab0fd”.
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; i-NavFourF).
Host: custom.tt.co.kr.
Connection: Keep-Alive.
Cookie: WRITE=store_user_info=0&; main_ttnews_276_no_popup=20060116;
X2VID=Z43D56FAC3AF43; main_ttnews_281_no_popup=20060208;
Recruit200603=done; oldserver=done;
_home_test_public_html_tt_site_SESSION_ID=9796a3f30d4473ca6c7382e8a7ab42b6.
.
##
T 2006/03/13 17:30:16.418319 211.47.xx.xx:80 -> 222.235.xx.xxx:4767 [AP]
HTTP/1.1 304 Not Modified.
Date: Mon, 13 Mar 2006 08:30:16 GMT.
Server: Microsoft-IIS/5.0.
Connection: Keep-Alive, Keep-Alive.
Keep-Alive: timeout=15, max=99.
ETag: “2a403f-1eb-43fab0fd”.
위와 같이 -t 옵션을 추가하면 패킷이 캡처되는 시간이 함께 보이고, -W byline을 추가하
면 앞에서와 달리 캡처되는 내용들이 한 줄에 나열되지 않고 항목에 따라 여러 줄에 나누어
보여주므로 패킷을 분석하는데 편리하게 사용가능하다.
추가적으로, ngrep에 대한 자세한 내용은 ngrep –help를 참고하기 바라며 패킷 캡처와
관련하여 생각해 볼만한 이슈가 두 가지가 있는데, 만약 패킷 캡처된 내용을 별도의 파일에
저장하고자 할 경우에는 어떻게 하여야 할까?
이러한 경우 각 프로그램에서 자체적으로 제공하는 별도의 저장 옵션을 이용해도 되고 간단
히 ngrep > cap.txt와 같이 실행하여도 된다.
아울러, 패킷 캡처시 시스템에 부하를 유발하지는 않지만 패킷 캡처를 장기간 지속적으로
실행할 경우 패킷 캡처 자체가 부하를 유발할 수도 있으므로 주의하기 바란다.
출저 : http://www.linuzer.net/zbxe/?document_srl=1776