我有一台服务器,它运行的 Debian Lenny 已经过时了,是的,我知道这可能是问题的一半。它还具有 PHPMyAdmin 和 ProFTPd。我再次明白了,都是不好的迹象。
但在我的一生中,我无法弄清楚这个用户是如何登录、添加文件和执行命令的。
他们能够启动screen
会话,输入类似内容nano file.sh
,然后创建脚本并./file.sh
执行它。这是否意味着他们有 SSH 访问权限?我不明白。
我检查了所有日志文件,并且任何地方都没有显示认证成功。我检查、、、users
我可以输入的每一个小命令 -who
last
没有什么显示有人登录的任何迹象。
我时不时地注意到他们创建新目录,所有者是500
或1XXX
,但当我查找它们时这些帐户不会显示。
我能做些什么来弄清楚到底发生了什么吗?我们将把服务器清理干净,不要误会我的意思,但我想知道究竟发生了什么,这样我就可以避免将来出现此类问题。
我不想要任何关于“不要使用 phpmyadmin、旧的不受支持的发行版、ftp 等”的建议,在我们的新服务器上我们不会有任何不安全的东西,并且将使用密码 SSH 身份验证密钥等。
我只是想了解一下如何知道用户何时登录以及他们从哪里登录。当然,我可能没有提供足够的信息,但也许某些东西会吸引某人?谢谢。
答案1
大多数脚本化和手动入侵都会:
- 清理日志条目和类似的入侵痕迹
- 安装 rootkit,允许在默认服务器程序之外访问系统
- 将默认程序(如 ps、netstat、ls 等)替换为隐藏上述 rootkit 的任何活动的操纵版本(即 ps 不会显示正在运行的 rootkit 进程)
有时这些攻击是错误的并且确实会留下痕迹。但无论如何:您不能信任系统上的任何诊断工具。
如果您想尝试一下并学习一下,您可以:
例如,安装并运行“rkhunter”[*],它会检查已知的 rootkit,但如果没有以下内容,您就无法信任输出:
- 在闯入发生之前至少运行过一次
- 希望攻击者忽略了系统上的 rkhunter 安装(没有操纵 rkhunter 本身)
从救援 CD/USB 启动
- 挂载系统磁盘并查看救援系统的二进制文件
- 将二进制文件的 md5sums 与现有版本进行比较。
- 将系统加载到虚拟机中并检查网络流量
长话短说: 在这样一个开放系统上找出攻击向量几乎是不可能的。不管怎样:
请负责并尽快让系统断网并从头开始重新设置。
[*]或者其他IDS系统,有很多。
答案2
即使你的新服务器操作系统已经强化到了n级,并且你使用了最新的补丁软件并且不再有纯文本服务;他们可能只是通过服务器上运行的 Web 应用程序获得了旧服务器的访问权限,例如 SQL 注入或文件上传漏洞。因此,如果您在新服务器上部署相同的应用程序,您可能会再次拥有。
因此,我真的建议您进行代码审查(尽管我也推荐“和”),使用专业进行此类测试的人员对 Web 应用程序进行 Web 应用程序渗透测试/向社区提供错误赏金来为您执行此测试。并且您定期进行修补、漏洞扫描和笔测试 - 至少每年一次或在软件更改时进行,当然,这取决于您对服务器/应用程序为您提供的服务的重视程度。
PS,当您的服务器离线时,请考虑拍摄其图像并对图像进行尸检,以生成黑客攻击的时间线 - 集中您看到的用户 ID 500, 1xxx。我怀疑您会发现了解如何进行取证很有用,尤其是当您可能再次成为目标时。尽管正如之前的答案中指出的那样,黑客可能已经掩盖了他们的踪迹并更改了关键库和可执行文件以留下错误的时间线。同样,您可以对映像中的可执行文件和库进行 MD5 求和,并与原始版本进行比较,以了解它们是否费心去掩盖它们的踪迹。
答案3
让我们变得偏执吧!首先,关闭这个linux并使用dd命令来制作磁盘的完整副本。
系统直接连接到互联网 ?如果没有,那很好,你可以开始嗅探它的流量,这样我们就可以确定一些有用的东西。如果答案是肯定的,请尝试在它和互联网之间放置一些机器。为什么不直接在机器内部嗅探呢?有了rootkit,我们的努力就可能被嗅探隐形,而我们的努力将是浪费时间。
我强烈建议您提取所有信息、代码、数据库,并手动检查所有内容,以确保其中没有后门。
重建一个类似的机器,每个库的版本都相同,然后扫描整个系统,计算所有内容的哈希值,使用SHA1或SHA2,使用MD5我们可以轻松计算碰撞,我们是偏执狂,记住这一点!比较两个列表,另外,尝试检测 grub/lilo 上的任何异常参数,以及任何奇怪的模块加载。
还要检查用户和 ssh 密钥。检查你的源代码是否有 bug,例如,他可以以 apache 身份运行代码,并留下后门以将权限升级到 root 用户。
所有检查都必须在离线环境中使用磁盘映像完成。
回到嗅探会话,尝试检测任何异常流量。如果您的计算机受到威胁,它可能会被用于非法活动,例如 DDoSing 或成为其他攻击的枢纽。
一旦您检测到攻击者从何处连接(我打赌他使用 TOR)以及他的连接方式,您就可以开始追踪他。确定控制您的服务器的是自动脚本还是真实用户。即使用户取消设置变量,您也可以下载并更改 bash/sh/zsh 或攻击者用来保存日志的 shell。对 SSH 执行相同的操作,更改代码以在其他位置创建包含已启动进程的日志以及登录信息。如果他使用后门进行连接(这是最有可能的),请尝试确定它是如何工作的,并确定他使用您的系统的目的。
为什么要这样做?因为如果他做了违法的事情,迟早有人会追踪他,并会在路上找到你。防止自己陷入严重麻烦的最好方法是获取正在发生的事情的证据,然后尝试关闭这种环境,并聘请一位好律师。