问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
关于加强防范钓鱼邮件的通知
一封以“关于加强防范钓鱼邮件的通知”为主题的邮件引起的故事
0x01 Dropper分析 ============== 1. 背景 -----  收到一封“关于加强防范钓鱼邮件的通知”为主题得钓鱼邮件,邮件内容以官方口吻强调当前网络诈骗的猖獗性,并号召收件人下载附件,以了解详细的防范措施。附件被伪装成一份合法的通知文档,并以.exe格式命名为“关于加强防范钓鱼邮件的通知.exe”。(贼喊捉贼???) 无需多说,直接上手!!对附件中的样本"关于加强防范钓鱼邮件的通知.exe"进行分析首先查看文件信息: 附件文件为64位C++程序,无壳,运行后可能执行以下恶意行为: - 窃取用户登录凭据和敏感信息。 - 在目标计算机中植入远程控制工具,为后续攻击提供便利。 - 诱导用户进一步访问钓鱼网站,扩大攻击范围。  2. main ------- IDA查看WinMain,程序首先获取用户名和计算机名,并根据时间戳生成随机值。  接着创建进程快照,进行进程遍历  接着是做一些异常处理、内存分配等操作  3. main->sub\_1400017B0 -------------------------- 然后进入一个关键函数sub\_1400017B0,该函数首先是进行两次内存分配  接着是获取系统运行时间和“USERNAME”环境变量的值  然后通过sub\_140003020函数进行路径拼接。  最后,在拼接的路径下释放一个chrome\_pwa\_launcher.exe文件。  > 自此,"关于加强防范钓鱼邮件的通知.exe"的主要功能就是释放一个文件。 0x02 chrome\_pwa\_launcher.exe ============================== 接着分析chrome\_pwa\_launcher.exe文件。 2.1 绕过反调试 --------- Process Monitor过滤进程。  可以看到程序一秒钟内打开就退出,说明程序可能有一些校验,检测虚拟机之类的。  先用ida看一下,代码能不能看出啥,直接看WinMain函数。 出现报错decomplication failure: too big function,这是因为当前函数太大导致,需要修改配置文件:【IDA 安装目录】\\cfg\\hexrays.cfg将其中的MAX\_FUNCSIZE = 64改成MAX\_FUNCSIZE = 1024,重启IDA即可。   重启后在WinMain函数按F5,可以看到就这个 WinMain函数,就定义了一千两百多个变量,还有很多段异或,明显是混淆。   划到最后,可以看到在函数最后有个LABEL\_271结束进程。  通过x查看引用  可以看到,在下面获取用户名和计算机名之前,有一个判断,goto LABEL\_271,而这个label是退出程序。  我们不想让它退出,所以找到它,将它修改一下即可,这里细看,有个字符串`dictator-lusty-fanlight-earphone`,待会调试的时候,可以根据它找到附近的跳转。  x64dbg调试它,运行到用户区。  右键搜索所有模块的字符串。  过滤字符串`dictator-lusty-fanlight-earphone`。  选中,右键再反汇编中转到。  F2打个断点,F9运行到断点,这附近应该有个大跳,调试到这里,把它干掉就行。  F8步过,发现有个je,是一个大跳,且调用 ExitProcess方法,稳了,把它干掉。  这里直接把`je`改成`jne`即可,简单方便,选中这一行,按空格,或者右键→ 汇编。   然后Ctrl+P,或者右键→补丁→修补文件。   2.2 简要分析 -------- 由于混淆太多,我们从其它方面入手进行分析。 从导入模块来看,都是一些常规的操作,获取一些系统信息,文件操作等。  从字符串看不出什么信息。  查看导入模块的时候,并未发现网络相关函数,说明网络连接可能是动态加载的。 使用x64dbg看看,在符号表中选择给loadlibrary下断点。  然后一直F9运行到断点处,可以看到加载到了WinHttp.dll。  寄存器中出现WinHttp.dll,继续按一次F9,让WinHttp.dll加载进去。 可以看到符号表已经有WinHttp.dll了,在WinHttp.dll中找到函数WinHttpConnect下断点。  在断点中将四个loadlibrary都禁用。  然后F9运行到断点WinHttpConnect,就可以看到连接C2:123.60.143.127。  最后 == 综上,该样本“关于加强防范钓鱼邮件的通知.exe”主要功能为收集系统信息和进程信息,并释放一个名为 `chrome_pwa_launcher.exe` 的恶意文件。该文件具备反调试和混淆机制,旨在规避安全检测。除了获取系统信息和进行文件操作外,`chrome_pwa_launcher.exe` 还能够连接C2服务器:123.60.143.127,执行远程指令。整体而言,样本具备较强的隐蔽性和攻击性。 样本分析过程总结 -------- 1. **初始样本分析** - 样本名称为“关于加强防范钓鱼邮件的通知.exe”,为64位C++程序,无壳,运行后释放一个名为`chrome_pwa_launcher.exe`的文件。 - 样本的主要功能包括: - 窃取用户信息(如用户名、计算机名、环境变量等)。 - 遍历当前系统的进程列表,可能用于分析目标系统环境。 - 使用路径拼接释放二次恶意文件。 2. **释放文件`chrome_pwa_launcher.exe`分析** - **反调试与混淆:** - 含有混淆的WinMain函数,通过定义大量变量和异或操作规避静态分析。 - 使用条件跳转(如`je`)在检测虚拟化或调试环境时直接退出程序。 - 修改条件跳转(如`je`改为`jne`)可以绕过退出逻辑,继续分析程序行为。 - **动态加载网络模块:** - 动态加载WinHttp.dll,通过API调用实现网络连接。 - 连接到C2服务器(123.60.143.127),可能用于数据回传或接受远程指令。 3. **主要功能与威胁** - 样本整体具备以下功能: - 收集并上传系统信息和进程信息。 - 释放进一步的恶意模块,并可能实现持久化。 - 连接远程C2服务器(123.60.143.127)以接收命令。 #### 攻击特点 - **伪装性强**:样本利用政府通知的主题,以及合法的文档名称来伪装钓鱼攻击。 - **反调试与混淆**:通过复杂的代码逻辑与动态加载,样本规避了静态分析与自动化检测工具。 - **多阶段攻击**:主样本负责信息收集与二次文件释放,次级样本用于进一步的恶意操作。 最后来点钓鱼防范建议 ---------- 1. **提高邮件防护意识** - **警惕邮件附件**:尤其是带有可执行文件(如.exe)的附件,即使其名称看似合法,也应避免直接打开。 - **核实发件人信息**:对来自“官方机构”的通知,应通过官方网站或官方电话核实其真实性。 - **验证链接和二维码**:不要随意扫描邮件中的二维码或点击未知链接。 2. **加强系统防护** - **更新杀毒软件**:确保杀毒软件能够检测无壳样本及混淆代码。 - **启用沙箱环境**:在分析未知程序时,使用虚拟机或沙箱技术隔离恶意样本。 - **限制权限**:普通用户账号运行时限制写权限,防止样本释放二次文件。 3. **强化企业网络安全** - **过滤恶意邮件**:部署邮件网关并启用强大的垃圾邮件过滤机制。 - **监控流量**:及时检测可疑的网络行为,如到未知IP的连接(如上述C2服务器123.60.143.127)。 - **日志分析**:通过SIEM工具监控系统日志,检测异常进程启动与文件释放行为。 4. **教育与培训** - 定期组织员工安全意识培训,提高对钓鱼攻击的防范能力。 - 演练仿真钓鱼攻击,帮助员工识别伪造的官方邮件。
发表于 2024-12-23 09:39:07
阅读 ( 1112 )
分类:
二进制
2 推荐
收藏
1 条评论
c铃儿响叮当
2024-12-23 10:46
大佬写的太好了
请先
登录
后评论
请先
登录
后评论
0nlyuAar0n
3 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!