subjack
Outil de détection de prise de contrôle de sous-domaine. Scanne une liste de sous-domaines pour identifier ceux pointant vers des services tiers désactivés (GitHub Pages, Heroku, AWS S3, etc.) pouvant être réclamés. Subdomain takeover detection tool. Scans a list of subdomains to identify ones pointing to defunct third-party services (GitHub Pages, Heroku, AWS S3, etc.) that can be claimed.
↗ https://github.com/haccer/subjackOverview
subjack identifies subdomains vulnerable to takeover — subdomains whose DNS records point to third-party services that have been removed or unclaimed. An attacker who registers the account/resource can control content on that subdomain, enabling phishing, cookie theft, and CSP bypass.
Installation
go install github.com/haccer/subjack@latest
→ or download binary from releases
Basic Usage
Check subdomains for takeover
subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
Quick check (no SSL verification)
subjack -w subdomains.txt -t 100 -o results.txt
With verbose output
subjack -w subdomains.txt -t 50 -o results.txt -v
Fingerprints File
# subjack uses fingerprints.json to identify services
# Default location: /usr/share/subjack/fingerprints.json
Specify custom fingerprints
subjack -w subdomains.txt -c /path/to/fingerprints.json -t 100
View fingerprints (shows which services are checked)
cat /usr/share/subjack/fingerprints.json | python3 -m json.tool | head -50
Services Checked
# Services subjack checks for takeover:
# GitHub Pages — "There isn't a GitHub Pages site here"
# AWS S3 — "NoSuchBucket"
# Heroku — "No such app"
# Shopify — "Sorry, this shop is currently unavailable"
# Fastly — "Fastly error: unknown domain"
# Azure (various) — multiple patterns
# Tumblr — "Whatever you were looking for doesn't live here"
# WordPress.com — "Do you want to register..."
# Zendesk — "Help Center Closed"
# Many more...
Generating Subdomain Lists
# Use subfinder/amass to get subdomains first
subfinder -d target.com -o subdomains.txt
amass enum -passive -d target.com >> subdomains.txt
sort -u subdomains.txt > unique_subdomains.txt
Then check for takeover
subjack -w unique_subdomains.txt -t 100 -o takeover_results.txt -ssl
Output Interpretation
# Results in output file:
# [VULNERABLE] dev.target.com — GitHub Pages
# [VULNERABLE] cdn.target.com — AWS S3 (NoSuchBucket)
# [Not Vulnerable] www.target.com
Verify manually:
curl -v http://dev.target.com
→ Look for the service-specific error message
Exploiting a Takeover
# Example: GitHub Pages takeover
# 1. dev.target.com CNAME → targetdev.github.io (unclaimed)
# 2. Register GitHub account "targetdev"
# 3. Create repository and enable GitHub Pages
# 4. dev.target.com now serves your content
# Impact: XSS, phishing, cookie theft (if sharing parent domain)
Tips
- Run on all subdomains from passive recon — large orgs have many forgotten subdomains
- HTTPS matters — always use
-sslto also check HTTPS responses - Takeovers on authentication subdomains (sso.target.com, login.target.com) are critical
- Some CDN CNAMEs show takeover fingerprints intermittently — verify multiple times
- Document all findings with screenshots before reporting
Help / Man page
subjack [options]
-w FILE Subdomain list file
-t N Threads (default: 10)
-timeout N Timeout in seconds
-o FILE Output file
-ssl Also check HTTPS
-c FILE Fingerprints file
-v Verbose
-m Only show vulnerable
Vue d’ensemble
subjack identifie les sous-domaines vulnérables à la prise de contrôle : des sous-domaines dont les enregistrements DNS pointent vers des services tiers qui ont été supprimés ou libérés. Un attaquant qui enregistre le compte/la ressource peut contrôler le contenu de ce sous-domaine, permettant du phishing, du vol de cookies, et du contournement de CSP.
Installation
go install github.com/haccer/subjack@latest
→ ou télécharger le binaire depuis les releases
Utilisation de base
# Vérifier des sous-domaines pour une prise de contrôle
subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
# Vérification rapide (sans vérification SSL)
subjack -w subdomains.txt -t 100 -o results.txt
# Avec sortie verbeuse
subjack -w subdomains.txt -t 50 -o results.txt -v
Fichier d’empreintes
# subjack utilise fingerprints.json pour identifier les services
# Emplacement par défaut : /usr/share/subjack/fingerprints.json
# Spécifier des empreintes personnalisées
subjack -w subdomains.txt -c /path/to/fingerprints.json -t 100
# Visualiser les empreintes (montre quels services sont vérifiés)
cat /usr/share/subjack/fingerprints.json | python3 -m json.tool | head -50
Services vérifiés
# Services que subjack vérifie pour une prise de contrôle :
# GitHub Pages : "There isn't a GitHub Pages site here"
# AWS S3 : "NoSuchBucket"
# Heroku : "No such app"
# Shopify : "Sorry, this shop is currently unavailable"
# Fastly : "Fastly error: unknown domain"
# Azure (various) : multiple patterns
# Tumblr : "Whatever you were looking for doesn't live here"
# WordPress.com : "Do you want to register..."
# Zendesk : "Help Center Closed"
# Et bien d'autres...
Génération de listes de sous-domaines
# Utiliser subfinder/amass pour obtenir des sous-domaines d'abord
subfinder -d target.com -o subdomains.txt
amass enum -passive -d target.com >> subdomains.txt
sort -u subdomains.txt > unique_subdomains.txt
Puis vérifier la prise de contrôle
subjack -w unique_subdomains.txt -t 100 -o takeover_results.txt -ssl
Interprétation des résultats
# Résultats dans le fichier de sortie :
# [VULNERABLE] dev.target.com : GitHub Pages
# [VULNERABLE] cdn.target.com : AWS S3 (NoSuchBucket)
# [Not Vulnerable] www.target.com
Vérifier manuellement :
curl -v http://dev.target.com
→ Chercher le message d’erreur spécifique au service
Exploiter une prise de contrôle
# Exemple : prise de contrôle GitHub Pages
# 1. dev.target.com CNAME → targetdev.github.io (non réclamé)
# 2. Enregistrer le compte GitHub "targetdev"
# 3. Créer un dépôt et activer GitHub Pages
# 4. dev.target.com sert maintenant notre contenu
# Impact : XSS, phishing, vol de cookies (si le domaine parent est partagé)
Conseils
- Lancer sur tous les sous-domaines issus de la reconnaissance passive : les grandes organisations ont beaucoup de sous-domaines oubliés
- HTTPS compte : toujours utiliser
-sslpour aussi vérifier les réponses HTTPS - Les prises de contrôle sur des sous-domaines d’authentification (sso.target.com, login.target.com) sont critiques
- Certains CNAME de CDN affichent des empreintes de prise de contrôle par intermittence : vérifier plusieurs fois
- Documenter tous les résultats avec des captures d’écran avant le reporting
Aide / Page de manuel
subjack [options]
-w FILE Subdomain list file
-t N Threads (default: 10)
-timeout N Timeout in seconds
-o FILE Output file
-ssl Also check HTTPS
-c FILE Fingerprints file
-v Verbose
-m Only show vulnerable