| |
작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
작성일 : 2001.09.24 부터 수시로
정리일 : 2003.11.07(금)
ngrep은 패킷 내용을 스니퍼처럼 보여주는 툴이다. grep의 네트웍용이라 생각하면 쉬울 것이다.
ngrep이 설치된 서버가 더미허브에 연결되어 있을 경우 내부 네트웍의 모든 패킷을 볼 수도 있다.
1. ngrep 사용
* ngrep 홈 : http://ngrep.sourceforge.net/
80포트를 보기위해서는 다음과 같이 하면 된다.
| |
# ngrep -t port 80
interface: eth0 (192.168.xxx.0/255.255.255.0)
filter: ip and ( port 80 )
####
T 2003/11/07 12:46:32.005250 192.168.xxx.xxx:35898 -> 218.xxx.xx.xx:80 [AP]
GET /news/ HTTP/1.1..Host: coffeenix.net..User-Agent: Mozilla/5.0 (X11; U; Linux i686;
en-US; rv:1.5) Gecko/20031007 Firebird/0.7..Accept: text/xml,application/xml,applicat
ion/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/
... 중략 ...
........ ...., ........ - ........ .... LINUX/UNIX ....
... 생략 ...
| |
-t : 시간도 함께 표시
-x : 16진수와 함께 표시
-d device : 디바이스를 지정할 때
-i : 대소문자를 무시한다.
사용 예)
* 특정 IP로 오가는 패킷중 80포트는 재외
# ngrep -v -qt host IP and not port 80
* Codered 패킷을 볼 때
# ngrep -iqt 'default.ida' port 80
* 특정 호스트로 오고가는 메일, FTP, 텔넷 작업 확인
# ngrep -qx host IP and port 25 or port 110 or port 21 or port 23
* 오라클 리스너로 가는 패킷 확인 (프로그램에서 던져지는 SQL문 확인시 유용)
# ngrep -qx dst port 1521
2. 한글 표시하려면
그러나 ngrep은 영문자와 숫자 이외는 모두 점(.)으로 표시한다.
2001년 소인이 만든 conv.pl 을 이용하면 한글도 표시할 수 있다.
주의할 것은 웹을 통해 파일을 전송한다든지 할 경우, 이상한 문자들이 화면에 가득찰 것이다.
파일 전송이 빈번히 이뤄지는 포트를 제외하고 사용해야한다.
| |
#!/usr/bin/perl
#
# ngrep 한글 표시용
#
# Made by 좋은진호(truefeel)
# 2001.9.24
# T 211.xxx.xx.xxx:1886 -> 205.xxx.xxx.xxx:80 [AP]
# 47 45 54 20 2f 69 6d 61 67 65 2f 39 33 30 35 32 GET /image/93052
while ( $P=<STDIN> ) {
if ( $P =~ /^\s+(.+)/ ) {
$P_HEX = substr($P,0,54);
@HEX = split(' ',$P_HEX);
for ( $c = 0; $c <= $#HEX; $c++ ) {
# 32, 0x20 = Spacebar
if ( hex($HEX[$c]) < 32 &&
$HEX[$c] ne "0d" && $HEX[$c] ne "0a" &&
$HEX[$c] ne "08" && $HEX[$c] ne "1b" ) {
$HEX[$c] = '20';
}
}
$P_HEX = "@HEX";
$P_HEX =~ s/\s//g;
$P_CONV= pack ("H*", $P_HEX);
printf("%s",$P_CONV);
}
}
| |
* 다운로드용 : http://coffeenix.net/truefeel/files/conv.pl.txt
사용 방법은 -x 옵션을 반드시 붙이고 사용하면 된다.
| |
# ngrep -qx dst port 1521 | ./conv.pl
| |
3. 악용하지 말자
ngrep은 악용할 경우 패스워드는 물론 모든 송수신하는 메일 내용과 메신저로 하는 대화 내용까지도
볼 수 있다. (NIDS설치하면 이런건 쉽게 확인 가능하지만.)
관리자의 도덕성과 관련된 부분이니 이런 용도로는 사용하지 말기를 바란다.
오직 관리 목적, 프로토콜 분석, 네트웍 프로그래밍할 때 송수신되는 패킷이 정상적인지 확인하는
용도로 사용해야한다.
|