[THM][Note] Snort Challenge – Live Attacks
https://tryhackme.com/room/snortchallenges2
Task2
Stop the attack and get the flag (which will appear on your Desktop)
考え方
まず全部見てみる。
$ sudo snort -dev -l .
これで、snort.log.<version>ファイルが作成するので、以下のコマンドでざっと見た感じ、80と22が目立つ。
$ sudo snort -r snort.log.<version>
今回のタスクは、IDSではなくてIPSとしてパケットをブロックすることなので、この端末はインライン上にあると思われる。どの様な構成になっているのかを確認する。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 02:94:fa:b3:6c:13 brd ff:ff:ff:ff:ff:ff
inet 10.10.59.141/16 brd 10.10.255.255 scope global dynamic eth0
valid_lft 3376sec preferred_lft 3376sec
inet6 fe80::94:faff:feb3:6c13/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 52:06:f7:bd:d9:d2 brd ff:ff:ff:ff:ff:ff
inet 10.234.0.1/16 brd 10.234.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::5006:f7ff:febd:d9d2/64 scope link
valid_lft forever preferred_lft forever
こんな感じになっていることが解る。

次に以下のルールをそれぞれ別々に回してみて、自分宛てにはどの様なパケットが来ているかを見てみる。
rule1(eth0宛の確認)
alert tcp any any -> 10.10.59.141 any (msg:"Me"; sid:1000001; rev:1;)
rule2(eth1宛の確認)
alert tcp any any -> 10.234.0.1 any (msg:"Me"; sid:1000001; rev:1;)
そうすると、eth0には自分がブラウザでアクセスしている80番へのアクセス(正常)のみで、eth1は何もないことが解る。
以上の結果から、自分を省くルールを作ってみる。
alert tcp any any -> !10.10.59.141 any (msg:"Test"; sid:100001; rev:1)
ログを残すようにして、実行する。
sudo snort -c local.rules -dev -l .
生成されたログを元に、いろいろためしてみると、10.10.140.29宛の22しかない事が解る。
$ sudo snort -r snort.loca.<version> "port 80"
$ sudo snort -r snort.loca.<version> "port 22"
短時間で、10.10.245.36から、10.10.140.29の22番ポートへ大量のアクセスがあるのが解る。

dropルールを書き、IPSモードで起動して対象のパケットをドロップする。
local.rules
drop tcp 10.10.245.36 any -> 10.10.140.29 22 (msg:"ssh blutfource"; sid:1000001; rev:1;)
実行
$ sudo snort -c local.rules -q -Q --daq afpacket -i eth0:eth1 -A full
Task3
考え方
Task2と同じです。「4444」を見つけられれば速攻です。