mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-23 03:31:53 +08:00
## 架构重构
- 全局变量消除,迁移至 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)
62 lines
1.9 KiB
Docker
62 lines
1.9 KiB
Docker
# 使用Ubuntu最新版本作为基础镜像
|
||
FROM ubuntu:latest
|
||
|
||
# 安装必要的软件包(SSH服务 + 常用渗透工具)
|
||
RUN apt-get update && apt-get install -y \
|
||
openssh-server \
|
||
telnet \
|
||
curl \
|
||
wget \
|
||
netcat-traditional \
|
||
net-tools \
|
||
iputils-ping \
|
||
dnsutils \
|
||
vim \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# 创建SSH所需的目录
|
||
RUN mkdir /var/run/sshd
|
||
|
||
# 允许root用户SSH登录并设置密码
|
||
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||
RUN echo 'root:Aa123456789' | chpasswd
|
||
|
||
# 创建多个弱密码用户(匹配fscan默认字典)
|
||
RUN useradd -m admin && echo 'admin:admin' | chpasswd && \
|
||
useradd -m test && echo 'test:123456' | chpasswd && \
|
||
useradd -m user && echo 'user:password' | chpasswd && \
|
||
echo 'root:root' | chpasswd
|
||
|
||
# 配置密钥认证用户(ubuntu用户已存在于Ubuntu镜像中)
|
||
RUN mkdir -p /home/ubuntu/.ssh && \
|
||
chmod 700 /home/ubuntu/.ssh
|
||
|
||
# 复制SSH测试密钥
|
||
COPY test_key.pub /home/ubuntu/.ssh/authorized_keys
|
||
COPY test_key_root.pub /root/.ssh/authorized_keys
|
||
|
||
# 设置密钥权限
|
||
RUN chmod 600 /home/ubuntu/.ssh/authorized_keys && \
|
||
chown -R ubuntu:ubuntu /home/ubuntu/.ssh && \
|
||
mkdir -p /root/.ssh && chmod 700 /root/.ssh && \
|
||
chmod 600 /root/.ssh/authorized_keys
|
||
|
||
# 下载并安装 frp 服务端 (v0.65.0)
|
||
RUN wget -q https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_linux_amd64.tar.gz && \
|
||
tar -xzf frp_0.65.0_linux_amd64.tar.gz && \
|
||
mv frp_0.65.0_linux_amd64/frps /usr/local/bin/frps && \
|
||
chmod +x /usr/local/bin/frps && \
|
||
rm -rf frp_0.65.0_linux_amd64*
|
||
|
||
# 创建 frp 配置目录
|
||
RUN mkdir -p /etc/frp
|
||
|
||
# 开放22端口(SSH)和7000端口(FRP)
|
||
EXPOSE 22 7000
|
||
|
||
# 复制并设置启动脚本
|
||
COPY entrypoint.sh /entrypoint.sh
|
||
RUN chmod +x /entrypoint.sh
|
||
|
||
# 使用启动脚本(自动修复SSH密钥权限)
|
||
ENTRYPOINT ["/entrypoint.sh"] |