1v4mp1r3/async-port-scanner-lab
GitHub: 1v4mp1r3/async-port-scanner-lab
使用 Go 编写的授权实验室 TCP 端口扫描器,内置白名单安全防护、速率限制与报告生成功能。
Stars: 0 | Forks: 0
# 异步端口扫描器实验
`labscan` 是一个使用 Go 编写的实验室授权 TCP connect 扫描器。它可以规划目标、执行白名单限制、限制并发和连接速率、根据需要获取被动 banner,并生成 JSON/HTML 报告。
该项目在不使用 Python 的情况下实现了 Notion 规范 **"Асинхронный Port Scanner для лабораторий"**。
## 功能
- 支持 IP、主机名和 CIDR 的 TCP connect 扫描。
- 内置针对回环地址和 RFC1918 实验范围的安全白名单。
- 提供 `--allow-cidr` 参数,用于支持自身拥有的外部网段。
- 全局速率控制与 worker-pool 并发数限制。
- 可选的 banner 获取功能,具有有限的读取大小和超时限制。
- 生成 JSON 和静态 HTML 报告。
- 提供包含本地服务的 Docker Compose 实验环境。
- 包含针对解析器、安全防护、目标规划、扫描和报告的单元测试。
## 安装
```
go build -o bin/labscan.exe ./cmd/labscan
```
## 快速开始
试运行计划:
```
go run ./cmd/labscan --target 127.0.0.1 --ports 80,443,8000-8010 --dry-run
```
扫描本地服务并生成报告:
```
go run ./cmd/labscan `
--target 127.0.0.1 `
--ports 80,443,8000-8010 `
--concurrency 64 `
--rate 200 `
--timeout 800ms `
--banner `
--json scan-report.json `
--html scan-report.html
```
扫描自身拥有的外部网段:
```
go run ./cmd/labscan `
--target 203.0.113.10 `
--allow-cidr 203.0.113.0/24 `
--ports 80,443 `
--json scan-report.json
```
## CLI
```
--target IP, hostname, or CIDR. Repeat or comma-separate values.
--targets-file File with one target per line.
--ports Ports expression, e.g. 22,80,8000-8010.
--concurrency Maximum concurrent TCP connection attempts.
--rate Global connection attempts per second. 0 disables pacing.
--timeout TCP connect timeout.
--banner Read passive banners from open services.
--probe Optional probe bytes before banner read.
--json JSON report path.
--html HTML report path.
--allow-cidr Additional authorized CIDR.
--max-hosts Maximum hosts expanded from CIDR targets.
--dry-run Print authorized plan without scanning.
```
## 安全范围
请仅针对您拥有或获得明确授权测试的系统使用此工具。默认情况下,`labscan` 仅允许扫描回环地址和私有实验网段:
- `127.0.0.0/8`
- `::1/128`
- `10.0.0.0/8`
- `172.16.0.0/12`
- `192.168.0.0/16`
公共目标必须通过明确的 `--allow-cidr` 指定,从而确保工作流是有意为之且可审计的。
## 开发
```
go test ./...
go test -bench=. ./internal/scanner
go build ./cmd/labscan
```
## 项目结构
```
cmd/labscan CLI entry point
internal/ports Port expression parser
internal/safety Allowlist guardrails
internal/targets Target resolver and CIDR planner
internal/scanner TCP scanner and result classifier
internal/report JSON/HTML report writers
examples/ Docker Compose lab
docs/ Architecture and demo notes
```
标签:Docker Compose, EVTX分析, Go, Ruby工具, TCP协议, 异步并发, 插件系统, 数据统计, 日志审计, 版权保护, 端口扫描, 网络扫描器, 请求拦截