nikhilkumar0102/SentryCLI
GitHub: nikhilkumar0102/SentryCLI
一款基于 Bash 的模块化安全工具,将日志分析、侦察、事件响应与威胁情报集成到轻量级 SOC 模拟中。
Stars: 0 | Forks: 0
# SentryCLI 🛡️
**模块化安全运营与渗透测试工具包**
一个生产环境风格的、基于 Bash 的 CLI 工具,将轻量级安全运营中心(SOC)与核心渗透测试工作流程集成 —— 全部通过一个单一、可扩展的命令行界面完成。
## 架构
```
sentrycli/
├── main.sh ← Central CLI controller & dispatcher
├── modules/
│ ├── logintel.sh ← Log analysis & brute-force detection
│ ├── recon.sh ← Reconnaissance & enumeration
│ ├── incident.sh ← Incident response & forensic triage
│ └── ipcheck.sh ← IP threat intelligence
├── utils/
│ ├── colors.sh ← Color-coded terminal output
│ └── logger.sh ← Centralized audit logging
├── config/
│ └── api_keys.conf ← API key storage (chmod 600)
└── reports/ ← Auto-generated timestamped reports
```
## 快速开始
```
# 克隆并进入项目
git clone
cd sentrycli
# 制作可执行文件
chmod +x main.sh modules/*.sh
# 运行交互式菜单
./main.sh --menu
# 或运行特定模块
./main.sh --module log
./main.sh --module recon --target scanme.nmap.org
./main.sh --module ir
./main.sh --module ipcheck --ip "8.8.8.8"
```
## 模块
### 1. 日志情报 (`--module log`)
解析认证与系统日志,检测:
- **暴力破解检测**(支持可配置阈值)
- **Top 攻击 IP**(带威胁严重等级)
- **无效用户名枚举**尝试
- **权限提升**(sudo 失败)
- **成功与失败**认证事件对比
- 将可疑 IP 导出,供关联引擎使用
```
./main.sh --module log
./main.sh --module log --log-file /var/log/auth.log
```
### 2. 侦察 (`--module recon`)
自动化目标枚举:
- **DNS 记录**(A、AAAA、MX、NS、TXT、SOA、反向解析)
- **WHOIS** 注册与所有权信息
- **端口扫描**(通过 nmap 进行服务识别)
- **HTTP/HTTPS 探测** — 服务器头、安全头、技术指纹识别
- **子域名发现** — 常见子域名爆破
- **高风险端口标记**(Telnet、SMB、RDP、Redis 等)
- **traceroute** 网络路径分析
```
./main.sh --module recon --target example.com
./main.sh --module recon --target 192.168.1.1
```
### 3. 事件响应 (`--module ir`)
实时取证排查 — 适合快速响应:
- 运行进程(标记可疑名称:netcat、meterpreter、xmrig 等)
- 活跃网络连接(标记非常用端口:4444、1337、31337 等)
- 已登录用户与登录历史
- 定时任务与 `rc.local` 持久化检查
- 最近修改的文件(尤其是 `/tmp`、`/dev/shm`)
- 打开的文件描述符(通过 `lsof`)
- 加载的内核模块
- 启动服务(systemd)
- 命令历史记录
- `/etc/passwd` 完整性 — UID 0 重复项
- SUID/SGID 二进制审计
```
sudo ./main.sh --module ir # sudo recommended for full data collection
```
### 4. IP 威胁情报 (`--module ipcheck`)
使用以下方式将 IP 分类为恶意或正常:
- **AbuseIPDB** — 置信度评分与滥用报告历史
- **VirusTotal** — 多引擎检测分析
- **GeoIP 查询** — 国家、ISP、代理/VPN/托管检测
- **Tor 出口节点** 检测
- **离线启发式**(未配置 API 密钥时)
```
./main.sh --module ipcheck --ip "1.2.3.4"
./main.sh --module ipcheck --ip "1.2.3.4, 5.6.7.8, 9.10.11.12"
```
## SIEM 关联引擎 (`--correlate`)
连接各模块以实现自动威胁关联 —— 模拟真实 SIEM 行为:
```
Log Intelligence → Extracts suspicious IPs from auth logs
↓
IP Threat Intel → Queries threat databases for each IP
↓
Correlation Report → Confirms attackers + generates firewall block commands
```
```
./main.sh --correlate
./main.sh --correlate --log-file /var/log/auth.log
```
该引擎会为所有确认恶意的 IP 生成 iptables/ufw 阻断命令。
## API 配置
在 `config/api_keys.conf` 中配置:
```
# AbuseIPDB — https://www.abuseipdb.com/register(免费:每天 1,000 次检查)
ABUSEIPDB_API_KEY="your_key_here"
# VirusTotal — https://www.virustotal.com/gui/join-us(免费:每天 500 次)
VIRUSTOTAL_API_KEY="your_key_here"
# 用于标记 IP 为恶意的威胁分数阈值(0-100)
ABUSEIPDB_THREAT_THRESHOLD=25
```
未配置 API 密钥时,工具将以 **离线模式** 运行,仅使用 GeoIP 与启发式检查。
## 报告
所有报告均带有时间戳并保存在 `reports/` 目录中:
| 报告文件 | 生成模块 |
|---|---|
| `logintel_YYYYMMDD_HHMMSS.txt` | 日志情报模块 |
| `recon__YYYYMMDD.txt` | 侦察模块 |
| `incident_response_YYYYMMDD.txt` | 事件响应模块 |
| `ipcheck_YYYYMMDD.txt` | IP 威胁情报模块 |
| `siem_correlation_YYYYMMDD.txt` | 关联引擎 |
| `sentrycli_audit.log` | 集中会话审计日志 |
| `nmap__YYYYMMDD.xml` | 原始 nmap XML 输出 |
## 先决条件
```
# Debian/Ubuntu
sudo apt install nmap whois dnsutils curl traceroute lsof
# RHEL/CentOS
sudo yum install nmap whois bind-utils curl traceroute lsof
```
该工具会在运行时检查可用组件,并在组件不可用时优雅跳过。
## CLI 参考
```
./main.sh [OPTIONS]
MODULE OPTIONS:
--module log Log Intelligence
--module recon Reconnaissance
--module ir Incident Response
--module ipcheck IP Threat Intel
--module all Run all modules
MODULE FLAGS:
--log-file PATH Specify log file (logintel)
--target HOST Target IP or domain (recon)
--ip LIST IPs for threat check (comma/space separated)
ADVANCED:
--correlate SIEM pipeline: log → ipcheck
--menu Interactive menu mode
--version Show version
--help Show help
```
## 实际使用场景
| 场景 | 命令 |
|---|---|
| 调查 SSH 暴力破解 | `./main.sh --module log --log-file /var/log/auth.log` |
| 渗透测试前侦察 | `./main.sh --module recon --target target.com` |
| 响应安全告警 | `sudo ./main.sh --module ir` |
| 检查攻击者 IP 是否已知恶意 | `./main.sh --module ipcheck --ip "x.x.x.x"` |
| 完整 SOC 扫描并生成阻断列表 | `./main.sh --correlate` |
## 安全注意事项
- 请使用 `chmod 600` 保护 `config/api_keys.conf`
- 将 `config/api_keys.conf` 和 `reports/` 添加到 `.gitignore`
- 事件响应模块仅执行只读数据收集 —— **不会修改任何系统状态**
- 对非自有系统进行侦察需获得明确授权
## 许可证
MIT 许可证 —— 请负责任地使用,仅对您被授权测试的系统使用。
标签:Bash, DNS枚举, HTTP工具, IP信誉, IP 地址批量处理, Shell脚本, SOC仿真, sudo失败审计, WHOIS查询, 侦察枚举, 免杀技术, 协议探测, 后渗透, 威胁情报, 安全运营中心, 应用安全, 开发者工具, 开源安全工具, 无线安全, 日志解析, 暴力破解检测, 模块化, 终端安全, 网络安全, 网络安全工具, 网络映射, 认证日志分析, 证书伪造, 逆向工程平台, 隐私保护