Frage Wurde gehackt. Willst du verstehen wie


Jemand hat zum zweiten Mal ein Stück JavaScript an eine Site angehängt, die ich ausführe. Dieses Javascript entführt Google-Adsense, fügt seine eigene Kontonummer ein und klebt Anzeigen überall hin.

Der Code wird immer angehängt, immer in einem bestimmten Verzeichnis (eines von einem Werbeprogramm eines Drittanbieters), betrifft eine Anzahl von Dateien in einer Anzahl von Verzeichnissen innerhalb dieses einen Ad-Verzeichnisses (20 oder so) und wird ungefähr über Nacht eingefügt Zeit. Das AdSense-Konto gehört zu einer chinesischen Website (in einer Stadt nicht eine Stunde von wo ich nächsten Monat in China sein werde. Vielleicht sollte ich Kopf gehen ... Scherz, Art von), BTW ... hier ist die Info auf der Standort: http://serversiders.com/fhr.com.cn

Also, wie konnten sie Text an diese Dateien anhängen? Bezieht sich dies auf die Berechtigungen für die Dateien (von 755 bis 644)? Für den Webserver Benutzer (es ist auf MediaTemple also sollte es sicher sein, ja?)? Ich meine, wenn Sie eine Datei haben, deren Berechtigungen auf 777 gesetzt sind, kann ich immer noch nicht einfach Code hinzufügen ... wie könnten sie das machen?

Hier ist ein Beispiel des tatsächlichen Codes für Ihr Sehvergnügen (und wie Sie sehen können ... nicht viel dazu. Der wahre Trick ist, wie sie es dort bekommen haben):

<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

Da eine Reihe von Leuten es erwähnt haben, hier ist, was ich überprüft habe (und durch überprüft ich meine ich sah mich um die Zeit die Dateien für irgendwelche Seltsamkeit geändert wurden und ich grepped die Dateien für POST-Anweisungen und Verzeichnis-Traversalen:

  • access_log (nichts um die Zeit außer normalem (d. h. übermäßigem) msn Bot-Verkehr)
  • error_log (außer der üblichen Datei gibt es keine Fehler für harmlos aussehende Dateien)
  • ssl_log (nichts als das übliche)
  • messages_log (kein FTP-Zugang hier außer mir)

* UPDATE: ** OK, habe es gelöst. Hacker aus China hatten physisch eine Datei auf unserer Seite platziert, die es ihnen erlaubt alle administrativen Dinge zu tun (Datenbankzugriff, löschen und erstellen von Dateien und Verzeichnissen, Sie nennen es, sie hatten Zugriff). Wir hatten Glück, dass sie nicht etwas Zerstörerisches getan haben. Es gab nichts in den normalen Apache-Log-Dateien, aber ich fand einen anderen Satz von Log-Dateien in einem Webserver-Log-Analysator und der Beweis war da drin. Sie griffen auf diese Datei mit ihrem eigenen Admin-Benutzernamen und Passwort zu und editierten dort genau das, was sie gerade auf dem Server benötigten. Ihre Datei hat "Apache" als Benutzer festgelegt, während alle anderen Dateien auf unserer Website einen anderen Benutzernamen haben. Jetzt muss ich herausfinden, wie sie diese Datei physisch auf unser System bekommen haben. Ich vermute, die Schuld dafür wird letztendlich bei unserem Webhost (Media Temple) liegen bleiben, es sei denn, sie hatten tatsächlich unseren FTP-Login ... nicht sicher, wie ich das feststellen werde, da diese Datei wahrscheinlich schon eine Weile da war.


39
2018-05-06 03:14


Ursprung


Ich weiß nicht, hast du jemandem dein Passwort gegeben?
Wenn Sie wissen, wann genau das passiert, durchsuchen Sie Ihr access_log nach ungewöhnlichen Dingen. Beachten Sie besonders alle POST-Anfragen: Wohin gehen sie, was haben sie gemacht? - sanmai
Thx Whirlwind ... sehr hilfreich. - Lothar_Grimpsenbacher
Wenn Sie sie wirklich kennen, können Sie ihre Adressdaten auf einer Anti-Spam-Site einfügen. Lassen Sie das Netz "sprechen" und geben Sie ihnen einen Vorgeschmack auf ihr eigenes Medacine. :-)
@ Gaoshan88 - hilfreicher als du denkst. Ein Angriffsvektor ist ein Trojaner, der Kennwörter von den FTP-Clients der Entwickler schnüffelt. - Quentin


Antworten:


Zuerst chmod 744 Es ist NICHT was du willst. Der Punkt von chmod ist, den Zugriff auf andere Konten auf dem System zu widerrufen. Chmod 700 ist viel sicherer als chmod 744. Allerdings benötigt Apache nur das Ausführen-Bit, um Ihre PHP-Anwendung auszuführen.

