Annonce

Réduire
Aucune annonce.

[ Aspirateur sous-domaine URL ]

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • [ Aspirateur sous-domaine URL ]

    Bonjour à tous,

    Je partage un script pour récupérer tous les sous-domaines d'un URL donné en argument, chaque sous-domaine est ping pour vérifer qu'il est bien up :

    Code:
    #!/bin/sh
    #
    # commandes utilisées : wget, sed, grep, sort, uniq, wc, host, ping
    #
    # Script testé pour : GNU bash, version 4.3.46(1)-release (x86_64-unknown-linux-gnu)
    
    # Vérification du bon usage du programme
    if [[ $# != 1 ]]
        then
            echo "Usage $0 <url>"
            exit 1
    fi
    
    # Téléchargement de la page, récupération des liens http et https, formatage puis filtrage.
    liens_http="wget -q -O- $1 | grep -o 'http://[^!w+\"]*.$1' | sed 's/^http:\/\///' | sort | uniq"
    liens_https="wget -q -O- $1 | grep -o 'https://[^!w+\"]*.$1' | sed 's/^https:\/\///' | sort | uniq"
    
    # Exécution des commandes (http)
    echo "[INFO] Récupération des liens http"
    sous_domaines_http=$(eval $liens_http)
    
    # Calcul du nombre de lien(s) http trouvé(s)
    nb_liens_http="wget -q -O- $1 | grep -o 'http://[^!w+\"]*.$1' | sed 's/^http:\/\///' | sort | uniq | wc -l"
    R_nb_liens_http=$(eval $nb_liens_http)
    echo "[INFO] $R_nb_liens_http lien(s) HTTP trouvé(s)"
    
    
    # Exécution des commandes (https)
    echo "[INFO] Récupération des liens https"
    sous_domaines_https=$(eval $liens_https)
    
    # Calcul du nombre de lien(s) http trouvé(s)
    nb_liens_https="wget -q -O- $1 | grep -o 'https://[^!w+\"]*.$1' | sed 's/^https:\/\///' | sort | uniq | wc -l"
    R_nb_liens_https=$(eval $nb_liens_https)
    echo "[INFO] $R_nb_liens_https lien(s) HTTPS trouvé(s)"
    
    # ==========================================================
    # TODO Suppression des doublons http/https
    sous_domaines_both=$sous_domaines_http$sous_domaines_https
    # echo "${sous_domaines_both}"
    # ==========================================================
    
    # Lecture des domaines, translation domaine --> ip et ping pour vérifier l'état du domaine
    while read -r line
    do
        echo "[*] IP liée(s) $line : "
        host="host $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'" # regex pour identifier les IP
        R_host=$(eval $host)
        while read -r ip
        do
            if [ -n "$ip" ] # Test de la présence d'IP lors de l'appel à host
            then
                ping="ping -c 2 $1 | grep bytes\ from"
                R_ping=$(eval $ping)
                echo -n "- $ip "
                if [[ -n "$R_ping" ]]
                    then      
                        echo -en "\e[92m [ONLINE]\e[0m" # Si réponse au ping, on affiche online
                    else
                        echo -en "\e[91m [OFFLINE]\e[0m" # Si aucune réponse, on affiche offline
                fi
                echo ""
            else
                echo "aucune(s) IP trouvée(s)"
            fi
        done <<< "$R_host" #lecture de la variable ligne/ligne
        echo ""
    done <<< "$sous_domaines_both" # Lecture de la variable ligne/ligne
    deux et deux font cinq

  • #2
    Nice !
    Writer, Cyber Security Enthusiast! Follow me on Twitter: @SwitHak

    Commentaire


    • #3
      J'ai lu en diagonale, mais en gros tu ping toutes les combinaisons de sous-domaine possible à la recherche d'un up c'est bien ça ?


      Suivre Hackademics: Twitter, Google+, Facebook.

      Commentaire


      • #4
        Le script récupère tous les sous-domaines disponibles dans le code source de la page, n'y plus n'y moins

        deux et deux font cinq

        Commentaire


        • #5
          Et si ils ne sont pas dans la page ?
          Pourquoi ne pas essayer de faire un reverse DNS ?

          Je pense que certains moteurs de recherche permettent de connaître toutes les URLS derrière une ip.

          Commentaire


          • #6
            Je vois, tu peux aussi utiliser les services tels que CRT.sh ou encore la recherche de sous-domaines via virustotal


            Suivre Hackademics: Twitter, Google+, Facebook.

            Commentaire

            Chargement...
            X