andreatulli01/ir-triage
GitHub: andreatulli01/ir-triage
Stars: 0 | Forks: 0
# IR-TRIAGE 🔍
The Problem
Most IR automation tools require heavy infrastructure before you can even start:
| Tool | What it needs |
|---|---|
| TheHive | Full server deployment |
| GRR Rapid Response | Agent installed on every target machine |
| Velociraptor | Server + fleet enrollment |
| Elasticsearch-based scripts | Running ELK stack |
When you're responding to an incident, you don't have time for that. You need answers **now**.
What IR-TRIAGE Does
Runs 7 modules against a live system and produces a severity-scored terminal report — no setup, no config, no dependencies beyond three pip packages.
╔══════════════════════════════════════════════════════╗
║ IR-TRIAGE v1.1 · Incident Response Tool ║
║ Zero-infra · Windows · Linux · macOS · Scored ║
╚══════════════════════════════════════════════════════╝
Modules
| Module | What it checks |
| 1 | System Info | Hostname, OS, uptime, privilege level |
| 2 | Running Processes | All processes flagged against known malware names |
| 3 | Network Connections | Active connections, external IPs, suspicious ports |
| 4 | Persistence Mechanisms | LaunchAgents, cron, systemd, registry run keys, startup folder, shell files |
| 5 | Log Analysis | Failed logins, sudo usage, SSH attempts |
| 6 | Process Hashes | SHA-256 + MD5 of all running executables |
| 7 | Threat Intel | VirusTotal hash lookup + AbuseIPDB IP reputation (optional) |
Severity Scoring
Every finding is automatically scored:
[CRITICAL] Connection to known C2 port (Metasploit default, Tor, IRC)
[HIGH] Suspicious process name, brute force detected, malicious VT hash
[MEDIUM] Registry run keys, non-standard scheduled tasks, cron entries
[LOW] Running without admin privileges, minor anomalies
Quickstart
# 1. Clone
git clone https://github.com/andreatulli01/ir-triage.git
cd ir-triage
# 2. Install dependencies
pip install psutil colorama requests
# 3. Run
python3 ir_triage.py
CLI Options
python3 ir_triage.py # full triage
python3 ir_triage.py --vt-key YOUR_KEY # + VirusTotal hash lookups
python3 ir_triage.py --abuse-key YOUR_KEY # + AbuseIPDB IP reputation
python3 ir_triage.py --skip-hashes # skip hash extraction (faster)
python3 ir_triage.py --skip-logs # skip log analysis
Getting Free API Keys
| Service | URL | Free tier |
| VirusTotal | https://virustotal.com | 4 lookups/min |
| AbuseIPDB | https://abuseipdb.com | 1,000 checks/day |
## What It Detects
**Suspicious Processes**
Flags process names matching known offensive tools: `mimikatz`, `meterpreter`, `netcat`, `xmrig`, `bloodhound`, `cobalt`, `lazagne`, and more.
Suspicious Network Ports
Automatically flags connections to known attacker infrastructure:
| Port | Known use |
| 4444 | Metasploit default listener |
| 9050 | Tor SOCKS proxy |
| 6667/6666 | IRC Command & Control |
| 31337 | Back Orifice |
| 1337 | Common backdoor port |
Persistence Mechanisms**
- macOS: LaunchAgents, LaunchDaemons, Login Items, `.zshrc`/`.zprofile`
- Linux: Cron jobs, systemd services, `.bashrc`/`.profile`
- Windows: Registry Run keys, Scheduled Tasks, Startup folder
Log Analysis
- macOS: Unified Log — failed auth, sudo usage, SSH attempts
- Linux: `/var/log/auth.log` — failed logins, BREAK-IN ATTEMPT, ROOT LOGIN
- Windows: Security Event Log — Event ID 4625 (failed logon)
Why This Is Different
- ✅ Zero infrastructure — one file, three pip packages
- ✅ Truly cross-platform — Windows, Linux, and macOS all supported
- ✅ Severity scoring — findings are prioritized, not just dumped
- ✅ Persistence detection — often missed by lightweight scripts
- ✅ Optional threat intel — works without API keys, enhanced with them
- ✅ Runs in under 60 seconds on a typical machine
Requirements
psutil
colorama
requests
Python 3.7+
License
MIT — free to use, modify, and distribute.
Author
Andrea Tulli
Bachelor of Information Technology — Cybersecurity & Networking, UTS Sydney
[LinkedIn](https://au.linkedin.com/in/andrea-tulli-a0341722a)