由于我的工作与安全软件设计以及政府合规性密切相关,我会不断地告诉自己:“如果它不安全,你最终会被黑客攻击”。但实际上,被黑客攻击是怎样一种情况?如果我设置一个服务器,并且不使自己成为一个明显易受攻击的目标(即不会出现在常见的 shodan.io 搜索中),这样,会发生什么事呢?
先来梳理一下蜜罐(Honeypot)的概念。“蜜罐” 是一种故意置于易受攻击状态的 “东西”,它可用于研究网络上的恶意流量与活动。这个 “东西” 可以是任何事物 —— 服务器上的单个端口,网页上的某个 HTML 元素,甚至是具有多个服务器的网络。一旦设置完成,任何针对服务器的恶意流量都可以被研究分析,并转变为有用的信息。
所以我去找了可以让我自己运行的蜜罐软件。最终我选用了 Cowrie,这是一个基于 Python 的 SSH / Telnet 模拟器,它基于 Kippo 项目的早先的工作。我被它吸引,有这几个原因:它有很多支持文章,它是用 Python 编写的,而且 Cowrie 还使用了 Kippo 的轻量级可视化软件 Kippo-Graph。通过 Kippo-Graph,我无需通过 SSH 连接到服务器,就能够随时关注手机中的内容。
我将跳过关于设置的 “血淋淋的” 细节,但如果你对此感兴趣,那么 “使用 Cowrie SSH Honeypot 来抓住入侵你的网络的攻击者” 这篇文章会是一个很棒的教程。
于是,我启动了蜜罐软件,并在端口 22 上设置了 SSH 模拟器,以允许用户名 root 和 admin 分别使用登录密码 changeme 和 1234567。然后开始坐下来吃瓜看戏......
人们多次试图猜测我的 SSH 密码。每天会有 200 到 1200 多次。并且这些尝试大多来自:
密码设置为我觉得非常不安全的字串(记住,密码只是 changeme 和 1234567),但只有 4 次尝试是成功的。我被这些黑客成功入侵:
这一切都是非常平淡且无聊的。我的工作是告诉人们,如果他们做不安全的事情,他们就会被黑客攻击!然而此处我使用差劲的用户名/密码组合,却几乎没有受到损害。所以,我决定把它完全开放。
我查看了 Kippo-Graph 提供的用户名/密码组合的示意图。
我仍然对在我的蜜罐中的大量操作的结果感到有些厌倦,所以我避免了所有这些默认的 IoT 认证密码,并选择了两个新的组合来添加。第一个是 admin / admin1(我看到过数次尝试),第二个是我认为非常有趣的一组,pi / raspberryraspberry993311。
Pi 是 Raspberry Pi (树莓派)系统广泛使用的流行 Raspbian 发行版的默认用户名。但是,默认密码是 raspberry 而不是 raspberryraspberry993311。用谷歌快速搜索密码,得到了很多原始蜜罐数据,但并没有对这些数据的相应解释!所以,我决定接受它,看看这是怎么回事。
于是我马上被法国人搞了!没错,有某个来自法国 IP。它奇怪地使用了 raspberryraspberry993311 这个密码。攻击者立即上传了一个 bash 脚本并尝试运行它。这个 bash 脚本是一种蠕虫,它将服务器配置为:
这个 Raspberry Pi Botnet 恶意软件做了很多其他的事情,我打算在一个完整的帖子里把它剖析出来。
在法国人之后,我被瑞士的 IP 攻击了,在该 IP 获得成功后就转变为爱尔兰的 IP。攻击者试图将恶意软件加载到整个使用短语 “gweerwe323f” 的机器上。该恶意软件主要包含了 shellcode,不过我也没有时间把它拆解分析。但基于进一步的妥协,这绝对是另一个运行脚本操作的僵尸网络。
最后,我想看看若我将认证信息设置为 “接受用户名 admin 和密码 admin”,会发生些什么。第二天,我一直被同一个 gweerwe323f 僵尸网络反复攻击。
这时候,乐趣开始减少,所以我关闭了蜜罐。对于那些有兴趣了解详情的人,这里列出了尝试的前 10 个密码:
以下是在我的蜜罐上尝试的前 10 个用户名/密码组合:
乍一看,感觉它们都非常具有物联网风格。让我震惊的是,尝试诸如 root / password,root / root 或 root / admin 这样的组合是值得的。显然,他们使用那些令人难以置信的不安全组合取得了足够的成功,所以这值得他们花时间。
我还快速分析了我的 Apache 访问日志,看看我的密码保护 Web 服务器上有哪些尝试。由于 Web 服务器不易受攻击,因此没有太多的恶意活动需要解析,但我确实看到了许多对默认情况下 Apache / Tomcat 安装的 path / manager / html 的请求访问。否则,这只是寻找 phpMyAdmin 的经典尝试。
如果没有建议使用开源软件 Fail2Ban,我觉得这篇文章就不是完整的。对于那些已经深究这一点的人而言,他们想知道 “为什么我不能阻止这些 IP 呢”,你绝对是正确的。像 Fail2Ban 这样的软件可以监控您的日志文件是否存在这样的恶意活动,并阻止这些 IP 的进一步尝试。您还可以使用此数据或蜜罐进行更多操作。将蜜罐内部放在公司网络上,并监视网络扫描等恶意活动。将它放在公司的公共 IP 空间中,看看是否存在针对您公司或行业的特定攻击。
也许未来我还会重新查阅数据,并寻找更多有趣的模式,例如导致我进入 Raspberry Pi 僵尸网络的模式。但现在,我已经关闭了我的蜜罐,我认为本次实验很成功。