用 Perl 实现的 TCP/UDP 蜜罐程序
malbait 的 README,2/10/17
(顺便说一句,我的比特币地址是 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(这里还有一个替代地址,同样用于 BTC,因为我一直收到一些比特币钱包不支持某些地址的报告:1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
欢迎使用 malbait,您的一站式简单 Perl 蜜罐!
Malbait 是一个蜜罐,或者说“恶意软件诱饵”程序。它旨在浪费黑客的时间,并监控互联网(或您的局域网)上的恶意流量。
Malbait 会在选定或默认的 TCP 端口以及(如果选定)UDP 端口上创建一系列虚假服务器。如果有人或任何东西连接到它们,其输入将被记录在日志文件中。
这些程序作为后台进程运行,因此您必须关闭计算机,或使用 shell 的 “kill”(或者更好的是 “skill”)命令来终止它们。您可以使用 netstat 监控它们。我建议:
sudo netstat -anp|grep perl
来查看什么在监听,以及
sudo skill -9 perl
在您受够了之后将它们终止。
注意:如果您使用 install.sh 安装此程序,则必须运行
sudo skill -9 malbait
替代。不过您仍然可以使用以下命令监控它: sudo netstat -anp|grep perl
或者,您也可以直接关闭机器。显然,在使用 Perl 做其他事情时不要使用 malbait!我建议使用一台专用的“诱饵”机器,要么是像运行默认端口的树莓派这样的小型设备,要么是一台运行尽可能多端口(最好是所有端口)的大型计算机。
malbait 默认使用 TCP,但可以单独支持 UDP,也可以让两者同时运行。
非常强烈建议您以超级用户模式使用此程序,可以通过调用 gainroot(sudo gainroot)或使用 sudo(sudo malbait)。您必须拥有超级用户权限才能打开前 1024 个端口中的任何一个。
它的调用方式如下:
malbait -foo
如果您在没有参数的情况下运行它,它会输出一段冗长的文本来进一步解释用法。如果您想“开箱即用”,请运行
malbait -defaults
这将打开其默认端口,并在可能的地方创建服务器。
Malbait 可以为 Telnet、FTP、SMTP、POP3、BGP、HTTP(不太好)、TR-69(不太好)、imap、systat、echo 以及旧的 ascii “time” 服务器创建虚拟服务器。默认情况下,这些服务器会在其所有默认端口上打开,但您可以为它们指定端口。
您还可以打开一个端口范围,例如,
malbait -ports:1-1024
将打开端口 1-1024(“众所周知”或“受限制”的端口),并在适当的位置创建虚假服务器。
使用 malbait 仅受您所拥有的内存量的限制。使用 -trans_proto:tcpudp 和 -ports: 选项,如果您的机器足够强悍,就能监视每一个端口;否则就会让您的计算机崩溃。我发现我的小型联想 x200 笔记本电脑大约能处理 6000 个端口左右,之后它就开始发疯了,但您的情况可能会有所不同。想看看您的新机器到底有多强大?Malbait 可以提供一个基准测试——就我个人而言,我很想看看在一台非常强大的计算机上运行以下命令会发生什么:
malbait -ports:1-65535 -trans_proto:tcpudp
——根据我的经验,仅用其中的 10%,就肯定有更多恶意的 UDP 流量(看起来主要是试图诈骗免费电话的混蛋),而 telnet 绝对是一个培养皿,但我很想看看更远未知领域的调查报告,如果有人有足够的马力(以及完全禁用防火墙的能力和胆量!)
例如,如果您尝试在 UDP 模式下打开一个 FTP 服务器( malbait -proto:ftp -trans_proto:udp ),它会打开默认端口——但您不会得到一个伪装的 FTP 服务器!UDP 只会为与 UDP 兼容的服务创建服务器,这些服务是 asciitime、systat、echo 以及特殊的 “hacktime” 和 “fuzz” 元协议。
Hacktime 有点像个玩笑,灵感来自电影《功之怒》(Kung Fury)。它创建 NTP 时间服务器,既有老式的也有新式的,并发送全 1 或全 FF,目的是模拟 Unix 千禧年的翻转日期(“hacktime-2036”)或刚启动的系统(“hacktime-1900”)。显然,NTP 服务器比这复杂得多,可能无法正常工作,但它绝对会迷惑那些攻击您并以为您是 NTP 服务器的黑客!
Fuzz 就是那个——通过向自动化攻击抛掷随机垃圾数据来扰乱它们的尝试。同样,这是实验性的,我并不一定特别认真对待它,但我想有人可能会觉得它有用,所以它保留了下来。
HTTP 服务器会查找名为 “webpage.html” 的文件。如果找不到,它会生成一个简单的 404 页面。同样,它并不出色——这个程序更多是为了帮助您查看那些试图连接到您的奇特、随机客户端,而不是无聊的旧式网络爬虫。
请注意,如果您在 Web 浏览器中打开它,您会在内容下方看到许多 “HTTP/1.1 200 OK” 字符串;这是因为它并不是为了在 Web 浏览器中打开而设计的,而是为了尽可能长时间地让潜在恶意的网络爬虫机器人保持连接。
当然,请随意用您自己的文件替换默认的 webpage.html——虽然欢迎您使用它,但它是为演示目的而设计的。
-transblank 选项允许您覆盖虚假服务器的创建。因此,如果您调用
malbait.pl -port:23 -proto:transblank
或
malbait.pl -proto:telnet -transblank
malbait 将向客户端发送最接近空白响应的内容(一个孤零零的回车符),而不是创建 “Telnet 服务器”。
为计算机奇特事物的爱好者提供了各种选项。
-noloop:不循环,即每个服务器在处理一次连接后就被终止。如果是 UDP 服务器,则在客户端输入“命令”后终止它。
-no_multiplexing:阻止 TCP 服务器进行多路复用,即在子进程中启动服务器。 虽然这样可以节省大量内存,但不建议这样做——众所周知,nmap 会使 Malbait 的 TCP 服务器崩溃,而将它们放在子进程中意味着 malbait 可以从这种及其他恶意连接尝试中恢复并记录它们。因此,如果您使用 “-no_multiplexing” 选项,我保证您的临时文件会像皮疹一样散布在整个工作文件夹/目录中,这将使您非常沮丧;当服务器崩溃时,您也会永久失去它们。简而言之:不要使用此选项。
-maxreq:nn 允许您同时生成 nn 个 TCP 服务器,因此您(可能)可以同时为那么多“客户端”提供服务。默认为 2。
-noblocking:以“非阻塞”模式启动服务器;这没什么太大意义,不过如果与 -no_multiplexing 结合使用,可能会让我们不那么容易受到 nmap 的恶搞。但您为什么要那样做呢?说真的,有些客户端更喜欢您采用非阻塞模式,所以如果您遇到问题,试试这个选项。
-timeout:nn 将客户端的超时时间设置为 nn 秒。默认为 30——但如果您受到大量自动化攻击,您可能希望降低此值,这样您就不会错过连接到您计算机的所有其他恶意软件。
-report:filename.txt 允许您自己命名报告文件。
-recvbuffer:nn:设置一个内部变量,将 recv(接收到的字节)缓冲到值 nn。默认是 1024,所以如果您想一次处理超过 1k 的数据(这不是一个不合理的要求),这就是您修改的地方。
malbait 的文本输出目前有点……杂乱。它充满了调试消息和状态信息。除非您是开发人员或受虐狂,否则您可以放心忽略它。实际的错误消息会记录在日志文件中。
Malbait 创建三种类型的日志文件:一个 CSV 文件,让您概览所有连接到您机器的客户端;一个包含更详细数据和分析的文本文件;以及临时文件(名称类似 TEMP-16537),它们会在 malbait 打开/关闭端口、创建/销毁“服务器”时自动删除。
很抱歉临时文件的存在,这是确保所有流量都被捕获的唯一方法,即使它试图让我们崩溃!如果您看到任何残留文件,不要做任何事,只需刷新页面,它们可能就会消失。
如果人们对这个程序表现出兴趣,并给我发送电子邮件 / 钱 / 情书 / 威胁,我会用更新和新功能来支持它——例如,我可以轻松添加 ICMP 支持,也许还能更好地处理 Web 客户端。我编写这个程序的过程非常愉快,我知道支持它也会让我非常兴奋!但如果没有人联系我,我会认为它没什么用,然后继续做其他事情。所以,如果您想看到更多很棒的功能,或者希望我修复“烦人的 Bug X”,请与我联系!
我的电子邮件地址是 [email protected] 这个程序的比特币地址(暗示,暗示)是 16P267RxgkLsEDVEKwLGsfnUCJ6bfgyWKR
感谢阅读,请,请把您的 Satoshis 发给我!