Jairoy2426/NULLHOUND
GitHub: Jairoy2426/NULLHOUND
一款基于 Python 和 Rich 构建的纯终端 Linux 漏洞扫描与安全配置审计工具,支持 CIS 基准对照及实时 CVE 查询。
Stars: 0 | Forks: 0
# 🛡️ NULLHOUND(自动化枚举与引导式智能扫描器)
[](https://www.python.org/)
[](LICENSE)
[](https://www.kernel.org/)
**NULLHOUND** 是一款专业的、仅限终端使用的 Linux 漏洞扫描程序和安全配置审计工具,使用 Python 编写。它旨在执行本地化检查,涵盖系统配置、网络暴露、文件系统权限、用户访问模式、内核设置以及运行中的服务,并对照 CIS Benchmarks 等强化标准进行审计。
### 💡 为什么开发此工具
我开发 **NULLHOUND** 是为了满足对 Linux 系统进行快速、并行且易于阅读的安全审计的需求。虽然像 Lynis 这样的工具非常出色,但我希望创建一个面向对象的 Python 实现,输出丰富、美观的终端界面和现代化的 HTML 报告,使安全态势评估既全面又具有视觉可访问性,显然我也想打造一个属于我自己的工具。
## 📸 截图
### 并行终端审计扫描

### CIS Benchmark 合规性审计

### 实时软件包 CVE 查询引擎

### 独立 HTML 安全报告仪表板

## 🚀 核心功能
* **100% 仅限终端且交互式**:利用 `rich` 实现面板、实时进度旋转图标、彩色表格和整洁的仪表板输出。
* **完全并行化**:线程执行模型可并行运行审计检查,并支持配置并发数。
* **稳健且异常安全**:处理缺失的二进制文件、权限拒绝错误和超时,且不会崩溃。
* **灵活的报告**:生成结构化的 **JSON**、纯文本可读的 **TXT** 以及高级独立 **HTML** 仪表板(内置深色模式)报告。
* **检查配置**:运行 `quick`、`standard` 或 `deep` 扫描,以控制检查深度和超时时间。
* **CIS 合规模式 (`--compliance cis`)**:将审计结果映射到互联网安全中心 (CIS) 控制措施,打印高保真合规矩阵。
* **实时软件包 CVE 查询 (`--cve-check`)**:自动扫描本地软件包并实时查询 OSV 和 NVD API,以检测漏洞 CVE。
* **适配 CI/CD Pipeline**:包含预定义的 GitHub Actions 工作流文件,可在标准 runner VM 中运行自动化安全审计并生成报告。
## 🛠️ 安装与设置
### 选项 1:软件包安装(推荐)
您可以将 NULLHOUND 作为本地软件包安装,它会自动将 `nullhound` 可执行文件链接到您的路径中:
```
git clone https://github.com/Jairoy2426/NULLHOUND.git
cd NULLHOUND
pip3 install .
```
安装完成后,即可从任何位置执行该工具:
```
sudo nullhound
```
### 选项 2:独立执行
1. **克隆或复制**仓库到您的目标 Linux 主机:
git clone https://github.com/Jairoy2426/NULLHOUND.git
cd NULLHOUND
2. 使用 pip **安装依赖项**:
pip3 install -r requirements.txt
3. **将入口文件设为可执行**:
chmod +x nullhound.py
## 📖 使用示例
由于某些安全审计命令(例如检查 `/etc/shadow`、解析网络接口绑定进程)需要 root 权限,因此强烈建议以 root 身份运行。
### 1. 标准审计扫描(所有模块)
使用标准深度在主机上运行默认的审计套件:
```
sudo ./nullhound.py
```
### 2. 高并发的指定模块
### 3. 生成 HTML 和 JSON 安全报告
生成交互式、带有深色模式样式的 HTML 仪表板以及结构化的 JSON 输出:
```
sudo ./nullhound.py --output report.html
sudo ./nullhound.py --output report.json
```
### 4. 深度配置,静默且纯文本模式(适用于 CI/CD pipeline)
静默运行深度配置扫描,过滤掉低于 HIGH 严重级别的所有内容,禁用颜色代码,并将输出重定向到文件:
```
sudo ./nullhound.py --profile deep --severity high --quiet --no-color > audit_output.txt
```
### 5. CIS 合规性审计
运行系统审计并将结果直接映射到 CIS Benchmark 控制措施:
```
sudo ./nullhound.py --compliance cis
```
### 6. 实时软件包 CVE 验证
向 OSV 和 NVD 实时查询已安装软件包的易受攻击版本:
```
sudo ./nullhound.py --cve-check
```
### 7. 在 Windows/WSL 终端上运行合规性审计并自动暂停
确保控制台在完成后保持打开状态:
```
python3 nullhound.py --compliance cis --pause
```
## 📊 对照表:NULLHOUND vs Lynis vs OpenVAS
| 功能 | **NULLHOUND** (自定义) | **Lynis** | **OpenVAS** |
| :--- | :--- | :--- | :--- |
| **审计重点** | 本地系统强化与配置审计 | 本地系统配置审计 | 远程网络漏洞扫描 |
| **安装** | 单目录,简单的 pip 依赖 | Shell 脚本,软件包管理器 | 笨重的服务设置,数据库,Redis |
| **执行速度** | 非常快(并行线程) | 快(顺序执行 Shell 脚本) | 慢(网络探测与端口扫描) |
| **报告 UI** | 高保真交互式 HTML/控制台 | 纯文本日志和报告文件 | Web UI,PDF,XML 报告 |
| **依赖项** | Python 3.8+,`rich`,`requests` | 无(posix shell) | GVM,Greenbone,外部数据库 |
| **自定义** | 面向对象的 Python 模块 | Shell 函数 / 自定义测试 | NASL 脚本(语法复杂) |
## 🛠️ 如何扩展 NULLHOUND(添加新模块)
NULLHOUND 的核心设计理念就是模块化。要添加新的扫描模块:
1. 在 `modules/` 下创建一个新文件(例如 `modules/my_module.py`)。
2. 继承 `BaseModule` 抽象基类,并实现所需的抽象属性和 `.run()` 方法:
from typing import List
from modules.base import BaseModule
from core.finding import Finding
class MyCustomModule(BaseModule):
@property
def name(self) -> str:
return "custom"
@property
def description(self) -> str:
return "Audits custom application security baselines"
def run(self, profile: str = "standard") -> List[Finding]:
findings = []
# Perform your checks here
# Use self.create_finding(...) to build findings
# Example check:
# if is_vulnerable:
# findings.append(self.create_finding(
# id_="AEG-CST-001",
# title="Custom Vulnerability Found",
# severity="MEDIUM",
# description="Detail about vulnerability.",
# evidence="Raw configuration setting",
# remediation="Step to fix the configuration",
# references=["https://example.com/reference"]
# ))
return findings
3. 在 `modules/__init__.py` 中注册该模块:
from .my_module import MyCustomModule
ALL_MODULES = {
# ... existing modules
"custom": MyCustomModule
}
## ⚖️ 道德使用免责声明
## 📄 许可证
该项目基于 [MIT 许可证](LICENSE) 授权。
标签:Python, 内存取证对抗, 无后门, 逆向工具, 配置核查