日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Snort Rules——使用pcre进行规则匹配

發(fā)布時(shí)間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Snort Rules——使用pcre进行规则匹配 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述
if snort see two packets in a TCP flow with

  • first packet has " login " or " Initial " in payload, destination port is 3399;
  • and second packet has a " IPv4Address:Port " string (E.g.123.45.6.7:8080) in payload. destination port is 3399;
  • output a alert with msg " bot founded " and sid 1000001

參考資料:
Snort規(guī)則詳解
PCRE正則表達(dá)式語(yǔ)法
php pcre正則表達(dá)式完全教程——pcre官方文檔
正則表達(dá)式校驗(yàn)IP地址
使用正則表達(dá)式驗(yàn)證IPv4地址


我們把題目中的幾個(gè)難點(diǎn)拆分出來(lái):

難點(diǎn)一:兩條規(guī)則均命中,構(gòu)成一個(gè)攻擊事件

解決方法:設(shè)置flowbits字段(flowbits使用規(guī)范)

在第一條檢測(cè)規(guī)則中,我們?cè)O(shè)置一個(gè)標(biāo)志位botlogin,同時(shí)設(shè)定不發(fā)出警報(bào)

flowbits:set,botlogin;flowbits:noalert;

在第二條規(guī)則中,我們檢測(cè)標(biāo)志位是否為1

flowbits:isset,botlogin;

難點(diǎn)二:first packet has " login " or " Initial " in payload

這是一個(gè)邏輯或的內(nèi)容匹配,我們可以使用pcre規(guī)則實(shí)現(xiàn)

快速瀏覽一下PCRE正則表達(dá)式語(yǔ)法后,我們可以捏出來(lái)一個(gè)規(guī)則雛形:

pcre:"login|Initial";

實(shí)際上,這個(gè) " 顯而易見 " 規(guī)則,就可以解決第二個(gè)難點(diǎn)了,但還存在一點(diǎn)點(diǎn)語(yǔ)法錯(cuò)誤
參考一下pcre中分隔符和元字符的使用方法,我們可以在前后加上小括號(hào)讓pattern看上去更優(yōu)美完整,再使用分隔符進(jìn)行限定即可

這里是否需要這么多限定pattern界限的符號(hào),我并不確定
不過(guò)保險(xiǎn)起見,就都寫上了

pcre:"/(login|Initial)/";

難點(diǎn)三:has a " IPv4Address:Port " string (E.g.123.45.6.7:8080) in payload

IPv4地址

IPv4地址:0-255.0-255.0-255.0-255
我們先來(lái)解決0-255如何表示為pattern
最簡(jiǎn)單的想法,將0-255拆分成:0-9,10-99,100-199,200-249,250-255

([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])

可以注意到,表達(dá)式中出現(xiàn)了[0-9][0-9]的結(jié)構(gòu),我們可以用{x}表示之前緊鄰的模式需要匹配幾次

[0-9][0-9] --> [0-9]{2}

此外,我們也可以用\d代表[0-9]

(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])

在0-255這部分后面添加一個(gè) " . "(注意需要使用轉(zhuǎn)義符 " \ ")

