SpiderGh0st/Security-Audit-Tool
GitHub: SpiderGh0st/Security-Audit-Tool
一款模块化网络安全审计工具,内置 69 个扫描器,覆盖 Windows、TLS、Web、远程访问、基础设施及打印机等目标的配置与漏洞检测,并提供浏览器 GUI 与终端双界面。
Stars: 1 | Forks: 0
# 安全审计工具
一款模块化网络安全审计工具,包含 69 个扫描器、实时浏览器 GUI 和终端控制台 —— 覆盖 Windows、TLS、Web、远程访问、基础设施及打印机目标。请仅在您拥有或获得明确授权测试的系统上使用。
## 快速开始
```
python main.py
```

运行不带参数的主脚本将打开图形界面。它支持搜索/类别过滤、多选、目标文件、实时扫描器输出、耗时进度、取消操作以及直接访问报告目录。选择 **Run all scanners** 可将所有扫描器作为一个批次逐一执行。
使用 `python audit_tool.py menu` 进入带编号的终端界面,或使用 `python audit_tool.py gui` 明确打开 GUI。在扫描器运行期间,终端启动器还会打印耗时心跳消息。在终端菜单中输入 `A` 即可运行所有扫描器。
对于命令行自动化,请使用:
```
python audit_tool.py run-all -- 192.0.2.10
python audit_tool.py run-all -- -f targets.txt
```

