1. 首页
  2. 红队技术

某次HW行动中艰难曲折的getshell

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

0x00 前言
某次HW行动中,队友发现某集团的一个项目管理系统存在弱口令,至此开始了艰难的getshell之路。某次HW行动中艰难曲折的getshell
0x01 开始操作

        首先登陆系统寻找上传点,结果发现上传数据包是用的websocket传输,不知道怎么修改发送websocket数据包,所以只能放弃了。
除了文件上传还有什么能快速getshell的?那肯定是sql注入啦,随便找个查询接口,反手就是一个单引号:
某次HW行动中艰难曲折的getshell
这不就来了吗?!!!
某次HW行动中艰难曲折的getshell

某次HW行动中艰难曲折的getshell
sqlmap启动,还是DBA

某次HW行动中艰难曲折的getshell

某次HW行动中艰难曲折的getshell

        直接–os-shell,权限很低,并且有未知厂家的EDR。
没有curl、wget等命令,尝试certutil等等下载命令,尝试了一晚上,网上的方法基本上全军覆没,都拦截了,陷入了死局。
这时候我们想到了echo命令,往web目录下echo一个免杀的webshell不就行了吗?
这里介绍一个免杀项目
https://codeload.github.com/Tas9er/ByPassGodzilla/zip/refs/heads/main

某次HW行动中艰难曲折的getshell

某次HW行动中艰难曲折的getshell
但是问题来了,混淆过的免杀马特别长,怎么echo进去呢?一行一行的肯定不行,又陷入了僵局。
然后想到了能不能编码后再echo进去,通过命令还原出来,想起来Windows是可以用certutil命令进行解码的 。(certutil不仅仅只是文件下载,还有很多强大的功能)
本地测试一下base64编码,利用certutil解码出来

某次HW行动中艰难曲折的getshell
某次HW行动中艰难曲折的getshell

        本地测试是可以的。这次我用的hex编码,在目标服务器中运行certutil -decodehex hex.txt bin.txt

某次HW行动中艰难曲折的getshell

        没有问题,成功解出来了。但是现在又遇到一个新的问题,web路径是中文的。

某次HW行动中艰难曲折的getshell

        sqlmap的os-shell是用ASCII码往里写的,所以往路径里echo的时候会乱码,所以在写的时候一直没写进去,提示找不到路径,这时候又没招了,想了一晚上。第二天一早,突然有了灵感。最骚的思路来了

某次HW行动中艰难曲折的getshell

        众所周知,asp、asp.net的站点都有一个web.config文件,就在网站的根目录下,那么我们能不能将目标主机E盘下所有的web.config文件所在目录找出来?存在一个txt中,那么我从文件中提取路径作为参数,往里面批量copy我们的webshell文件不就可以了吗?
说干就干  dir /s /b E:web.config > E:soft1.txt

某次HW行动中艰难曲折的getshell

这样就找到了所有的路径并且存放到文件中,不知道取路径作为变量?
省事直接这样问chatGPT:我将E盘下所有的web.config文件所在路径保存到了E:soft1.txt文件中,现在我想将E:softa4.aspx批量复制到web.config文件的所在路径,也就是E:soft1.txt中的路径,请帮我列出命令

某次HW行动中艰难曲折的getshell

得到了命令:for /f “delims=” %i in (E:soft1.txt) do copy E:softa4.aspx “%i

        经过本地不断测试得到完整的命令:dir /s /b D:web.config > E:soft5.txt && (for /f "usebackq delims=" %a in ("E:soft5.txt") do (copy E:softa4.aspx "%~dpa"))
某次HW行动中艰难曲折的getshell某次HW行动中艰难曲折的getshell
这样就可以直接把webshell复制到中文路径的web目录下。至此,完美getshell。

某次HW行动中艰难曲折的getshell

某次HW行动中艰难曲折的getshell
提权、加账户、关杀软、上线cs,内网漫游一把梭,结束。
0x02 总结一下
看了一些文章,部分师傅对于webshell太长 而且有特殊字符 所以不知道怎么echo进去,这篇文章有很好的解决方案,Windows可以用certutil,Linux用base64 -d就行,hex内容也可以用xxd命令进行解码。
还有对于无法远程下载、sqlmap环境下中文路径无法echo的解决方法。

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/9359.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息