zoukankan      html  css  js  c++  java
  • 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流量攻击)

     

     经确认已收到告警邮件。

  • 相关阅读:
    Java函数式接口与逐步lambda简化
    Java继承知识点总结(基础知识3)
    Java静态工厂方法新建对象
    Java对象与类知识点总结(基础知识2)
    Java多线程并发入门(基础知识)
    Java基本程序设计结构(基础知识1)
    【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询
    【数据库】JDBC课设(4) DatabaseMetaData 获得数据库信息
    【数据库】JDBC课设(3)TYPE_SCROLL_INSENSITIVE使结果集可以前后滚动
    简单总结.net下几种序列化
  • 原文地址:https://www.cnblogs.com/tdcqma/p/7080958.html
Copyright © 2011-2022 走看看