我收到一封来自 Amazon 的电子邮件,说我的 Amazon EC2 服务器正被用于 DDoS 攻击,他们已经关闭了除 SSH 之外的所有端口。这对我来说很悲惨,但我无法找出这种攻击是如何以及在哪里进行的。我在 cron 工作中找不到任何东西。我正在使用 ssh 密钥对连接到服务器,因此不太可能有人劫持了 root 帐户。我在服务器上确实有 FTP,但我现在改为 SFTP。它可能是一个用于此的 PHP 页面,我如何找到源代码?是否有人在没有 root 用户访问权限的情况下使用了 root 工具包?
了解我的服务器如何被用于 DDOS 攻击
可能有人确实通过 rootkit 或某些恶意 PHP 脚本使用您的实例。您的系统现在受到威胁。从轨道上核弹它并从受信任的状态(备份)中恢复。
确保保持服务器更新并使用长而复杂的密码哈希。禁止 root 登录(例如只允许按键登录)。安装 HIDS(基于主机的入侵检测系统)和 rootkithunter。OSSEC 在 Linux 上是一个不错的选择。
可能您的服务器受到网络漏洞的破坏,并且上传了一个 php 脚本,该脚本与攻击者的命令进行交互。
您应该按照以下步骤操作,以确保您不会再次被黑客入侵:
- 检查服务器日志并识别攻击者行为和您的漏洞。
- 尝试在您的服务器中找到恶意 php 脚本,将所有文件转储到本地并与旧备份进行比较。它应该向您显示修改后的/新文件。
- 保存恶意脚本,它用于包含命令和控制 IP 地址,以便您可以将其发送给警察。
- 从头开始恢复网站,不要使用最近的备份或来自受感染网站的重用脚本。攻击者可以在其上插入后门,然后您将再次打开门。
最重要的是确定他们如何破坏您的网站,如果您使用相同的漏洞恢复它,攻击者的机器人将再次扫描您的网站,您将遇到同样的问题。
此外,保持您的服务更新,使用长而复杂的密码等......
问候。
我会尝试确定渗透的程度。它可能仅限于您网站上的某种类型的脚本,他们能够滥用它们来创建 DDOS 攻击。并非如此,它可能仅限于他们能够上传的执行某些不良操作的脚本。
如果您有一个已知的良好配置并且可以确定它们没有超出脚本引擎的范围(并且您已经安全地设置了脚本引擎,因此它们无法更改系统本身),那么您应该可以恢复脚本引擎可以访问的任何东西的已知良好配置。
如果您不能确定您的脚本引擎是否已安全配置,或者如果它们似乎实际上可以直接访问脚本引擎之外的盒子,那么没有措施来包含它们可能隐藏的内容,而您应该如前所述从轨道上对其进行核打击。
诀窍是你不想留下任何再次感染的机会,如果他们获得了低级别的访问权限,这很可能是因为它可以很容易地留下看似无害的东西,这将使再感染更容易。
利用本地应用程序的弱点,也许再加上根内核利用是可能的方法。它会是这样的。
1) 黑客利用 PHP 应用程序中的一个弱点,让他们创建 Web 服务器拥有的文件,然后执行该代码。
2) 他们的恶意代码会下载一个脚本,以便更轻松地访问运行命令。使用 wget 将 perl 脚本下载到 /dev/shm 是很常见的。
3) perl 脚本将连接到远程服务器以形成隧道,或者可以接受传入连接,以便可以更轻松地运行任意命令。
4) 将安装、编译和运行用于 root 漏洞利用的 C 源代码。
5) 如果成功,用户现在将拥有 root 权限。此时,防火墙可能被禁用,默认 iptables 配置更改,并且可能安装后门(例如修改后的 ssh)以提供访问权限,尽管 hosts.allow 设置等。
这只是表面上的问题,但是有一些工具可以帮助进行入侵检测,并且您可以采取一些步骤来加强您的设置,例如防止出站连接到防火墙上的任意 IP(iptables 而不是 EC2 的外部防火墙),没有C 编译器在通常的地方或根本没有,以及移动工具(如 wget),尽管脚本可以实现相同的功能,所以这对黑客来说只是一个麻烦。频繁记录运行进程(每 5 分钟或更短时间)有助于事后分析,就像 Web 日志一样。黑客很可能会在 /dev/shm 或 /tmp 中创建文件或目录,并且监视那里的意外条目的实用程序可能会及早发现入侵。如果发现意外物品,请锁定您的服务器以仅允许您自己访问,
强烈建议部署内核更新,因为 Linux 中存在大量特权提升漏洞。