初入门径 --- 钓鱼样本分析
2021-06-10 18:59:00 Author: mp.weixin.qq.com(查看原文) 阅读量:119 收藏


本文为看雪论坛优秀文章
看雪论坛作者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循环与!@ASDasd3#@异或解密
第三:将解密后的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]

球分享

球点赞

球在看

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


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458386492&idx=1&sn=08bec709fffd56d930235467009f02c5&chksm=b18f30b686f8b9a0ffba9822e91fd2cbd64dccd07bdefdb87b8d3da9cdce1fe11616094d67a6#rd
如有侵权请联系:admin#unsafe.sh