Crack Web Based Login Page avec Hydra dans Kali Linux

Crack Web Based Login Page With Hydra Kali Linux



Un mot de passe est techniquement défini comme une chaîne secrète de caractères utilisée pour authentifier ou accéder aux ressources. Il doit être gardé secret et caché aux autres qui ne sont pas autorisés à accéder à ces ressources. Les mots de passe ont été utilisés avec les ordinateurs depuis les premiers jours de l'informatique. L'un des premiers systèmes de partage de temps a été introduit en 1961. Il comportait une commande de connexion qui demandait un mot de passe utilisateur. Après avoir tapé PASSWORD, le système désactive le mécanisme d'impression, si possible, afin que l'utilisateur puisse saisir son mot de passe en toute confidentialité.

La force d'un mot de passe est fonction de sa longueur, de sa complexité et de son imprévisibilité. Il mesure l'efficacité à résister à deviner ou à le casser. Les mots de passe faibles, en revanche, raccourcissent le temps nécessaire pour deviner et accéder aux e-mails personnels/d'entreprise, aux données sensibles telles que les informations financières, les informations commerciales, les cartes de crédit, etc.







Il existe de nombreuses façons dont un mot de passe peut être faible, correspondant à la puissance de divers schémas d'attaque. La plus populaire de ce type d'attaque d'identification est la force brute. il s'agit d'une méthode d'essais et d'erreurs telle que deviner, tenter de décoder des données cryptées telles que le mot de passe ou le cryptage des données utilisé par le programme d'application ou l'outil de piratage.



Hydra est le cracker de connexion réseau le plus rapide qui prend en charge de nombreux protocoles d'attaque. Il est très rapide et flexible, et de nouveaux modules sont faciles à ajouter. Cet outil permet aux chercheurs et consultants en sécurité de montrer à quel point il serait facile d'obtenir un accès non autorisé à un système à distance. Hydra a été écrit par van Hauser et soutenu par David Maciejak. Dans la dernière mise à jour, le développement d'hydra est déplacé vers le référentiel github public à l'adresse : https://github.com/vanhauser-thc/thc-hydra.



Hydra a été testé pour compiler sur Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry, et est disponible sous GPLv3 avec une extension de licence spéciale OpenSSL.





