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

關於Snort

snort有三種工做模式:嗅探器、數據包記錄器、網絡入侵檢測系統。嗅探器模式僅僅是從網絡上讀取數據包並做爲接二連三的流顯示在終端上。數據包記錄器模式把數據包記錄到硬盤上。網路入侵檢測模式是最複雜的,並且是可配置的。咱們可讓snort分析網絡數據流以匹配用戶定義的一些規則,並根據檢測結果採起必定的動做。web

安裝配置Snort

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

提早安裝Winpcap,由於snort須要基於Winpcap抓包的tcp

安裝Snort,默認選項一直單擊下一步直至安裝完成3d

在snort\bin目錄下執行命令,查看snort信息,snort安裝完成日誌

snort -V

實現Snort的IDS功能

配置snort

下載規則庫後解壓code

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

修改配置文件snort\etc\snort.confip

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

修改成你的安裝目錄:cmd

# 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的負荷,可能會丟包

相關文章
相關標籤/搜索