从0到1搭建fscan扫描环境:编译、配置与优化全指南
【免费下载链接】fscan 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。 项目地址: https://gitcode.com/GitHub_Trending/fs/fscan
你是否还在为内网扫描工具配置繁琐而烦恼?是否遇到过扫描效率低下、漏扫误报等问题?本文将带你从零开始,完成fscan扫描环境的搭建、配置与优化,让你轻松掌握这款强大的内网综合扫描工具。读完本文,你将能够:获取fscan源码并成功编译、根据需求配置扫描参数、优化扫描效率、解决常见问题。
一、获取fscan源码
fscan是一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。要搭建fscan扫描环境,首先需要获取其源码。
你可以通过以下命令clone仓库:
git clone https://gitcode.com/GitHub_Trending/fs/fscan
二、编译fscan
获取源码后,接下来进行编译。fscan使用Go语言开发,编译过程相对简单。
2.1 基础编译
在项目根目录下执行以下命令进行基础编译:
go build -ldflags="-s -w" -trimpath main.go
这条命令会在当前目录下生成名为main的可执行文件。其中,-ldflags="-s -w"用于去除调试信息,减小可执行文件体积;-trimpath用于去除编译路径信息。
2.2 UPX压缩(可选)
如果需要进一步减小可执行文件的体积,可以使用UPX工具进行压缩。执行以下命令:
upx -9 fscan
注意:如果你的系统中没有安装UPX,需要先进行安装。例如,在Arch Linux中可以使用
yay -S upx或paru -S upx命令安装。
2.3 系统安装(Arch Linux)
对于Arch Linux用户,还可以通过AUR包管理器直接安装fscan:
# 使用yay安装
yay -S fscan-git
# 或使用paru安装
paru -S fscan-git
三、配置fscan
fscan的配置主要通过命令行参数进行,同时也可以通过修改配置文件来定制扫描行为。
3.1 命令行参数
fscan提供了丰富的命令行参数,用于控制扫描范围、扫描类型、输出方式等。你可以通过./fscan -h命令查看所有可用参数。
以下是一些常用的命令行参数示例:
- 全功能扫描:
./fscan -h 192.168.x.x,该命令会对指定IP进行全功能扫描,包括MS17010漏洞检测、读取网卡信息等。 - Redis写公钥:
./fscan -h 192.168.x.x -rf id_rsa.pub,通过该命令可以向Redis服务器写入公钥。 - 执行SSH命令:
./fscan -h 192.168.x.x -c "whoami;id",可以在目标SSH服务器上执行指定命令。 - 支持xray的poc扫描:
./fscan -h 192.168.x.x -p80 -proxy http://127.0.0.1:8080,通过代理使用xray的poc进行扫描。
3.2 配置文件
fscan的配置文件定义了一些默认的扫描行为和参数。其中,Common/Config.go文件中定义了用户字典、默认扫描方式和端口映射等信息。
例如,用户字典Userdict定义了各种服务的默认用户名:
var Userdict = map[string][]string{
"ftp": {"ftp", "admin", "www", "web", "root", "db", "wwwroot", "data"},
"mysql": {"root", "mysql"},
"mssql": {"sa", "sql"},
// ... 其他服务的用户名
}
端口映射PortMap定义了不同端口对应的扫描方式:
var PortMap = map[int][]string{
21: {"GenericLines", "Help"},
22: {"ssh"},
80: {"GetRequest", "HTTPOptions", "RTSPRequest", "X11Probe", "FourOhFourRequest"},
// ... 其他端口的扫描方式
}
你可以根据实际需求修改这些配置,但建议在修改前备份原始文件。
四、运行fscan
完成编译和配置后,就可以运行fscan进行扫描了。以下是一些常见的扫描场景及对应的命令和结果展示。
4.1 全功能扫描
执行命令:
./fscan -h 192.168.x.x
该命令会对指定IP进行全功能扫描,包括主机存活探测、端口扫描、漏洞检测等。扫描结果如图所示:
4.2 Redis写公钥
执行命令:
./fscan -h 192.168.x.x -rf id_rsa.pub
通过该命令可以向Redis服务器写入公钥,方便后续通过SSH登录目标服务器。操作结果如图:
4.3 执行SSH命令
执行命令:
./fscan -h 192.168.x.x -c "whoami;id"
在目标SSH服务器上执行whoami和id命令,获取当前用户信息。执行结果如图:
4.4 支持xray的poc扫描
执行命令:
./fscan -h 192.168.x.x -p80 -proxy http://127.0.0.1:8080
通过代理使用xray的poc进行扫描,可检测Web应用的漏洞。扫描结果如图:
4.5 NetBIOS探测与域控识别
执行命令:
./fscan -h 192.168.x.x -p 139
该命令用于进行NetBIOS探测和域控制器识别,扫描结果中[+]DC代表域控。结果如图:
五、优化fscan扫描效率
为了提高fscan的扫描效率,可以从以下几个方面进行优化。
5.1 合理设置扫描线程
fscan默认的扫描线程可能无法充分利用系统资源,你可以通过-t参数调整线程数量。例如,设置线程数为100:
./fscan -h 192.168.x.x/24 -t 100
5.2 选择合适的扫描端口范围
如果只需要扫描特定的端口,可以通过-p参数指定端口范围,减少不必要的扫描。例如,只扫描80、443端口:
./fscan -h 192.168.x.x -p 80,443
5.3 使用ICMP快速探测主机存活
fscan支持基于ICMP的主机存活探测,可以快速识别网络中的活跃主机。执行命令:
go run main.go -h 192.0.0.0/8 -m icmp
该命令会探测每个C段的网关和数个随机IP,并统计top 10 B、C段存活数量。结果如图:
六、常见问题解决
在使用fscan的过程中,可能会遇到一些常见问题,以下是一些解决方法。
6.1 编译失败
如果编译过程中提示缺少依赖包,可以通过go mod tidy命令安装所需依赖。
6.2 扫描结果为空
如果扫描结果为空,可能是目标网络不可达或目标主机未开启相应端口。可以先使用ping命令测试网络连通性,再使用nmap等工具进行端口探测。
6.3 漏扫或误报
fscan的漏洞检测规则可能存在一定的漏扫或误报情况。你可以通过更新漏洞库或调整扫描参数来提高检测准确性。fscan的Web漏洞检测规则位于WebScan/pocs/目录下,你可以根据需要添加或修改POC文件。
七、总结
本文详细介绍了从获取源码、编译、配置到运行和优化fscan扫描环境的全过程。通过本文的指导,你应该能够顺利搭建fscan扫描环境,并根据实际需求进行扫描和优化。fscan作为一款功能强大的内网综合扫描工具,能够帮助你快速发现网络中的安全隐患,但在使用过程中,请确保遵守相关法律法规,仅对合法授权的目标进行扫描。
官方文档:README.md
【免费下载链接】fscan 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。 项目地址: https://gitcode.com/GitHub_Trending/fs/fscan
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考









