← retour aux outils back to tools

# 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/subjack

## Overview

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 `-ssl` to 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 `-ssl` pour 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