Gehaxelts Blog

IT-Security & Hacking

IP Adressen über Signaturen mitloggen

In verschiedenen zwielichtigen Foren möchte das Klientel besonderen Wert auf Anonymität setzen und man hört oft Behauptungen von den Forenbetreibern, dass das “Logging” auf allen Ebenen deaktiviert sei.

Das man mit einem einfachen Trick an die IP Adressen der Benutzer gelangt, soll folgender Trick verdeutlichen.

Das Problem

Der Aufenthalt in zwielichtigen Foren kann für manche Personen vor Gericht enden. Um diesem Problem zu entgehen, kann man sich entweder hinter einer langen Proxy-Kette verstecken, um seine IP zu verschleiern, oder man vertraut auf die Behauptungen der Forenbetreiber, dass die Forensoftware bzw. der Server außerhalb der Zugriffsmöglichkeiten von Behörden steht, und auf diesem ebenfalls das Logging deaktiviert ist, um daraufhin ohne Proxy auf dem Forum zu surfen.

Die zweite Möglichkeit hat den Vorteil dass die Geschwindigkeit nicht durch die Tunnelung durch andere Länder beeinträchtigt wird.

Auch wenn die Aussagen der Betreiber stimmen, so ist es für Dritte recht einfach an die IP-Adressen der Forenbesucher zu gelangen.

Die Vorraussetzungen

Folgende Vorraussetzungen muss man erfüllen, um die Beschreibung erfolgreich folgen zu können:

  • Mitgliedschaft bzw. einen Account in dem Forum

  • Einen Webspace auf dem .htaccess möglich ist

  • ggf. eine Schlagzeile, welche viele Besucher auf sich zieht

  • ggf. Zugriffs auf access-log

Die Theorie

Häufig gibt es in verschiedenen Foren die Funktion, Bilder über einen BBCode entweder in ein Posting oder in eine Signatur einzubinden, um seine Postings abzurunden und/ oder aufzuwerten.

Der BBCode dazu lautet oft:

[img]URL[/img]

Das wandelt dann die Forensoftware zu folgendem HTML-Tag um:

<img src='URL' />

Oft werden noch die Attribute für Titel bzw. alternative Beschreibung gesetzt, und der Browser kann dann beim Besucher das Bild laden und anzeigen.

Nun, wie wir wissen, kann man dort URLs angeben, welche auf .png / .jp(e)g / .gif, etc angeben, denn das sind reine Bilddateien.

1. Möglichkeit

Dies wäre bereits die erste Möglichkeit an die IP Adressen der Besucher zu gelangen. Dabei hosten wir das Bild auf unserem Webspace und binden es in einem Post im Zielforum ein. Rufen die Besucher nun den Thread auf, so werden alle Inhalte, inklusive des Bildes, geladen und angezeigt.

Aufgrund der Tatsache, dass das Bild bei uns extern gehostet wird, schickt der Browser einen HTTP-Request an unseren Server, um sich das Bild abzuholen. Das hat dann zur Folge, dass der Aufruf dieses Bildes bei uns im access.log vermerkt wird. Wir wären schon am Ziel, jedoch wäre das langweilig und nicht ganz rechtskonform, denn die IP Adresse gehört zu den persönlichen Daten eines Menschen, und darf nicht einfach gespeichert werden. Deswegen haben die meisten Hoster entweder den Zugriff auf das access.log deaktiviert oder löschen das letzte Bracket, um eine Zurückverfolgung unmöglich zu machen.

2. Möglichkeit

Es gibt die Möglichkeit mit PHP Bilder “on-the-fly” zu erzeugen. Das bedeutet, dass man als URL eine PHP-Datei angibt, welche ein Bild generiert und dieses ausgibt. Das so dynamisch generierte Bild lädt der Browser ebenso und kann es anzeigen.

Hier ein kleiner Beispielcode, um ein Bild in PHP zu generieren:

1
2
3
4
5
6
7
8
9
10
11
12
<?
$text = "Hello World";
$pic=ImageCreate(130,30); //(breite, höhe)
$col1=ImageColorAllocate($pic,0,0,0);
$col2=ImageColorAllocate($pic,255,255,255);
ImageFilledRectangle($pic, 0, 0, 500, 30, $col2);
ImageString($pic, 3, 5, 8, $text, $col1);
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
Header("Content-type: image/jpeg");
ImageJPEG($pic);
ImageDestroy($pic);
?>

Quelle

Das erzeugt ein JPEG-Bild, in dem der Schriftzug “Hello World” steht.

Damit haben wir aber noch nichts gewonnen, denn viele Foren lassen ein dynamisches Bild als Signatur oder Inhalt eines Beitrages nicht zu. Es kommt eine Fehlermeldung, es seien nur .png / .jpeg, etc Dateien erlaubt. Bei meinem Beispielforum war es so, dass es wohl per Regex nach der Zeichenkette “php” suchte, um generierte Bilder auszufiltern.

Jetzt folgt der eigentlich spannende Teil, denn nun tricksen wir diesen Filter aus, in dem wir ihm ein dynamisches .png-Bild liefern.

Wir nutzen dazu das mächtige .htacccess des Apache-Webservers. Es gibt einem die Möglichkeit URLs zu “ReWriten”, und so statt einer .php-Datei in der URL auf eine .png-Datei zu verweisen, welche intern jedoch auf die .php-Datei zeigt.

Die .htaccess kann folgendermaßen aussehen:

1
2
3
RewriteEngine on
RewriteBase /
RewriteRule ^bild.png$ bild.php [L]

Nun wird der Aufruf “/bild.png”, intern zu “/bild.php”, und das PHP-Script wird ausgeführt. Der Aufrufer bekommt davon nicht wirklich viel mit, da er die “echte” URL nie zu Gesicht bekommt, und die gering längere Ladezeit auch nicht auffällt.

Da wir beim Erzeugen des Bildes beliebigen PHP Code ausführen können, ist es nicht weiter schwer, einige Daten, wie die IP Adresse, des Aufrufers einzusehen. Dazu kann zum Beispiel folgender Befehl behilflich sein: $_SERVER[‘REMOTE_ADDR’]

Wenn man die Daten in eine Datei speichern möchte, dann könnten die Befehle um fopen, fwrite, fclose behilflich sein. Bedacht sollte dabei aber sein, dass die IP Adresse, wie schon gesagt, laut deutschem Gesetz nur maskiert gespeichert werden darf.

Wenn man nun in einem Forum als Signatur oder in einem Posting die neue URL mit .png am Ende angibt, meckert die Forensoftware nicht mehr, und das Bild wird angezeigt.

Wozu eine “interessante Schlagzeile” dient, kann man sich dann selber ableiten. Außerdem kann es interessant sein, wenn man mit Cookies arbeitet, oder sich die weiteren Indexe des $_SERVER-Arrays anschaut.

Fazit

Aber ich möchte hier nur das Problem darstellen, dass Dritte über das alleinige Einbinden eines Bildes an Daten, wie die IP Adresse, den Referer, gesetzte Cookies, zugreifen können.

Sehr interessant wäre eine Art “NoScript” für Bilder.

Youtube Video

Der Youtubenutzer RevengeHacks war so nett, ein kleines Video über diese Problematik zu schreiben:

Gruß

gehaxelt