Powershell 渗透框架 [Empire]
0x01 前言:
对于empire
[说实话确实有些老了] 想必大家也都已经不再陌生,很多人说它是神器
,嘿嘿……原谅我一直也没搞清楚神器
的具体定义到底是什么[虽然,我知道这对于实际渗透并没任何卵用],也许在我有限的认知里,一直都以为只有能在千里之外轻松get到目标系统的system或者root权限的shell的0day
才叫神器,如果动不动就把某个确实好用点儿的脚本或者工具就叫神器,未免有点儿草率,也显得不稳重,不是吗,自己有个比较野蛮的习惯,在用别人工具的时候,总是忍不住会观察,因为想尽可能理解它的内部实现[最好也是最直接的一手学习资料],如果换成是我自己这代码会怎么写呢
,虽然是后知后觉,但拓展出来的思路足以让自己受益良多[站在别人的肩膀上可以走的更快,这是真的],虽然,自己并没有再把代码把它实现一遍,但对整个工具架构实现已经有了更清晰的理解和把握,到了实际用的时候自然就不一样了[更灵活点儿嘛],以后再看到类似的工具,可能一眼就能看透个百分之七八十,嘿嘿……纯粹是个人喜好哈,听过就好,废话过后,咱们说正题,今天主要是对empire中一些好用的powershell脚本做些简要的使用说明,当然啦,自己已经事先把empire中的powershell脚本选择性的提取了一下,因为我们的重点还是powershell,并非empire脚本本身,整个过程中也不会有任何涉及工具自身使用的东西,其实,empire使用真的非常简单,命令帮助已经写的非常详细了,看看帮助相信大家很快就能上手,不过整个工具最核心的东西还是这些ps脚本[对于一个职业渗透者来讲,您应该一开始就尽量朝着你所能理解的本质去,慢慢的,一旦养成这种习惯,同一个东西,你往往能看见别人看不见的一些小细节],因为这中间有很多脚本跟之前是重复的,所以就选择性的说一些,脚本使用都非常简单,就不再一一截图了,实在是好累啊,还是那句话,关键是大家能在实际渗透中用上,别的都是扯淡
0x02 执行系统指令的相关模块[code_execution]:1
2
3Invoke-DllInjection.ps1 向指定进程中注入自定义dll
Invoke-ReflectivePEInjection.ps1 反射注入 dll
Invoke-Shellcode.ps1 执行自定义shellcode
1 | Invoke-MetasploitPayload.ps1 尝试派生一个meterpreter的shell |
1 | Invoke-ShellcodeMSIL.ps1 在powershell进程中执行shellcode,避免触发win32 api |
0x03 一些信息搜集模块[collection],后面的脚本就不一一截图了[累],大家可以自己根据脚本中的帮助说明进行尝试:1
2
3
4
5Get-ChromeDump.ps1 搜集chrome浏览器的http密码数据,浏览历史等等
Get-FoxDump.ps1 搜集Firefox浏览器的http密码数据,浏览历史等等
Get-BrowserData.ps1 搜集所有浏览器数据[IE,chrome,firefox],包括书签,收藏
PS C:\> Import-Module C:\empire\collection\Get-BrowserData.ps1
PS C:\> Get-BrowserInformation -Browser All -Datatype History -UserName admin
1 | Get-ClipboardContents.ps1 提前当前机器剪切板中的数据,以秒为单位,默认15秒,实际中并未成功 |
1 | Get-Keystrokes.ps1 实时键盘记录,不太靠谱,经常会漏掉一些字符 |
1 | Get-Screenshot.ps1 截图,貌似不太好使,不过前面有脚本是好使的 |
1 | Invoke-Inveigh.ps1 嗅探器,需要管理权限,支持LLMNR, NBNS, SMB, HTTP, and HTTPS |
0x04 抓各种密码的方式[credentials]:1
2
3
4
5
6Get-VaultCredential.ps1从Vault 获取各种密码
Invoke-CredentialInjection.ps1 类似wce的hash注入
Invoke-Mimikatz.ps1
Invoke-PowerDump.ps1
Invoke-TokenManipulation.ps1 窃取令牌
Invoke-DCSync.ps1
0x05 提权[privesc]及bypasuac的各种方法:1
2
3
4
5Invoke-MS16032.ps1 可能不太好使
Invoke-WScriptBypassUAC.ps1
Invoke-BypassUAC.ps1
Get-SiteListPassword.ps1
Invoke-WScriptBypassUAC.ps1
0x06 各种内网渗透相关模块 [situational_awareness]:1
2
3
4
5Invoke-SmbScanner.ps1 全自动smb弱口令扫描
Invoke-Portscan.ps1 tcp端口扫描
Invoke-ARPScan.ps1 内网arp扫描
Get-SPN.ps1
Invoke-WinEnum.ps1
0x07 横向渗透[lateral_movement],拓展内网的其它机器:1
2
3Invoke-PsExec.ps1 powershell版的psexec
Invoke-SSHCommand.ps1 powershell版本的ssh工具,可以利用它方便的ssh到内网的linux机器上
Invoke-InveighRelay.ps1 经典的smb重放攻击
0x08 持久控制 [persistence]:1
2
3
4Install-SSP.ps1
Invoke-BackdoorLNK.ps1 win快捷方式后门
Get-SecurityPackages.ps1
PowerBreach.ps1
0x09 一些内网web中间件利用:1
2Exploit-Jenkins.ps1
Exploit-JBoss.ps1