背景
OpenSSH依赖一个名为liblzma(xz)的小众开源压缩库,攻击者虚构了一个名为"Jia Tan"的开发者身份,从2021年10月开始为xz项目积极做开发维护贡献,逐渐获得信任。
并最终接管了维护工作后,在构建脚本中逐步加入一个复杂隐蔽并复杂混淆的后门,而且是几个月内慢慢的添加所有组件,组合成了完整的后门,接着还联系Linux发行版维护人员,试图让带后门的xz库被打包分发给所有用户,直到微软员工Andres Freund因调查SSH延迟问题发现了此事。
发现也很巧合,Andres Freund在分析一台运行Debian Sid的Linux设备SSH登录速度过慢问题时(有500毫秒的延迟和大量的CPU消耗问题,而且他在使用“Valgrind”工具进行分析和内存调试时遇到了许多报错,也促使他有进一步调查的想法),最张立发现了该后门。而且RCE也非常聪明,将有效负载隐藏到将要发送到 SSH 的专门制作的密钥里。
来源: https://mp.weixin.qq.com/s/Hmvda8mcTasyEmAQHBO7aw
复现过程
复现环境
本文采用了阿里云环境来进行复现,并且使用了阿里云安全中心(旗舰版),实测exploit能够执行命令,仅反弹shell命令等危险命令会被拦截,执行普通的命令无告警。
构建环境-本地
本文使用的exploit从https://github.com/amlweems/xzbot 获取,需要使用go语言来编译程序。
其次则需要将本地的环境更替为受影响的包,这个包能够在https://github.com/amlweems/xzbot/tree/main/assets 中获取。
接下来就可以使用xzbot来执行rce了
复现结果
日志内容
进程日志
参考Dockerfile
FROM ubuntu:22.04
COPY start.sh /start.sh
RUN chmod +x /start.sh
RUN apt-get update
&& DEBIAN_FRONTEND=noninteractive apt-get install -y
openssh-server
sudo
net-tools
# xz backdoor
COPY liblzma.so.5.6.1.patch /tmp/
RUN cp /lib/x86_64-linux-gnu/liblzma.so.5 /lib/x86_64-linux-gnu/liblzma.so.5.bak
RUN mv /tmp/liblzma.so.5.6.1.patch /lib/x86_64-linux-gnu/liblzma.so.5
RUN mkdir /var/run/sshd
&& echo 'root:password' | chpasswd
&& sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
&& sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
&& sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config
CMD [ "/bin/bash", "-c", "/start.sh"]
参考Start.sh
#!/bin/bash
/usr/sbin/sshd -D
tail -f > /dev/null
感谢我的同事Evan在复现过程中提供的帮助!
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...