无回显命令执行漏洞之PowerShell回显
2021-05-01 22:10:00 Author: k8gege.org(查看原文) 阅读量:10 收藏

很多时候命令回显漏洞由于一些特殊原因,无法构造或不方便构造回显,上回讲到JAVA反序列化漏洞Ladon回显方法。本文针对Windows系统实现命令执行漏洞回显方法,使用系统自带certutil或Powershell命令,虽说JAVA跨平台但并不代表所有系统都预装有JAVA,实际上.NET一样是跨平台的,前提都要系统安装才可以,那么对于未安装JAVA的机器或非JAVA程序产生的命令执行漏洞,如何实现命令回显,将是本文讲述的重点。JAVA篇:http://k8gege.org/Ladon/web_javarce.html

由于是HTTP协议,可以通过浏览器访问得到Ladon回显BASE64解密结果,就是说我们只要通过命令行发送HTTP请求即可在Ladon控制台看到命令执行后的结果。getstr为发送明文,但是结果中有特殊字符或换行就无法HTTP请求了,所以我们使用BASE64加密,这个原理我们在JAVA反序列化漏洞回显中有提到过。

执行以上命令,可以在Ladon中得到回显,但是实战中,我们不可能未补先知,直接能返回结果,所以得先执行命令,获取结果转成BASE64后再发送给Ladon解密,所以我们接下来要研究,如何通过powershell执行任意命令并加密发送给Ladon

使用LadonGUI版的编码转换功能将代码转成一行CMD命令,因为命令执行漏洞一般不支持执行多行PS1脚本,经过转换后可以得到命令执行漏洞通用的一行CMD命令。测试发现可以使用Binary或hex等加密将PowerShell代码转成一条命令,以便结合漏洞使用

1
powershell  -NoP  -NonIntera   "[stRinG]::join( '', ( ( 100100 , 1101001,1101110 , 1100110 ,1101111 , 111101 ,1100111,1100101, 1110100, 101101,1110000,1110010 ,1101111, 1100011,1100101,1110011,1110011 , 111011,1101 ,1010,1100101, 1100011,1101000 ,1101111 ,100000,100100,1101001 , 1101110 ,1100110 ,1101111 ,111011)|fOreAcH-objEct{([convERT]::ToInT16(($_.TOstRInG()),2) -as [CHAr])}) )| & ((VaRIABle '*MDr*').nAme[3,11,2]-JoIn'')"

文章来源: http://k8gege.org/p/Ladon_ps1_echo.html
如有侵权请联系:admin#unsafe.sh