chmod 500 -R /your/webroot/

chown www-data:www-data -R /your/webroot/

www-data wird häufig als Apache-Konto verwendet, das zum Ausführen des PHP verwendet wird. Sie können diesen Befehl auch ausführen, um das Benutzerkonto anzuzeigen:

`<?php
print system("whoami");
?>`

FTP ist furchtbar unsicher und es ist sehr wahrscheinlich, dass Sie von dieser Methode gehackt wurden. Mit FTP können Sie Dateien schreibbar machen und sie dann erneut infizieren. Stellen Sie sicher, dass Sie ein ausführen Antivirus auf allen Maschinen mit FTP-Zugang. Es gibt Viren, die den lokalen Datenverkehr nach FTP-Benutzernamen und Kennwörtern durchsuchen und sich dann anmelden und die Dateien infizieren. Wenn Sie sich für Sicherheit interessieren, verwenden Sie SFTP, das alles verschlüsselt. Das Senden von Quellcode und Passwörtern über den Draht im Klartext ist totaler Wahnsinn.

Eine andere Möglichkeit ist, dass Sie eine alte Bibliothek oder Anwendung verwenden. Besuchen Sie die Website des Softwareherstellers, und stellen Sie sicher, dass Sie die neueste Version ausführen.


8
2018-05-06 07:59



+1, vermeiden Sie FTP wie Pest. Ein Kennwort-Sniffer-Trojaner kann Ihren Computer infizieren und Ihre Anmeldeinformationen zum Ändern von Dateien verwenden. Oder es kann Ihren Router infizieren. Oder der Computer Ihres Nachbarn im Netcafe mit dem ungesicherten WLAN-Netzwerk. Das Senden des Passworts in clearext ist eine schlechte, schlechte Idee. - Tgr
FTP tut komm mit SSL, weißt du. - grawity
@Grawity die meisten Leute verwenden nicht "ftps", aber das wird Sie davon abhalten, gehackt zu werden. sftp ist beliebter. - Rook
Die www-Daten sollten NICHT eigene Dateien in Ihrem Webverzeichnis. Alles was www-Daten kann durch ein schlecht geschriebenes Skript auf dem Server aktualisiert werden. - Zoredache


Meine Media Temple Grid Server Accounts wurden so oft "gehackt". Ihre Sicherheit ist sehr schlecht ... angefangen mit PLAIN TEXT PASSWÖRTER letztes Jahr und läuft bis heute (Sie könnten den technischen Support anrufen und sagen "Wie lautet Ihr Passwort?"). Ich weiß, weil ich monatliche E-Mails darüber bekomme, wie sie alle meine Kontokennwörter geändert haben und sie tatsächlich jedes Mal, wenn sie gehackt werden, Datenbankkennwörter für dich ändern. Diese Firma sieht auf der Oberfläche glänzend aus, aber der Grid-Server ist ein Durcheinander. Ich empfehle Wechsel sofort.

Bitte sehen dieser Beitrag vom letzten Jahr über die ursprüngliches Fiasko (Warnung, es wird dich verärgern). Von dort ist es bergab gegangen. Ich habe letztes Jahr Thanksgiving von meiner Familie verbracht und Porno-Links von meinen Webseiten entfernt. Schön.

Verfolgen Sie den Spaß auf ihrem Statusseite: Es wird euch alles über die neuesten Exploits erzählen (und ja, es gibt tatsächlich einen "möglichen Exploit" dort oben).


9
2018-05-06 05:30



Haha. Meine gs-Seiten sind jetzt alle unten. keine Email. weblog.mediatemple.net/weblog/category/system-fehler/... - typeoneerror


Aufgrund des Mangels an Aktivität in Zugriffsprotokollen usw. und der Tatsache, dass ungefähr zur selben Zeit passiert, scheint es, dass sie den Server kompromittiert haben und ein Shell-Skript irgendeiner Art ausgeführt haben, um das Anhängen auszuführen.

Haben Sie crontab auf etwas Seltsames überprüft?

Haben Sie versucht, das Verzeichnis und die Verweise darauf umzubenennen (dadurch kann das Shell-Skript beschädigt werden)?


2
2018-05-06 04:26



Umbenennen ist eine gute Idee. Ich werde es versuchen, sobald ich sehe, welche Auswirkungen es auf der Seite haben wird. Crontab hatte eine etwas seltsame Sache, es gibt einen Eintrag für ungefähr die Zeit, als die Dateien geändert wurden, aber es ist der Plesk-Backup-Manager ... eine kompilierte Anwendung. Wenn das kompromittiert ist, hat Media Temple ein großes Problem in ihren Händen. - Lothar_Grimpsenbacher