THC Hydra prend en charge les protocoles suivants : Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP(S)-FORM-GET, HTTP(S)-FORM-POST, HTTP(S)-GET, HTTP(S)-HEAD , HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle Listener, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB (NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 et v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC et XMPP.

COMPARAISON D'HYDRA AVEC D'AUTRES OUTILS DE CASSAGE

Il existe également de nombreux outils de cracker de connexion à côté d'hydra, mais aucun ne prend en charge une liste énorme de protocoles et de support de cracker de connexion parallélisé comme le fait hydra. Les tableaux ci-dessous montrent le résultat des fonctionnalités, des services et de la comparaison de vitesse par rapport à medusa et ncrack.



Caractéristiques

Caractéristique Hydre méduse Ncrack
Licence AGPLv3 GPLv2 Termes GPLv2 + Nmap
Prise en charge d'IPv6 Oui Non Non
Interface utilisateur graphique Oui Oui Non
Prise en charge internationalisée (RFC 4013) Oui Non Non
Prise en charge du proxy HTTP Oui Oui Non
Prise en charge du proxy SOCKS Oui Non Non
Protocoles pris en charge 51 22 7

Prestations de service

Crack Web Based Login Page avec

Service Des détails Hydre méduse Ncrack
ADAM-6500 Oui Non Non
AFP Oui Oui Non
Astérisque Oui Non Non
Mot de passe Cisco Oui Non Non
Cisco Activer Oui Non Non
CVS Oui Oui Non
Oiseau de feu Oui Non Non
FTP Oui Oui Oui
Prise en charge SSL AUTH TLS & FTP sur SSL AUTH TLS & FTP sur SSL Non
HTTP Méthode(s) OBTENIR, TÊTE, POST AVOIR AVOIR
Authentification de base Oui Oui Oui
Formulaire HTTP Méthode(s) OBTENIR, POSTER OBTENIR, POSTER Non
Prise en charge SSL HTTPS HTTPS Non
Http proxy Authentification de base Oui Non Non
DIGEST-MD5 Authentification Oui Non Non
Authentification NTLM Oui Non Non
Prise en charge SSL HTTPS Non Non
Énumération d'URL PROXY HTTP Oui Non Non
ICQ v5 Oui
1
Non Non
IMAP Prise en charge de la CONNEXION Oui Oui Non
Prise en charge AUTH LOGIN Oui Non Non
Prise en charge AUTH PLAIN Oui Oui Non
Prise en charge AUTH CRAM-MD5 Oui Non Non
Prise en charge AUTH CRAM-SHA1 Oui Non Non
Prise en charge AUTH CRAM-SHA256 Oui Non Non
Prise en charge AUTH DIGEST-MD5 Oui Non Non
Prise en charge AUTH NTLM Oui Oui Non
Prise en charge AUTH SCRAM-SHA1 Oui Non Non
Prise en charge SSL IMAPS & STARTTLS IMAPS & STARTTLS Non
IRC Mot de passe général du serveur Oui Non Non
Mot de passe du mode OPER Oui Non Non
LDAP v2, prise en charge simple Oui Non Non
v3, prise en charge simple Oui Non Non
v3, prise en charge AUTH CRAM-MD5 Oui Non Non
Prise en charge AUTH DIGEST-MD5 Oui
Prise en charge AUTH NTLM Oui Oui
Prise en charge AUTH SCRAM-SHA1 Oui
Prise en charge SSL IMAPS & STARTTLS IMAPS & STARTTLS
IRC Mot de passe général du serveur Oui
Mot de passe du mode OPER Oui
LDAP v2, prise en charge simple Oui
v3, prise en charge simple Oui
v3, prise en charge AUTH CRAM-MD5 Oui
Prise en charge de la v3, AUTH DIGEST-MD5 Oui
MS-SQL Oui Oui
MySQL v3.x Oui Oui
v4.x Oui Oui
v5.x Oui Oui
PCN Oui Oui
NNTP Assistance UTILISATEUR Oui Oui
Prise en charge AUTH LOGIN Oui
Prise en charge AUTH PLAIN Oui
Prise en charge AUTH CRAM-MD5 Oui
Prise en charge AUTH DIGEST-MD5 Oui
Prise en charge AUTH NTLM Oui
Prise en charge SSL STARTTLS & NNTP sur SSL
Oracle Base de données Oui Oui
Écouteur TNS Oui
Énumération SID Oui
PC-NFS Oui
pcN'importe où Authentification native Oui Oui
Authentification basée sur le système d'exploitation (MS) Oui
POP3 Assistance UTILISATEUR Oui Oui Oui
Assistance APOP Oui
Prise en charge AUTH LOGIN Oui Oui
Prise en charge AUTH PLAIN Oui Oui
Prise en charge AUTH CRAM-MD5 Oui
Prise en charge AUTH CRAM-SHA1 Oui
Prise en charge AUTH CRAM-SHA256 Oui
Prise en charge AUTH DIGEST-MD5 Oui
Prise en charge AUTH NTLM Oui Oui
Prise en charge SSL POP3S & STARTTLS POP3S & STARTTLS POP3S
PostgreSQL Oui Oui
Astérisque Oui
RDP Poste de travail Windows Oui Oui Oui
Serveur Windows Oui Oui
Authentification de domaine Oui Oui
REDIS Oui Non
REXEC Oui Oui
RLOGIN Oui Oui
RPCAP Oui Non
RSH Oui Oui
RTSP Oui Non
SAP R/3 Oui
Siemens S7-300 Oui
siroter Oui
Prise en charge SSL SIP sur SSL
PME Mode NetBIOS Oui Oui Non
Mode natif W2K Oui Oui Oui
Mode de hachage Oui Oui Non
Effacer l'autorisation de texte Oui Oui
Authentification LMv1 Oui Oui Oui
Authentification LMv2 Oui Oui Oui
Authentification NTLMv1 Oui Oui Oui
Authentification NTLMv2 Oui Oui Oui
SMTP Prise en charge AUTH LOGIN Oui Oui
Prise en charge AUTH PLAIN Oui Oui
Prise en charge AUTH CRAM-MD5 Oui
Prise en charge AUTH DIGEST-MD5 Oui
Prise en charge AUTH NTLM Oui Oui
Prise en charge SSL SMTPS & STARTTLS SMTPS & STARTTLS
Énumération d'utilisateur SMTP Commande VRFY Oui Oui
Commande EXPN Oui Oui
RCPT TO cmd Oui Oui
SNMP v1 Oui Oui
v2c Oui Oui
v3 (authentification MD5/SHA1 uniquement)
DES CHAUSSETTES v5, Authentification par mot de passe Oui
SSH v1 Oui
v2 Oui Oui Oui
Clés SSH v1, v2 Oui
Subversion (SVN) Oui Oui
TeamSpeak TS2 Oui
Telnet Oui Oui Oui
XMPP Prise en charge AUTH LOGIN Oui
Prise en charge AUTH PLAIN Oui
Prise en charge AUTH CRAM-MD5 Oui
Prise en charge AUTH DIGEST-MD5 Oui
Prise en charge AUTH SCRAM-SHA1 Oui
Démon d'authentification VMware v1.00 / v1.10 Oui Oui
Prise en charge SSL Oui Oui
VNC Prise en charge du mot de passe RFB 3.x Oui Oui
Prise en charge de l'utilisateur et du mot de passe RFB 3.x (UltraVNC uniquement)
Prise en charge du mot de passe RFB 4.x Oui Oui
Prise en charge de l'utilisateur et du mot de passe RFB 4.x (UltraVNC uniquement)

Comparaison de vitesse

Vitesse (en s) Hydre méduse Ncrack
1 module Tâche / FTP 11,93 12.97 18.01
4 Tâches / Module FTP 4.20 5.24 9.01
16 Tâches / Module FTP 2.44 2,71 12.01
1 module Tâche / SSH v2 32,56 33,84 45.02
4 Tâches / module SSH v2 10,95 Cassé Manqué
16 Tâches / module SSH v2 5.14 Cassé Manqué

C'était une brève introduction simple à l'hydre. Passons maintenant à l'installation.

INSTALLER HYDRA

Hydra est pré-installé sur kali linux, mais si vous avez un système d'exploitation différent, vous pouvez le compiler et l'installer sur votre système. Actuellement, le support d'hydra sur différentes plateformes :

  • Toutes les plateformes UNIX (Linux, *bsd, Solaris, etc.)
  • MacOS (essentiellement un clone BSD)
  • Windows avec Cygwin (à la fois IPv4 et IPv6)
  • Systèmes mobiles basés sur Linux, MacOS ou QNX (par exemple Android, iPhone, Blackberry 10, Zaurus, iPaq)

Pour télécharger, configurer, compiler et installer hydra, tapez simplement dans le terminal :

git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install 

Si vous avez Ubuntu/Debian, vous aurez besoin de bibliothèques de dépendances :

apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev 

Si vous ne trouvez pas ces bibliothèques dans votre référentiel, vous devez les télécharger et les installer manuellement.

COMMENT UTILISER HYDRA

Félicitations, vous avez maintenant réussi à installer hydra sur votre système. En fait, Hydra est livré avec deux versions, GUI-gtk et ma version préférée, CLI. et en plus, hydra a également une version guidée par CLI, appelée hydra-wizard. Vous serez guidé pas à pas au lieu de saisir manuellement toutes les commandes ou arguments dans le terminal. Pour lancer hydra, depuis votre terminal tapez :

Pour l'interface de ligne de commande :

hydra

Pour l'assistant CLI :

hydra-wizard

Pour l'interface graphique :

xhydra

Après avoir tapé 'hydra', des commandes d'aide comme celle-ci s'afficheront :

 [email protected] :~# hydra -h Hydra v8.6 (c)2017 by van Hauser/THC & David Maciejak - for legal purposes only Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]] Options: -R restore a previous aborted/crashed session -S perform an SSL connect -s PORT if the service is on a different default port, define it here -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -x MIN:MAX:CHARSET password bruteforce generation, type '-x -h' to get help -e nsr try 'n' null password, 's' login as pass and/or 'r' reversed login -u loop around users, not passwords (effective! implied with -x) -C FILE colon separated 'login:pass' format, instead of -L/-P options -M FILE list of servers to be attacked in parallel, one entry per line -o FILE write found login/password pairs to FILE instead of stdout -f / -F exit when a login/pass pair is found (-M: -f per host, -F global) -t TASKS run TASKS number of connects in parallel (per host, default: 16) -w / -W TIME waittime for responses (32s) / between connects per thread -4 / -6 prefer IPv4 (default) or IPv6 addresses -v / -V / -d verbose mode / show login+pass for each attempt / debug mode -U service module usage details server the target server (use either this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk afp cisco cisco-enable cvs firebird ftp ftps http[s]-head http[s]-post-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-crammd5][s] mssql mysql ncp nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs - usage only allowed for legal purposes. This tool is licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra These services were not compiled in: sapr3 oracle. Use HYDRA_PROXY_HTTP or HYDRA_PROXY - and if needed HYDRA_PROXY_AUTH - environment for a proxy setup. E.g.: % export HYDRA_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://) % export HYDRA_PROXY_HTTP=http://proxy:8080 % export HYDRA_PROXY_AUTH=user:pass Examples: hydra -l user -P passlist.txt ftp://192.168.0.1 hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/ hydra -L logins.txt -P pws.txt -M targets.txt ssh

Connexion Web Bruteforce avec hydra

Hydra prend en charge certains services de bruteforcing comme je l'ai mentionné plus tôt, l'un d'eux est utilisé pour forcer les connexions Web telles que le formulaire de connexion aux médias sociaux, le formulaire de connexion bancaire utilisateur, la connexion Web de votre routeur, etc. Ce http[s]-get-form qui traitera cette demande. Dans ce tutoriel, je vais vous montrer comment bruteforcer les connexions Web vulnérables. Avant de lancer hydra, nous devrions connaître certains arguments nécessaires, tels que ci-dessous :

  • Cible : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
  • Nom d'utilisateur connexion : administrateur (si vous n'êtes pas sûr, forcez-le brutalement)
  • Liste des mots de passe : L'emplacement de la liste des fichiers de dictionnaire contenant les mots de passe possibles.
  • Paramètres de formulaire : en général, utilisez des données d'altération ou un proxy pour obtenir le formulaire de paramètres de demande. Mais ici, j'utilise iceweasel, la barre d'outils du développeur de réseau basée sur Firefox.
  • Module de services : http-post-form
