跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

xz-utils backdoor: how to get started

精选回复

发布于

继最近披露上游xz/liblzma 中的后门之后,我们正在撰写这篇“入门”类型的博客文章。我们将解释如何使用liblzma 的后门版本设置环境,然后运行第一个命令来验证后门是否已安装。总而言之,只需几分钟,并且没有学习曲线,一切都非常简单。

这篇博文针对的是所有随着事件的发展而关注新闻的爱好者,以及那些渴望把手放在键盘上,在终端中运行一些命令而不仅仅是阅读它的人。这确实是初学者水平,我们只会重现最初披露中报告的最简单的发现。这里没有什么开创性的,抱歉;)

设置环境

首先, 我们需要一个虚拟机(或简称VM)。最快的方法可能是从Kali Linux 下载页面下载预构建的映像,可以根据您的喜好选择当前的2024.1 版本或最新的每周映像。

下载图像后,让我们开始它。不知道怎么办?我们有每种类型的image: VirtualBox、VMware 和Hyper-V 的文档。对于QEMU,创建一个新的VM 很简单。

现在我们的虚拟机已启动并运行,因此我们将下载并安装包含后门的liblzma 版本。尽管该软件包已从Linux 发行版中撤出,但它仍然可以在互联网上广泛使用。对于本指南,我们将从Debian 快照服务获取它。由于Kali是基于Debian的,而liblzma只依赖于libc,所以在Kali中安装Debian软件包是可以的,我们不应该遇到任何不兼容的问题。

为清楚起见,请注意: xz-utils 是上游存储库的名称,它提供了众所周知的命令xz 来压缩和解压缩文件,但它还提供了库liblzma ,这是目前每个人都在谈论的受损库。正是通过这个库,后门被添加到SSH daemonmldr 中;清除?

已知xz-utils 的上游版本5.6.0 和5.6.1 包含后门,因此让我们获取Debian 软件包5.6.1-1。

在虚拟机中,我们打开一个终端并使用: 获取它

kali@kali:~$ wget https://snapshot.debian.org/archive/debian/20240328T025657Z/pool/main/x/xz-utils/liblzma5_5.6.1-1_amd64.deb

现在让我们安装package:

对于那些不注意下面:的人来说,我们是故意安装一个包含后门的软件包!显然,您正在虚拟机中运行这些步骤,并且该虚拟机没有暴露在互联网上。

kali@kali:~$ sudo apt-get install --allow-downgrades --yes ./liblzma5_5.6.1-1_amd64.deb

下一步是启动(或重新启动)SSH 守护进程:

kali@kali:~$ sudo systemctl restart ssh

接下来是什么?让我们来看看吧!

确认 liblzma 已被泄露

首先,借助披露中提供的Vegard Nossum 脚本,我们可以检测liblzma 版本是否包含后门。

让我们创建脚本:

kali@kali:~$ cat 'EOF' detector.sh

#!/bin/bash

设置-eu

# 查找sshd 使用的liblzma 路径

路径='$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')'

# 它真的存在吗?

if [ '$path'=='' ]

然后

echo 可能不易受攻击

退出

# 检查函数签名

if hexdump -ve '1/1 '%.2x'' '$path' | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410

然后

echo 可能容易受到攻击

否则

echo 可能不易受攻击

EOF

使其可执行,然后运行它:

kali@kali:~$ chmod +x detector.sh

卡利@kali:~$

kali@kali:~$ ./detect.sh

可能很脆弱

上面命令的输出可能很容易受到攻击,这意味着在库中检测到后门。

但是等等,这是如何运作的?命令hexdump -ve '1/1 '%.2x'' file 将以十六进制形式转储文件,没有任何格式,只是一个很长的十六进制字符串。该脚本使用liblzma 执行此操作,然后匹配属于该漏洞利用的模式(也是十六进制形式)。这就是它的全部内容,并且足以检测它。

确认 SSH 守护进程比平常慢

首先,对于此测试,我们需要确保在SSH 守护进程: 的设置中禁用密码身份验证

kali@kali:~$ sudo sed -E -i 's/^#?PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config

然后重新启动守护进程:

kali@kali:~$ sudo systemctl restart ssh

现在,让我们尝试以不存在的用户身份登录,并计时:

kali@kali:~$时间ssh 不存在@localhost

nonexistant@localhost: 权限被拒绝(公钥)。

真实0.31秒

用户0.05秒

系统0.00 秒

中央处理器17%

这里没有“正确的值”,因为它高度依赖于您的特定设置。然而,我们想要的是了解它需要多少时间,所以让我们运行该命令几次,以确保结果是一致的。在我的测试中,结果确实非常一致,我几乎每次都得到真正的0.30 秒。

现在让我们重新安装无后门版本的liblzma:

kali@kali:~$ sudo apt update sudo apt install --yes liblzma5

[.]

Get:1 http://http.kali.org/kali kali-rolling/main amd64 liblzma5 amd64 5.6.1+really5.4.5-1 [240 kB]

[.]

截至撰写本文时,Kali Rolling 中lzma5 包的版本为5.6.1+really5.4.5-1,如上所示。

现在,我们再次尝试SSH登录,计时为:

kali@kali:~$时间ssh 不存在@localhost

nonexistant@localhost: 权限被拒绝(公钥)。

真实0.13秒

用户0.05秒

系统0.00 秒

中央处理器41%

正如我们所看到的,时间上的差异非常明显,没有后门的话速度要快得多!

致谢

正如引言中所说,这篇博文并不是什么新鲜事,它只是一步一步地重现最初披露的一些发现。所有的功劳(实际上是大量的功劳)都归功于Andres Freund 出色的工作和详细的报告,以及Vegard Nossum 的detector.sh 脚本。

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。