php不死马如何kill,awd攻防之kill 不死马

1.pwn题目

题目预设条件:

官方给了一个ctf用户给我们,并且用一个root权限的守护进程去监听一个给定的端口,并且会不断以test用户启动名为game的服务(题目)。ctf用户可以直接使用 su test 切换到test用户。

这样一个环境可以用这样一条命令去完成:

sudo socat tcp4-listen:2019,fork exec:"sudo -u test ./game"

#注:后面的game服务最好写绝对路径, sudo -u test xxxx 可以以test用户来执行某条命令xxxx

kill -9 -1 这条命令可以杀掉当前用户下面的所有进程,当然也就可以把不死马杀掉了。

有些时候,在awd ctf比赛中,对方可能会给你种一个不死马,这个不死马会把除了它自身以外的所有进程全部杀掉,同时会进行flag上传,通过修改crontab定时任务自动进行木马的上传,并且不断fork自己,让有时候ps aux 都看不到自己,以此来达到隐藏自己的目的。

这样的马一旦中上,不仅题目会挂掉,而且自己会使得用户的bash都无法su 到这个服务用户。(因为会被马不断杀进程)

在这种情况下,是不是感觉会一筹莫展呢?毕竟连那个用户都不能切换了,想 kill -9 -1都不行了啊。

你这时候会想,是不是可以用sudo -u test kill -9 -1去杀掉马呢?

很遗憾,这样的方式大多数是不可行的,因为你当前的ctf用户很可能不支持sudo -u这个权限。

ba79686987da

image.png

这个时候,我们再回想一下,守护进程不是可以一直地监听端口,然后不断地fork服务么?这就相当于即使木马不断kill掉服务,它依然会被不断地重启。

这种情况下我们就可以有一种骚操作了,我们先把/bin/bash给复制成与服务同名,覆盖掉原来的服务。(当然原来的服务肯定要先备份),大概就是下面三条命令就可以完成了:

cp /bin/bash ./game

echo "kill -9 -1" | nc 127.0.0.1 2019

这条命令类似于直接把kill -9 -1给发送过去,一旦fork game(实际是bash),接着就会执行 kill -9 -1命令。这样就会在不死马把game(实际是bash)杀掉之前先把 test 用户的所有进程 kill 掉。这样一来,因为不死马也是test权限运行的,也被杀掉了。最后只要把备份好的服务重新替换回来就正常了。

除此以外,直接把kill -9 -1这条shell命令的功能写入到二进制文件,并且复制替换掉原来的服务,这样只要nc连接一下就可以执行kill -9 -1。当然,事先需要修改一下这个文件的权限,不然test用户就无法执行了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值