Help for module http-post-form: ============================================================================ Module http-post-form requires the page and the parameters for the web form. By default this module is configured to follow a maximum of 5 redirections in a row. It always gathers a new cookie from the same URL without variables The parameters take three ':' separated values, plus optional values. (Note: if you need a colon in the option string as value, escape it with ':', but do not escape a '' with '\'.) Syntax: [url]:[form parameters]:[condition string][:(optional)[:(optional)] First is the page on the server to GET or POST to (URL). Second is the POST/GET variables (taken from either the browser, proxy, etc. with usernames and passwords being replaced in the '^USER^' and '^PASS^' placeholders (FORM PARAMETERS) Third is the string that it checks for an *invalid* login (by default) Invalid condition login check can be preceded by 'F=', successful condition login check must be preceded by 'S='. This is where most people get it wrong. You have to check the webapp what a failed string looks like and put it in this parameter! The following parameters are optional: C=/page/uri to define a different page to gather initial cookies from (h|H)=My-Hdr: foo to send a user defined HTTP header with each request ^USER^ and ^PASS^ can also be put into these headers! Note: 'h' will add the user-defined header at the end regardless it's already being sent by Hydra or not. 'H' will replace the value of that header if it exists, by the one supplied by the user, or add the header at the end Note that if you are going to put colons (:) in your headers you should escape them with a backslash (). All colons that are not option separators should be escaped (see the examples above and below). You can specify a header without escaping the colons, but that way you will not be able to put colons in the header value itself, as they will be interpreted by hydra as option separators.

Obtention des paramètres de publication à l'aide d'un navigateur, iceweasel/firefox

Dans votre navigateur Firefox, appuyez sur les touches ' CTRL + MAJ + Q '. Ensuite, ouvrez la page de connexion Webhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, vous remarquerez que du texte apparaît sur l'onglet développeur de réseau. Il vous indique quels fichiers nous sont transférés. Voir la méthode tous sont GET, car nous n'avons pas encore POST de données.

Pour obtenir les paramètres post-form, tapez n'importe quoi dans le formulaire nom d'utilisateur et/ou mot de passe. Vous remarquerez une nouvelle méthode POST dans l'onglet développeur réseau. Double-cliquez sur cette ligne, dans l'onglet En-têtes, cliquez sur le bouton Modifier et renvoyer sur le côté droit. Dans le corps de la demande, copiez la dernière ligne, par exemple tfUName = asu & tfUPass = raimu . les tfUName et tfUPass sont des paramètres dont nous avons besoin. Comme on le voit ci-dessous :

Kali linux a un tas de listes de mots, choisissez la liste de mots appropriée ou utilisez simplement rockyou.txt dans /usr/share/wordlists/ comme on le voit ci-dessous :

D'accord, maintenant nous avons tous les arguments dont nous avons besoin et prêts à lancer l'hydre. Voici le modèle de commande :

hydra -l -P [/code] Finally, based on information we have gathered, our commands ahould look something like this: hydra -l admin -P /usr/share/wordlists/rockyou.txt testasp.vulnweb.com http-post-form '/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout' -vV -f

Décomposons les commandes :

  • l : est un mot contenant le nom d'utilisateur du compte, utilisez -L pour faire référence à la liste des noms d'utilisateurs possibles dans un fichier.
  • P : est une liste de fichiers de mots de passe possibles, utilisez -p pour utiliser littéralement un mot de passe au lieu de le deviner.
  • testapp.vunlwebapp.com : est un nom d'hôte ou une cible
  • http-post-form : est le module de service que nous utilisons
  • /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = les 3 paramètres nécessaires, la syntaxe est :
    {URL de la page} :{Request post body form parameters} :S={Trouvez n'importe quoi dans la page après vous être connecté avec succès}
  • v = Mode verbeux
  • V = show login:pass pour chaque tentative
  • F = Terminer le programme si la paire login:mot de passe est trouvée

Laissons maintenant hydra essayer de casser le mot de passe pour nous, il faut du temps car il s'agit d'une attaque par dictionnaire. Une fois que vous avez réussi à trouver une paire de login:password, hydra mettra immédiatement fin au travail et affichera les informations d'identification valides.

Il y a tellement de choses que hydra pourrait faire, puisque dans ce didacticiel, nous venons d'apprendre comment utiliser la force brute pour se connecter via le Web à l'aide d'hydra, nous n'apprenons qu'un seul protocole, à savoir le protocole http-post-form. Nous pouvons également utiliser hydra contre un autre protocole tel que ssh, ftp, telnet, VNC, proxy, etc.