启动器特意排除了 `DNS_Zone_Transfer_Scanner.py`,因为 AXFR 需要域名;同时也排除了 `read_tftp.py`,因为它需要明确的远程文件名。这两者仍作为独立工具保留在 `scanners/` 中,但未包含在仅限 IP 的 GUI、菜单、目录或批量运行中。
菜单将每个扫描器标记为:
- `VERIFY` 表示直接的协议/配置证据;
- `ASSESS` 表示版本、构建、CVE 和生命周期候选;
- `DISCOVER` 表示仅清单检查。
在将结果用于正式报告之前,请参阅 `ACCURACY_POLICY.md`。版本和 banner 匹配特意不作为已确认的漏洞呈现。
运行所有回归测试:
```
python -m unittest discover -s tests -v
```
### Active Directory Kerbrute 扫描器
从其官方发布页面安装 Kerbrute,并将其放置在 `PATH` 中、扫描器旁,或通过 `--kerbrute PATH` 指定路径:
[github.com/ropnop/kerbrute/releases](https://github.com/ropnop/kerbrute/releases)。
```
python main.py
# 选择 ActiveDirectoryUserEnumerationScanner,然后输入:
192.0.2.10
```
该扫描器会自动发现 AD 域,并使用内置的保守候选列表运行 Kerbrute `userenum`。如需更广泛的授权列表:
```
python audit_tool.py run activedirectoryuserenumerationscanner -- 192.0.2.0/24 --users usernames.txt
```
命令行界面依然可用:
```
python audit_tool.py validate
python audit_tool.py doctor
python audit_tool.py list
python audit_tool.py info smbsigningchecker
python audit_tool.py run smbsigningchecker -- 192.0.2.10 --no-color
```
有关最新的验证结果以及 Windows 测试主机上不可用的依赖项,请参阅 `TEST_REPORT.md`。
`--` 之后的参数将被验证,然后传递给所选的扫描器。
默认情况下,每次运行都会在 `reports/` 下生成一个带时间戳的文件夹。
GUI 和启动器仅接受单个字面意义的 IPv4/IPv6 地址或 CIDR 子网。域名、URL 和 `host:port` 值将被拒绝。对于多个目标,请结合 `-f` 使用一个 UTF-8 文本文件,每行包含一个 IPv4 或 IPv6 地址。空行和 `#` 注释将被忽略。
```
python audit_tool.py run sweet32nmapscanner -- 192.0.2.10
python audit_tool.py run tlsdetector -- 192.0.2.0/28
python audit_tool.py run port1801openscanner -- 2001:db8::10
```
格式错误的目标、域名、URL、`host:port` 值、混合的直接/文件输入,以及 IP 列表文件中的非 IP 条目,都会在扫描器启动前被拒绝。
```
python audit_tool.py run tlsdetector -- -f targets.txt --network-name "Authorized Network"
python audit_tool.py run rc4_nmap_scanner -- 192.0.2.0/24 --no-color
```
使用 `info` 查看原始扫描器的完整参数:
```
python audit_tool.py info tlsdetector
```
## 依赖项
启动器仅使用 Python 标准库。单个扫描器可能需要 Nmap、OpenSSL、Java/Javac、smbclient、smbmap 或 showmount 等工具。
运行 `python audit_tool.py doctor` 进行本地可用性检查。
`Java_JMX_No_Authentication_Scanner.py` 会在运行时将包含的 `scanners/JmxReadOnlyProbe.java` 辅助程序编译到临时目录中。
只有 TFTP 辅助程序需要 Python 包:
```
python -m pip install -r requirements.txt
```
## 已执行的清理工作
- 移除了带有客户品牌的默认标签。
- 将内部/私有 IP 示例替换为 RFC 5737 文档范围。
- 重构了硬编码的 TFTP 下载器,要求明确指定主机和文件。
- 用兼容性启动器替换了完全重复的 JMX 实现。
- 添加了语法、重复项和客户标签验证。
- 在 `audit_tool.py` 中集中了扫描器发现、帮助、执行、报告目录和依赖项检查。
## 目录结构
```
security-audit-tool/
|-- audit_tool.py
|-- README.md
|-- requirements.txt
|-- reports/
`-- scanners/
|-- Acme_Thttpd_Scanner.py
|-- ActiveDirectoryUserEnumerationScanner.py
|-- ...
|-- TLSDetector.py
`-- UnsupportedWindowsScanner.py
```
## 所有扫描器
以下是安全审计工具中包含的所有 69 个扫描器的列表,按其各自的类别进行整理:
### WINDOWS
- ActiveDirectoryUserEnumerationScanner - Active Directory 用户枚举;
- AnonSmbShareChecker - 匿名 SMB 共享检查器;
- BlueKeepStatusScanner - BlueKeep 漏洞扫描器;
- KerberosPort88Scanner - Kerberos 端口 88 扫描器;
- MS17-010Scanner - EternalBlue (MS17-010) 扫描器;
- MsmqPortScanner - MSMQ 端口扫描器;
- MsmqRceCve202321554Scanner - QueueJumper MSMQ RCE (CVE-2023-21554);
- RDP_Weak_Encryption_Scanner - RDP 弱加密扫描器;
- RdpMitmScanner - RDP MiTM 漏洞扫描器;
- RdpVulnChecker - 常规 RDP 漏洞检查器;
- SMBPasswordEncryptionScanner - SMB 密码加密扫描器;
- SMBSigningChecker - SMB 签名强制检查器;
- SMBv1Checker - SMBv1 启用检查器;
- UnsupportedWindowsScanner - 不受支持/已停止维护的 Windows OS 扫描器;
### TLS
- deprecated_tls_scan - 已废弃的 TLS/SSL 版本扫描器;
- OpenSSL_CCS_MiTM_Scanner - OpenSSL CCS 注入 (CVE-2014-0224);
- RC4_Nmap_Scanner - RC4 密码套件扫描器;
- Sweet32NmapScanner - Sweet32 (CVE-2016-2183) 扫描器;
- TLSDetector - 常规 TLS 配置检测器;
### WEB
- Acme_Thttpd_Scanner - Acme THTTPD 扫描器;
- ElasticSearch_Unauth_Scanner - Elasticsearch 未授权访问;
- Git_Exposure_Scanner - 暴露的 .git 目录扫描器;
- GsoapVersionChecker - gSOAP 版本漏洞检查器;
- Http_Server_Scanner - 常规 HTTP 服务器信息扫描器;
- Jenkins_Unauth_Scanner - Jenkins 未授权访问;
- Kibana_Unauth_Scanner - Kibana 未授权访问;
- Oracle_WebLogic_Unsupported_Version_Scanner - 不受支持的 Oracle WebLogic;
- Outdated_IIS_Scanner - 过时的 Microsoft IIS 扫描器;
- Outdated_Nginx_Scanner - 过时的 Nginx 扫描器;
- Solr_Unauth_Scanner - Apache Solr 未授权访问;
- TomcatVulnChecker - Apache Tomcat 漏洞检查器;
- Waf_Detector_Scanner - Web Application Firewall (WAF) 检测器;
### REMOTE-ACCESS
- FTP_Scanner - FTP 服务器配置与匿名访问;
- OutdatedVulnerableSshScanner - 过时与存在漏洞的 SSH 版本;
- Rsync_Unauth_Scanner - Rsync 未授权访问;
- SMTP_Open_Relay_Scanner - SMTP 开放中继配置;
- SSH_Terrapin_Scanner - Terrapin 攻击 (CVE-2023-48795);
- SSH_Weak_Algo_Scanner - SSH 弱算法与密码;
- Unauthenticated_Telnet_Scanner - Telnet 未授权访问;
- Unencrypted_Telnet_Scanner - 未加密的 Telnet 流量;
- VNC_Unauth_Scanner - VNC 未授权访问;
### INFRASTRUCTURE
- CouchDB_Unauth_Scanner - CouchDB 未授权访问;
- DNS_Zone_Transfer_Scanner - DNS 区域传送 (AXFR) 暴露;
- Docker_API_Scanner - 暴露的 Docker API 扫描器;
- EsxiVulnScanner - VMware ESXi 漏洞扫描器;
- Hadoop_Unauth_Scanner - Hadoop 未授权访问;
- IPMI_Cipher_Zero_Scanner - IPMI Cipher Zero 认证绕过;
- Java_JMX_Agent_Port_Scanner - Java JMX 代理暴露端口;
- Java_JMX_No_Authentication_Scanner - Java JMX 未授权访问;
- Java_RMiJmx_Exposure_Scanner - Java RMI/JMX 暴露;
- Kubernetes_API_Scanner - 暴露的 Kubernetes API 扫描器;
- Memcached_Unauthenticated_Scanner - Memcached 未授权访问;
- MongoBleedScanner - MongoBleed 漏洞扫描器;
- NFS_Scanner - NFS 共享暴露扫描器;
- RabbitMQ_Unauth_Scanner - RabbitMQ 未授权访问;
- Redis_Unauthenticated_Scanner - Redis 未授权访问;
- SNMP_Default_Community_Scanner - SNMP 默认 Community String (public/private);
- SqlVersionVulnChecker - SQL Server 版本与漏洞检查器;
- UnauthenticatedIscsiLoginScanner - iSCSI 未授权登录;
- Zookeeper_Unauth_Scanner - Apache ZooKeeper 未授权访问;
### PRINTER
- Outdated_HP_Laser_Jet_Scanner - 过时的 HP LaserJet 固件;
- PJL_Scanner - Printer Job Language (PJL) 暴露;
- PrinterUnauthenticatedRshScanner - 打印机未授权 RSH;
- PrinterWebInterfaceScanner - 打印机 Web 界面暴露;
- UnauthenticatedPrinterWebInterfaceScanner - 未授权的打印机 Web 界面;
### OTHER
- Cookie_Security_Scanner - 不安全的 HTTP Cookie 配置;
- OutdatedDebianScanner - 过时的 Debian OS 扫描器;
- Port1801OpenScanner - 开放端口 1801 (MSMQ) 检测器;
- Security_Headers_Scanner - 缺失的 HTTP 安全标头扫描器;
标签:CTI, JS文件枚举, Python, 安全测试工具, 插件系统, 无后门, 网络安全, 逆向工具, 隐私保护