moaaz01/nightowl
GitHub: moaaz01/nightowl
NightOwl 是一个结合静态与动态分析的 Android APK 安全检测器,专注于发现密钥、权限漏洞并提供合规评分。
Stars: 0 | Forks: 0
# 🦉 NightOwl
### 高级 Android APK 安全分析器
**静态 + 动态分析 · 兼容 OWASP MSTG · 代理就绪**
[](https://github.com/moaaz01/nightowl)
[](https://python.org)
[](LICENSE)
[](tests/)
**NightOwl** 是一个全面的 Android APK 安全分析器,执行深度静态分析(涵盖 9 个部分)并集成动态分析工具(Frida、Objection)。专为安全研究人员、渗透测试人员和 AI 代理设计。
## ✨ 关键特性
| 功能 | 描述 |
|---------|-------------|
| **9 部分分析** | 信息、权限、URL、密钥、架构、漏洞、清单、API、反编译 |
| **原生 .so 扫描** | 从 `libapp.so`、`libflutter.so` 及其他原生库提取字符串(支持 Flutter/React Native) |
| **55+ 密钥模式** | AWS、GCP、Stripe、PayPal、Telegram、JWT、Firebase、SSH 密钥等 |
| **香农熵过滤** | 真实熵计算以消除二进制噪声导致的误报 |
| **安全评分** | 带字母等级(A+ → F)的加权类别评分,兼容 OWASP 风险等级 |
| **深度链接分析** | 检测未经验证的 App Links、HTTP 深链接及 autoVerify 状态 |
| **证书检查** | 签名证书详情、过期警告、密钥强度检查 |
| **HTML + MD + JSON 报告** | 交互式标签页 HTML、Markdown 及机器可读 JSON 输出 |
| **Frida 脚本** | 4 个即用脚本:API 拦截、SSL 绕过、内存转储、钩子 |
| **批量扫描** | 一次性扫描整个目录中的 APK 文件 |
| **代理集成** | 完整的 SKILL.md 用于 AI 代理使用——结构化 JSON 输出、jq 示例 |
## 📦 安装
### 快速安装
```
git clone https://github.com/moaaz01/nightowl.git
cd nightowl
bash scripts/install-ultimate.sh
source env.sh
```
### 手动设置
```
# 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate
# 安装 Python 依赖
pip install -r requirements.txt
# 安装二进制工具(jadx、dex2jar、radare2)
bash scripts/install-ultimate.sh
```
### 依赖项
- **Python 3.12+**
- **Java JDK 8+**(用于 jadx/apktool)
- **Android SDK**(adb)
- 请参阅 [requirements.txt](requirements.txt) 获取 Python 包
## 🚀 用法
### 静态分析命令
```
# 完整的 9 部分分析(推荐)
nightowl full app.apk
# 独立部分
nightowl info app.apk # Basic info & hashes
nightowl perms app.apk # Permission risk analysis
nightowl urls app.apk # URLs, endpoints, servers
nightowl secrets app.apk # API keys, tokens, passwords
nightowl arch app.apk # Frameworks & libraries
nightowl vulns app.apk # Security score & vulnerabilities
nightowl manifest app.apk # Components & activities
nightowl apis app.apk # Fast API/endpoint extraction
nightowl decompile app.apk # Full decompile: jadx + apktool + native
# 批量扫描 targets/ 目录中的所有 APK
nightowl scan
# 使用指南
nightowl guide
```
### 输出标志
```
nightowl full app.apk --json # JSON only (for scripting & agents)
nightowl full app.apk --save # Save HTML + MD + JSON reports
nightowl full app.apk --lang ar # Arabic report translations
nightowl full app.apk --report-dir ./output # Custom output directory
```
### 动态分析(需要已 root 的设备)
```
# 1. 加载环境
source env.sh
# 2. 将 Frida 服务器部署到设备
frida-deploy
# 3. 拦截 API 流量 + SSL 绕过
frida-intercept com.app -l frida-scripts/api-interceptor.js
# 4. 专用 SSL 固定绕过
frida -f com.app -l frida-scripts/ssl-bypass.js --no-pause
# 5. 内存分析与密钥扫描
frida -f com.app -l frida-scripts/memory-dump.js --no-pause
# 6. 交互式 objection Shell
obj com.app
```
## 📊 分析章节
| # | 章节 | 检测内容 |
|---|---------|----------------|
| 1 | **信息** | 包名、版本、SDK 级别、哈希(MD5/SHA1/SHA256)、文件大小 |
| 2 | **权限** | 危险/普通权限及其风险等级和描述 |
| 3 | **URL** | 所有 URL、API 端点、服务器域名、IP地址 |
| 4 | **密钥** | 55+ 模式:API 密钥、令牌、密码、私钥、云凭证 |
| 5 | **架构** | 框架(Flutter、React Native、Unity)、原生库、打包器检测 |
| 6 | **漏洞** | 带类别权重的安全评分、调试标志、启用备份、明文流量 |
| 7 | **清单** | 活动、服务、接收器、提供者、导出组件、深链接 |
| 8 | **API** | Retrofit/OkHttp/Volley 端点、URL 路径模式、HTTP 方法 |
| 9 | **反编译** | jadx 源码 + apktool 资源 + 原生 .so 字符串提取 |
## 🔐 密钥检测模式
NightOwl 检测 **55+ 密钥模式**,涵盖以下类别:
| 类别 | 示例 |
|----------|---------|
| **云** | AWS 访问密钥(`AKIA...`)、GCP API 密钥、Azure 凭证 |
| **支付** | Stripe(`sk_live_`、`pk_live_`)、PayPal、Square |
| **消息** | Telegram 机器人令牌、Discord 机器人令牌、Slack Webhook |
| **认证** | JWT(`eyJ...`)、Bearer 令牌、基本认证 |
| **数据库** | PostgreSQL/MySQL/MongoDB URI、Redis URL |
| **DevOps** | GitHub 令牌(`ghp_`)、GitLab 令牌、Heroku API 密钥 |
| **社交** | Twitter/Facebook/LinkedIn API 密钥 |
| **SSH** | 私钥(`-----BEGIN RSA`)、SSH 配置模式 |
| **移动** | Firebase(`AIzaSy...`)、SendGrid、Twilio SID |
每个模式均包含 **描述**、**风险等级**(高危/危急/中危/低危)以及 **熵验证** 以减少误报。
## 📁 项目结构
```
nightowl/
├── nightowl.py # Main analyzer (single-file, portable)
├── env.sh # Environment setup (auto-generated)
├── requirements.txt # Python dependencies
├── requirements-python.txt # Detailed Python packages (pinned)
├── LICENSE # MIT License
├── AGENTS.md # AI agent integration guide
├── README.md # This file
├── frida-scripts/
│ ├── api-interceptor.js # HTTP/HTTPS traffic capture
│ ├── ssl-bypass.js # SSL pinning bypass
│ ├── memory-dump.js # Memory scanning & secrets
│ └── hooks.js # Crypto, auth, root detection hooks
├── androguard-scripts/
│ ├── analyze.py # Androguard CLI wrapper
│ ├── extract-strings.py # String extraction
│ └── find-permissions.py # Permission finder
├── scripts/
│ ├── install-ultimate.sh # Full dependency installer
│ ├── install-all.sh # Alternative installer
│ ├── smart-update.sh # Incremental update script
│ └── network-setup.sh # Network/proxy configuration
├── skills/nightowl/
│ └── SKILL.md # AI agent skill definition
├── tests/
│ ├── test_nightowl.py # 49 unit tests
│ ├── create_test_apk.py # Test APK generator
│ └── __init__.py
└── tools/ # Binary tools (installed by scripts)
├── jadx/ # Java decompiler
├── dex2jar/ # DEX to JAR converter
└── ghidra/ # Reverse engineering suite
```
## 🤖 代理集成
NightOwl 专为代理驱动的安全分析设计。[SKILL.md](skills/nightowl/SKILL.md) 和 [AGENTS.md](AGENTS.md) 提供完整的集成指南。
```
# JSON 输出(供代理使用)
nightowl full app.apk --json
# 使用 jq 解析
nightowl secrets app.apk --json | jq '.secrets.critical[]'
# 批量处理
nightowl scan --json | jq '.[] | select(.grade == "F")'
```
## 🧪 测试
```
# 运行全部 49 个测试
python -m pytest tests/ -v
# 或直接执行
python tests/test_nightowl.py
```
测试涵盖:验证、密钥模式、分析器逻辑、评分、报告生成及常量。
## 📜 许可证
[MIT 许可证](LICENSE) —— 仅限授权的安全测试与研究使用。
**🦉 专为追求深度的安全研究人员打造。**
标签:AI代理集成, Android安全分析, API安全, APK动态分析, APK目录扫描, APK静态分析, AWS密钥, DeepSeek, Docker支持, Firebase, Flutter, Frida, GCP密钥, HOOK, HTML报告, JSON输出, JS文件枚举, JWT, Markdown报告, Native so, Objection, OWASP MSTG, PayPal, Python安全工具, Ruby on Rails, .so字符串提取, SSH密钥, SSL绕过, Stripe, Telegram, 云资产清单, 信息泄露检测, 内存转储, 安全评分, 无服务器架构, 权限分析, 深度链接检测, 熵值分析, 版本4.0, 移动应用安全, 证书分析, 逆向工具, 逆向工程