본문 바로가기
네트워크 (LAN,WAN)

네트워크에서 특정 문자열 탐지하기

by 날으는물고기 2010. 1. 12.

네트워크에서 특정 문자열 탐지하기

얼마전까지 많은 서버에 피해를 주었던 코드레드 바이러스는 Windows NT나 Windows 2000의  IIS 서버만 공격하는 것으로 알려져 있지만 실제로 웹서버의 버전과는 관계 없이 80번 포트로 무차별적인 접속시도를 하여 웹 기반의 스위칭이나 라우터등 일부 네트워크 장비가  다운 되는 등의 문제가 있었다. 또한 아파치 서버의 경우 로그를 남겨 놓았을 경우 서버에 많은 로그를 남기어 디스크가 Full 이 되는 경우도 있었다. 코드 레드의 경우 각 서버의 로그 파일을 보면 공격지 IP 를 확인할 수 있지만 일일이 각 서버의 로그파일을 남기거나 분석하지 않고도 네트워크상에서 특정 문자열로 탐지가 가능하다.

이는 ngrep 이라는 툴을 이용하면 된다. ngrep 은 네트워크에 전송되는 트래픽에서 특정 문자열이나 텍스트만을 검색하는 막강한 기능을 가진 프로그램으로 코드 레드의 경우  기본적으로 default.ida 파일을 요구하므로 이 문자열을 요구하는 패킷을 검색하면 된다.

# ngrep -qt ".ida\?" tcp port 80

2001/09/05 18:50:34.514746 211.192.184.151:3441 -> 211.40.15.176:80 [A]
  GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

위의 경우 211.192.184.151 에서 211.40.15.176 번 서버로 코드레드 시도를 하고 있는 것을 알 수 있다.   이처럼 ngrep 은 네트워크상의 패킷에서 특정 문자열만을 뽑아냄으로써 이를 응용한다면 모든 네트워크 모니터링 프로그램이 그러하듯이 막강한 스니핑 툴로도 악용이 가능하다.  만약 네트워크상에서

# ngrep  -wi  'user|pass'  tcp port 110 와 같이 입력하였다면 잠시 후 아래와 같이

interface: eth0 (211.40.165.43/255.255.255.0)
filter: ip and ( tcp port 110 )
match: ((^user|pass\W)|(\Wuser|pass$)|(\Wuser|pass\W))

T 61.73.202.236:26129 -> 211.40.165.43:110 [AP]
  USER admin..

T 61.73.202.236:26129 -> 211.40.165.43:110 [AP]
  PASS qwert!23a..

pop3 로 접속하는 Id /pw 가 그대로 노출되는 것을 확인할 수 있을 것이다. 물론 위와 같이 110번 외에 다른 Port 의 스니핑도 가능하다. Ngrep 은 패킷 라이브러리를 사용하므로 프로그램 설치에 앞서 앞에서 설명한 libpcap 을 먼저 설치한 후 http://www.packetfactory.net/projects/ngrep/ 에서 ngrep 을 다운로드하여 압축 해제후 압축 해제한 디렉토리에서 ./configure; make  로 설치하면 된다. 또는 http://rpmfind.net/ 에서 rpm 형태의 파일을 직접 다운로드하여 설치하여도 된다.

# ngrep -q 'sex|porno' 와 같이 실행 시에는 네트워크내 패킷에서 sex 나 porno 라는 문자열이 포함된 트래픽을 찾아주는 등 여러 가지로 활용이 가능하니 구체적인 이용에 대한 안내는 홈페이지를 참고하기 바란다.


출처 : http://www.mojily.pe.kr/
728x90

댓글