-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
102 lines (94 loc) · 3.54 KB
/
Copy pathmain.go
File metadata and controls
102 lines (94 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// fibercat-cli — 光猫探测/备份/NAT 类型判断工具,单文件 Go binary
//
// 用法:
//
// fibercat-cli detect <ip> 探测光猫型号
// fibercat-cli backup --ip <ip> --pass <pass> 6 步登录抓取 + 解密 PSK 存 JSON
// fibercat-cli nat STUN NAT 类型探测
// fibercat-cli help 显示帮助
package main
import (
"fmt"
"os"
"github.com/Wuvomi/fibercat-cli/cmd"
)
const Version = "0.1.0-dev"
func usage() {
fmt.Fprint(os.Stderr, `fibercat-cli `+Version+` — 光猫瑞士军刀
用法:
fibercat-cli <command> [args...]
命令:
detect <ip> 探测光猫品牌/型号(厂商私有 unauthed)
upnp [--st <urn>] UPnP/SSDP 设备发现(跨厂商 unauthed)
backup --ip --pass [--out] 6 步登录抓取数据 + 解密 PSK + 存 JSON
nat [--full] [--servers a,b] STUN NAT 类型探测(参考网心云 7 级分类)
decrypt --hardcode <f> <files...> 离线解密 ZTE /etc/hardcodefile/*
telnet --ip <ip> [--probe] ZTE webFac 工厂模式开 telnet
acs [--listen :7547] [--path /] TR-069 自建 ACS server,等光猫主动 Inform
dump-menu --ip --pass 系统化遍历 ZTE 全菜单,输出完整 URL 树(防遗漏)
tr069-pull --ip --pass [--listen] TR-069 自动闭环:起 ACS + 触发 Inform + dump 全配置
ipk-build --name --staging 打 OpenWrt ipk 包(用于 TR-069 Download 推送)
log-pull --ip --pass [--out] 下载光猫系统日志(应用层事件 log)
mirror --src PON --dst LAN4 端口镜像配置(PON→LAN 复制流量给 wireshark 抓 TR-069 cwmp)
cfg-decrypt --in cfg.bin --out X 离线解密 ZTE ctce8 USB 备份 cfg 文件(纯 Go 翻译 zxcfg)
usb-backup --ip --pass [--out] 一站式:触发 USBBKRST → SMB 拉 cfg → 解密 → 提取明文凭据
version 版本信息
help 本帮助
示例:
fibercat-cli detect 192.168.1.1
fibercat-cli upnp
fibercat-cli backup --ip 192.168.1.1 --user telecomadmin --pass '<password>' --out ./backup.json
fibercat-cli nat
fibercat-cli nat --full --servers stun.l.google.com:19302,stun.qq.com:8000
fibercat-cli decrypt --hardcode /tmp/hardcode /tmp/hardcodefile/db_user_cfg.xml
fibercat-cli telnet --ip 192.168.1.1 --probe (探测协议握手)
fibercat-cli telnet --ip 192.168.1.1 (默认 100 组凭据爆破)
fibercat-cli telnet --ip 192.168.1.1 --users a,b --pass x,y (自定义)
`)
}
func main() {
if len(os.Args) < 2 {
usage()
os.Exit(2)
}
switch os.Args[1] {
case "detect":
cmd.RunDetect(os.Args[2:])
case "upnp":
cmd.RunUPnP(os.Args[2:])
case "backup":
cmd.RunBackup(os.Args[2:])
case "nat":
cmd.RunNAT(os.Args[2:])
case "decrypt":
cmd.RunDecrypt(os.Args[2:])
case "telnet":
cmd.RunTelnet(os.Args[2:])
case "acs":
cmd.RunACS(os.Args[2:])
case "dump-menu":
cmd.RunDumpMenu(os.Args[2:])
case "tr069-pull":
cmd.RunTR069Pull(os.Args[2:])
case "ipk-build":
cmd.RunIpkBuild(os.Args[2:])
case "log-pull":
cmd.RunLogPull(os.Args[2:])
case "mirror":
cmd.RunMirror(os.Args[2:])
case "cfg-decrypt":
cmd.RunCfgDecrypt(os.Args[2:])
case "usb-backup":
cmd.RunUsbBackup(os.Args[2:])
case "tewa":
cmd.RunTewa(os.Args[2:])
case "version", "-v", "--version":
fmt.Println("fibercat-cli", Version)
case "help", "-h", "--help":
usage()
default:
fmt.Fprintf(os.Stderr, "未知命令:%s\n\n", os.Args[1])
usage()
os.Exit(2)
}
}