AI-Powered SOC Platform for Threat Analysis, IOC Investigation & Email Forensics
CABTA is a comprehensive, local-first security analysis platform designed for SOC analysts, incident responders, and threat hunters. It features a modern web dashboard, 20+ threat intelligence sources, advanced malware analysis, email forensics, and AI-powered investigation with local LLM support via Ollama.
| Dashboard | Settings |
|---|---|
![]() |
![]() |
| File Analysis | Email Forensics |
|---|---|
![]() |
![]() |
| IOC Investigation | Email Analysis Result |
|---|---|
![]() |
![]() |
| Feature | Description |
|---|---|
| Web Dashboard | Modern dark-themed SOC dashboard with real-time stats, charts, and quick actions |
| Multi-Source Threat Intelligence | 20+ integrated sources: VirusTotal, Shodan, AbuseIPDB, AlienVault OTX, GreyNoise, and 15 free OSINT feeds |
| Advanced Malware Analysis | PE/ELF/Mach-O/APK/Office/PDF/Script/Archive analysis with deep inspection |
| Email Forensics | SPF/DKIM/DMARC validation, BEC detection, phishing scoring, relay chain analysis |
| IOC Investigation | IP, domain, URL, hash, email, CVE lookup across all TI sources with DGA and domain age detection |
| AI-Powered Analysis | Local LLM via Ollama for threat summarization and context-aware verdicts |
| Detection Rule Generation | Auto-generated KQL, Splunk SPL, Sigma, YARA, Snort, FortiMail, Proofpoint, Mimecast rules |
| Case Management | Track investigations, link analyses, add notes |
| STIX 2.1 Export | Export IOCs as STIX bundles with TLP marking |
| Feature | Description |
|---|---|
| Ransomware Detection | Crypto constant scanning, ransom note detection, Bitcoin/Onion extraction, VSS deletion detection |
| PE Deep Inspection | TLS callbacks, PDB path analysis, Rich header validation, resource analysis, entry point anomalies |
| Cobalt Strike Beacon Extraction | XOR brute-force decryption, TLV config parsing, C2 server extraction |
| Memory Forensics | Volatility 3 integration for process analysis, code injection, network connections |
| BEC Detection | Business Email Compromise: urgency/financial/impersonation patterns, auth failure correlation |
| Email Threat Indicators | Tracking pixels, HTML forms, URL shorteners, data URIs, callback phishing (BazarCall) |
| Text File Analysis | C2 config detection, credential indicators, encoded content analysis |
| Threat Actor Profiling | 20 APT/cybercrime group database with MITRE technique matching |
| APK Risk Scoring | Dangerous permission mapping, suspicious API detection, obfuscation analysis, MITRE Mobile ATT&CK |
| DGA Detection | 7-heuristic algorithm: entropy, consonant ratio, bigram/trigram frequency, dictionary matching |
| Domain Age Checking | WHOIS-based newly registered domain detection with risk scoring |
- Zero Cloud Dependency: All analysis runs locally with Ollama - no data leaves your network
- Analyst-Grade Output: Shows WHY something is malicious with detailed evidence and MITRE mapping
- Production-Grade Scoring: Multi-source weighted composite scoring with confidence levels
- Real-Time Investigation: Async operations for fast multi-source lookups
- 15 Free Intelligence Sources: Works without any API keys using free OSINT feeds
+--------------------------------------------------------------------+
| CABTA v2.0 |
+--------------------------------------------------------------------+
| |
| +------------------+ +------------------+ +------------------+ |
| | Web Dashboard | | Agent Chat | | REST API | |
| | (FastAPI + | | (AI-powered | | /api/analysis | |
| | Jinja2) | | investigation)| | /api/reports | |
| +--------+---------+ +--------+---------+ +--------+---------+ |
| | | | |
| +----------------------+----------------------+ |
| | |
| +---------------------------------------------------------------+ |
| | TOOLS LAYER | |
| | +--------------+ +--------------+ +------------------------+ | |
| | | Malware | | Email | | IOC Investigator | | |
| | | Analyzer | | Analyzer | | (IP/Domain/URL/Hash) | | |
| | +--------------+ +--------------+ +------------------------+ | |
| +---------------------------------------------------------------+ |
| | |
| +---------------------------------------------------------------+ |
| | ANALYZERS LAYER | |
| | +------+ +------+ +------+ +------+ +------+ +------+ | |
| | | PE | | ELF | |Office| | PDF | |Script| | APK | | |
| | +------+ +------+ +------+ +------+ +------+ +------+ | |
| | +------+ +------+ +------+ +------+ +------+ +------+ | |
| | |Ransom| |Beacon| |Memory| | Text | |Archive| | BEC | | |
| | |ware | |Config| |Foren.| |Analyz| | | |Detect| | |
| | +------+ +------+ +------+ +------+ +------+ +------+ | |
| +---------------------------------------------------------------+ |
| | |
| +---------------------------------------------------------------+ |
| | INTEGRATIONS LAYER | |
| | +-----------------+ +------------------+ +-----------------+ | |
| | | Threat Intel | | LLM Analyzer | | STIX Generator | | |
| | | (20+ sources) | | (Ollama/Cloud) | | (STIX 2.1) | | |
| | +-----------------+ +------------------+ +-----------------+ | |
| | +-----------------+ +------------------+ +-----------------+ | |
| | | Threat Actor | | DGA Detector | | Domain Age | | |
| | | Profiler (20grp)| | (7 heuristics) | | Checker (WHOIS) | | |
| | +-----------------+ +------------------+ +-----------------+ | |
| +---------------------------------------------------------------+ |
| | |
| +---------------------------------------------------------------+ |
| | SCORING & OUTPUT | |
| | +-----------+ +----------+ +-------+ +-------+ +-----------+ | |
| | | Adaptive | | Tool- | | HTML | | MITRE | | Detection | | |
| | | Scoring | | Based | |Report | | Nav. | | Rules | | |
| | | Engine | | Scoring | | | | | | Generator | | |
| | +-----------+ +----------+ +-------+ +-------+ +-----------+ | |
| +---------------------------------------------------------------+ |
+----------------------------------------------------------------------+
- Python 3.10+
- Ollama (optional, for AI analysis)
# Clone repository
git clone https://github.com/ugurrates/CABTA.git
cd CABTA
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
.\venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Copy and configure
cp config.yaml.example config.yaml
# Edit config.yaml with your API keys (optional - works without them)
# Verify installation
python test_setup.pypython -m uvicorn src.web.app:create_app --factory --host 0.0.0.0 --port 3003Open http://localhost:3003 in your browser.
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh # Linux
# or download from https://ollama.com for Windows/Mac
# Pull recommended model
ollama pull llama3.1:8b
# Verify
ollama listEdit config.yaml with your settings:
# API Keys (all optional - 15 free sources work without keys)
api_keys:
virustotal: "your-vt-api-key"
abuseipdb: "your-abuseipdb-key"
shodan: "your-shodan-key"
alienvault: "your-otx-key"
# LLM Configuration
llm:
provider: "ollama" # ollama, openai, anthropic
ollama_model: "llama3.1:8b"
ollama_endpoint: "http://localhost:11434"| Source | Free Tier | URL |
|---|---|---|
| VirusTotal | 500 req/day | https://www.virustotal.com/gui/join-us |
| AbuseIPDB | 1000 req/day | https://www.abuseipdb.com/register |
| Shodan | 100 req/month | https://account.shodan.io/register |
| AlienVault OTX | Unlimited | https://otx.alienvault.com/accounts/signup |
| GreyNoise | 50 req/day | https://viz.greynoise.io/signup |
These 15 OSINT sources work out of the box:
| Source | Type |
|---|---|
| Abuse.ch URLhaus | Malicious URLs |
| Abuse.ch MalwareBazaar | Malware samples |
| Abuse.ch ThreatFox | IOC sharing |
| Abuse.ch Feodo Tracker | Botnet C2 |
| OpenPhish | Phishing URLs |
| Malpedia | Malware families |
| CIRCL MISP | Threat sharing |
| HudsonRock | Breach data |
| Shodan InternetDB | Passive recon |
| Ransomwatch | Ransomware groups |
| EPSS | Exploit prediction |
| IPinfo (lite) | IP geolocation |
| RDAP | Domain registration |
| BGPView | ASN/prefix data |
| Google Safe Browsing | URL reputation |
Supports 15+ file types with specialized analyzers:
| Analyzer | File Types | Capabilities |
|---|---|---|
| PE Analyzer | .exe, .dll, .sys | Imports, sections, entropy, packer detection, TLS callbacks, PDB path, Rich header, resource analysis, manifest UAC check |
| Ransomware Analyzer | Any PE | Crypto constants, ransom notes, Bitcoin/Onion extraction, VSS deletion, family detection |
| Beacon Config Extractor | Any PE | Cobalt Strike beacon XOR decryption, TLV config parsing, C2/port/watermark extraction |
| ELF Analyzer | Linux binaries | Symbols, sections, capabilities |
| Mach-O Analyzer | macOS binaries | Universal binaries, entitlements |
| APK Analyzer | Android apps | Permissions, APIs, risk scoring, obfuscation, MITRE Mobile ATT&CK |
| Office Analyzer | .docx, .xlsx, .pptx | Macros (VBA), OLE objects, DDE links |
| PDF Analyzer | JavaScript, launch actions, embedded files | |
| Script Analyzer | .ps1, .bat, .vbs, .js | De-obfuscation (PowerShell, JavaScript, VBScript, Batch) |
| Text Analyzer | .txt, .log, .csv, .conf | C2 patterns, IOC extraction, credential indicators |
| Archive Analyzer | .zip, .rar, .7z, .tar | Nested extraction, path traversal detection |
| Memory Analyzer | .dmp, .raw, .vmem | Volatility 3 integration, process analysis, code injection |
Comprehensive email security analysis:
- Authentication: SPF, DKIM, DMARC, ARC validation with scoring
- BEC Detection: Urgency patterns, financial fraud, executive impersonation, reply-to mismatch, auth failures
- Phishing Analysis: URL chain analysis, brand impersonation, lookalike domains, typosquatting
- Threat Indicators: Tracking pixels, HTML forms, URL shorteners, data URIs, JavaScript, callback phishing
- DFIR Forensics: Relay chain analysis, hop timing, infrastructure profiling, sender reputation
- Attachments: Malware scanning, double extension detection, embedded content analysis
- Detection Rules: Auto-generated KQL, Splunk SPL, Sigma, FortiMail, Proofpoint, Mimecast, M365
Multi-source investigation for any indicator type:
- Supported Types: IPv4/IPv6, domains, URLs, file hashes (MD5/SHA1/SHA256), email addresses, CVE IDs
- Intelligence Sources: 20+ sources queried in parallel with async operations
- Enrichment: DGA detection (7 heuristics), domain age checking (WHOIS), threat actor profiling
- STIX Export: One-click export to STIX 2.1 bundles with TLP marking
- Scoring: Source-weighted confidence scoring with kill-chain detection
CABTA uses a multi-layered scoring architecture:
| Layer | Purpose | Weight |
|---|---|---|
| Tool-Based Scoring | Aggregates scores from individual analysis tools | Primary |
| Intelligent Scoring | Source-weighted IOC confidence with freshness decay | IOC-specific |
| Adaptive Scoring | Kill-chain stage detection, combo patterns, temporal analysis | Overlay |
| Enhanced Scoring | BEC, ransomware, and deep inspection score integration | Domain-specific |
| False Positive Filter | Filters CA domains, version strings, internal ranges | Final pass |
| Score | Verdict | Description |
|---|---|---|
| 70-100 | MALICIOUS | High confidence threat |
| 40-69 | SUSPICIOUS | Requires investigation |
| 1-39 | CLEAN | Low risk |
| 0 | UNKNOWN | Insufficient data |
| N/A | SPAM | Unsolicited but not malicious |
| N/A | RANSOMWARE | Ransomware-specific verdict |
| Source | Capabilities |
|---|---|
| VirusTotal | File/URL/Domain/IP scanning, detection ratios, behavioral analysis |
| AbuseIPDB | IP reputation, abuse reports, confidence scoring |
| Shodan | Port scanning, service detection, vulnerability assessment |
| AlienVault OTX | Pulse-based threat intelligence, IOC correlation |
| GreyNoise | Internet scanner identification, benign/malicious classification |
15 sources including Abuse.ch feeds, OpenPhish, Malpedia, CIRCL MISP, HudsonRock, Ransomwatch, EPSS, and more.
CABTA auto-generates detection rules in 7 SIEM/tool formats:
| Format | Target |
|---|---|
| KQL | Microsoft Defender / Sentinel |
| Splunk SPL | Splunk SIEM |
| Sigma | Universal SIEM format |
| YARA | File-based detection |
| FortiMail | Fortinet email gateway |
| Proofpoint | Proofpoint email security |
| Mimecast | Mimecast email security |
Rules include sender-based, URL-based, attachment-based, and behavioral detections with proper metadata (author, date, severity, MITRE mapping).
CABTA/
|-- src/
| |-- analyzers/ # File type analyzers
| | |-- pe_analyzer.py # PE analysis + deep inspection
| | |-- ransomware_analyzer.py # Ransomware detection
| | |-- beacon_config_extractor.py # Cobalt Strike beacon extraction
| | |-- memory_analyzer.py # Volatility 3 memory forensics
| | |-- bec_detector.py # Business Email Compromise detection
| | |-- email_threat_indicators.py # 10 email threat checks
| | |-- text_analyzer.py # C2/IOC text file analysis
| | |-- apk_analyzer.py # Android APK risk scoring
| | |-- file_type_router.py # Magic bytes + MIME routing
| | +-- ... # ELF, Mach-O, Office, PDF, Script, Archive
| |-- integrations/ # External service integrations
| | |-- llm_analyzer.py # Ollama/Anthropic LLM analysis
| | |-- threat_actor_profiler.py # 20 APT group database
| | |-- stix_generator.py # STIX 2.1 indicator export
| | +-- threat_intel.py # 20+ TI source clients
| |-- scoring/ # Multi-layered scoring engine
| | |-- tool_based_scoring.py # Per-tool weighted scoring
| | |-- intelligent_scoring.py # Source-weighted IOC scoring
| | |-- adaptive_scoring.py # Kill-chain & combo detection
| | +-- enhanced_scoring.py # BEC/ransomware scoring
| |-- detection/ # Detection rule generation
| | |-- rule_generator.py # KQL, Sigma, YARA, Snort
| | +-- llm_rule_generator.py # LLM-assisted rule generation
| |-- tools/ # High-level analysis tools
| | |-- malware_analyzer.py # File analysis pipeline
| | |-- email_analyzer.py # Email analysis pipeline
| | +-- ioc_investigator.py # IOC investigation pipeline
| |-- utils/ # Utilities
| | |-- dga_detector.py # 7-heuristic DGA detection
| | |-- domain_age_checker.py # WHOIS domain age checking
| | +-- entropy_analyzer.py # Shannon entropy analysis
| |-- web/ # FastAPI web application
| | |-- app.py # Application factory
| | +-- routes/ # API & page routes
| |-- reporting/ # Report generation
| +-- mcp_servers/ # MCP tool servers
|-- templates/ # Jinja2 HTML templates
|-- static/ # CSS, JS, images
|-- data/ # Playbooks, YARA rules, hash DB
|-- examples/ # Sample test files
|-- tests/ # Test suite
|-- config.yaml.example # Configuration template
+-- requirements.txt # Python dependencies
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/analysis/ioc |
Submit IOC for investigation |
| POST | /api/analysis/file |
Upload file for malware analysis |
| POST | /api/analysis/email |
Upload .eml for email forensics |
| GET | /api/analysis/{id} |
Get analysis results |
| GET | /api/analysis/{id}/status |
Check analysis progress |
| GET | /api/analysis/history/ |
List all analyses |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/reports/{id}/json |
JSON report |
| GET | /api/reports/{id}/html |
HTML report |
| GET | /api/reports/{id}/mitre |
MITRE ATT&CK Navigator layer |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/dashboard/stats |
Dashboard statistics |
| GET | /api/config/health |
System health check |
| GET | /api/config/tools |
Available analysis tools |
| GET/POST | /api/config/settings |
Application settings |
Full API documentation available at http://localhost:3003/api/docs (Swagger UI).
The examples/ directory contains synthetic test files:
| File | Expected Result |
|---|---|
sample_c2_config.txt |
MALICIOUS (90-100) - C2 patterns, persistence, lateral movement |
sample_ioc_list.txt |
Mixed - IOCs for bulk investigation |
# Test file analysis with a C2 config
curl -X POST http://localhost:3003/api/analysis/file -F "file=@examples/sample_c2_config.txt"
# Test IOC investigation
curl -X POST http://localhost:3003/api/analysis/ioc -H "Content-Type: application/json" -d '{"value": "203.0.113.50"}'CABTA can run as an MCP (Model Context Protocol) server for integration with MCP-compatible clients:
{
"mcpServers": {
"cabta-remnux": {
"command": "python",
"args": ["-m", "src.mcp_servers.remnux_tools"],
"cwd": "/path/to/CABTA"
}
}
}Available MCP servers: remnux_tools, flare_tools, forensics_tools, threat_intel_tools, osint_tools, network_tools, vulnerability_tools.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
git clone https://github.com/ugurrates/CABTA.git
cd CABTA
pip install -r requirements.txt
pip install pytest black flake8
pytestThis project is licensed under the MIT License - see the LICENSE file for details.
Ugur Ates
- GitHub: @ugurrates
- Medium: @ugur.can.ates
- LinkedIn: Ugur Ates
- MITRE ATT&CK for the threat framework
- VirusTotal for threat intelligence
- Ollama for local LLM support
- Mandiant FLARE for capa and FLOSS
- Abuse.ch for free threat intelligence feeds
This tool is intended for authorized security testing and research only. Users are responsible for ensuring they have proper authorization before analyzing any files or investigating any indicators. The author is not responsible for any misuse of this tool.





