Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

$
0
0
【技术分享】windows环境渗透技巧之PowerShell Payload的远程执行

2017-06-21 10:22:39

阅读:213次
点赞(0)
收藏
来源: artkond.com





【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

作者:h4d35





【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

译者:h4d35

预估稿费:100RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


在Windows环境的渗透测试过程中,PowerShell对于攻击者来说是绝佳的后期利用工具。在内部测试过程中,像PowerSploit和PowerShell Empire这类工具能帮不少忙。但问题是,Windows系统默认打开了限制执行策略,这就造成在执行ps1脚本时出现问题。如果没有拿到admin权限,这就意味着你基本上只能执行一句话的PowerShell命令,命令长度有限制(cmd.exe中最长为8191个字符)。

绕过这种限制的一个方案是,想办法拿到目标主机的admin权限,然后通过`Set-ExecutionPolicy`命令解除PowerShell脚本执行限制。这是一个全局设置项,所以用完了别忘了给改回来。


【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

另一个很棒的技巧是编写一个简单的命令进行“表达式求值”(evaluates expression),然后有效地在内存中执行它。无论ps1脚本多大,您都可以执行整个脚本。下面是一个一句话下载powercat代码并执行的例子:


【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

执行策略不适用于单行PowerShell脚本。我们还可以更进一步,从文件读取数据内容,执行它并运行我们的Payload。但为什么不能将这一过程自动化呢?对我来说,我正在寻找一种很轻松地在多台Windows机器上远程执行Invoke-Mimikatz.ps1脚本的方式。通过这种方式,可以免去这一系列繁琐的操作:通过`smbclient`上传脚本,运行`psexec`禁用执行策略,运行脚本本身,最后还要还原执行限制。

这个想法很简单。我们通过单个bat文件传递我们的Payload。PowerShell脚本被base64编码,并放置在bat脚本的注释中。注释之后是一个简单的一句话命令:读取相同的文件,解码我们的Payload并运行它。你可以使用python脚本将您喜爱的PowerShell脚本快速转换为bat文件。重申一次,执行策略并不重要,因为你只是执行了一个单行PowerShell命令。


【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

生成的文件如下所示:


【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

现在我们可以使用“-c”参数将此文件传递给psexec.py,并获取结果。现在,远程mimikatz就是一句话命令了,如果您想在目标域中大量收集凭据,则完全可以将其编写成脚本:)


【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

更多mimikatz神技 - 在一个工作站上的启用多个RDP连接:


【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

你可以在这里找到这个脚本 :https://github.com/artkond/bat-armor





【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行
【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://artkond.com/2016/12/25/pentesting-windows-powershell/

Viewing all articles
Browse latest Browse all 12749

Latest Images

Trending Articles





Latest Images