近期,安全研究社区曝光了疑似与APT28(又名Fancy Bear)黑客组织相关的钓鱼与C2(命令与控制)框架。该框架来源于一个已被发现的作战服务器(203.161.50[.]145:8889)。本文旨在对该框架的运行机制进行技术拆解,仅供安全研究与文档记录之用。
如果你对恶意软件分析或相关Python安全脚本感兴趣,欢迎在云栈社区参与更多深度讨论。
1. 环境配置与运行
运行要求
- Python 3
- Flask、flask-cors、pycryptodome(用于处理解密Firefox凭据并写入loot.txt的POST路由)
使用pip安装所需依赖:
pip install flask flask-cors pycryptodome
启动服务器
- 进入框架目录:
cd phishing_framework
- 运行主服务器脚本:
python server.py
服务器将默认监听 0.0.0.0:5000(即所有网络接口)。访问默认首页(/)将返回一个仿冒的Roundcube登录页面(roundcube.html),同时记录每次访问信息到 taker/visit.csv 文件中。
2. 钓鱼流程运作机制
该框架的整个钓鱼交互过程可以通过以下流程图清晰展示:
┌─────────────────────────────────────────────────────────────────────────┐
│ VICTIM │
└─────────────────────────────────────────────────────────────────────────┘
│
│ 1. GET /
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ server.py index() │
│ • log_visit() → appends to taker/visit.csv (IP, User-Agent, date) │
│ • returns roundcube.html (fake Roundcube login page) │
└─────────────────────────────────────────────────────────────────────────┘
│
│ 2. User submits username + password
│ POST /authentification.php (_user, _pass)
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ server.py handle_authentification() │
│ • If not duplicate: append to taker/creds.csv │
│ • Redirect → https://zhblz.com/Adob_Scan_15_ian._2025.pdf │
└─────────────────────────────────────────────────────────────────────────┘
流程关键点解析:
- 钓鱼页面:框架主要提供
roundcube.html(默认页面,约847 KB,包含内联资源)和 logon.html(西班牙语页面,需要 rb_files/ 目录下的资源)。
- 表单处理:表单提交的目标地址
authentification.php 实际上由 Flask 路由处理,服务器端并未使用真正的 PHP。
- 登录后重定向:用户提交凭据后,会被重定向到一个位于C2域名(
zhblz.com)上的诱饵PDF文件。框架本地也包含该PDF的副本 Adob_Scan_15_ian._2025.pdf。
项目地址
相关的框架代码与资源已公开,可用于进一步分析:
https://github.com/ctrlaltint3l/intelligence/tree/main/FancyBear/roundish
通过对该框架的剖析,我们可以更直观地了解此类高级持续性威胁(APT)组织在钓鱼攻击中使用的技术手法,从而提升相应的防御意识与检测能力。
|