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
-rw-r--r-- root root Jun : attacker.log
-rw-r--r-- root root Jun : attackers.json
-rw-r--r-- root root Jun : 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 [ $? == "" ] ; then
echo ‘safety!’
else
if [ -s /data/honeytrap/log/honeytrap.sendmail.txt ] ; then
mail -s '[T-POT] Honeytrap monitor warnning!!!' pentest@.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:
# Default-Stop:
# Short-Description: OSSEC HIDS
### END INIT INFO while [ ]
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
接下来,重新启动机器后确认该脚本进程是否存在
[root@ptarmiganantelope:~]# ps aux | grep honeytrapWhile.sh
root 0.0 0.0 ? Ss : : /bin/sh /etc/init.d/honeytrapWhile.sh start
root 0.0 0.0 ? S : : /bin/sh /root/honeytrapWhile.sh
root 0.0 0.0 pts/ S+ : : grep --color=auto honeytrapWhile.sh
最后尝试使用安全工具对honeytrap进行扫描(模拟TCP/UDP流量攻击)


经确认已收到告警邮件。
T-Pot平台Honeytrap蜜罐TCP/UDP服务攻击探测及实现自动化邮件告警的更多相关文章
- T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警
前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ...
- 为什么基于TCP UDP服务的一些简单服务端口号都是奇数
TCP是有NCP(网络控制协议)派生出来的,NCP是单工的,通信需要两个链接,所以会预留奇偶端口号.当TCP/UDP成为传输层协议,每个程序只是用一个端口号,且使用奇端口号.
- 分布式系统(二) --SOA 以及一些网络通信协议TCP/UDP SYN攻击
SOA(面向服务的架构):Service Oriented Architecture面向服务的架构.也就是把工程拆分成服务层.表现层两个工程.服务层中包含业务逻辑,只需要对外提供服务即可.表现层只需要 ...
- 32.网络编程TCP/UDP服务
网络编程TCP: 服务器端口了解: port:0~65535 web服务:80 邮箱服务:556 0~1024:为服务默认的公认端口,一般我们不能用 套接字:socket socket作用 ip:po ...
- tcp/udp高并发和高吐吞性能测试工具
在编写一个网络服务的时候都比较关心这个服务能达到多少并发连接,而在这连接的基础上又能达到一个怎样的交互能力.编写服务已经是一件很花力气的事情,而还要去编写一个能够体现结果的测试工具就更加消耗工作时间. ...
- c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP 入门级客户端与服务端交互代码 网 ...
- TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...
- 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...
- YxdIocp包含有支持大并发的TCP服务组件、HTTP服务组件、UDP服务组件、WebSocket服务组件
Delphi Windows IOCP 通讯模型封装,基于DIOCP.YxdIocp包含有支持大并发的TCP服务组件.HTTP服务组件.UDP服务组件.WebSocket服务组件,和TCP.UDP等基 ...
随机推荐
- 005 Spark快速入门的简单程序案例
参考:官网的quick start http://spark.apache.org/docs/1.6.0/quick-start.html 这里只是在shell命令行中简单的书写一些命令,做一个简单的 ...
- PyQt5安装及ModuleNotFoundError: No module named 'PyQt5'问题解决
PyQt5安装及ModuleNotFoundError: No module named 'PyQt5'问题解决 安装pyQt5费了很多的周折,不过现在还是安装好了,现在重新梳理一下整个安装过 ...
- x,y
x,y在二维里,横纵坐标容易反,有关处理要小心.
- 007.基于Docker的Etcd分布式部署
一 环境准备 1.1 基础环境 ntp配置:略 #建议配置ntp服务,保证时间一致性 etcd版本:v3.3.9 防火墙及SELinux:关闭防火墙和SELinux 名称 地址 主机名 备注 etcd ...
- Springboot中实现策略模式+工厂模式
策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在springboot中实现策略和工厂模式? 具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程序中出现大量的IF ELS ...
- 浅谈CSS和JQuery实现鼠标悬浮图片放大效果
对于刚刚学习网页前台设计的同学一定对图片的处理非常苦恼,那么这里简单的讲解一下几个图片处理的实例. 以.net为平台,微软的Visual Studio 2013为开发工具,当然前台技术还是采用CSS3 ...
- bootstrap中的对话框-dialog-2
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...
- 学校的统一订书80%该烧掉——IT推荐书单
学校的统一订书80%该烧掉——IT推荐书单 作者: 夏浅音.py 中文图书个人黑名单:清华大学出版社的国产作者,例如一段错n次的谭浩强.一页错n次的严蔚敏... 中文图书个人白名单:机械工业出版社.电 ...
- 在linux上安装tomcat
(1)主要参考https://jingyan.baidu.com/article/3065b3b6e0fad2becff8a419.html(这个看后基本知道怎么安装tomcat) 其次参考:http ...
- JUnit pass/failure/error区别
pass:被测程序没有抛出异常,得到的是预期的值. failure:被测程序的逻辑有错误,得不到预期的值.执行了JUnit的断言. error:被测程序本身抛出异常,还没有执行到JUnit的断言就抛出 ...