스노트(snort) 룰을 이용한 PCAP파일 생성 및 IPS탐지 TEST
개요
스노트(snort) 룰을 이용한 PCAP파일 생성 및 IPS탐지 TEST
설치
우선 linux CentOS6.4에서 돌리는게 좋다... 버전때문에 ^^;
설치순서는 아래 순서대로 설치한다
1. byacc bison flex python python-devel svn (yum설치)
2. libpcap (Compile 설치)
3. tcpreplay (Complie 설치)
4. scapy (python script 설치)
5. rule2alert (svn 설치)
필수 패키지 설치
설치전 yum을 이용하여 필요한 rpm을 손쉽게? 설치한다
필요한 패키지
byacc bison flex python python-devel svn (yum설치)
#yum install byacc bison flex python python-devel svn gcc make -y
tcpreplay 설치
tcpreplay 설치전 libpcap 라이브러리 설치
rpm -qa |grep libpcap결과에 libpcap이 있다면 지우고 소스설치 해야한다.
libpcap은 tcpdump에서 같은 라이브러리를 사용함으로 tcpdump도 같이 지우고 상위버전의 tcpdump 를 소스설치 한다. (주소 : http://www.tcpdump.org/ )
- libpcap 삭제명령
#yum remove libpcap tcpdump
- compile 하기전에 yum으로 관련 패키지 추가 설치
#yum install byacc bison flex –y
- libpcap 설치버전 libpcap-1.4.0.tar.gz 아래와 같이 compile
#./configure; make; make install
error 없이 설치되면 ok
tcpreplay-3.4.4.tar.gz 설치
(주소: http://tcpreplay.synfin.net/wiki/Download )
아래와 같이 compile 한다.
#./configure;make;make install
참~ 쉽죵? ^,.^
tcpreplay 설명
- tcpreplay는 pcap파일을 지정한 인터페이스로 패킷을 전송할 수 있다. - tcprewrite은 기존 pcap파일의 IP정보 Port정보등을 수정할 수 있다 - dst Port를 수정하는 예
Tcpreplay, tcprewrite help 너무많아서 생략한다 –- help 옵션으로 확인하시길… 미안해 불친철해서 |
rule2alert 설치
rule2alert은 snort rule을 이용하여 pcap파일을 만들어 주는 python 스크립트 이다.
rule2alert의 설치에 앞서 몇 가지의 패키지를 설치해야 한다.
CentOS5의 버전이 너무 낮아 삽질 끝에 최신 CentOS6.4에서 설치하여 성공하였다.
Python의 경우 yum을 이용하여 devel 패키지까지 같이 설치한다.
#yum install python python-devel -y
python 설치가 완료되면 python 패킷생성 라이브러리인 scapy를 설치한다.
(주소 : http://www.secdev.org/projects/scapy/ )
tar.gz 파일을 wget으로 다운받은 후 압축을 풀고 디렉토리 들어가서 아래 명령어로 인스톨 한다.
#python setup.py install
별에러 없으면 설치 성공이며 scapy라고 입력하면 scapy consol에 들어갈 수 있다.
Scapy 확인
[root@itls-test ~]# scapy 위에처럼 나오면 설치가 완료된 것 이며, ls() 명령으로 잘 동작하는지 테스트 합니다. Ctrl+D 를 입력해서 scapy에서 나올 수 있습니다. |
이제 드디어 rule2alert을 설치한다.
공식사이트 : https://code.google.com/p/rule2alert/
다운로드는 svn을 이용하여 설치하며, svn이 없으면 당근 설치해야 한다.
#yum install svn –y
#svn checkout http://rule2alert.googlecode.com/svn/trunk/ rule2alert-read-only
위 명령으로 설치하면 현재 위치에 rule2alert-read-only 디렉토리가 생기며, 디렉토리 안에 들어가면 r2a.py 파일이 있고 해당 파일이 실행 파일이다.
rule2alert 정상적인 동작을 확인하기 위햐여 help 옵션을 사용해 에러가 안나오는지 확인한다. 아래와 같이 나오면 정상이다.
[root@itls-test rule2alert-read-only]# python r2a.py -h Options: |
Tomahawk 설치
tomahawk 의 현재버전은 1.1로 2006년에 마지막 업데이트 되었다.
(다운로드 주소 : http://sourceforge.net/projects/tomahawk/files/latest/download )
소스설치 할 수 있지만 binary 도 잘 동작하기 때문에 그냥 사용한다(어디서 받았는지 기억이 없음)
복사한 tomahawk파일을 chmod 777 해서 실행파일로 만들고 그냥 실행하면 된다.
[root@itls-test ~]# ./tomahawk
Beginning test
위에처럼 나오면 성공이다
여기까지가 모든 설치가 완료된 것이다.
Tcpdump 소스설치가 없지만 그낭 받아서 compile하면 된다.
생각보다 쉽지만은 않다….
PCAP 만들기
rule2alert으로 PCAP파일을 만드는 방법을 설명한다.
1. vi편집기를 이용하여 snort패턴을 임의의 파일에 작성한다
#vi test3.rule |
패턴은 snort rule 형식으로 인터넷을 참고하기 바란다.
2. r2a.py로 패킷을 생성하면 ethernet frame에 MAC주소가 생성이 안된다.
해당 문제를 해결하기 위해서는 Generatior 모듈의 Payload.py의 IP()부분에 scapy형식의 Ether부분을 추가한다. (MAC주소는 내맘이다)
요청 인터넷에 친절하신 분이 올려주셔서 참고했다
()
- 변경전 |
- 변경후 |
3. rule2alert으로 PCAP파일을 아래와 같은 옵션으로 생성한다.
-m 은 출발지 -e 는 목적지 -f는 snort룰 -w 는 PCAP파일 명을 넣어준다.
#python r2a.py -f test3.rule -m 1.1.1.1 -e 2.2.2.2 -w test3.pcap
succesfully! 나오면 성공이다. |
4. tcpdump을 이용하여 파일을 읽어보자 만약 읽어지지 않는다면 뭔가 문제가? 있는 것 이다.
# tcpdump -vvenr test3.pcap |
아래는 snort rule파일과 wireshark에서 PCAP파일 비교한 화면이다. content 부분에 "JOIN #!nn!"이 있는 것을 확인 할 수 있다.
tcpreplay을 이용한 패킷 전송
tcpreplay로 간단히 패킷을 전송하여 IPS장비의 탐지여부를 확인해보자
--intf=전송할 인터페이스 뒤에 pcap파일명을 적으면 아래와 같이 전송된다.
# tcpreplay --intf1=eth3 test3.pcap |
아래 IPS 장비에서 탐지/차단된 것을 확인할 수 있다.
음음??? 무슨장비?? 요건 넣을수가 없다 ㅎㅎ
Tomahawk를 이용한 패킷 전송
아래 간단한 옵션으로 패킷을 전송한다.
출발지/목적지는 랜덤하게 전송된다.
-f 는 PCAP파일을 지정하고 -i는 sent -j recv 인터페이스를 지정한다(반대일 수 있음...?)
아래 테스트는 IPS에서 차단되면서 Timeout이 걸리는 화면
# ./tomahawk -f test3.pcap -j eth3 -i eth4 Timeout 1 loop of trace test3.pcap (hid: 1) |
아래 간단한 옵션으로 패킷을 전송한다.
아래는 같은 옵션으로 패킷이 IPS장비를 통과한 내역이다.
# ./tomahawk -f test3.pcap -j eth3 -i eth4 Completed 1 loop of trace test3.pcap (hid: 209) |
테스트구성
Tmoahawk는 IPS를 탐지 및 차단을 테스트하는 Tool로 패킷을 sent 및 recv를 받음으로 IPS는 무조건 TP로 구성되어야 한다.
★ 해당 tool은 출발지 및 목적지 IP를 무작위로 변경하여 패킷을 전송한다.
Tcpreplay는 지정한 인터페이스로 PCAP파일을 단방향 전송함으로 별도의 TP구성은 필요없다
★ 도움이된 사이트 ★
http://www.hackthepacket.com/
http://tcpreplay.synfin.net/wiki/Download
http://www.tcpdump.org/
http://www.python.org/
https://code.google.com/p/rule2alert/
http://tomahawk.sourceforge.net/
http://www.secdev.org/projects/scapy/
https://www.virustotal.com/
출처 : http://neospring_.blog.me/50176482644
'Security > Snort' 카테고리의 다른 글
[Snort] 설치 (0) | 2014.02.11 |
---|---|
[Snort] SnortReport 설치 (0) | 2014.02.11 |
[Snort] 사용 방법 (0) | 2014.02.11 |
[Snort] User Manual (0) | 2014.02.11 |
rule2alert - 스노트 룰로 패킷 만들기 (0) | 2014.02.11 |
댓글