欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Snort中pcre和正則表達(dá)式的使用詳解

 更新時間:2022年03月30日 08:47:59   作者:c0ver1  
這篇文章主要介紹了Snort中pcre和正則表達(dá)式的使用,題目要求檢測包含兩個包的特定流,需要通過設(shè)置標(biāo)記位,即flowbits來實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧

1. 題目描述

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 an alert with msg “bot founded” and sid 1000001

2. 解決方案

題目要求檢測包含兩個包的特定流,需要通過設(shè)置標(biāo)記位,即flowbits來實(shí)現(xiàn)。另外,題目中均要求檢測特定的字符串或模式,所以還需要在pcre字段中通過正則表達(dá)式實(shí)現(xiàn)。

2.1 第一條檢測規(guī)則

匹配特定字符串

pcre:"/login|Initial/";

正則表達(dá)式的兩端需要加上限界符/。

設(shè)置標(biāo)志位,同時不發(fā)出警報。

flowbits:set,login_Initial;flowsbits:noalert;

2.2 第二條檢測規(guī)則

2.2.1 匹配模式IPv4Address:Port

IPv4Address

IPv4地址使用點(diǎn)分十進(jìn)制表示時,分為4組,每組的范圍均為[0,255]。即從0.0.0.0到255.255.255.255。

我們先分析單獨(dú)一組的特點(diǎn):

區(qū)間限制表示
0~99沒有任何限制\d{1,2}
100~199后兩位也沒有任何限制1\d{2}
200~249十位限制在0~4,個位沒有限制2[0-4]\d
250~255個位限制在0~525[0-5]

可以發(fā)現(xiàn)表格中前兩種情況可以合并為1?\d{1,2},所以可以用25[0-5]|2[0-4]\d|1?\d{1,2}來匹配0~255;

將其作為一個分組,再考慮到.,我們可以寫出如下正則表達(dá)式匹配IPv4地址:

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

值得說明的是:

這里我們認(rèn)為數(shù)字前出現(xiàn)填充0的情況與非填充狀態(tài)等價:

如:192.01.00.1等價于192.1.0.1

這種情況下才能使用\d{1,2},因?yàn)榭赡軙霈F(xiàn)00的情況。

正則表達(dá)式的短路性質(zhì):

當(dāng)|運(yùn)算符分隔的多個表達(dá)式有一個匹配成功時,該表達(dá)式之后的表達(dá)式將不會繼續(xù)匹配。

如:A|B|C|D,B匹配成功了,將不會再看CD

所以上面匹配IPv4地址時,我們單獨(dú)一個分組寫成25[0-5]|2[0-4]\d|1?\d{1,2}而不是1?\d{1,2}|2[0-4]\d|25[0-5]。

后者匹配255時,只會匹配到255,而不會匹配到255

同樣后者構(gòu)造的正則表達(dá)式去匹配255.255.255.255,只會匹配到255.255.255.25,缺少最后一個5

因?yàn)樗ヅ涞阶詈笠唤M的25時就判定匹配成功,直接跳到末尾,結(jié)束匹配。而前面幾組255正確匹配的原因是:如果只匹配25,發(fā)現(xiàn)剩下的5.不匹配,之后會進(jìn)行回溯,繼續(xù)檢查后面的條件,發(fā)現(xiàn)255匹配成功且.也匹配成功,不再回溯。

  • Port

端口號的范圍是0~65535,我們同樣可以分成不同的區(qū)間來匹配端口號。

區(qū)間限制表示
0~9999沒有任何限制\d{1,4}
10000~59999后四位沒有任何限制[1-5]\d{4}
60000~64999千位限制在0~4,后三位沒有任何限制6[0-4]\d{3}
65000~65499百位限制在0~4,后兩位沒有任何限制65[0-4]\d{2}
65500~65529十位限制在0~4,個位沒有任何限制655[0-2]\d
65530~65535個位限制在0~56553[0~5]

同樣,我們可以將表格前兩種情況合并為[1-5]?\d{1,4}。結(jié)合上面提到的短路性質(zhì),我們可以寫出最終用于匹配端口號的正則表達(dá)式:

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

