snort--byte_test,byte_jump用法

byte_test byte_jump 用法詳解

byte_test:

測試一個字節的域爲特定的值。能夠測試二進制值或者把字節字符串轉換成二進制後再測試。

格式:byte_test: , , , [[relative],[big],[little],[string],[hex],[dec],[oct]]
bytes_to_convert 從數據包取得的字節數。
operator 對檢測執行的操作 (<,>,=,!)。
value 和轉換後的值相測試的值。
offset 開始處理的字節在負載中的偏移量。
relative 使用一個相對於上次模式匹配的相對的偏移量。
big 以網絡字節順序處理數據(缺省)。
little 以主機字節順序處理數據。
string 數據包中的數據以字符串形式存儲。
hex 把字符串數據轉換成十六進制數形式。
dec 把字符串數據轉換成十進制數形式。
oct 把字符串數據轉換成八進制數形式。

 

 

distance

distance關鍵字是content關鍵字的一個修飾詞,確信在使用content時模式匹配間至少有N個字節存在。它被設計成在規則選項中和其他選項聯合使用。

格式:
distance: ;

例子:
alert tcp any any -> any any (content: "2 Patterns"; content: "ABCDE"; content: "EFGH"; distance: 1;)

Within

Winthin關鍵字是content關鍵字的一個修飾詞,確保在使用content時模式匹配間至多有N個字節存在。它被設計成在規則選項中和distance選項聯合使用。

格式:
within: ;

例子:
alert tcp any any -> any any (content: "2 Patterns"; content: "ABCDE"; content: "EFGH"; within: 10;)

 

 

 

 

例子:
alert udp $EXTERNAL_NET any -> $HOME_NET any (msg:"AMD procedure 7 plog overflow "; content: "|00 04 93 F3|"; content: "|00 00 00 07|"; distance: 4; within: 4; byte_test: 4,>, 1000, 20, relative;)

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"AMD procedure 7 plog overflow "; content: "|00 04 93 F3|"; content: "|00 00 00 07|"; distance: 4; within: 4; byte_test: 4, >,1000, 20, relative;)

 

其中relative作用是使用一個相對於上次模式匹配的相對的偏移量。即在最後一個匹配到的十六進制00 00 00 07的後面。若十六進制一段爲00 00 00 07 00 00 00 00 00 08則byte_test:4,>,1000,2,relative;的意思是在07後偏移2字節,後取四個字節(00 00 00 08)轉換成二進制與1000比較。

 

byte_jump

 

Byte_jump 選項用來取得一定數量的字節,並把它們轉換成數字形式,跳過一些字節以進一步進行模式匹配。這就允許相對模式匹配在網絡數據中進行數字值匹配。

格式:
byte_jump: , [[relative],[big],[little],[string],[hex],[dec],[oct],[align]]

bytes_to_convert 從數據包中選出的字節數。
offset 開始處理的字節在負載中的偏移量。
relative 使用一個相對於上次模式匹配的相對的偏移量。
big 以網絡字節順序處理數據(缺省)。
little 以主機字節順序處理數據。
string 數據包中的數據以字符串形式存儲。
hex 把字符串數據轉換成十六進制數形式。
dec 把字符串數據轉換成十進制數形式。
oct 把字符串數據轉換成八進制數形式。
align 以32位爲邊界對轉換的字節數對齊,即轉換的字節數爲4的倍數。

例子:
alert udp any any -> any 32770:34000 (content: "|00 01 86 B8|"; content: "|00 00 00 01|"; distance: 4; within: 4; byte_jump: 4, 1, relative, align; byte_test: 4, >, 900, 20, relative; msg: "statd format string buffer overflow";)

 

byte_jump: 4, 1, relative 的意思是在原匹配位置上偏移1個字節,然後取4個字節的數據(假設爲 00 00 00 08),得出結果爲8,就根據結果跳過8個字節。

 

 

http://man.chinaunix.net/network/snort/Snortman.html 一篇snort中文手冊的鏈接

發佈了32 篇原創文章 · 獲贊 33 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章