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流量攻击)

 

 经确认已收到告警邮件。

posted @ 2017-06-26 15:56  北海悟空  阅读(3270)  评论(0编辑  收藏  举报