初入门径 --- 钓鱼样本分析

2021-06-10 18:59:00 Author: mp.weixin.qq.com
觉得文章还不错?,点我收藏




本文为看雪论坛优秀文章
看雪论坛作者ID:tobeabel


0x01  文件分析


总共包括三个文件:2021年机关员工(子女)名单.exe、name1.jpg、name2.jpg。
 
2021年机关员工(子女)名单.exe:程序是golang编译的,分析起来有点困难。所以没有进行分析,只是看了一下会有什么行为。

name1.jpg为exe

name2.jpg为dll导出了InitBugReport函数,且该函数存在异或解密shellcode的行为。


0x02  行为分析


开启Fake-ng,process monitor和process explorer进行行为监控。在虚拟机中执行程序之后会将nam1.jpg保存为yyexternal.exe。


有一定的迷惑性,让人以为是正常的yy程序。



name2.jpg会保存为crashreport.dll。之后yyexternal会动态加载crashreport.dll并调用InitBugReport。


0x03  name2.jpg 静态分析


加载shellcode的功能都在nam2.jpg(其实是dll)中所以主要分析这个文件。

主要是3个步骤循环:

第一:将byte_100277A8开始偏移%6==3地址上的内容复制到shellcode中

第二:将shellcode循环与[email protected]#@异或解密

第三:将解密后的shellcode复制到VirtualAlloc地址并跳转执行。

 
如何获取shellcode?
1. 脚本解密
2. 动态内存dump
 
这里选择了第二种方法,修改文件名为name2.dll,用OD打开dll,在强制修改EIP为InitBugReport。将shellcode保存下来。



0x04  shellcode 分析


最关键的点是偏移0x66会将遍历到的函数hash与目标hash进行比较,如果相关会在0x86处调用。在0x86下断点可以知道shellcode调用的所有函数
第一步调用LoadLibraryA("wininet")
第二步调用InternetOpenA连接27.152.180.223的80端口
第三步调用InternetConnectA

第四次调用 HttpOpenRequestsA 获取/W9ff。

第五次调用HttpSendRequestA 使用指定UA去发生请求。

因为网站的/W9ff已经没了,所以会请求失败,调用ExitProcess。为了猜测下载文件的作用是什么。可以修改跳转指令。看看后续操作。如果请求失败就会调用ExitProcess。修改标志位Z=0。

最后跳转到了新的shellcode执行代码。因为前面都是强制修改了标志位,所以实际并没有shellcode读入。


0x05  总结


shellcode应该是脚本生成的(类似这个https://gist.github.com/jdferrell3/4db966da06f4fa77816a54d802aca0f8)
样本应该是护网的钓鱼文件。
解压密码为www.pediy.com



 


看雪ID:tobeabel

https://bbs.pediy.com/user-home-755584.htm

  *本文由看雪论坛 tobeabel 原创,转载请注明来自看雪社区。



《安卓高级研修班》2021年6月班火热招生中!


# 往期推荐





公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]



球分享

球点赞

球在看



点击“阅读原文”,了解更多!




觉得文章还不错?,点我收藏



如果文章侵犯到您的版权,请联系我:buaq.net[#]pm.me