本软件为参考 TeaPot 的思路写的,与 TeaPot 功能类似,支持端口转发,DNS 代理,端口连接检测。
go build
DNS 代理模块通过代理 DNS 来检测 DNS 请求,当请求的域名为恶意域名时,返回本地 IP 地址,同时将请求的恶意域名打印到日志中。
配置参数如下:
dns_server 为默认的 DNS 服务器,代理 DNS 通过请求配置的DNS服务器来获取信息,同时将请求转发类本地 DNS 请求。
default_ip 为当识别为恶意域名,返回的IP地址。
"dns_proxy": {
"dns_server": "114.114.114.114",
"default_ip": "127.0.0.1"
},
端口转发模块通过端口转发将流量转发到专业蜜罐中进行分析,建议不同的端口分配不同的蜜罐端口,将真实的业务端口隐藏在大量的虚假端口中,或者直接提示此服务器为蜜罐,做到真真假假,唱个空城计(笑~)。
配置参数如下:
listen 为监听的端口,支持的配置格式如 82,89,82,80-81
forward 为此端口要转发的远程端口,后期会支持负载均衡,暂时配置第一个就好。
端口转发可以配置多条转发规则。
"port_forward": [{
"listen": "82,89,82,80-81",
"forward": [
"127.0.0.1:7777",
"127.0.0.1:8001"
]
},
{
"listen": "9306",
"forward": [
"127.0.0.1:53"
]
}
]
实现原理为监听本地端口,当检测到端口有连接请求时,将请求打印到日志中。
配置参数如下:
ports 为监听的端口
"port_conn_check": {
"ports": "9999,8000-8001"
},
该模块每一分钟遍历一次进程,查询进程的网络连接,如果检测到外部连接IP在黑名单中,那么就打印此程序的位置到日志中,同时查询此程序文件的MD5 如果此程序的MD5在黑名单中,那么就打印日志。