본문 바로가기

보안

[snort] 활용2

반응형

개요

패킷의 playload에서 content(특정 패턴)을 특정 범위내에서 검출 하는 방법에 대해 설명하도록 한다.

 

용어

payload : 전송계층의 상위 계층 데이타. 즉 실제 어플리케이션이 사용하는 데이타가 존재하는 부분

[그림 1] wireshark로 캡쳐한 payload 부분

content : payload 부분에서 검출할 패턴(snort는 내부적으로 rawdata를 decode후 content와 매칭하는 부분을 검색, 만약 raw data 트래픽에서 검출하고자 한다면 rawbytes 키워드를 추가 사용)

- offset : payload에서 패턴 매칭할 시작 위치(0 부터 시작)

- depth : payload에서 패턴 매칭할 끝 위치(offset 기준)

- distance : 이전 content가 검색된 지점에서 다음 컨텐츠를 검색할 시작 위치 지정

- within: 다음 content를 검색할 마지막 위치 지정, distance가 지정 되지 않을 경우 이전 content가 검색된 다음 부터 winthin 값 범위

payload : 1234567890abcdef

옵션 검출 범위 비고
content:"456" 1234567890abcdef  
content:456";depth:7
1234567890abcdef
 
content:"456";offset:2;depth:4 12 34567890abcdef  
content:"123";content:"789";distance:3 123 456 7890abcdef  
content:"123";content:"789";distance:3;within:5 123 456 7890abcdef  
content:"34";offset:2;depth:5;content:"0ab";distance:3;within:5 1234 567 890abcdef  

 

예제 1) HTTP 상태코드에서 404 검출

alert tcp any 80 -> any any (msg:"http 404 respose";content:"404";offset:9;depth:3;sid:1000001)

* depth는 content 문자열보다 같거나 크야 한다.(당연한 말이겠지만)

 

예제 2) raw data 트래픽에서 HTTP 상태코드 404 검출

alert tcp any 80 -> any any (msg:"http 404 respose";content:"|34 30 34|";rawbytes;offset:9;depth3;sid:1000001)

참조) raw data(16진수)를 decode한 결과 값

rawdata decoding 비고
20 공백  
2f /(슬래쉬)  
34 4  
0 30  
31 :(콜론)  
  ·  ascii로 표현할수 없는 문자

 

반응형

'보안' 카테고리의 다른 글

[정보보안기사] 2019년 2차 정보보안기사 실기  (0) 2019.11.09
[iptables] 활용  (0) 2019.11.05
[wireshark] IP fragments 패킷 필터링  (1) 2019.10.30
[nmap]활용  (0) 2019.10.29
[Snort] 활용1  (0) 2019.10.28