公司动态
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 architectureplugins/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 目录里面有config和smsBomb两个关键子目录。git clone https://gitcode.com/gh_mirrors/sms/smsBomb这一步把 11 个服务商插件和 19 个示例节点配置全部拿到手。这一步没有输出跑完当前路径应停在仓库根目录。cd smsBomb默认配置路径config/sms.json是相对当前目录解析的不在根目录跑会直接报配置不可为空。装完终端只回显依赖安装成功的几行。pip install -r requirements.txtCLI 版依赖只有 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日志详细程度0WARNING 起把彩色日志逐行读明白 日志由 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请求方式默认 GETweightint派单权重默认 1越大越常被选中0 表示停用enable_custom_msgbool是否把-m的内容当短信正文发默认 false哪些能直接用product、payloads、api的结构可以照抄现有示例哪些必须改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_PROXY和HTTPS_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, finishedFalse): if finished: print(done: success%d failed%d % (success, failed)) sms_bomb.start(cbmy_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加-vvHTTP 返回 200 却被判失败各插件按响应体判成败如阿里云要求Code OK200 不等于发成功用-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),仅供参考