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 ``` ![截图 1](https://static.pigsec.cn/wp-content/uploads/repos/cas/10/103434b39368869983b1a15522610b35593bb903bc3c327ebde340b505bd1bc1.png) 运行不带参数的主脚本将打开图形界面。它支持搜索/类别过滤、多选、目标文件、实时扫描器输出、耗时进度、取消操作以及直接访问报告目录。选择 **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 ``` ![截图 2](https://static.pigsec.cn/wp-content/uploads/repos/cas/84/843a7b98fcdb61e6d02a6927b82d6916de07d213680f46e7fd28e3c743e4ab57.png) 启动器特意排除了 `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, 安全测试工具, 插件系统, 无后门, 网络安全, 逆向工具, 隐私保护