A comprehensive Cyber Threat Intelligence (CTI) analysis tool for domain investigation. This tool performs automated analysis of domains using multiple threat intelligence sources and security checks.
- WHOIS Information: Extract domain registration details
- DNS Records Analysis: A, MX, TXT, NS records
- SSL Certificate Inspection: Certificate validity, issuer, expiration
- Port Scanning: Common web ports (80, 443, 8080, 8443)
- VirusTotal Integration: Domain reputation and threat analysis
- Shodan Integration: IP information, open ports, vulnerabilities
- AbuseIPDB Integration: IP abuse confidence scoring
- Subdomain Enumeration: Certificate transparency logs via crt.sh
- Historical Data: Wayback Machine archived snapshots
- Certificate History: Historical SSL certificates
- Security Headers Analysis: HSTS, CSP, XSS protection, etc.
The tool requires the following system dependencies:
# For Debian/Ubuntu:
sudo apt-get install whois dnsutils curl jq openssl nmap
# For RedHat/CentOS/Fedora:
sudo yum install whois bind-utils curl jq openssl nmap
# or for newer versions:
sudo dnf install whois bind-utils curl jq openssl nmap
# For macOS (using Homebrew):
brew install whois curl jq openssl nmapFor enhanced analysis, configure the following API keys by editing the script:
- VirusTotal API: Get your free API key from VirusTotal
- Shodan API: Get your API key from Shodan
- AbuseIPDB API: Get your API key from AbuseIPDB
Edit the script and replace the placeholder values:
# Edit domain_cti.sh and replace these lines:
VT_API_KEY="YOUR_VIRUSTOTAL_API_KEY"
SHODAN_API_KEY="YOUR_SHODAN_API_KEY"
ABUSEIPDB_API_KEY="YOUR_ABUSEIPDB_API_KEY"Note: The tool will work without API keys but with limited functionality for VirusTotal, Shodan, and AbuseIPDB checks.
- Clone this repository:
git clone https://github.com/Mertvip/Domain-CTI.git
cd Domain-CTI- Make the script executable:
chmod +x domain_cti.sh-
Install dependencies (see Prerequisites section above)
-
Configure API keys (optional but recommended)
Analyze a single domain:
./domain_cti.sh -d example.comCreate a text file with domains (one per line):
# Create domains.txt
echo "example.com" > domains.txt
echo "google.com" >> domains.txt
echo "github.com" >> domains.txt
# Run analysis
./domain_cti.sh -l domains.txt# This is a comment line (will be ignored)
example.com
google.com
malicious-domain.com
suspicious-site.org
Display usage information:
./domain_cti.sh -hThe tool generates detailed reports for each analyzed domain:
- Console Output: Colored progress information and summary
- Report Files: Detailed analysis saved to
domain_cti_results/DOMAIN_cti_report.txt
=====================================================================
DOMAIN CTI REPORT
TARGET DOMAIN: example.com
Generated on: Mon Sep 8 19:00:00 UTC 2024
=====================================================================
=====================================================================
WHOIS INFORMATION
=====================================================================
Domain Name: EXAMPLE.COM
Registrar: Example Registrar Inc.
Creation Date: 1992-01-01
Expiration Date: 2025-01-01
...
=====================================================================
DNS RECORDS
=====================================================================
A Records:
93.184.216.34
MX Records:
0 .
TXT Records:
"v=spf1 -all"
...
=====================================================================
SSL CERTIFICATE
=====================================================================
Certificate Information:
notBefore=Jan 1 00:00:00 2024 GMT
notAfter=Jan 1 23:59:59 2025 GMT
issuer=C = US, O = DigiCert Inc, CN = DigiCert TLS RSA SHA256 2020 CA1
subject=C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, CN = www.example.org
...
[Additional sections for VirusTotal, Shodan, Subdomains, etc.]
- API Keys: Keep your API keys secure and never commit them to version control
- Rate Limits: Be aware of API rate limits for external services
- Network Access: The tool requires internet access for external API calls
- Permissions: Run with appropriate permissions for network operations
-
Missing Dependencies:
[!] Missing dependencies: whois dig curl jqSolution: Install the missing dependencies using your package manager.
-
API Errors:
Error querying VirusTotal: Invalid API keySolution: Verify your API key is correctly configured in the script.
-
Network Timeouts:
Could not resolve IP address for domainSolution: Check internet connectivity and DNS resolution.
-
Permission Denied:
bash: ./domain_cti.sh: Permission deniedSolution: Make the script executable with
chmod +x domain_cti.sh.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source. Please ensure you comply with the terms of service of all external APIs used by this tool.
This tool is for educational and legitimate security research purposes only. Users are responsible for complying with applicable laws and the terms of service of external APIs and services used by this tool.