Bei einem Server ist die Pladde (SSD) so langsam, dass ein apt dist-upgrade 14 Minuten statt 20 Sekunden dauert.
Was würdet ihr Netcup schicken, damit die da reinschauen?
Eh Support -> Voll Kacke geht nicht mach mal Fix - Bezahle immer pünktlich.
Bei einem Server ist die Pladde (SSD) so langsam, dass ein apt dist-upgrade 14 Minuten statt 20 Sekunden dauert.
Was würdet ihr Netcup schicken, damit die da reinschauen?
Eh Support -> Voll Kacke geht nicht mach mal Fix - Bezahle immer pünktlich.
Als er Online war hat er sich gemeldet, aber so wichtig kann es ihm auch nicht sein. Seit Donnerstag wo ich ihm die Anleitung zum Deaktivieren von PHP geschickt habe kam nichts mehr und er war auch nicht mehr online.
Ich hab das aber eher aus Eigeninteresse gemacht und mir das ganze mal anzuschauen. Wollte mir auch mal die Shell und den Double-SHA256 in Hashcat hauen. Aber da ich gerade Polnischen Urlaub (Hausrenovierung) habe dachte ich lass euch mit den Files spielen.
Eine Webseite die der Kollege zur Verteilung verwendet ist ja schon offline, die andere lebt noch.
Richtig wenn man immer mit root Arbeitet und alle Dienste mit Root laufen lässt, machen einem die Local Privilege Escalations auch nichts aus. Win-Win Situation ![]()
Da hackuni aber aktuell nicht antwortet und somit der PHP Prozess weiter läuft hab ich es ein wenig anders gemacht und nun sind alle 11 Domains + Subdomains wieder sauber und im Grundzustand mit kleiner abgeänderter index.html (PS: Nur 4 Seiten waren betroffen)
image.png
Ich bin folgendermaßen Vorgegangen:
Aufbau bei hackuni: /domain1.de/httpdocs | /domain2.de/httpdocs usw...
1. Zugriff auf Hauptordner domain1.de nehmen (chmod 500 domain1.de/)
Dadurch ist die Seite von außen nicht mehr erreichbar und zeigt den bekannten 403 - Forbidden an:
image.png
2. Jetzt wäre Zeit den PHP Prozess zu killen, da aber keiner da -> Warten wir eben das Timeout von dem PHP Prozess ab, da das eval() ja nicht von außen erneut aufgerufen werden kann.
In dem aktuellen Fall habe ich die Rechte vom Ordner am Mittag genommen und jetzt gerade aufgeräumt. Da der Prozess mit der Shell und das Reinfizieren durch Timeout nicht mehr lief und ein erneuter Aufruf von außen nicht erfolgen kann, ging das relativ Problemlos.
3. Reste kontrollieren und HTML Seite replacen
Der letzte Schritt war eigentlich nur alles zu kontrollieren ob doch irgendwo noch was rumliegt, dann überall die index.html von Netcup mit leicht abgeänderten Text reinkopiert und dann die Rechte wieder ordentlich gesetzt. Nun kann der Kollege hackuni sich wieder ausbreiten in der Hoffung ohne weitere Infektionen aus alten Backups.
Wichtig: Hier war ALLES leer, außer eben die Infektion. Deswegen auch relativ einfach zu bereinigen. Wenn man Daten retten muss, sollte vorab ein komplettes Backup gezogen werden. Was ich hier schade finde, dass der Wunsch einfach alles zu löschen des Kunden nicht nachgekommen wird - Natürlich nach Absicherung seitens Netcup sehe ich da eigentlich keine Probleme. Ohne die Hilfe denke ich wäre die Malware bis zur Kündigung auf dem Webspace liegen geblieben.
Final: So und für die Spielkinder unter euch, natürlich hab ich ein Backup für euch zum Spielen
Hier die Dateien zum spielen und gerne analysieren. Denn hier kann das eh jeder besser:
Zip: Ohne Passwort damit man es hier anhängen kann
7z: Passwort: "iknowwhatido"
Viel Spaß und Gute Nacht und diesmal ohne KI, ich hoffe das ist euch nun lieber ![]()
Hier gibt es keine Wordpress Installation zu bereinigen, da keine Wordpress Installation da - Nur der PHP Prozess der aktiv nachliefert. Deswegen muss hier vor der Bereinigung erst mal der PHP Prozess der immer wieder nachschiebt beendet werden. Und ja ich habe ein wenig Hintergrund mit IT-Security und Bereinigung von befallenen Endgeräten. Ich hab nur keine Lust die Zusammenfassung manuell zu machen oder eine "De-Obfuskierung" von Hand durchzuführen, wenn man die Arbeit abgeben kann. <- Und hier kostenlos unterstützt.
Hier geht es aber nicht um die Bereinigung von irgendwelchen aktiven Installation, sondern erst mal wieder das Webhosting bereinigt hinzustellen.
Die Infektion war auch schon auf der alten Seite und im Backup enthalten, ich habe von hackuni Zugriff aufs SSH bekommen und bin dran mit Ihm die Bereinigung durchzuführen, hierfür muss aber erstmal PHP von Ihm deaktiviert werden. Hier mal die KI unterstütze Analyse:
Symptome
httpdocs/index.php ← Stufe 1: SEO-Cloaker + Trigger
└── wp-content/[hash]/*.php ← Stufe 2: Remote-Code-Loader
└── C&C-Server ← Stufe 3: Web-Shell (im RAM, nie auf Disk)
Die echte WordPress-index.php (normalerweise 2 Zeilen) wurde durch eine massiv obfuskierte Version ersetzt.
Obfuskierungstechniken:
Was der Code macht:
Diese Dateien sind der eigentliche Regenerator. Solange sie aktiv sind, wird alles andere nach dem Löschen sofort neu erstellt.
Zwei Varianten gefunden:
Variante A (edit.php) – Voller HTTP-Client:
Variante B (index.php) – Backup-Loader:
Das ist der gefährlichste Teil. Die Datei auf dem C&C-Server enthält:
<?php
// Passwortschutz (doppeltes SHA256)
if (hash('sha256', hash('sha256', $_POST['pwdyt'])) == '[hash]') { ... }
// Komprimierte Web-Shell (~35KB gzinflate)
$ULTRA = "eJwB...";
// Triple-kodierter eval:
@eval(base64_decode(base64_decode("\x57\x6c...")));
// → eval(gzinflate(base64_decode($ULTRA)));
Die Web-Shell wird nie auf Disk geschrieben – sie läuft ausschließlich im PHP-Prozess-Speicher. Enthält nach Analyse:
Wenn es um einen Verein geht schau doch mal in folgenden Thread, eventuell ist das was für dich:
Als ich früher mit WordPress auf einem WH war, waren die Datenbank Querys sehr träge. Hat sich auch mit Query Monitor gezeigt... Würde dir auch mal empfehlen das ganze damit anzugucken was wirklich passiert... Sieht man da sehr gut. Was lädt viel, wo sind die hohen Zeiten usw...
https://de.wordpress.org/plugins/query-monitor/
Beispiel:
grafik.png
Da kann man dann wirklich jeder Query sehen und die Response Times der Datenbank, auch PHP Fehler oder Plugins die Probleme machen. Grad nochmal getestet ![]()
Och webdesignheld, nur weil du gegen WordPress oder ähnliche CMS bist musst du das nicht jeden Tag 5x hier posten. Solangsam weiß jeder das du dort eine Abneigung hast.
Du Antwortest ja auch nicht auf Fragen die gestellt werden, was haben die PHP Scripte die gepostet wurden ausgegeben? Was zeigt ls -al an?
Liefer die 2 Anfragen und wir können weiter mit deinem Boot reden ![]()
Aber gibt es hier den eine Antwort die was bringen würde?
Sagt man nun, wenn die RAM Preise wieder sinken dreht man die Preise wieder zurück, dann kommt aber die nächste Krise und die Preise bleiben doch, wird es wieder Leute geben die nur meckern.
Sagt man, die Preise bleiben, dann meckern die Leute.
Sagt man, die Preise steigen in 6 Wochen erneut wegen anstehender Insolvenz. Ja auch da meckern die Leute
Ich nehm die 20% hin und gut ist, da nur Privat ist das mein Problem. Verdiene ich mit den Servern Geld lege ich das eben auch wieder auf den Kunden um.
Ob die KI es schafft die 2 PHP Files vor dem Ausführen anzupassen?
Sorry, ich verstehe ja das man KI zur Unterstützung und Hilfe hernimmt, man sollte aber verstehen was die KI gerade so für Halluzinationen hat.
Und dann noch ganze Beiträge von der KI schreiben lassen, mit der Fütterung von den Antworten im Thread geht echt zu weit und wir können hier einen Chatbot einpflanzen der sich mit dir unterhält.
[netcup] Lars S. Da du den letzten Commit hast kannst du das bestimmt beantworten?
Kriegt man beim Webhosting nicht eine Subdomain oder ähnliches wie 123912378.netcupwebhosting.com? Eine Domain sollte doch optional sein? Ich habe bisher kein Webhosting gebucht und daher keine Ahnung davon
Ich verstand es jetzt so, daß er alles über die Subdomain bisher gemacht hat und nun seine neue Domain verwenden möchte
Hab ich auch so verstanden...
Dann müsste er den Domain Root nur auf das Installationsverzeichnis von WordPress zeigen lassen wo die index.php von WordPress liegt und ist fertig.
Problem wird sein, dass wenn die Installation mit der Subdomain gemacht wurde, dass diese auch in der Datenbank steht und noch eine Migration von WordPress auf die neue Domain erfolgen muss.
Mach das Query gegen die Datenbank doch mal manuell und guck was du zurück bekommst.
Der erste Kaffee heute geht an Netcup und speziell an [netcup] Sarah G., danke für den Versand an meine Grenze 🫶🏼
Sorry, aber der Blitz zeigt auf, dass die Maschine ordentlich gereinigt gehört ![]()
Würde sogar sagen, das berechtigt auch für den Notfallsupport.
Darf ich noch erfahren was für eine Webseite du selbst geschrieben hast mit diesem PHP / HTML und CSS das mehr als 25 GB groß ist - das müssen echt viele Zeilen Code sein.
Braucht gar nicht soviel Zeilen ![]()
<?php
$file = 'temp_25GB.bin';
$blockSize = 10 * 1024 * 1024;
$totalSize = 25 * 1024 * 1024 * 1024;
$written = 0;
$fp = fopen($file, 'wb');
$block = random_bytes($blockSize);
while ($written < $totalSize) {
$remaining = $totalSize - $written;
$chunk = ($remaining < $blockSize) ? random_bytes($remaining) : $block;
fwrite($fp, $chunk);
$written += strlen($chunk);
}
fclose($fp);
echo "Done! Created 25GB file: $file\n";
Display More
Wegen dem wollte ich den LLM Response auch nicht hier posten, da ohne eigener Prüfung eben genau zu so was kommen kann. Fande die Antwort aber erstmal logisch. Was doch noch selbst verifiziert werden muss, dazu hat die Z3it gefehlt ![]()