root3315/net-sec-scanner

GitHub: root3315/net-sec-scanner

一款使用 Go 编写的快速网络安全扫描 CLI,专注于端口扫描、服务检测与基础漏洞评估,支持多种报告输出。

Stars: 0 | Forks: 0

# net-sec-scanner 一个用 Go 编写的快速网络安全扫描 CLI,用于漏洞评估和端口扫描。 ## 功能 - **TCP 端口扫描**:可配置超时时间的快速并发端口扫描 - **服务检测**:识别开放端口上运行的服务 - **漏洞检查**:对常见服务进行基础漏洞评估 - **多种输出格式**:生成文本、JSON 和 CSV 报告 - **灵活的端口选择**:扫描特定端口、端口范围或常用端口 - **进度跟踪**:详细模式下的实时扫描进度 - **信号处理**:对中断信号进行优雅关闭 ## 安装 ### 从源码编译 ``` git clone https://github.com/yourusername/net-sec-scanner.git cd net-sec-scanner go build -o net-sec-scanner . ``` ### 使用 Go Install ``` go install github.com/yourusername/net-sec-scanner@latest ``` ### 先决条件 - Go 1.21 或更高版本 - 访问目标主机的网络权限 ## 用法 ### 基本扫描 扫描目标主机的常用端口(1-1024): ``` ./net-sec-scanner -host 192.168.1.1 ``` ### 指定端口 扫描特定端口: ``` ./net-sec-scanner -host 192.168.1.1 -ports 22,80,443,8080 ``` ### 端口范围 扫描端口范围: ``` ./net-sec-scanner -host 192.168.1.1 -range 1-1000 ``` ### 服务检测 在开放端口上启用服务检测: ``` ./net-sec-scanner -host 192.168.1.1 -service-detect ``` ### 漏洞检查 检查已知漏洞: ``` ./net-sec-scanner -host 192.168.1.1 -vuln-check ``` ### 输出格式 生成 JSON 报告: ``` ./net-sec-scanner -host 192.168.1.1 -format json -output report.json ``` 生成 CSV 报告: ``` ./net-sec-scanner -host 192.168.1.1 -format csv -output report.csv ``` ### 详细模式 启用详细输出: ``` ./net-sec-scanner -host 192.168.1.1 -verbose ``` ### 完整示例 ``` ./net-sec-scanner -host example.com -range 1-1024 -service-detect -vuln-check -format json -output scan_results.json -verbose ``` ## 命令行选项 | 选项 | 描述 | 默认值 | |------|------|--------| | `-host` | 目标主机 IP 地址或主机名(必需) | - | | `-ports` | 要扫描的端口列表(逗号分隔) | - | | `-range` | 要扫描的端口范围(例如 1-1000) | 1-1024 | | `-timeout` | 连接超时(秒) | 2 | | `-concurrency` | 并发连接数 | 50 | | `-format` | 输出格式:text、json、csv | text | | `-output` | 输出文件路径(默认:stdout) | stdout | | `-verbose` | 启用详细输出 | false | | `-service-detect` | 检测开放端口上的服务 | false | | `-vuln-check` | 检查已知漏洞 | false | | `-version` | 显示版本信息 | false | ## 工作原理 ### 端口扫描 扫描器使用 TCP 连接扫描来确定端口状态: 1. **开放**:TCP 连接成功 2. **关闭**:连接被拒绝(收到 RST 包) 3. **过滤**:连接超时(无响应) ### 服务检测 服务检测通过以下方式工作: 1. 检查知名端口分配(IANA) 2. 尝试在开放端口上进行横幅抓取 3. 与已知服务特征进行模式匹配 ### 漏洞评估 漏洞检查器识别常见的安全问题: - 明文协议(FTP、Telnet、POP3) - 暴露的数据库端口(MySQL、PostgreSQL、MongoDB、Redis) - 潜在易受攻击的服务(SMB、NetBIOS) ## 项目结构 ``` net-sec-scanner/ ├── main.go # Main entry point and CLI handling ├── go.mod # Go module definition ├── go.sum # Dependency checksums ├── scanner/ │ ├── scanner.go # Core scanning logic │ └── port.go # Port utilities and service detection ├── report/ │ └── report.go # Report generation (text, JSON, CSV) ├── tests/ │ └── scanner_test.go # Unit tests └── README.md # Documentation ``` ## 运行测试 ``` go test ./... -v ``` ## 示例 ### 扫描 Web 服务器 ``` $ ./net-sec-scanner -host scanme.nmap.org -ports 22,80,443 -service-detect ======================================== NETWORK SECURITY SCAN REPORT ======================================== Target: scanme.nmap.org (45.33.32.156) Scan Time: 2024-01-15 10:30:45 ---------------------------------------- SUMMARY ---------------------------------------- Open Ports: 2 Closed Ports: 1 Filtered Ports: 0 Vulnerabilities: 0 ---------------------------------------- OPEN PORTS ---------------------------------------- PORT STATUS SERVICE LATENCY ------------------------------------------------------- 22 open ssh 45ms 80 open http 52ms ``` ### JSON 输出 ``` $ ./net-sec-scanner -host 192.168.1.1 -ports 22,80 -format json { "target": "192.168.1.1", "target_ip": "192.168.1.1", "scan_time": "2024-01-15T10:30:45Z", "open_ports": [ {"port": 22, "status": "open", "service": "ssh", "latency": "45ms"}, {"port": 80, "status": "open", "service": "http", "latency": "52ms"} ], "summary": { "total_open": 2, "total_closed": 0, "total_filtered": 0 } } ``` ## 安全注意事项 - 仅扫描您拥有或明确获得许可的系统 - 未经授权的扫描可能违反法律和服务条款 - 请负责任且合乎道德地使用 ## 许可证 MIT 许可证 - 详情见 LICENSE 文件。 ## 贡献 1. 叉取仓库 2. 创建功能分支 3. 提交您的更改 4. 推送到该分支 5. 创建拉取请求 ## 支持 如有问题或功能请求,请在 GitHub 仓库中打开一个议题。
标签:AES-256, CSV, EVTX分析, Go语言, JSON, Qt框架, TCP扫描, 中断处理, 二进制发布, 云存储安全, 信号处理, 反取证, 安全扫描, 安全评估, 并发扫描, 开源工具, 数据统计, 文本输出, 日志审计, 时序注入, 服务发现, 服务识别, 正则表达式, 漏洞评估, 灵活配置, 程序破解, 端口扫描, 网络安全, 网络扫描, 网络防护, 计算机应急响应小组, 隐私保护