Windows 10 搭鍵開源IDS-Snort,簡單過濾注入

riyir發表於2020-07-05

關於Snort

snort有三種工作模式:嗅探器、資料包記錄器、網路入侵檢測系統。嗅探器模式僅僅是從網路上讀取資料包並作為連續不斷的流顯示在終端上。資料包記錄器模式把資料包記錄到硬碟上。網路入侵檢測模式是最複雜的,而且是可配置的。我們可以讓snort分析網路資料流以匹配使用者定義的一些規則,並根據檢測結果採取一定的動作。

安裝配置Snort

下載安裝包及規則:www.snort.org(下面我使用的安裝包版本為2.9.16 x86,x64會有抓不到包的問題,規則包為snortrules-snapshot-29160)

提前安裝Winpcap,因為snort需要基於Winpcap抓包的

安裝Snort,預設選項一直單擊下一步直至安裝完成

在snort\bin目錄下執行命令,檢視snort資訊,snort安裝完成

snort -V

實現Snort的IDS功能

配置snort

下載規則庫後解壓

將preproc_rules,rules,so_rules替換到snort目錄下,如下:

修改配置檔案snort\etc\snort.conf

var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules

修改為你的安裝目錄:

# path to dynamic preprocessor libraries
dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/

# path to base preprocessor engine
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so

# path to dynamic rules libraries
dynamicdetection directory /usr/local/lib/snort_dynamicrules

後兩條暫時用不到,所以直接註釋掉,修改為:

這裡也暫時用不著,註釋掉,否則後面會報錯:

這裡是規則庫,對符合過濾規則的進行匹配,我先註釋掉,只留一條include $RULE_PATH/local.rules

開始操作

在snort\rules目錄下local.rules檔案中最下新增一條

alert tcp any any -> 192.168.134.0/24 80 (content:"and"; msg: "SQL inject attack"; sid:1000001)

這句話的意思是發出警告,tcp流量,任何地址的任何埠到目標ip:192.168.134.0/24的80埠的流量做匹配,匹配規則為'and',報警訊息為'SQL inject attack',規則編號1000001(自定義規則必須寫,且不能重複)

在一臺虛擬機器上搭起web服務

檢視下本機網路卡

snort -W

將cmd路徑移到bin目錄下,執行命令

snort -i2 -dev -l E:\Snort2.9.16\Snort\log -c E:\Snort2.9.16\Snort\etc\snort.conf

選擇網路卡2(選擇哪個,則會抓哪個網路卡的包),這裡會輸出日誌檔案到log目錄,使用snort.conf配置,注意這裡如果conf配置有問題的話,執行命令會報錯,我曾解決報錯問題解決了一整天

如果報錯有winpacp,更換snort包為x86,其它配置各種報錯都有,只要按照流程就不會報錯,最開始我也是按照流程的,還是報錯,解決辦法:規則檔案和安裝包版本匹配(我也不知道為什麼)反正是不報錯了,還是報錯的話,把規則包中的etc檔案也替換進去,然後重新配置snort.conf(QAQ,這裡我也不知道為什麼,按說是一樣的,但是我記得我是這麼做了就不報錯了)

成功執行後:

已經開始抓包了,我們看一下日誌

沒有什麼關鍵資訊,我們去重新整理網頁

這裡再檢視日誌,還是沒有任何變化

重新重新整理地址

http://192.168.134.135/?id=1%20and%201=1

再次檢視日誌,攻擊匹配並記錄下來了

cmd頁面也顯示出了流量包內容,注意,在真實環境,不建議列印出來,因為這樣會增加snort的負荷,可能會丟包

相關文章