2.2.2 檢查標(biāo)志位

flowbits:isset,bot_founded;

3. 檢測規(guī)則

通過上述分析,我們可以寫出如下檢測規(guī)則:

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

到此這篇關(guān)于Snort中pcre和正則表達(dá)式的使用的文章就介紹到這了,更多相關(guān)Snort pcre 正則表達(dá)式使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 匹配中文的正則(GB2312/utf-8)

    匹配中文的正則(GB2312/utf-8)

    下面列出了當(dāng)前在 PCRE 中可能使用的修正符。括號中是這些修正符的內(nèi)部 PCRE 名。修正符中的空格和換行被忽略,其它字符會導(dǎo)致錯誤。
    2009-08-08
  • 正則表達(dá)式中的反向預(yù)搜索實(shí)現(xiàn)

    正則表達(dá)式中的反向預(yù)搜索實(shí)現(xiàn)

    這幾天在用正則表達(dá)式做一個小程序,需要替換內(nèi)容中的某些特殊字符串。這些字符串的出現(xiàn)是有規(guī)律的,那就是在它左面總會特定的內(nèi)容出現(xiàn),右面卻沒有。于是自然就想到了反向預(yù)搜索。
    2009-09-09
  • 一文教會你用正則表達(dá)式校驗(yàn)日期時間格式

    一文教會你用正則表達(dá)式校驗(yàn)日期時間格式

    日期的格式多種多樣,有如:"yyyy-MM-dd HH:mm:ss"、"yyyy/MM/dd HH:mm:ss"、"yyyyMMdd HH:mm:ss"等,當(dāng)然也有的只記錄到天,下面這篇文章主要給大家介紹了關(guān)于用正則表達(dá)式校驗(yàn)日期時間格式的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 瀏覽器中的正則表達(dá)式陷阱說明

    瀏覽器中的正則表達(dá)式陷阱說明

    js 內(nèi)置對象 RegExp 我們用的很習(xí)慣 也很舒服 但是里面卻有 嚴(yán)重的隱患 或者陷阱...原因在于 有些瀏覽器 對正則表達(dá)式直接量的優(yōu)化.
    2010-05-05
  • js正則匹配markdown里的圖片標(biāo)簽的實(shí)現(xiàn)

    js正則匹配markdown里的圖片標(biāo)簽的實(shí)現(xiàn)

    這篇文章主要介紹了js正則匹配markdown里的圖片標(biāo)簽的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 關(guān)于日期正則表達(dá)式的思路詳解

    關(guān)于日期正則表達(dá)式的思路詳解

    日期正則一般是對格式有要求,且數(shù)據(jù)不是直接由用戶輸入時使用。這篇文章主要介紹了日期正則表達(dá)式的思路詳解,需要的朋友可以參考下
    2017-09-09
  • .NET正則基礎(chǔ)之正則委托

    .NET正則基礎(chǔ)之正則委托

    一般的正則替換,只能對匹配的子串做簡單的處理,.NET的Replace()方法中的replacement參數(shù),不僅可以是字符串,還可以是委托(delegate),在每次匹配成功時,都會調(diào)用委托方法,對匹配的子串進(jìn)行處理之后,再作為替換文本返回
    2023-05-05
  • 關(guān)于內(nèi)容的分離,正則抽出圖片(一定要加精哦)

    關(guān)于內(nèi)容的分離,正則抽出圖片(一定要加精哦)

    我們在加內(nèi)容時,無論你怎么樣排版都好,我們都是無法將里面的圖片或是別的什么東西抽出來的.
    2009-01-01
  • 讓URL只允許一些字符的正則表達(dá)式

    讓URL只允許一些字符的正則表達(dá)式

    讓URL只允許一些字符的正則表達(dá)式,需要的朋友可以參考下
    2012-10-10
  • javascript 正則 判斷是否是數(shù)字的腳本

    javascript 正則 判斷是否是數(shù)字的腳本

    javascript 正則 判斷是否是數(shù)字的腳本...
    2007-10-10

最新評論