免责声明 本公众号所发布的文章及工具代码等仅限交流学习,本公众号不承担任何责任!如有侵权,请告知我们立即删除。
0x00 前言 某次HW行动中,队友发现某集团的一个项目管理系统存在弱口令,至此开始了艰难的getshell之路。 0x01 开始操作
首先登陆系统寻找上传点,结果发现上传数据包是用的websocket传输,不知道怎么修改发送websocket数据包,所以只能放弃了。 除了文件上传还有什么能快速getshell的?那肯定是sql注入啦,随便找个查询接口,反手就是一个单引号: 这不就来了吗?!!!
sqlmap启动,还是DBA
直接--os-shell,权限很低,并且有未知厂家的EDR。 没有curl、wget等命令,尝试certutil等等下载命令,尝试了一晚上,网上的方法基本上全军覆没,都拦截了,陷入了死局。 这时候我们想到了echo命令,往web目录下echo一个免杀的webshell不就行了吗? 这里介绍一个免杀项目
但是问题来了,混淆过的免杀马特别长,怎么echo进去呢?一行一行的肯定不行,又陷入了僵局。 然后想到了能不能编码后再echo进去,通过命令还原出来,想起来Windows是可以用certutil命令进行解码的 。(certutil不仅仅只是文件下载,还有很多强大的功能) 本地测试一下base64编码,利用certutil解码出来
本地测试是可以的。这次我用的hex编码,在目标服务器中运行certutil -decodehex hex.txt bin.txt
没有问题,成功解出来了。但是现在又遇到一个新的问题,web路径是中文的。
sqlmap的os-shell是用ASCII码往里写的,所以往路径里echo的时候会乱码,所以在写的时候一直没写进去,提示找不到路径,这时候又没招了,想了一晚上。第二天一早,突然有了灵感。最骚的思路来了
众所周知,asp、asp.net的站点都有一个web.config文件,就在网站的根目录下,那么我们能不能将目标主机E盘下所有的web.config文件所在目录找出来?存在一个txt中,那么我从文件中提取路径作为参数,往里面批量copy我们的webshell文件不就可以了吗? 说干就干 dir/s /b E:\web.config > E:\soft\1.txt
这样就找到了所有的路径并且存放到文件中,不知道取路径作为变量? 省事直接这样问chatGPT:我将E盘下所有的web.config文件所在路径保存到了E:\soft\1.txt文件中,现在我想将E:\soft\a4.aspx批量复制到web.config文件的所在路径,也就是E:\soft\1.txt中的路径,请帮我列出命令
得到了命令:for /f "delims=" %i in(E:\soft\1.txt) do copy E:\soft\a4.aspx "%i"
经过本地不断测试得到完整的命令:dir /s /b D:\web.config >E:\soft\5.txt && (for /f "usebackq delims=" %a in("E:\soft\5.txt") do (copy E:\soft\a4.aspx "%~dpa")) 这样就可以直接把webshell复制到中文路径的web目录下。至此,完美getshell。
提权、加账户、关杀软、上线cs,内网漫游一把梭,结束。 0x02 总结一下 看了一些文章,部分师傅对于webshell太长 而且有特殊字符 所以不知道怎么echo进去,这篇文章有很好的解决方案,Windows可以用certutil,Linux用base64-d就行,hex内容也可以用xxd命令进行解码。 还有对于无法远程下载、sqlmap环境下中文路径无法echo的解决方法。
|