Ja, es könnte definitiv mit den Dateiberechtigungen zusammenhängen. Wenn Sie über Dateien verfügen, die für den Webprozess schreibbar sind, sind Sie offen für Sicherheitslücken in den von Ihnen ausgeführten Webanwendungen. Sperren Sie alles ab, damit der Webprozess nicht mehr lesen oder schreiben kann, als er benötigt.

Die andere Komponente sucht genau nach, wie sie Ihre Dateien ändert. Die Überprüfung der Zugriffsprotokolle des Webservers ist ein guter Anfang. Überprüfen Sie die letzten Anmeldezeiten für verschiedene Benutzer. Sie könnten auch ein Skript einrichten, das die Dateien zur Änderung überwacht und Sie benachrichtigt, so dass Sie versuchen können, die Verbrecher mit der Hand zu fangen!


1
2018-05-06 03:22





Das klingt schrecklich vertraut mit dem Wordpress HacksDas hat in letzter Zeit eine Reihe von Network Solutions-Seiten getroffen. Da Sie sich in Media Temple befinden, haben Sie möglicherweise einige Dateien für andere Benutzer freigegeben, die Ihren Computer freigeben. Das würde das Fehlen von POST oder every Apache Log Traces erklären. Wenn das der Fall ist, wäre es tödlich einfach, Code in die Befehlszeile zu injizieren.


1
2018-05-06 03:29



Die Protokolle zeigen Verkehr um die Zeit, dass diese Dateien geändert wurden, aber es ist harmlos Sachen wie: 207.46.13.43 - - [05 / May / 2010: 01: 42: 26 -0700] "GET /oped/bpr.php?edid= 211 & Seite = 4 HTTP / 1.1 "404 257" - "" msnbot / 2.0b (+search.msn.com/msnbot.htm) " - Lothar_Grimpsenbacher
Weißt du, wie dieser WordPress-Hack funktioniert hat? Könnte mir sagen, wie ich mein eigenes Problem beheben kann. - Lothar_Grimpsenbacher
Ja, es waren schlechte Berechtigungen für gemeinsam genutzte Boxen, möglicherweise verursacht durch defekte Standardkonfigurationen seitens Network Solutions. Empfohlene Lösung war, Berechtigungen 755 für Ordner und 644 für Dateien zu sperren.


Der Code wird immer angehängt, immer in   ein bestimmtes Verzeichnis

Handelt es sich um die festgelegten Berechtigungen?   auf den Dateien (von 755 bis   644)? Für den Webserver Benutzer

Sind Sie auf einem gemeinsam genutzten Server? Wenn ja (oder auch wenn nicht), hat jemand vielleicht ein FTP-Passwort erzwungen und ein Skript hochgeladen, das alle Dateien angehängt hat, die es bekommen könnte.

eines von einem Drittanbieter-Werbeprogramm

Oder vielleicht hat dieses Programm einen Exploit.


1
2018-05-06 03:44



Ich gehe davon aus, dass der Drittanbietercode möglicherweise einen Exploit hat. Es ist auf einem gemeinsam genutzten Server, aber ich hätte irgendwelche hochgeladenen Skripte gefunden (es sei denn, sie haben es hochgeladen, benutzt und dann gelöscht, aber selbst dann hätte ich etwas in den Logfiles gefunden, das ihre FTP-Verbindung zeigt) - Lothar_Grimpsenbacher
Wenn Ihre Dateien vom Webserver beschreibbar sind, ist es möglich, dass sie das Skript hochgeladen haben irgendein Website auf dem Server und überschrieb Ihre Dateien. Aber ich würde mir auch diese Drittanbieter-App genau ansehen.
Das Code von Drittanbietern... ist es ein ausführbares Skript oder nur ein JavaScript-Snippet? JavaScript kann Dateien auf dem Server nicht ändern. - Salman A
@Salman A - es ist eine Sammlung von PHP-Skripten, die Werbung verwalten. - Lothar_Grimpsenbacher
OK, dann hoffe ich, dass Sie diesen Code untersucht haben. - Salman A


Wenn Sie über geeigneten Zugriff (und Kernel-Unterstützung) verfügen, können Sie versuchen, einen Überwachungsdämon basierend auf zu erstellen annotieren oder dnotify Um nach Änderungen an Ihren Dateien zu suchen, verwenden Sie (schnell) "lsof", um zu sehen, in welchem ​​Prozess die Datei mit Schreibzugriff geöffnet wurde. Sie können möglicherweise auch verwenden strace Zur Überwachung. Das sollte einen Hinweis darauf geben, welche ausführbare Datei ausgenutzt wird.


1
2018-05-06 05:21