建立可以在线做照片的网站企业网站的在线推广方法有
-  
- 样本概况 
- 样本信息
 - 测试环境以及工具
 - 分析目标
 
 - 具体行为分析 
- 0利用查壳工具查看
 - 1.利用PChunter
 - 2.手工清理
 - 3.利用火绒剑进行主要行为分析 
- 恶意行为的一个简要小结
 
 - 4.脱壳
 - 病毒恶意行为分析(OD结合IDA双剑合璧) 
- 知识点扩展1: 
- 知识点扩展1小结:
 
 - 知识点扩展2
 - 知识点扩展3
 - 知识点扩展4(编辑函数标签:)
 - 知识点扩展5(有关seh链的:)
 - 知识点扩展6(Delphi语言中传参)
 
 - 知识点扩展1: 
 
 - 恶意代码分析
 - 专杀工具的编写
 - 总结
 
 - 样本概况 
 
样本概况
样本信息
文件:spo0lsv.exe 
 大小:3001字节 
 MD5:512301C535C88255C9A252FDF70B7A03 
 SHA1:CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870 
 CRC32:E334747C 
 病毒行为:自我复制,感染可执行文件,修改网页文件内容,修改注册表,删除备份文件,关闭杀毒软件窗口,服务与进程
测试环境以及工具
测试环境:win7 32bit 
 分析工具:OD,IDA,火绒剑,PChunter
分析目标
分析病毒行为与程序具体执行流程;
具体行为分析
0利用查壳工具查看
发现其加了FSG壳 
 
1.利用PChunter
打开Pchunter之后发现可疑进程: 
 
 
 查看启动项那一项: 
 
 
 
 
 查看驱动,服务等可疑项 
 未发现异常
查看网络连接: 
 发现可疑进程的网络连接: 
 
 
 使用抓包工具(WSExplorer)查看可疑流量: 
 
 
 
 
 提取样本(利用hash工具) 
 将路径下文件提取到压缩到本地,并修改扩展名为vir 
 
 
 
2.手工清理
a.结束可疑进程 spo01sv.exe(在PChunter中的spo01sv.exe右击—>结束进程) 
 b.删除可疑进程启动项:如下图 
 
 
 
3.利用火绒剑进行主要行为分析
a.先暂时只勾选下面这两个动作,其他都不勾选: 
 
 
 
 
 点击确定: 
 
发现生成了一个病毒exe: 
 
 
 注册表操作: 
 
 
 点击确定之后: 
 设置启动项: 
 
 
 进程操作: 
 
 
 
 
 
 
 
 
 网络操作: 
 
 
 
 
 
 
 实用技巧:利用火绒剑中的动作详细信息中的调用栈可以定位到相关动作信息 
 
 
 
 
 其他行为: 
 
 
 
 
 执行监控: 
 
 
 执行CMD命令,删除网络共享! 
 
恶意行为的一个简要小结
1.自我复制样本到c盘,c/Windows/driver/目录下面 
 启动c/Windows/driver/spo01sv.exe(样本) 
 
 
 
 
 2.在每一个目录下面创建了Desktop_.ini 
 
4.脱壳
手脱FSG2.0过程: 
 运行至下图中位置: 
 
按F9运行: 
 
 
 EDI数据窗口中跟随: 
 
 
 
 
 
 
 
 
 按F9继续: 
 
 
 继续F9(经过若干次的F9以后):IAT修复完成 
 
 
 
 
 同时将IAT中的7FFFFFFF改成00000000 
 
 
 下面按F7跳至OEP: 
 
 
 
 
 下面DUMP文件:(D278为默认,一般不会错,查看此时OEP:0040D278) 
 
保存为1.exe 
 
 
 修复IAT: 
 
 
 D278为上面在OD里面dump时候的oep的值 
 
 
 
 
 
 
 
 
 
 
 选择1.exe 
 1.exe是从OD里面dump下来的 
 
 
 1_.exe是自己生成的 
 
脱完壳以后进行深度扫描:(发现其语言为Delphi6.0-7.0) 
 
 
 
 
 至此,脱壳完成!
病毒恶意行为分析(OD结合IDA双剑合璧)
1.将dump修复之后的文件使用IDA打开; 
 按shift+F5: 
 
 
 2.在IDA中用Shift+F5打开签名窗口: 
 右键加入delphi的签名库: 
 
 
 
 
 按快捷键:ctrl+F搜索delphi: 
 
 
 
 
 IDA与OD双剑合璧 
 OEP处的对比: 
 
 
 
进入到函数里面,堆栈中跟随: 
 
 
 
知识点扩展1:
 
 借此机会,讲讲交叉引用与导入表的联合应用: 
 双击此API: 
 
 
 按Ctrl+x: 
 
 
 双击下面框中的API,就会跳往调用RegCreateKeyExA这个API的函数 
 
 
 可以发现RegCreateKeyExA这个API是在上面这个框里面的这个函数(j_RegCreateKeyExA)中的,下面对这个函(j_RegCreateKeyExA)数进行交叉引用 
 
 
 Ctrl+x,交叉引用: 
 
 
 来到了上一层函数: 
 
 
 
 
 
 
 来到了上一层: 
 
 
 
 
 
 
 跳往上一层:
 
 再次跳往上一层,交叉引用: 
 这里就是接近OEP的地方了;
知识点扩展1小结:
结合导入表,查看关键API,利用交叉引用这个强大的功能可以直捣黄龙,追根朔源!
知识点扩展2
一般而言,黑色表示非系统函数,上面的天蓝色表示系统函数, 
 
