T-Pot平台Honeytrap蜜罐TCP/UDP服务攻击探测及实现自动化邮件告警
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流量攻击)
经确认已收到告警邮件。