T-pot平台的Honeytrap可觀察針對TCP或UDP服務的攻擊,作為一個守護程序模擬一些知名的服務,並能夠分析攻擊字符串,執行相應的下載文件指令,當不產生TCP或者UDP協議的時候Honeytrap捕獲不到任何信息,但有攻擊者試圖使用一些安全工具進行掃描的時候,Honeytrap即可捕獲到連接信息。將Dashboard更換到Honeytrap模式,如下圖所示
Honeytrap的日志記錄保存在/data/honeytrap/log/attacker.log中
[root@ptarmiganantelope:/data/honeytrap/log]# ll total 384 -rw-r--r-- 1 root root 31748 Jun 26 15:59 attacker.log
-rw-r--r-- 1 root root 203810 Jun 26 15:59 attackers.json -rw-r--r-- 1 root root 106442 Jun 26 15:59 honeytrap.log
在編寫自動告警郵件的腳本前需要注意一個事,因為attacker.log中會產生很多從127.0.0.1到127.0.0.1的流量,此類流量推測是虛擬出來偽裝流量,如果要探測是否存在攻擊應該過濾到此類流量。如:
[2017-06-26 07:44:17:458433 GMT] tcp 127.0.0.1:43102 -> 127.0.0.1:8888 e61f0d10f73c114cc88d551b1ef5c83f 2a45a0b18df52f8d446d0ad5329d3f71a05debf7298a133ba6b593806928ca9c8a1c1d7606557d6ba938579ee3e1576a89c17a2976b7115fbe6bc8b1423241bd (127 bytes)
自動告警郵件的腳本內容:
[root@ptarmiganantelope:~]# cat /root/honeytrapScri.sh #!/bin/bash grep -v "127.0.0.1" /data/honeytrap/log/attacker.log > /data/honeytrap/log/attacker.newlog.txt #過濾掉127.0.0.1的流量 if [ ! -e /data/honeytrap/log/attacker.oldlog.txt ] ; then touch /data/honeytrap/log/attacker.oldlog.txt fi diff /data/honeytrap/log/attacker.newlog.txt /data/honeytrap/log/attacker.oldlog.txt > /data/honeytrap/log/honeytrap.sendmail.txt if [ $? == "0" ] ; then echo ‘safety!’ else if [ -s /data/honeytrap/log/honeytrap.sendmail.txt ] ; then mail -s '[T-POT] Honeytrap monitor warnning!!!' pentest@163.com < /data/honeytrap/log/honeytrap.sendmail.txt echo 'mail send success.' cp /data/honeytrap/log/attacker.newlog.txt /data/honeytrap/log/attacker.oldlog.txt else echo 'mail is empyt! no propleam' fi fi
給腳本添加可執行權限,chmod a+x /root/honeytrapScri.sh
以上觸發自動告警郵件的腳本就已經編寫好了,但是考慮到攻擊者如果使用安全工具進行掃描的話,短時間內就會收到大量的流量信息而使用計划任務則會稍有延遲,所以使用while循環設置腳本執行間隔為幾秒鍾效果會更好一些。以下實例設置為7s,具體情況可根據實際需要而定。
[root@ptarmiganantelope:/etc/init.d]# cat honeytrapWhile.sh #!/bin/sh ### BEGIN INIT INFO # Provides: OSSEC HIDS # Required-Start: $network $remote_fs $syslog $time # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: OSSEC HIDS ### END INIT INFO while [ 10 ] do sleep 7s /root/honeytrapScri.sh done
需要注意的是,該腳本的執行最好配置開機自啟動,否則下次開機仍然要手動啟動腳本然后進入后台去執行,實在是麻煩。所以,將該腳本honeytrapWhile.sh放置在/etc/init.d目錄下面,然后配置啟動優先級。
mv honeytrapWhile.sh /etc/init.d/ cd /etc/init.d/ update-rc.d new_honeytrapWhile.sh defaults 90
接下來,重新啟動機器后確認該腳本進程是否存在
[root@ptarmiganantelope:~]# ps aux | grep honeytrapWhile.sh root 766 0.0 0.0 6556 1776 ? Ss 16:17 0:00 /bin/sh /etc/init.d/honeytrapWhile.sh start root 915 0.0 0.0 6556 1716 ? S 16:17 0:00 /bin/sh /root/honeytrapWhile.sh root 3577 0.0 0.0 16404 1088 pts/0 S+ 16:18 0:00 grep --color=auto honeytrapWhile.sh
最后嘗試使用安全工具對honeytrap進行掃描(模擬TCP/UDP流量攻擊)
經確認已收到告警郵件。