知识点扩展3
OD和IDA配合的又一个例子: 
 在OD里面不知道这个函数的功能,想要知道它大概的功能,可以这么做: 
 利用这个函数在OD中的地址,在IDA里面搜索: 
 显而易见,这个函数就是一个字符串拼接库函数; 
 
 
 说明:如果OD和IDA加载基址不一样的话可以按照下面操作调整: 
 
 
 
知识点扩展4(编辑函数标签:)
 
 
知识点扩展5(有关seh链的:)
.seh链的: 
 栈顶是指向下一个seh的地址,栈顶的下一行是当前处理异常的函数所在地址,如果当前处理不了,就发给下一个seh: 
 
 
 
 
 依次类推,直到seh的链尾 
 
知识点扩展6(Delphi语言中传参)
Delphi语言中是用寄存器传参的: 
 
恶意代码分析
分析思路: 
 从OEP处开始的代码: 
 猜测sub_405250的依据: 
 调用的第一个sub_405250函数,其参数有”xboy”,后面另一次调用之中,参数有字符串”whboy”,并且在调用sub_405250函数之后,又调用strcmp函数,之后又有判断返回值的代码,如果不对,则退出进程 
 
 
 
 
 动态跟踪sub_405250函数: 
 
 
 观察LstrArrayClr函数;
 
 
 
 可以发现调用当前代码的函数(其实就是主函数): 
 
 
 
 
 
 
 继续跟,来到主函数线程中:
 
 寻找定位字符串!(IDA与OD结合) 
 
 
 
当然也可以在OD中进行定位: 
 
第一个恶意代码函数分析:
v43 = &savedregs;v42 = &loc_408781;v41 = __readfsdword(0);__writefsdword(0, (unsigned int)&v41); // Write memory to a location specified by an offset relative to the begining of the fs segment,这里0为偏移量,后面一个参数为要写入的数据System::ParamStr(0, &v71);//就是在exe文件后面可以跟参数,paramstr 获取的就是exe文件后面跟参数。
如有可执行文件project1.exe 在运行中输入e:\project1.exe 123 456 789 
那么paramstr(1)='123' paramstr(2)='456' paramstr(3)='789',这里paramstr函数括号里面应该只有一个函数,它这里伪代码可能有点问题,
unknown_libname_123(v71, &v72);
 
重点部分1: 
 复制自身到系统驱动目录下面,然后执行拷贝的程序 
 Teminatevirusprocess这个函数的猜测,是因为在IDA中进入到这个函数之后发现了teminatevirusProcess这个关键API,至于为什么为是结束的是病毒,根据这个函数括号里面的关键字符串来猜测的,结束掉病毒进程是为了让自己隐藏起来不让杀毒软件找到 
 
 
 
 
 
 
 
感染文件部分: 
 
 
 
 
 
 
 
感染函数:
 
 
 
 
 
 可以发现,病毒感染了C:\program Files 目录下的exe,过程如下: 
 1读取原文件至内存 
 2.复制病毒至感染路径,覆盖原文件 
 3.在感染之后的exe上追加原标识 
 4.在感染之后的exe上追加感染标识 
 如下:Whboy+原文件名+随机数 
 
 
 
第二个恶意代码函数里面: 
 
 
 
进入回掉函数: 
 遍历文件目录行为: 
 
 
 
 
 这里搜索机器上的可用分区,然后感染分区中的脚本文件,但是除了上图中的”WINDOWS”,”WINNT”,”system32”等文件夹。 
 
 
 小技巧,在IDA中: 
 将伪代码识别出来的特征API在IDA view视图中快速定位出来alt+t键 
 
 
 
 
 回到主线: 
 感染后病毒在相应的文件夹中写上已感染标记文件Desktop_.ini。
 
 
 
 如果文件是GHO(备份),则将其删除 
 即:病毒会删除机器中GHO文件,使得中毒后无法使用ghost还原 
 
进入包含SetTimer这个API的函数: 
 
进入SetTimer的回掉函数: 
 1.搜索字符串进行定位:

ALT+T进行字符串搜索: 
 
 
 
设置定时器,将病毒自身复制到各分区根目录下命名为setup.exe,并生成autorun.inf文件 
 
创建文件并向文件里面添加数据! 
 
 
 连接本地网络 
 
执行恶意代码的第三个函数: 
 这个函数中调用了6个定时器: 
 
 
 
进入第一个回掉函数sub_40CEE4: 
 OpenProcessToken获取访问令牌; 
 利用LookupPrivilegeValueA可以获取本地唯一标识符(LUID) 
 OpenProcessToke和LookupPrivilegeValueA获取的信息被AdjustTokenPrivileges利用,进行提权: 
 
Ctrl+x进行交叉引用 
 
 
 
检查是否有杀毒软件,如果有,则让其关闭 
 
与此同时,结束以下进程: 
 
 
 
 
 添加设置注册表选项: 
 
 
 以上为第一个回掉函数; 
 下面看第二个回掉函数: 
 使用InternetOpen初始化WinINet函数,然后使用InternetOpenUrl打开指定链接,最后用InterReadFile读取到网页源代码,下载恶意代码: 
 
 
 创建里两个回掉函数,估计不会干什么好事: 
 
执行cmd命令: 
 
 
 利用cmd命令删除共享文件 
 怎么样利用字符串定位函数: 
 
 
 Alt+B键来定位: 
 
 
 删除杀毒软件启动项,关闭杀软服务: 
 
 
 
 
 打开解密之后的网页: 
 先解密然后从网址下载恶意代码: 
 
 
 
 
 
 
 至此,分析基本结束!
专杀工具的编写
参考我写的这篇博客: 
 熊猫烧香专杀工具编写
总结
最后以一张流程图来总结一下熊猫烧香的过程: 
 
 
 (注:图中清楚应为 清除!)