((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.)

" 0-255. "重復(fù)匹配三次

((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}

完整的IPv4檢測(cè)正則表達(dá)式

((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])

理論上,上述正則表達(dá)式就可以解決我們的問(wèn)題

但是

我親愛(ài)的同學(xué)遺憾地告訴我
在網(wǎng)上在線測(cè)評(píng)的時(shí)候,發(fā)現(xiàn)以上規(guī)則無(wú)法正確匹配255.255.255.255(最后一組的最后兩個(gè)5無(wú)法匹配)

大概率是因?yàn)閟nort默認(rèn)采用最短匹配
前三組有 " . " 的約束就會(huì)老老實(shí)實(shí)地挨個(gè)匹配
最后一組如圖,首次匹配2成功了,一看是或關(guān)系,就直接跳到末尾了

這就可以解釋為什么網(wǎng)上的很多文章," 無(wú)緣無(wú)故 " 會(huì)將確定性強(qiáng)(更特殊)的部分放到整個(gè)正則表達(dá)式的最前面
因此,保險(xiǎn)起見,我們把IPv4的pcre規(guī)則更改為:

((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)

端口號(hào)

端口號(hào):0-65535
還是先采用最簡(jiǎn)單的想法

[0-9] [1-9][0-9] [1-9][0-9][0-9] [1-9][0-9][0-9][0-9] [1-5][0-9][0-9][0-9][0-9] 6[0-4][0-9][0-9][0-9] 65[0-4][0-9][0-9] 655[0-2][0-9] 6553[0-5]

簡(jiǎn)化一下

\d [1-9]\d [1-9]\d{2} [1-9]\d{3} [1-5]\d{4} 6[0-4]\d{3} 65[0-4]\d{2} 655[0-2]\d 6553[0-5]

簡(jiǎn)單的,我們可以把0-9999(近似)表示為

\d{1,4}

完整的端口檢測(cè)正則表達(dá)式

(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])

同IPv4正則表達(dá)式描述的問(wèn)題
以防萬(wàn)一我們可以把確定性高的表達(dá)式放到前面:

(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|\d{1,4})

最終的答案:

alert tcp any any -> any 3399 (msg:"bot login";pcre:"/(login|Initial)/";flowbits:set,botlogin;flowbits:noalert;sid:1000002;) alert tcp any any -> any 3399 (msg:"bot founded";pcre:"/((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])/";flowbits:isset,botlogin;sid:1000001;)

調(diào)整正則表達(dá)式順序后:

alert tcp any any -> any 3399 (msg:"bot login";pcre:"/(login|Initial)/";flowbits:set,botlogin;flowbits:noalert;sid:1000002;) alert tcp any any -> any 3399 (msg:"bot founded";pcre:"/((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9]):(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|\d{1,4})/";flowbits:isset,botlogin;sid:1000001;)

測(cè)試方法

snort讀取外部數(shù)據(jù)方式

snort --pcap-dir="./pcap" -c test.rules -A fast cat /var/log/snort/alert

總結(jié)

以上是生活随笔為你收集整理的Snort Rules——使用pcre进行规则匹配的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂中文网在线 | 色综合av | 在线观看h网站 | 天天摸天天摸 | 天天视频色 | 国产盗摄精品一区二区酒店 | 黄色网在线播放 | 自拍偷拍亚洲区 | 91黄在线看 | 黄色小视频在线免费看 | 综合久久久久久久 | 三级欧美视频 | 亚洲激情 | 好男人在线视频www 亚洲福利国产 | 亚洲一区二区三区高清 | 日韩欧美国产一区二区在线观看 | 日本免费观看视频 | 精品久久久国产 | 天堂色av| 特黄三级又爽又粗又大 | 天堂在线www | 成人高清视频在线观看 | 激情五月深爱五月 | 第四色在线视频 | 91中文字日产乱幕4区 | 国产精品美乳在线观看 | 精品午夜福利视频 | 丝袜天堂| 大牛影视剧免费播放在线 | 国产精品毛片va一区二区三区 | 精品久久影视 | 午夜在线 | 午夜伦伦 | 最近免费中文字幕大全免费版视频 | 国精品人妻无码一区二区三区喝尿 | 亚洲欧洲日本一区二区三区 | 精品国产a线一区二区三区东京热 | 伊人国产女 | 国产精品老牛影视 | 国产一级免费av | brazzers欧美极品少妇 | 国产成人啪精品 | 中文字幕在线观 | 亚洲综合激情另类小说区 | 亚洲天堂999 | 久久久久久亚洲中文字幕无码 | 亚洲性色av | 国产成人无码精品亚洲 | 精品一区二区三区视频日产 | 午夜影院污 | 日韩欧美中出 | 国产精品一品二区三区的使用体验 | 婷婷中文字幕在线 | 在线成年人视频 | 亚洲影视一区二区三区 | 欧美日韩国产在线一区 | 欧美成人三级在线观看 | 亚洲一区久久 | 澳门黄色网 | 97国产精品久久 | 国产欧美日韩中文字幕 | 人妻熟妇又伦精品视频a | 欧美成人久久久免费播放 | 秋葵视频成人 | 伊人国产在线 | 亚洲tv在线观看 | 免费中文视频 | 中文在线字幕免费观看 | 少妇户外露出[11p] | 日本三级视频网站 | 我想看一级黄色片 | 九九热av | 亚洲伦理中文字幕 | 日韩在线视频在线观看 | 麻豆av免费观看 | 日本精品一区视频 | 在线不卡毛片 | 国产三级国产精品 | 免费一区二区三区 | 精品日韩一区二区三区四区 | 污片免费网站 | 女人高潮被爽到呻吟在线观看 | 中文字幕人妻精品一区 | 粉嫩av网 | 在线免费日本 | 成人av免费网站 | 国产女人18毛片水真多 | 国产xxx在线| 欧美激情精品久久久久久免费 | 免费的av网站| 9l视频自拍九色9l视频成人 | 欧美黄网站在线观看 | 69精品久久久久久久 | 日韩一级欧美 | 久久我不卡 | 91精品国产乱码久久 | 领导揉我胸亲奶揉下面 | 久久久久国产精品一区二区 | 欧美激情精品久久久久久免费 |