mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-24 04:01:52 +08:00
feat: v2.1.0 核心重构与功能增强
## 架构重构
- 全局变量消除,迁移至 Config/State 对象
- SMB 插件融合(smb/smb2/smbghost/smbinfo)
- 服务探测重构,实现 Nmap 风格 fallback 机制
- 输出系统重构,TXT 实时刷盘 + 双写机制
- i18n 框架升级至 go-i18n
## 性能优化
- 正则表达式预编译
- 内存优化 map[string]struct{}
- 并发指纹匹配
- SOCKS5 连接复用
- 滑动窗口调度 + 自适应线程池
## 新功能
- Web 管理界面
- 多格式 POC 适配(xray/afrog)
- 增强指纹库(3139条)
- Favicon hash 指纹识别
- 插件选择性编译(Build Tags)
- fscan-lab 靶场环境
- 默认端口扩展(62→133)
## 构建系统
- 添加 no_local tag 支持排除本地插件
- 多版本构建:fscan/fscan-nolocal/fscan-web
- CI 添加 snapshot 模式支持仅测试构建
## Bug 修复
- 修复 120+ 个问题,包括 RDP panic、批量扫描漏报、
JSON 输出格式、Redis 检测、Context 超时等
## 测试增强
- 单元测试覆盖率 74-100%
- 并发安全测试
- 集成测试(Web/端口/服务/SSH/ICMP)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
====================================
|
||||
下一步行动指引
|
||||
====================================
|
||||
|
||||
你已经成功进入 DMZ 区的 FTP 服务器!
|
||||
|
||||
发现的关键文件:
|
||||
1. SSH 私钥:/home/admin/.ssh/office_key
|
||||
2. 该私钥可以访问 VPN 网关 (10.10.1.13)
|
||||
|
||||
VPN 网关是双网卡主机:
|
||||
- DMZ 侧:10.10.1.13
|
||||
- 办公网侧:10.10.2.2
|
||||
|
||||
攻击路径:
|
||||
1. 下载 SSH 私钥
|
||||
2. 使用私钥连接 VPN 网关
|
||||
3. 从 VPN 网关扫描办公网
|
||||
|
||||
命令示例:
|
||||
# 下载私钥(已在当前目录)
|
||||
chmod 600 office_key
|
||||
|
||||
# 连接 VPN 网关
|
||||
ssh -i office_key [email protected]
|
||||
|
||||
# 扫描办公网
|
||||
fscan -h 10.10.2.0/24
|
||||
|
||||
加油!
|
||||
@@ -0,0 +1,17 @@
|
||||
====================================
|
||||
办公网打印机配置信息
|
||||
====================================
|
||||
|
||||
设备型号: HP LaserJet Pro M404n
|
||||
IP地址: 10.10.2.23
|
||||
SMB共享: 已启用
|
||||
|
||||
管理员账户:
|
||||
- 用户名: printer
|
||||
- 密码: [已保存在密码管理器]
|
||||
|
||||
共享文件夹:
|
||||
- print$ (打印机驱动)
|
||||
- backup (打印任务备份)
|
||||
|
||||
注意: 为了方便管理,使用了简单密码
|
||||
@@ -0,0 +1,27 @@
|
||||
====================================
|
||||
生产网主机清单
|
||||
====================================
|
||||
|
||||
网段:10.10.3.0/24
|
||||
|
||||
已知主机:
|
||||
10.10.3.30 - app-web (Tomcat 应用服务器)
|
||||
10.10.3.31 - cache-redis (Redis 缓存,密码:redis123)
|
||||
10.10.3.32 - mq-rabbit (RabbitMQ)
|
||||
10.10.3.33 - mq-activemq (ActiveMQ)
|
||||
10.10.3.34 - search-es (Elasticsearch)
|
||||
|
||||
重点目标:
|
||||
★ Redis (10.10.3.31) - 已知密码,可能存在写入漏洞
|
||||
|
||||
防火墙策略:
|
||||
- 办公网 -> 生产网:只允许特定端口
|
||||
- 生产网 -> 核心网:全通(一旦进入生产网,可以访问核心网!)
|
||||
|
||||
核心网预览:
|
||||
10.10.4.0/24 - 数据库集群和域控
|
||||
|
||||
策略建议:
|
||||
1. 通过 Redis 获取立足点
|
||||
2. 横向移动到其他生产主机
|
||||
3. 扫描核心网寻找数据库
|
||||
@@ -0,0 +1,18 @@
|
||||
# Redis 配置文件(生产网备份)
|
||||
|
||||
bind 0.0.0.0
|
||||
protected-mode no
|
||||
port 6379
|
||||
requirepass redis123
|
||||
|
||||
# 注意:此配置存在安全风险
|
||||
# Redis 密码:redis123
|
||||
# 主机:10.10.3.31
|
||||
|
||||
# 可能的攻击向量:
|
||||
# 1. 使用密码认证后写入 SSH 公钥
|
||||
# 2. 利用 Redis 执行 Lua 脚本
|
||||
# 3. 配置文件写入攻击
|
||||
|
||||
# 从办公网连接:
|
||||
# redis-cli -h 10.10.3.31 -a redis123
|
||||
@@ -0,0 +1,15 @@
|
||||
╔═══════════════════════════════════════════════════════╗
|
||||
║ FLAG 1 - DMZ 侦察 ║
|
||||
╚═══════════════════════════════════════════════════════╝
|
||||
|
||||
恭喜!你成功发现了 DMZ 区的 Web 服务器!
|
||||
|
||||
Flag: FSCAN_LAB{w3b_f1ng3rpr1nt_d1sc0v3ry}
|
||||
|
||||
下一步提示:
|
||||
- DMZ 区还有其他服务(FTP、SMTP、SSH)
|
||||
- FTP 服务器可能有弱密码
|
||||
- 尝试爆破 FTP: admin/123456
|
||||
|
||||
fscan 命令示例:
|
||||
fscan -h 10.10.1.12 -m ftp -user admin -pwd 123456
|
||||
@@ -0,0 +1,9 @@
|
||||
============================================
|
||||
MSSQL 数据库攻击成功
|
||||
============================================
|
||||
|
||||
恭喜!你成功攻破了 MSSQL 数据库。
|
||||
|
||||
Flag: FSCAN_LAB{mssql_s4_4cc0unt_pwn3d}
|
||||
|
||||
从 master.dbo.secrets 表中获取了核心数据。
|
||||
@@ -0,0 +1,9 @@
|
||||
============================================
|
||||
VNC 远程桌面入侵成功
|
||||
============================================
|
||||
|
||||
恭喜!你成功通过 VNC 弱密码获取了办公网主机的远程控制权。
|
||||
|
||||
Flag: FSCAN_LAB{vnc_r3m0t3_d3skt0p_pwn3d}
|
||||
|
||||
VNC 密码管理不当是常见的安全隐患...
|
||||
@@ -0,0 +1,9 @@
|
||||
============================================
|
||||
老旧 Telnet 服务入侵成功
|
||||
============================================
|
||||
|
||||
恭喜!你成功利用古老的 Telnet 服务获取了访问权限。
|
||||
|
||||
Flag: FSCAN_LAB{t3ln3t_l3g4cy_syst3m}
|
||||
|
||||
这台主机运行着过时的 Telnet 服务,属于遗留系统...
|
||||
@@ -0,0 +1 @@
|
||||
FSCAN_LAB{smb_pr1nt3r_sh4r3_pwn3d}
|
||||
@@ -0,0 +1,20 @@
|
||||
╔═══════════════════════════════════════════════════════╗
|
||||
║ FLAG 2 - FTP 突破 ║
|
||||
╚═══════════════════════════════════════════════════════╝
|
||||
|
||||
干得好!你通过 FTP 弱密码成功进入了 DMZ 区!
|
||||
|
||||
Flag: FSCAN_LAB{ftp_w34k_p4ssw0rd_pwn}
|
||||
|
||||
下一步提示:
|
||||
- 查看当前目录的其他文件
|
||||
- 注意 .ssh 目录中的私钥
|
||||
- VPN 网关 (10.10.1.13) 是进入办公网的跳板
|
||||
|
||||
关键文件:
|
||||
/home/admin/.ssh/office_key (办公网 SSH 私钥)
|
||||
/home/admin/next_step.txt (下一步指引)
|
||||
|
||||
连接 VPN 网关:
|
||||
chmod 600 office_key
|
||||
ssh -i office_key [email protected]
|
||||
@@ -0,0 +1,19 @@
|
||||
╔═══════════════════════════════════════════════════════╗
|
||||
║ FLAG 3 - VPN 网关 ║
|
||||
╚═══════════════════════════════════════════════════════╝
|
||||
|
||||
出色!你已经通过 VPN 网关进入办公网!
|
||||
|
||||
Flag: FSCAN_LAB{vpn_g4t3w4y_br34ch3d}
|
||||
|
||||
当前网络:
|
||||
- DMZ 接口: 10.10.1.13
|
||||
- 办公网接口: 10.10.2.2
|
||||
|
||||
下一步提示:
|
||||
- 从 VPN 网关扫描办公网 (10.10.2.0/24)
|
||||
- 重点关注备份服务器 (Rsync 873 端口)
|
||||
- Rsync 可能配置为未授权访问
|
||||
|
||||
扫描命令:
|
||||
fscan -h 10.10.2.0/24 -p 22,873,5900,23,161
|
||||
@@ -0,0 +1,20 @@
|
||||
╔═══════════════════════════════════════════════════════╗
|
||||
║ FLAG 4 - 办公网备份服务器 ║
|
||||
╚═══════════════════════════════════════════════════════╝
|
||||
|
||||
太棒了!你找到了备份服务器的敏感数据!
|
||||
|
||||
Flag: FSCAN_LAB{rsync_b4ckup_l34k}
|
||||
|
||||
备份文件内容:
|
||||
✓ prod_redis.conf - 生产网 Redis 配置
|
||||
✓ prod_hosts.txt - 生产网主机列表
|
||||
✓ ssh_keys/prod_jump_key - 生产网跳板私钥
|
||||
|
||||
下一步提示:
|
||||
- 使用 Redis 密码连接生产网 Redis (10.10.3.31)
|
||||
- Redis 可能启用了密码保护但有漏洞
|
||||
- 利用 Redis 写入 SSH 公钥进行横向移动
|
||||
|
||||
获取备份文件:
|
||||
rsync -av rsync://10.10.2.22/backup/credentials/ ./
|
||||
@@ -0,0 +1,2 @@
|
||||
FLAG 5 存储在 Redis 中,使用命令获取:
|
||||
redis-cli -h 10.10.3.31 -a redis123 GET flag5
|
||||
@@ -0,0 +1,2 @@
|
||||
FLAG 6 存储在 MySQL 中,使用命令获取:
|
||||
mysql -h 10.10.4.40 -u root -pPassword -e "SELECT flag FROM secrets.flags WHERE id=1;"
|
||||
@@ -0,0 +1,2 @@
|
||||
FLAG 7 (最终 Flag) 存储在 MongoDB 中,使用命令获取:
|
||||
mongosh mongodb://admin:[email protected]/admin --eval "db.admin_secrets.find({type:'flag'}).pretty()"
|
||||
@@ -0,0 +1,9 @@
|
||||
============================================
|
||||
Elasticsearch 情报收集成功
|
||||
============================================
|
||||
|
||||
恭喜!你成功利用 Elasticsearch 未授权访问漏洞获取了生产网的敏感信息。
|
||||
|
||||
Flag: FSCAN_LAB{3l4st1cs34rch_un4uth0r1z3d}
|
||||
|
||||
提示:在生产环境的索引中发现了数据库凭证信息...
|
||||
@@ -0,0 +1,9 @@
|
||||
============================================
|
||||
PostgreSQL 数据库渗透成功
|
||||
============================================
|
||||
|
||||
恭喜!你成功爆破了 PostgreSQL 数据库密码。
|
||||
|
||||
Flag: FSCAN_LAB{p0stgr3s_d4t4b4s3_pwn3d}
|
||||
|
||||
从 business.secrets 表中获取了企业核心业务数据。
|
||||
@@ -0,0 +1,27 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
||||
NhAAAAAwEAAQAAAQEA3ZnNZei9g7KMDlKfiMZA4bR4EgBmF63rYKEDXEukuLmS8edU8O7s
|
||||
11qEh9EY2P1SWk+j2f1t4PLWHE7FHoKvxWtsgoCy0AfZdbSdUqE/1L23SKJcpzE2NNr1VS
|
||||
xDvZjMZEt0yiF3a8CHLsOifuDjeUm2dlorT8A934k9Lw5RTZZ8OUgxzf/JiYCDzlOFl0hG
|
||||
QYKLxujC9a3H3fzApPKRIttkzEt8YvUPfcIwBkazR8mCAqXlKJD9d0P3/PNXp+GgNVnPPB
|
||||
fhl4v0Jfski2w4BpdVkIcgo/bpNCYhT84Oq3HHQy2iLp00/W3kBdVslwjzWVjDvF3XR36+
|
||||
7EZM4L0rMQAAA8jmRkJ75kZCewAAAAdzc2gtcnNhAAABAQDdmc1l6L2DsowOUp+IxkDhtH
|
||||
gSAGYXretgoQNcS6S4uZLx51Tw7uzXWoSH0RjY/VJaT6PZ/W3g8tYcTsUegq/Fa2yCgLLQ
|
||||
B9l1tJ1SoT/UvbdIolynMTY02vVVLEO9mMxkS3TKIXdrwIcuw6J+4ON5SbZ2WitPwD3fiT
|
||||
0vDlFNlnw5SDHN/8mJgIPOU4WXSEZBgovG6ML1rcfd/MCk8pEi22TMS3xi9Q99wjAGRrNH
|
||||
yYICpeUokP13Q/f881en4aA1Wc88F+GXi/Ql+ySLbDgGl1WQhyCj9uk0JiFPzg6rccdDLa
|
||||
IunTT9beQF1WyXCPNZWMO8XddHfr7sRkzgvSsxAAAAAwEAAQAAAQAGXMM5jvE7AeI0ypE/
|
||||
Rm7oNAvi+20y9pi8k17i9F6IObbC+ID3MmrtI3GM6zdXCo3l3yW9jWHNXLeCRE4zSi4FAW
|
||||
iyBgMsRx9qmlsOe2f3YhOMM7IskDSF17gFwCG5RLTwl7yEjamtt69B69bDZQ5O5guFsiDO
|
||||
dz7nhzuRGWyC6VadqgsoNaGUFmyJya9y8/aBSuNZEZ8dOlBdR3jcRsrOCXQneQpLWfYQgC
|
||||
9KlFFgQVyO2VxaD6drEcqU8+fUVJlftHRn4J5R6D/CG2KxfB7g6LXUcaCVZBY55kWBPfpY
|
||||
lJocp6EtAVX8dLl/oRKWmJYHkQBO6d0zzwNfVryT/HwBAAAAgQCnYylI9zS6aCmw+aiS2C
|
||||
JQAECbS5T90xrwqR1IRGb6DJAQKqzHbF6YFW/QOMSCuWktmC8wKBMhj6UFywzjZuvPSJW2
|
||||
gJodi50cmozfylSKvBlmPJEUI/8Wn6Yn2nYOUjTC5tUa3r2rtiH8M+3q2L/tGPJZhmRHXe
|
||||
kaMDxtSNwUgwAAAIEA8kaZXYccjFRueVQP1CMYhmybAkRVBU242Iuz1LYmvURi2IAeYQi8
|
||||
jmS1ilZB/j2BPKFE6yxvYaNBYRoJ3DKhTrydR13wb68xSUU9wWN1qkwuHpNdxNCORCsaEp
|
||||
1Mwexf7u9fnA/FpV+yNbJkXKBNTtkMrnwrrrLTPLdP0vNtMgEAAACBAOonYbHWki46kDIS
|
||||
+Fa9LHkIVHH2Odpq7hGTtuJXXao55ac6nbAkBR8yOCCXmV4kw2PYMqPogUGptAhN1Yd3cB
|
||||
Q04vNWkwkkxObuQempaJE6PMLY12IdouStAgCl43d+Mlo5AOnjYq0MgJbcGMkgHsp0wzbQ
|
||||
+8XRKsLeeDJd9JkxAAAADm9mZmljZV92cG5fa2V5AQIDBA==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
@@ -0,0 +1,27 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
||||
NhAAAAAwEAAQAAAQEArEEc3XJcEgI3lVfJ4eidJqKHFywOpbmNjHRgqWj4VDbmgE1yUQI3
|
||||
fN+/C68in7muvV2RSGM9/kaFYksmiFV4HG17vozsJNIRpG0kA6zi7qhKPVcCFDuZejpfUp
|
||||
O4SyuJRBzCOy3LxEVudHpc855499eKdDAxDamj4e5vrl01jroOutRMO0PuWsJHS2Y6B0W/
|
||||
uMkfZvw07nAKyN9TpxaXiTakEAvlioYZKBQkag2LpRJ7uTAM3sfqH5FpI5VHkHVhVfsfrM
|
||||
pr0LfElVOiPMUmx6sheGoqUQfvgCQy4CN+tUwmK7c7zlKcsNso3aVQ0YpwLemoxQXzzmI0
|
||||
a1afKdJIEQAAA8gWusYkFrrGJAAAAAdzc2gtcnNhAAABAQCsQRzdclwSAjeVV8nh6J0moo
|
||||
cXLA6luY2MdGCpaPhUNuaATXJRAjd8378LryKfua69XZFIYz3+RoViSyaIVXgcbXu+jOwk
|
||||
0hGkbSQDrOLuqEo9VwIUO5l6Ol9Sk7hLK4lEHMI7LcvERW50elzznnj314p0MDENqaPh7m
|
||||
+uXTWOug661Ew7Q+5awkdLZjoHRb+4yR9m/DTucArI31OnFpeJNqQQC+WKhhkoFCRqDYul
|
||||
Enu5MAzex+ofkWkjlUeQdWFV+x+symvQt8SVU6I8xSbHqyF4aipRB++AJDLgI361TCYrtz
|
||||
vOUpyw2yjdpVDRinAt6ajFBfPOYjRrVp8p0kgRAAAAAwEAAQAAAQASF3Oj6Y00ggGbAKGu
|
||||
RbttsZ/NJf4y10J/6EA3wtPkKnD6tEenrPstdSWQYVhaXMr2ziNCblP2Rytet8RoCMwI9l
|
||||
HLIWty8ZJTSfhAn5GlHc1QVHleLSVRQly9JFE0qfGskvWueAChEGbJuolVOAV+CGgdDGu2
|
||||
guT4x414y4biwsjR0K2z9eJS8rrMOlXHs35ZDC+Hqzvjgoum3hJx6NZzJLV3+MJWiYSX4J
|
||||
5+2zQhNW4anXeuFUzqdLlUYCs95Djr26699xu2RcpKAvjCEU2sZKRnK7j7nUXS4sBy4fEJ
|
||||
+UTJfutkZ6dXZjTe9eSHBsNbehQERu4h31mxFeeLLInNAAAAgB5Kj6NZ5rtJcTBnwWuBg0
|
||||
Vc1YVo03vx3DC7F2HzqDp0WZ9o1jNtXeI1ptrEHgWxtxADeTEaJ25sViXZjf2O5wSDreu3
|
||||
UlXhaLKQvwCQ3yRk/JvDuuKOCmRDpn3VrP+zevbwRIto9V0NHNPwX70LmibBI7W0N3qeFI
|
||||
ul/GW1M+JvAAAAgQDy2CAp/7YZ5ZGz7clvGBtbP+mmkR9U4U/OH9dS0q8ja4y8SVZFYKip
|
||||
AcPcFUCkSuuMq1xs38zh6RPApACE79SHbCmOlQnbRcR4ymEZAlU+tAxZ2SCV0TPE0D8Knd
|
||||
+OUrXZTmdjxRVJYiKWabgivXw/eKdOx19LhdSt1eqdWQWztQAAAIEAtZYDrUcuuFZ3pjIQ
|
||||
uBOhlxRLwxzaHI/8y+hQYEOuObKZ9It7gua2HL3mMqY+LlOYRfXJ8bRRpHIfYpfBepzazY
|
||||
tKvjXMpTUL868BuAX3c8CPMdlIg694nyDmQFOCAXDPkNm3F6GVoMaieFtLtmhbuIOXjtre
|
||||
kbciQMlWhijUNG0AAAANcHJvZF9qdW1wX2tleQECAwQFBg==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user