akkietech’s diary

セキュリティ関連メインの自分用メモ書き。twitter: @akkietech

12/23 Snort検知ルール

Snortシグネチャルールいじりたくなったから、いじった

 

まずはsnortの起動から思い出した。

ちなみに全てrootで動かしてる。

 

普通に動かす(ログは/var/log/snort下に保存される)

# snort -c /etc/snort/snort.conf

 

コンソール形式で検知を出力する

# snort -c /etc/snort/snort.conf -A console

 

詳細な情報を残す(-d でアプリケーションレイヤのデータも記録)

# snort -c /etc/snort/snort.conf -A full -d

 

 

次にシグネチャルールを作ってみる

ルールを追加するファイルは/etc/snort/rules/local.rules

 

■nmapのFinスキャンの検知ルール

alert tcp any any -> [ターゲットIP] 22 (msg:"Nmap Fin Scan"; flags:F; sid:1000008; rev:1;)

 

これにnmapを打ってみる

#nmap -sF -p22 [ターゲットIP]

 

コンソール形式で下記が出力される

12/23-12:59:24.994072  [**] [1:1000008:1] Nmap Fin Scan [**] [Priority: 0] {TCP} [攻撃元IP]:36763 -> [ターゲットIP] :22

 

■特定のuser-agentを遮断

reject tcp any any -> [ターゲットIP] 80 (msg: "OpnVAS Scanner Protected"; content:"OpenVAS"; sid:1000010; rev:1; )

 

ポイントはcontentの後の文字列

もっと正確に入れたければ

content:"OpenVAS"; http_header;

っていれればいいのかな

 

あとはtelnetリクエスト送信

telnet [ターゲットIP] 80

GET / HTTP/1.1

Host: 対象Webサーバホスト

User-Agent: OpenVAS

Connection closed by foreign host.

 

遮断ルールなのでUser-Agent送った時点でコネクションが切断された。

 

そしてターゲット側で下記ログが出力される

12/23-13:08:10.280658  [**] [1:1000010:1] OpnVAS Scanner Protected [**] [Priority: 0] {TCP} [攻撃元IP]:58878 -> [ターゲットIP] :80

 

========

rejectでhttp_header無しで記載するとtelnetでリクエスト送るときに、user-agent送った時点でコネクションが切られログが出力される。htmlは返ってこない。

http_headerありでやると、user-agent送れちゃって、レスポンス(htmlデータも含む)が返ってきた後にコネクションが遮断されてログが出力される

どういう違い何んだろか

========

 

念願のsnortシグネチャルールを好きにいじることができた

あとできてないことでやってみたいこと

・BruteForce系の検知(どういったロジックでルール設定するの気になる)

CMS系の脆弱性狙った検知 (Metasploitとか対象に、ペイロード検知とか)