<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Segmentation fault</title>
	<atom:link href="http://www.segmentationfault.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.segmentationfault.fr</link>
	<description>Projets d’un consultant en sécurité informatique</description>
	<lastBuildDate>Fri, 25 Jun 2010 16:29:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nuit Du Hack 2010 &#8211; Bilan</title>
		<link>http://www.segmentationfault.fr/securite-informatique/nuit-du-hack-2010-bilan/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/nuit-du-hack-2010-bilan/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 20:28:31 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Nuit du hack]]></category>
		<category><![CDATA[Sécurité informatique]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=843</guid>
		<description><![CDATA[La Nuit Du Hack 2010 est déjà finie&#8230; Courte et intense sont je pense les deux qualificatifs les plus adaptées à cet événement qui a battu une fois de plus ses records en terme de fréquentation. Je n&#8217;ai pas encore les chiffres exacts, mais nous avons enregistré pas moins de 600 entrées. Autant dire que [...]]]></description>
			<content:encoded><![CDATA[<p>La Nuit Du Hack 2010 est déjà finie&#8230; Courte et intense sont je pense les deux qualificatifs les plus adaptées à cet événement qui a battu une fois de plus ses records en terme de fréquentation. Je n&#8217;ai pas encore les chiffres exacts, mais nous avons enregistré pas moins de 600 entrées. Autant dire que la péniche Concorde Atlantique battait son plein&#8230; Comme <a href="http://silkcut.wordpress.com/2010/06/20/ndh2010-unofficial-party-report/">Silkcut</a>, je vais tenter de faire un petit résumé de l&#8217;événement, avec mon point de vue en tant que membre de l&#8217;équipe d&#8217;organisation.<span id="more-843"></span></p>
<p>[EDIT] Je viens de mettre en ligne mes slides <a href="http://www.segmentationfault.fr/wp-content/uploads/2010/06/XeeK.pdf">ici</a>. Toutes les autres sont dispos sur <a href="http://www.nuitduhack.com/slides2010-fr-nuit-du-hack.htm">le site officiel</a>.</p>
<p>[EDIT 2] Le challenge public a été mis en ligne sur <a href="http://wargame.nuitduhack.com/">cette page</a>. Bonne chance à tous <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Préparation</h3>
<p>Bien que l&#8217;événement ne dure qu&#8217;une nuit, il s&#8217;agit d&#8217;un travail de préparation de plusieurs mois. Outre le temps passé à rechercher des conférenciers et des ateliers, le développement du CTF et du challenge commun nous a pris plus d&#8217;un mois. Contrairement aux autres années, nous avions vraiment pris de l&#8217;avance sur l&#8217;organisation de l&#8217;événement, qui a débuté fin 2009.</p>
<p>En ce qui me concerne, j&#8217;étais chargé de gérer les conférences, et surtout veiller à ce que l&#8217;on ne prenne pas (trop) de retard sur le planning. J&#8217;ai fort heureusement été aidé par Silkcut et Vorex, sans qui je n&#8217;aurais probablement jamais réussi à gérer les deux tracks en simultané. Les ateliers étaient gérés par <a href="http://www.ghostsinthestack.org/">Heurs</a>, les bars tenus par Crashfr, Pieuvre, Tr00ps, Freeman et Ginette, Olive s&#8217;occupait de l&#8217;organisation générale, John, Qbix et Philemon aux platines, Rosa, Cathy et Picon à l&#8217;accueil, pendant que <a href="http://www.virtualabs.fr/">Virtualabs</a>, <a href="http://sh4ka.fr/">Sh4ka</a>, <a href="http://mysterie.fr/blog/">Mysterie</a>, <a href="http://www.shell-storm.org/">Shell-storm</a>, <a href="http://niklosweb.free.fr/">NiklosKoda</a> et <a href="http://infond.blogspot.com/">T0ka7a</a> s&#8217;occupaient des challenges. Et encore, je suis sûr d&#8217;oublier à peu près la moitié des autres membres de l&#8217;équipe qui se sont investis dans l&#8217;installation de l&#8217;événement et son bon déroulement.</p>
<h3>Conférences</h3>
<p>N&#8217;ayant pu au final suivre que peu de conférences (sans cesse à courir partout pour gérer le timing et les imprévus) je ne pourrais malheureusement pas faire de résumé détaillé ici. Fort heureusement les slides seront bientôt publiées sur <a href="http://www.nuitduhack.com/">le site officiel</a>. J&#8217;ai plus ou moins suivi la track 2 au rez-de chaussée, avec :</p>
<ul>
<li> Malwares Unix par <a href="http://www.c0a8.org/">Julien Reveret</a>, où on apprend les facilités de propagation de codes malveillants qu&#8217;offrent ce type de plateforme</li>
<li>Xeek &#8211; XSS Easy Exploitation framework présentée par moi-même, où j&#8217;ai enfin <a href="http://www.segmentationfault.fr/projets/release-de-xeek-v0-1b/">publié</a> l&#8217;outil sur lequel je bosse depuis un an. Le public a l&#8217;air d&#8217;avoir bien aimé la démo de xeekconsole, dommage que j&#8217;ai manqué de temps pour faire celle de xeekproxy. Je pensais faire un atelier à ce sujet, mais finalement je n&#8217;ai pas eu le temps. Les slides sont dispos <a href="http://www.segmentationfault.fr/wp-content/uploads/2010/06/XeeK.pdf">ici</a>, je rajouterai prochainement un tutorial d&#8217;installation/utilisation.</li>
<li>La sécurité antivirale est un échec, par <a href="http://www.ghostsinthestack.org/">Heurs</a>, qui détruit le mythe de l&#8217;anti-virus en exposant une demi douzaine de vulnérabilités trouvées par fuzzing d&#8217;IOCTL, dont des 0-days, sur des solutions telles que Kaspersky, Bitdefender, Kerio, Comodo, etc.</li>
<li>Embedded Security par <a href="http://iphonejtag.blogspot.com/">Geohot</a>, une des guest-stars de l&#8217;événement, qui expose les mécanismes de sécurité des plateformes embarquées telles que les téléphones Nokia, l&#8217;iPhone et la PS3, et comment il est parvenu à toutes les faire tomber. Vraiment une excellent conférence&#8230; juste dommage que des problèmes vidéo nous aient empêchés de retransmettre la conférence à l&#8217;étage du dessus avec une qualité convenable.</li>
<li>Virtualisation et sécurité, par Emmanuel Istace, qui démontre que les deux ne sont pas synonymes, et qu&#8217;une fois de plus beaucoup de problèmes à ce sujet sont du à l&#8217;interface chaise-clavier&#8230;</li>
<li>Analyse avancée de la mémoire physique par <a href="http://www.msuiche.net/">Matthieu Suiche</a>, qui expose les différentes techniques d&#8217;acquisition et d&#8217;analyse à l&#8217;aide des différents outils dont il est l&#8217;auteur : Win32dd, Moonsols Memory Toolkit</li>
<li>Lockpicking avancé par Cocolitos et Mr Jack, qui montrent par l&#8217;exemple différentes techniques d&#8217;ouverture de serrures de haute sécurité (certaines étant utilisées dans des coffres forts).</li>
</ul>
<p>D&#8217;après les retours que j&#8217;ai eu, les conférences ont été bien appréciées. Quelques problèmes techniques ont été rencontrés : bug de micro, streaming de mauvaise qualité pour les confs de Geohot et Matthieu Suiche, coupure d&#8217;électricité&#8230; Je regrette vraiment ces problèmes qui font partie des aléas du direct (<a href="http://fr.wikipedia.org/wiki/Loi_de_Murphy">Murphy</a> était parmi nous) et j&#8217;espère que cela n&#8217;aura pas trop embêté le public.</p>
<p>Je n&#8217;ai quasiment pas suivi les ateliers qui se déroulaient en parallèle aux confs et au CTF ; j&#8217;ai juste aperçu XavBox à son stand de puçage de console, NoCrash pour le lockpicking et Barbozor se préparant à tourner son premier épisode de la saison 3 de <a href="http://www.lagrottedubarbu.com/">la grotte du barbu</a> ayant pour thème le hacking de caddie&#8230;</p>
<p>Au final, les confs se terminent un peu après minuit (seulement une vingtaine de minutes de retard !), et laissent la place au challenge qui se déroule dans la cale.</p>
<p>Retrouvez toutes les slides sur <a href="http://www.nuitduhack.com/slides2010-fr-nuit-du-hack.htm">le site officiel de la NDH</a>.</p>
<h3>Capture The Flag</h3>
<p>Après avoir câblé toute la salle en une trentaine de minutes, les 12 équipes sont accueillies et s&#8217;installent. Virtualabs présente rapidement l&#8217;objectif du challenge. Comme l&#8217;année dernière, il s&#8217;agit de défendre ses serveurs (Windows et Linux) tout en attaquant ceux des autres équipes. Pour valider une faille, l&#8217;équipe doit récupérer un hash et le soumettre, chaque épreuve ne pouvant être résolue qu&#8217;une seule fois.</p>
<p>Les dénis de services sont autorisés, mais ne doivent pas cibler le serveur de monitoring. L&#8217;accès à Internet est fourni mais ne doit pas être utilisé pour communiquer avec des personnes extérieures sous peine de pertes de points voire de disqualification. La grosse nouveauté cette année est la présence d&#8217;un tableau de bord pour les équipes qui permet de suivre en temps réel l&#8217;évolution des scores. Les équipes sont libres de corriger leurs failles, mais ne disposent pas d&#8217;un accès root. En parallèle à cela, des épreuves communes sont lancées sur un serveur dédié.</p>
<p>Après quelques validations de la team Choucroute, les dénis de service deviennent rapidement (et malheureusement) la seule stratégie viable, du fait de la quantité importante de points perdue par l&#8217;équipe victime. Cela engendre alors un nombre assez importants de problèmes : plus de réseau pour certaines équipes, épreuves non accessibles, déconnexions SSH intempestives&#8230; Comme si cela ne suffisait pas, des problèmes internent viennent s&#8217;ajouter : problèmes au niveau du serveur de monitoring, crash de la base MySQL à cause d&#8217;une erreur de débranchement de prise électrique, problèmes sur les permissions des fichiers dus à une mauvaise version des ghosts déployés, etc. Sans parler du challenge public qui est assailli par des dizaines de participants et dont le Wifi souffre atrocement. Les concepteurs du CTF ne savent plus ou donner de la tête et sont sans cesse en train de redémarrer les VMs, patcher des fichiers sur les serveurs équipes (quand ceux-ci sont accessibles), etc. Et la team WWFamous ne les aide pas, puisque ce sont eux qui lancent majoritairement tous ces DoS à grand coup de slowloris et variantes sur SSH&#8230;</p>
<p>A 6h45, les WWFamous sont déclarés vainqueurs, Beerware terminent 2ème et Kowalski 3ème. Les lots sont distribués : disques datalocker, place pour Hacker Halted à Miami, formations&#8230;</p>
<p>Le public quitte tranquillement la péniche, tandis que nous remballons tout le matériel en luttant contre la fatigue&#8230;</p>
<p>Au final, très peu d&#8217;épreuves ont pu être exploitées avec succès pendant ce challenge. Pas mal d&#8217;équipes nous ont demandé s&#8217;il était possible de diffuser les épreuves en ligne ainsi que les solutions. C&#8217;est désormais chose faite ! Rendez-vous sur <a href="http://wargame.nuitduhack.com/">wargame.nuitduhack.com</a> et préparez-vous à griller quelques neurones <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Bilan</h3>
<p>J&#8217;ai croisé beaucoup de monde pendant cette soirée, mais je n&#8217;ai malheureusement pas pu discuter avec tout le monde. En me basant sur les retours de ces personnes, je pense pouvoir affirmer que cette Nuit Du Hack 2010 était un véritable succès. Certes nous avons rencontré un certain nombre de problèmes qui en ont déçu certains, notamment le streaming qui n&#8217;a pas pu se faire convenablement, ou les dysfonctionnement des challenges. Nul n&#8217;est parfait ; chaque année nous faisons face à certains problèmes que nous tentons de résoudre l&#8217;année suivante. On le voit clairement lorsque l&#8217;on compare la NDH de cette année avec celle de 2007 par exemple&#8230; Cette année, un effort considérable a été porté sur l&#8217;organisation du challenge, la communication avec les équipes, le respect du timing pour les conférences, le niveau sonore (qui, on le rappelle, était assez insupportable les années précédentes), etc. Je remercie toute l&#8217;équipe pour avoir réussi à organiser un événement de cette ampleur, qui est à ma connaissance le plus grand de ce genre en France.</p>
<p>N&#8217;hésitez pas à donner votre avis sur l&#8217;événement, faites nous part de vos remarques et vos suggestions pour les années futures. Un topic/sondage va très certainement être ouvert sur les <a href="http://forums.thehackademy.net/">forums officiels</a>, alors comme on dit, lachez vos com&#8217; !</p>
<p>Note : Ayant été assez occupé, je n&#8217;ai pris que très peu de photos de l&#8217;événement. Je les mettrai sans doute en ligne dans quelques jours. En attendant vous pouvez en trouver sur <a href="http://www.lestutosdenico.com/">Les Tutos de Nico</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/nuit-du-hack-2010-bilan/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Release de XeeK v0.1b</title>
		<link>http://www.segmentationfault.fr/projets/release-de-xeek-v0-1b/</link>
		<comments>http://www.segmentationfault.fr/projets/release-de-xeek-v0-1b/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 16:15:21 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Nuit du hack]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[XeeK]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=833</guid>
		<description><![CDATA[Comme promis, voici la toute première release de XeeK, en direct de la Nuit Du Hack 2010. Comme son numéro de version le suggère, il s&#8217;agit d&#8217;une version BETA donc potentiellement buggée  .

XeeK v0.1b : archive comportant le client, le serveur, ainsi que l&#8217;aide (fichiers INSTALL.txt et README.txt)
Slides de la conférence (PDF)

J&#8217;éditerai ce billet [...]]]></description>
			<content:encoded><![CDATA[<p>Comme promis, voici la toute première release de XeeK, en direct de la Nuit Du Hack 2010. Comme son numéro de version le suggère, il s&#8217;agit d&#8217;une version BETA donc potentiellement buggée <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<span id="more-833"></span></p>
<ul>
<li><a href="http://www.segmentationfault.fr/wp-content/uploads/2010/06/xeek-0.1b.zip">XeeK v0.1b</a> : archive comportant le client, le serveur, ainsi que l&#8217;aide (fichiers INSTALL.txt et README.txt)</li>
<li><a href="http://www.segmentationfault.fr/wp-content/uploads/2010/06/XeeK.pdf">Slides de la conférence</a> (PDF)</li>
</ul>
<p>J&#8217;éditerai ce billet prochainement pour y ajouter un petit tutorial concernant l&#8217;installation et l&#8217;utilisation de XeeK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/projets/release-de-xeek-v0-1b/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>De retour du SSTIC 2010</title>
		<link>http://www.segmentationfault.fr/securite-informatique/sstic-2010/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/sstic-2010/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 12:08:41 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Evénement]]></category>
		<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=812</guid>
		<description><![CDATA[Me voici de retour de l&#8217;édition 2010 du SSTIC. C&#8217;était la première fois que j&#8217;allais à cette excellente conférence, réunissant pas moins de 450 personnes autour de différents thèmes centrés sur la sécurité des systèmes d&#8217;information. Au programme : 3 jours de conférences, des rump sessions, un social event, des geeks, des trolls, du code [...]]]></description>
			<content:encoded><![CDATA[<p>Me voici de retour de l&#8217;édition 2010 du <a href="http://www.sstic.org/2010">SSTIC</a>. C&#8217;était la première fois que j&#8217;allais à cette excellente conférence, réunissant pas moins de 450 personnes autour de différents thèmes centrés sur la sécurité des systèmes d&#8217;information. Au programme : 3 jours de conférences, des <em>rump sessions</em>, un <em>social event</em>, des geeks, des trolls, du code qui défile, bref une super ambiance. <a href="http://sid.rstack.org/blog/index.php">Plusieurs</a> <a href="http://www.n0secure.org/">personnes</a> ont déjà fait un compte rendu détaillé de chaque conf (qui plus est en temps réel, chapeau à eux !), aussi je ne détaillerai ici que celles que j&#8217;ai trouvées les plus marquantes. Ce billet est pour le moment incomplet, il sera terminé très prochainement.<span id="more-812"></span></p>
<h3>Enjeux et défis pour le renseignement technique</h3>
<p>La première conférence est présentée par Bernard Barbier, directeur technique de la <a href="http://fr.wikipedia.org/wiki/Direction_g%C3%A9n%C3%A9rale_de_la_s%C3%A9curit%C3%A9_ext%C3%A9rieure">DGSE</a>. Il y présente les activités pratiquées par l&#8217;agence à l&#8217;extérieur du territoire français, principalement en matière de renseignement d&#8217;origine technique, et rappelle les différents enjeux liés à la sécurité des systèmes d&#8217;information, en particulier les moyens de communication  et la cryptographie. Quelques méthodes techniques d&#8217;obtention de renseignement sont illustrées, tout en rappelant leur aspect souvent clandestin et les conséquences que cela peut avoir dans certains pays. On y apprend (ou pas) que la DGSE pratique l&#8217;écoute téléphonique, analyse des photos satellite, utilise des super-calculateurs à des fins de cryptanalyse, et met en œuvre des techniques visant à fragiliser les méthodes de chiffrement lorsque celles-ci ne sont pas cassable en un temps raisonnable. Le tout étant présenté avec une transparence relative mais appréciable, du moins tant qu&#8217;on ne demande pas de la taille des clés RSA que l&#8217;agence est en mesure de casser <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . La conf se termine par un message clair : la DGSE recrute 100 personnes par an. Candidats, faites-vous connaître&#8230;</p>
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Keynote par Bernard Barbier, directeur technique de la DGSE" src="http://lh5.ggpht.com/_Rzr3MErwyvk/TBOUhP91uPI/AAAAAAAAFRE/rqeGABYqB3I/s640/IMG_8780.JPG" alt="Keynote par Bernard Barbier, directeur technique de la DGSE" width="448" height="336" /><p class="wp-caption-text">Keynote par Bernard Barbier, directeur technique de la DGSE</p></div>
<h3>CASTAFIOR : Détection automatique de tunnels illégitimes par analyse statistique</h3>
<p>Fabien Allard et Mathieu Morel (Thales) présentent un outil permettant de détecter l&#8217;utilisation de différents protocoles encapsulés dans du HTTPS. Leur méthode est basée sur un apprentissage utilisant un ensemble d&#8217;exemples traité en utilisant différentes méthodes de classification, les paramètres étant principalement la longueur des paquets et le temps entre chacun. Leurs expériences montrent que les meilleurs résultats sont obtenus en combinant <a href="http://en.wikipedia.org/wiki/Random_forest">Random Forest</a> et les <a href="http://fr.wikipedia.org/wiki/Mod%C3%A8le_de_Markov_cach%C3%A9">modèles de Markov cachés</a>. Au final, on obtient 96% de bonnes classifications, et aux alentours de 5%.</p>
<h3>virtdbg : un débogueur noyau utilisant la virtualisation matérielle</h3>
<p>Damien Aumaitre et Christophe Devine (<a href="http://esec.fr.sogeti.com/blog/index.php">SOGETI ESEC</a>) dévoilent un debugger au but simple mais ambitieux : pouvoir debugger un système Windows 7 64 bits sans activer le flag /DEBUG, ni désactiver <a href="http://en.wikipedia.org/wiki/Kernel_Patch_Protection">PatchGuard</a>. Deux problèmes : impossible de charger un driver non signé par la méthode classique, ni de patcher l&#8217;<a href="http://en.wikipedia.org/wiki/Interrupt_descriptor_table#IDT">IDT</a> (PatchGuard l&#8217;en empêche). Leur technique consiste à utiliser le <a href="http://fr.wikipedia.org/wiki/Acc%C3%A8s_direct_%C3%A0_la_m%C3%A9moire">DMA</a> afin d&#8217;injecter leur driver comprenant leur hyperviseur. Pour ce faire, ils utilisent un FPGA connecté par PCMCIA sur la machine à debugger, et en USB sur le debugger. L&#8217;hyperviseur utilise la virtualisation hardware basée sur la technologie <a href="http://en.wikipedia.org/wiki/X86_virtualization#Intel_Virtualization_Technology_for_x86_.28Intel_VT-x.29">Intel  VT-x</a> (à la <a href="http://bluepillproject.org/">BluePill</a>), et permet d&#8217;intercepter les interruptions 1 et 3. L&#8217;interface de leur debugger est codée en Python, et dialogue avec l&#8217;hyperviseur en utilisant le protocole <a href="http://davis.lbl.gov/Manuals/GDB/gdb_31.html">GDB</a>. Le tout avec une démo qui marche, bravo à eux <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Démo de virtdbg par Damien Aumaitre et Christophe Devine" src="http://lh3.ggpht.com/_Rzr3MErwyvk/TBOUiLGfRkI/AAAAAAAAFRI/QCEJbZXqTpY/s640/IMG_8790.JPG" alt="Démo de virtdbg par Damien Aumaitre et Christophe Devine" width="448" height="336" /><p class="wp-caption-text">Démo de virtdbg par Damien Aumaitre et Christophe Devine</p></div>
<h3>Analyse de programme par traçage</h3>
<p>Pour Daniel Reynaud, Jean-Yves Marion et Wadie Guizani, l&#8217;analyse statique de blob binaire c&#8217;est bien, mais pas suffisant. Surtout dans le cas de binaires packés par couches. On propose donc un outil libre nommé <a href="http://code.google.com/p/tartetatintools/">TraceSurfer</a> basé sur <a href="http://www.pintool.org/">PIN</a>, permettant de suivre de déroulement d&#8217;un programme en générant des traces, puis de les importer dans des outils comme <a href="http://www.hex-rays.com/idapro/">IDA Pro</a>. Le résultat est assez sexy ; on peut alors visualiser les instructions effectivement exécutées par le programme, et détecter les éventuelles protections anti-debugging comme les auto-modifications ou contrôles d&#8217;intégrité. Il est possible de générer des graphes mettant en évidences les différentes couches d&#8217;un binaire packé. Pour tester sa performance, l&#8217;outil a été lancé sur un cluster dans le but de détecter des protections anti-VM de plusieurs milliers de malwares obtenus grâce à un honeypot. Les résultats sont assez intéressants, bien que je ne me souvienne plus des chiffres&#8230; À tester !</p>
<div class="wp-caption aligncenter" style="width: 458px"><img title="TraceSurfer en action dans IDA Pro" src="http://lh6.ggpht.com/_Rzr3MErwyvk/TBOUi5QLErI/AAAAAAAAFRQ/p73mEPYc5Mg/s640/IMG_8801.JPG" alt="TraceSurfer en action dans IDA Pro" width="448" height="336" /><p class="wp-caption-text">TraceSurfer en action dans IDA Pro</p></div>
<h3>Intéressez-vous au droit&#8230; avant que le droit ne s&#8217;intéresse à vous.</h3>
<p>Éric Barbry nous livre un véritable <em>one man show</em> qui contraste fortement avec le caractère technique des conférences précédentes. La France possède toute une série de lois relative aux systèmes d&#8217;informations, dont certaines difficilement applicables, et en pratique rarement appliquées en intégralité : Informatique et libertés, LSQ, LCEN, HADOPI, LOPPSI, etc. Et pourtant, «nul n&#8217;est censé ignorer la loi»&#8230; L&#8217;accent est porté sur la responsabilité, autour de questions concrètes telles que «Qui est le responsable si un employé télécharge illégalement du contenu ou parie en ligne sur des sites non autorisés depuis son bureau ?». Une très bonne intervention qui aura su capter l&#8217;intérêt de l&#8217;auditoire tout en traitant d&#8217;un sujet souvent considéré comme barbant <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Les multiples casquettes du RSSI" src="http://lh6.ggpht.com/_Rzr3MErwyvk/TBOUjZ0h14I/AAAAAAAAFRU/e2cxD2MGMlE/s640/IMG_8802.JPG" alt="Les multiples casquettes du RSSI" width="448" height="336" /><p class="wp-caption-text">Les multiples casquettes du RSSI</p></div>
<h3>Résultats et solution du challenge</h3>
<p>Le lendemain matin, on présente les résultats du <a href="http://communaute.sstic.org/ChallengeSSTIC2010">challenge</a> de cette année, qui en a dérouté plus d&#8217;un. Les solutions sont en ligne, je vous invite donc à les lire car je doute vraiment être le mieux placé pour les exposer ici&#8230; On a droit à un résumé par Arnaud Ébalard (EADS Innovation Works) dont la solution a été classée 1ère en terme de qualité. En vrac, on notera la récupération des .APK en utilisant les spécificités du format ZIP et un bruteforce sur les pages physiques, une couche crypto ressemblant à du Vigenère, une clé publique dont la seule composante utile était la sous-clé ElGamal, l&#8217;utilisation de <a href="http://pari.math.u-bordeaux.fr/">PARI/GP</a> pour l&#8217;attaquer, la décompilation des .DEX avec <a href="http://code.google.com/p/smali/">Baksmali</a>, du reversing de librairie .SO, des énigmes tordues, et un hash Shabal 256 mal utilisé. Un grand bravo à lui ainsi qu&#8217;à tous ceux qui ont réussi le challenge !</p>
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Mentions spéciales pour le challenge du SSTIC 2010" src="http://lh5.ggpht.com/_Rzr3MErwyvk/TBOUjqE3rtI/AAAAAAAAFRY/oUtNwupLilw/s640/IMG_8806.JPG" alt="Mentions spéciales pour le challenge" width="448" height="336" /><p class="wp-caption-text">Mentions spéciales pour le challenge</p></div>
<h3>Analyse de l&#8217;efficacité du service fourni par une IOMMU</h3>
<p>Par Éric Lacombe, Fernand Lone Sang, Vincent Nicomette et Yves Deswarte (LAAS/CNRS). Le but d&#8217;une <a href="http://en.wikipedia.org/wiki/IOMMU">IOMMU</a> est de contrôler les accès à la mémoire par les différents périphériques d&#8217;entrée/sortie, telle que la MMU vis-à-vis du CPU. Dans le cadre des attaques DMA, une IOMMU traduit les adresses virtuelles demandées par le périphériques en adresses physique en se basant sur deux critères principaux : le source-id identifiant le périphérique, et des tables de traductions internes. La conférence présente deux attaques visant chacun de ces critères : la reconfiguration des tables et le spoofing de source-id. La deuxième attaque est mise en œuvre en utilisant un pont PCI &#8211; PCI Express, fréquent surtout pour les machines anciennes. Un tel pont permet de connecter des devices PCI sur l&#8217;interface PCI Express ; le problème étant que tous les devices PCI rattachés partagent alors le même source-id. Une démo faisant intervenir un iPod malveillant et une carte réseau connecté sur un tel pont montre comment il est possible de déclencher une attaque d&#8217;ARP Cache Poisonning. Les paquets ARP étant injectés par l&#8217;iPod dans les buffers de réception gérés par les drivers de la carte réseau, l&#8217;attaquant n&#8217;a plus besoin d&#8217;envoyer de trames. On a ainsi droit à un hijacking en live d&#8217;un épisode de The Big Bang Theory regardé en streaming <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Quelques éléments en matière de sécurité des cartes réseau</h3>
<p>Par Guillaume Valadon, Loic Duflot, Olivier Levillain et Yves-Alexis Perez (ANSSI). Cette excellente conférence revient sur l&#8217;exploitation d&#8217;une <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0104">vulnérabilité</a> des cartes réseau Broadcom, patchée depuis. On y apprend avec stupéfaction (du moins pour ma part !) qu&#8217;une carte réseau est très loin d&#8217;être un élément &laquo;&nbsp;simple&nbsp;&raquo;. En effet, celle-ci possède un firmware qu&#8217;il est possible de flasher temporairement, qui gère certains protocoles de façon automatique et ce sans que le CPU en ait conscience ! Ainsi, ces carte réseau comportent leur propre pile IP et est même capable de gérer des messages SOAP&#8230; Le problème, c&#8217;est que celles-ci sont parfois implémentées sans notion de sécurité. Ici en l&#8217;occurrence, les auteurs mettent en évidence un buffer overflow touchant le champ &laquo;&nbsp;username&nbsp;&raquo; du protocole <a href="http://en.wikipedia.org/wiki/Alert_Standard_Format">ASF</a>,  utilisé pour le management et le monitoring. Pour être en mesure de l&#8217;exploiter, ils ont du coder un debugger de carte réseau, en utilisant le fait que les registres de la carte sont mappés en mémoire, et que celle-ci possède des options de debug (mode single-step, breakpoint&#8230;). En live, ils exploitent la vulnérabilité et montrent comment déclencher un remote root shell en envoyant un message ICMP. Vraiment bluffant&#8230;</p>
<p style="text-align: left;">
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Exploitation de buffer overflow dans le firmware d'une carte réseau" src="http://lh5.ggpht.com/_Rzr3MErwyvk/TBOUmMplNsI/AAAAAAAAFRo/XmpPSp3IucQ/s640/IMG_8820.JPG" alt="Exploitation de buffer overflow dans le firmware d'une carte réseau" width="448" height="336" /><p class="wp-caption-text">Exploitation de buffer overflow dans le firmware d&#39;une carte réseau</p></div>
<h3>Applications Facebook : Quels Risques pour l&#8217;Entreprise ?</h3>
<p>Alban Ondrejeck, Francois-Xavier Bru et Guillaume Fahrner montrent les résultats d&#8217;une expérience intéressante visant à mettre à l&#8217;épreuve le (non) contrôle des applications Facebook. Sous le couvert d&#8217;une application &laquo;&nbsp;Who crashed you?&nbsp;&raquo; codée maison et a priori &laquo;&nbsp;utile&nbsp;&raquo;, ils récoltent des informations personnelles sur les utilisateurs l&#8217;ayant installé, et exploitent le caractère viral du réseau social. En créant une vingtaine de profils fictifs et en ajoutant divers personnes comme amies, ils parviennent très rapidement à répandre l&#8217;application et à collecter des informations sur tous leurs utilisateurs (dommage, je n&#8217;ai pas noté les chiffres). Cela montre une absence de contrôle concernant les permissions de telles applis.</p>
<h3>Projet OpenBSC</h3>
<p>Harald Welte part d&#8217;un constat simple : les protocoles GSM et 3G sont documentés publiquement, mais les études de sécurité à ce sujet sont très peu nombreuses, du fait que l&#8217;industrie de la téléphonie est un monde très fermé (coût très élevé du hardware, notamment). Et pourtant, ces protocoles sont beaucoup plus répandus que ce que l&#8217;on pourrait croire. Comme le dit si bien l&#8217;orateur, «GSM is more than phone calls» : ce protocole est utilisé non seulement par les téléphones, mais aussi par certaines voitures, trains, systèmes d&#8217;alarmes, distributeurs, etc. Après avoir exposé rapidement l&#8217;architecture d&#8217;un réseau GSM, l&#8217;auteur introduit le projet <a href="http://openbsc.osmocom.org/trac/">OpenBSC</a>, qui vise à fournir les éléments nécessaires à la réalisation de son propre réseau GSM. Une sorte d&#8217;Asterisk pour le GSM, en gros&#8230; Les différents problèmes de sécurité du GSM sont rapidement abordés : pas d&#8217;authentification entre le téléphone et le réseau, chiffrement faible, optionnel et non explicite (rien ne permet à un utilisateur de savoir si ses communications sont véritablement chiffrées), dénis de service possibles, géolocalisation&#8230; N&#8217;ayant jamais étudié ces protocoles, je suis loin d&#8217;avoir tout saisis, mais la conférence était très intéressante et incite à en savoir plus.</p>
<p style="text-align: center;">
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Architecture d'un réseau GSM" src="http://lh4.ggpht.com/_Rzr3MErwyvk/TBOUn2WB6GI/AAAAAAAAFR0/aE1cbJAa3Wk/s640/IMG_8833.JPG" alt="Architecture d'un réseau GSM" width="448" height="336" /><p class="wp-caption-text">Architecture d&#39;un réseau GSM</p></div>
<h3>Rumps sessions</h3>
<p>Pour les néophytes du SSTIC, les <em>rumps sessions</em> sont des mini exposés de 4 ou 5 minutes présentables par n&#8217;importe qui et sur n&#8217;importe quel sujet, lié de près ou de loin à la sécurité. Je n&#8217;ai pas tout noté (pas comme <a href="http://sid.rstack.org/blog/index.php/411-en-direct-du-sstic-le-retour">Sid</a>), donc voici en vrac quelques une d&#8217;entre elles :</p>
<ul>
<li><em>Kesske SSTIC</em>, qui dévoile pas mal de chiffres sur l&#8217;édition 2010 du SSTIC. Pour ne citer que le minimum : 450 places écoulées en 25 heures, près de 2/3 du budget passe dans la bouffe (social event et resto universitaire), et un taux d&#8217;acceptation de 60% pour les soumissions de papier.</li>
<li><em>Timing attack sur machine à café</em>, ou comment exploiter une vulnérabilité de machine à café pour gagner de la fidélité sur sa carte, et donc des café gratuits. Le principe est simple : retirer la carte après que la machine ait incrémenté la fidélité, et avant le débit <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><em><a href="http://www.netglub.org/">Netglub</a></em>, où on a le droit à une super démo d&#8217;un outil Maltego-like en C++/Qt et &laquo;&nbsp;vraiment OpenSource&nbsp;&raquo; permettant de faire de la recherche d&#8217;information. Vraiment sympa, j&#8217;ai hâte que ça sorte.</li>
<li>Deux projets qui vont bientôt sortir : le moteur de recherche de vulnérabilités QSWX et son spider Bubulle, et SecurityGarden, une sorte de PaketStorm en mieux.</li>
<li><em><a href="http://www.decalage.info/exefilter">ExeFilter</a> contre les méchants PDF</em> : outil de nettoyage de fichiers, utilisable pour désactiver les contenus malveillants dans un PDF et accessoirement se protéger des 0-days potentiels.</li>
<li><em><a href="http://boss.gipsa-lab.grenoble-inp.fr/Warming/">BOSS</a> : Break Our Steganography System</em>, un challenge de stégano débutant à la fin du mois.</li>
<li><em>Scapytain</em> : Philipe Biondi expose de façon inédite un outil de gestion de campagne de tests basé sur <a href="http://www.secdev.org/projects/scapy/">Scapy</a>.</li>
</ul>
<p style="text-align: center;">
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Présentation de Scapytain sous GIMP" src="http://lh5.ggpht.com/_Rzr3MErwyvk/TBOUoSRcf1I/AAAAAAAAFR4/gMaPQEygi1o/s640/IMG_8836.JPG" alt="Présentation de Scapytain sous GIMP" width="448" height="336" /><p class="wp-caption-text">Présentation de Scapytain sous GIMP</p></div>
<h3>JBOSS AS: Exploitation et sécurisation</h3>
<p>Renaud Dubourguais (HSC) présente un état de l&#8217;art des vulnérabilités touchant le middleware JBOSS AS, démos à l&#8217;appui. Dès le début, c&#8217;est très clair : il n&#8217;y a pas de mécanismes de sécurité par défaut. Autrement dit, il y a de quoi faire&#8230; Console d&#8217;administration JMX accessible sans authentification (ou avec admin/admin), déploiement de backdoor sous forme d&#8217;application SAR, utilisation du protocole RMI, accès à la web console&#8230; Des mécanismes de sécurité existent (JBOSS SX, sandboxing) mais sont rarement implémentés en pratique. Une conférence très intéressante qui donne envie d&#8217;auditer du JBOSS&#8230;</p>
<h3>Audit d&#8217;applications .NET complexes</h3>
<p>Nicolas Ruff (EADS) dresse un état de l&#8217;art des techniques de reversing de code .NET permettant d&#8217;auditer les applications Microsoft. Une fois compilé, le bytecode .NET conserve la sémantique du code source, et il est possible de le décompiler avec des softs adaptés comme l&#8217;excellent <a href="http://www.red-gate.com/products/reflector/">Reflector</a>, et d&#8217;utiliser l&#8217;API de reflexion pour récupérer de nombreuses informations. La compilation de ce bytecode en langage machine peut se réaliser à la volée (Just In Time) ou bien sous forme de DLL dans le Global Assembly Cache, que l&#8217;on peut également analyser avec des outils comme IDA. J&#8217;y apprend également que Windbg supporte le debugging d&#8217;applications .NET avec l&#8217;extension <a href="http://msdn.microsoft.com/en-us/library/bb190764.aspx">SOS</a> accessible par la commande <code>.loadby sos mscorwks</code>. Démonstration pratique avec Songsmith, et hop.</p>
<h3>PoC(k)ET, les détails d&#8217;un rootkit pour Windows Mobile 6</h3>
<p>Cédric Halbronn expose les spécificités de l&#8217;implémentation d&#8217;un rootkit pour smartphone Windows Mobile 6. Ce genre de plateforme impose certaines contraintes, principalement la quantité de mémoire et la consommation de la batterie. Cependant comme le dit si bien l&#8217;auteur, le modèle de sécurité de Windows Mobile est très permissif. Les applications doivent être signées pour pouvoir s&#8217;installer&#8230; mais cette restriction est implémentée par le simple affichage d&#8217;un message d&#8217;avertissement. D&#8217;autre part, il est possible d&#8217;installer facilement un certificat dans le magasin de certificats privilégiés du téléphone, qui est invisible et inaccessible pour l&#8217;utilisateur. Il est alors facile de mettre en place un système de download &amp; execute furtif. En outre, le passage en mode noyau se fait on ne peut plus simplement, grâce à l&#8217;appel à l&#8217;API SetKMode() ! Il devient alors possible de hooker le driver baseband gérant les commandes AT, la saisie du code PIN (qui transite en clair entre le baseband et le CPU), les SMS&#8230; L&#8217;injection de DLL est aussi possible, donc camoufler des fichiers peut se faire de la façon habituelle avec un hook des API FindFirstFile() etc. Le rootkit exposé ici est injecté par WAP Push, est contrôlable par une interface graphique, et n&#8217;est pas détecté par les anti-virus, qui d&#8217;après l&#8217;auteur «ne détectent qu&#8217;entre 5 et 10 virus»&#8230; Une question est posée : «Comment se protège-t-on alors ?». La réponse est claire : «On ne prend pas Windows Mobile» <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;">
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Interface d'admin d'un rootkit Windows Mobile" src="http://lh4.ggpht.com/_Rzr3MErwyvk/TBOUpXCnUoI/AAAAAAAAFSA/gPzw4GpZWlU/s640/IMG_8842.JPG" alt="Interface d'admin du rootkit" width="448" height="336" /><p class="wp-caption-text">Interface d&#39;admin du rootkit</p></div>
<h3>Projet OsmocomBB</h3>
<p>Harald Welte nous parle maintenant du projet OsmocomBB, visant cette fois-ci à fournir un baseband OpenSource pour téléphone mobile. J&#8217;ai été un peu largué, mais la démo super visuelle et intéressante a retenue mon attention. Il s&#8217;agissait de sniffer les communications GSM avec un mobile Motorola (coutant aux alentours de 15€) connecté à un laptop, puis et de les rendre affichables dans Wireshark (sans les déchiffrer). Le tout dans un amphi plongé dans le noir et illuminé par le code défilant à l&#8217;écran&#8230; Comme le disaient certains, «Le SSTIC revient aux sources» !</p>
<p style="text-align: left;">
<div class="wp-caption aligncenter" style="width: 458px"><img class=" " title="Wieshark sniffant du GSM" src="http://lh5.ggpht.com/_Rzr3MErwyvk/TBOUqbE8e8I/AAAAAAAAFSE/enTQJI5gTbs/s640/IMG_8848.JPG" alt="Wieshark sniffant du GSM" width="448" height="336" /><p class="wp-caption-text">Wieshark sniffant du GSM</p></div>
<h3 style="text-align: left;">Conclusion</h3>
<p style="text-align: left;">Comme je le disais en intro, j&#8217;ai volontairement omis quelques conférences (notamment celle de clôture), principalement car car la mémoire me fait défaut, ou bien parce que j&#8217;estime que des bien meilleurs résumés ont été fait avant moi&#8230;</p>
<p style="text-align: left;">Globalement les conférences étaient d&#8217;excellente qualité. Mes coups de cœur restent les interventions techniques, (virtdbg, l&#8217;IOMMU, la sécurité des cartes réseau, JBOSS, le reversing d&#8217;applis .NET, PoC(k)ET, GSM&#8230;) même si les autres ne manquaient pas de qualité. Concernant la conférence sur OPA que je n&#8217;ai pas mentionnée ici, je suis assez d&#8217;accord avec ce qu&#8217;a exposé Sid sur son <a href="http://sid.rstack.org/blog/index.php/412-en-direct-du-sstic-la-revanche">blog</a>. Son contenu aurait pu être beaucoup plus intéressant, dommage qu&#8217;elle visait le mauvais public&#8230;</p>
<p style="text-align: left;">En tout cas, chapeau aux comités d&#8217;organisation et de programme ! J&#8217;espère pouvoir revenir l&#8217;année prochaine. En attendant, rendez-vous à la <a href="http://www.nuitduhack.com/">Nuit Du Hack</a> le week-end prochain <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: left;">Mes photos sont disponibles sur ma <a href="http://picasaweb.google.com/emilien.girault/SSTIC2010#">galerie Picasa</a>.</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/sstic-2010/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Résumé partiel des DC18 CTF Quals</title>
		<link>http://www.segmentationfault.fr/securite-informatique/resume-dc18-ctf-quals/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/resume-dc18-ctf-quals/#comments</comments>
		<pubDate>Mon, 24 May 2010 19:29:25 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[CTF]]></category>
		<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[Cryptographie]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=796</guid>
		<description><![CDATA[Contrairement à ce que certains pensent peut-être en voyant ce blog à l&#8217;abandon depuis plusieurs mois, non, je ne suis pas mort ! J&#8217;ai simplement été assez pris ces derniers temps, et j&#8217;essaye au passage de finaliser ma première release de XeeK pour la NDH le 19 juin&#8230;
Ce week-end, j&#8217;ai rapidement participé aux qualifications du [...]]]></description>
			<content:encoded><![CDATA[<p>Contrairement à ce que certains pensent peut-être en voyant ce blog à l&#8217;abandon depuis plusieurs mois, non, je ne suis pas mort ! J&#8217;ai simplement été assez pris ces derniers temps, et j&#8217;essaye au passage de finaliser ma première release de <a href="http://www.segmentationfault.fr/projets/conference-sur-xeek-a-la-ndh-2010/">XeeK</a> pour la <a href="http://www.nuitduhack.com">NDH</a> le 19 juin&#8230;</p>
<p>Ce week-end, j&#8217;ai rapidement participé aux qualifications du CTF de la <a href="http://www.defcon.org/">DefCon</a> 18. Je n&#8217;avais pas refait de challenge depuis <a href="http://www.segmentationfault.fr/securite-informatique/insomnihack2010-hzv-won/">Insomni&#8217;hack 2010</a> donc je me suis senti obligé de me décrasser un peu le cerveau. Ma participation à ces qualifications est toutefois restée limitée ; n&#8217;ayant pas pu m&#8217;inscrire à temps j&#8217;ai du rejoindre une team à l&#8217;arrache (Big-Daddy).<span id="more-796"></span></p>
<h3>Vue d&#8217;ensemble</h3>
<p>Le challenge consistait en 6 séries de 5 épreuves, chacune intitulée de la sorte :</p>
<ul>
<li>Poursuit trivial (épreuves générales)</li>
<li>Crypto Badness (cryptographie)</li>
<li>Packet Madness (réseau)</li>
<li>Binary L33tness (cracking, applicatif)</li>
<li>Pwtent Pwnables (exploitations de services)</li>
<li>Forensics (analyse de fichiers)</li>
</ul>
<p>N&#8217;ayant pas énormément de temps à consacrer à ce challenge, je n&#8217;ai pas vraiment touché à tout mais me suis focalisé sur la crypto et le réseau.</p>
<p>Dans l&#8217;ensemble j&#8217;ai trouvé ça plutôt sympa, même si j&#8217;ai quand même deux remarques négatives à faire :</p>
<ul>
<li>L&#8217;interface du panneau d&#8217;équipe codée en Java était vraiment plus que foireuse. Je ne sais pas si c&#8217;était du au fait qu&#8217;on soit plusieurs à partager le même compte, mais il fallait bouriner comme un dingue sur le bouton de validation afin d&#8217;avoir un espoir de valider les réponses (valides), voire même parfois se reconnecter.</li>
<li>Certaines épreuves étaient relativement <a href="http://www.dico-des-mots.com/definitions/capilotracter.html">capilotractées</a>, dans le sens ou elles n&#8217;étaient pas réalistes du tout et qu&#8217;il fallait être à peu près aussi dingue que leur concepteur pour la valider. Enfin je pense que ça doit être à peu près pareil sur tous les challenges du genre&#8230;</li>
</ul>
<p>Étant loin d&#8217;avoir réussi à valider toutes les épreuves, je vous propose de dévoiler la solution de deux d&#8217;entre elles que j&#8217;ai trouvées assez sympathiques.</p>
<h3>Packet Madness 200</h3>
<p>Dans cette épreuve, on fournissait une <a href="http://www.segmentationfault.fr/wp-content/uploads/2010/05/Copie-de-pkt200_55216efa7a182fb0.pcap_.txt">capture de paquets</a> (à renommer en .pcap), le but étant comme toutes les autres épreuves de trouver une passphrase de validation.</p>
<p>Sous Wireshark, on constate qu&#8217;il s&#8217;agit d&#8217;un trafic TCP entre un client et un serveur. En utilisant l&#8217;option &laquo;&nbsp;Follow TCP Stream&nbsp;&raquo;, on constate qu&#8217;il semble s&#8217;agir de trafic binaire&#8230;</p>
<div id="attachment_799" class="wp-caption aligncenter" style="width: 496px"><a href="http://www.segmentationfault.fr/wp-content/uploads/2010/05/pkt200_1.png"><img class="size-full wp-image-799" title="pkt200_1" src="http://www.segmentationfault.fr/wp-content/uploads/2010/05/pkt200_1.png" alt="" width="486" height="246" /></a><p class="wp-caption-text">Capture Wireshark</p></div>
<p style="text-align: left;">Cependant, l&#8217;indice laissé par l&#8217;épreuve suggère que les deux machines communiquent avec une &laquo;&nbsp;langue&nbsp;&raquo; inhabituelle. S&#8217;agirait-il d&#8217;un encodage connu mais peu courant ? En regardant un peu les encodages supportés par Wireshark, on s&#8217;aperçoit rapidement qu&#8217;ils &#8216;agit en fait de l&#8217;<a href="http://fr.wikipedia.org/wiki/Extended_Binary_Coded_Decimal_Interchange_Code">EBCDIC</a>, encodage créé par IBM qui semble remonter à l&#8217;époque quasi-préhistorique des cartes perforées&#8230; En utilisant cet encodage, on y voit tout de suite plus clair :</p>
<div id="attachment_800" class="wp-caption aligncenter" style="width: 647px"><a href="http://www.segmentationfault.fr/wp-content/uploads/2010/05/pkt200_2.png"><img class="size-full wp-image-800" title="pkt200_2" src="http://www.segmentationfault.fr/wp-content/uploads/2010/05/pkt200_2.png" alt="Trafic décodé" width="637" height="293" /></a><p class="wp-caption-text">Trafic décodé</p></div>
<p style="text-align: left;">Il s&#8217;agit donc d&#8217;une sorte de telnet encodé en EBCDIC. Visiblement, le serveur propose plusieurs options, comme la création d&#8217;un compte, l&#8217;authentification, un mode maintenance et un affichage de news. L&#8217;IP du serveur visible dans le dump, 192.42.96.121, existe bel et bien et héberge bien ce service sur le port 8686. Il semble donc que la réponse à l&#8217;épreuve doive être obtenue en s&#8217;y connectant. Malheureusement les outils classiques comme telnet et netcat ne supportent pas l&#8217;EBCDIC. Mais c&#8217;est sans compter Python, qui le supporte nativement, et qui va ainsi nous permettre de se coder un petit client maison :</p>
<pre style="text-align: left;">#!/usr/bin/python

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.41.96.121", 8686))

while True:
 data = s.recv(3000)
 print data.decode('EBCDIC-CP-BE').encode('ascii')

 input = raw_input()
 input_to_send = input.decode('ascii').encode('EBCDIC-CP-BE')+"%"
 s.send(input_to_send)
</pre>
<p style="text-align: left;">Ce client permet d&#8217;envoyer des commandes au service tout en affichant ses réponses. Toutefois, j&#8217;ai constaté qu&#8217;il était toujours en retard d&#8217;un message par rapport au serveur. N&#8217;ayant pas le temps d&#8217;être perfectionniste, je m&#8217;en suis contenté et ai pu me créer un compte sur le serveur avec la commande &laquo;&nbsp;a&nbsp;&raquo;, puis me loguer avec ce même compte (&laquo;&nbsp;l&nbsp;&raquo;). Le mode administrateur &laquo;&nbsp;m&nbsp;&raquo; ne fonctionnant pas, il ne restait que l&#8217;affichage des news (&laquo;&nbsp;n&nbsp;&raquo;), qui donnait cette sortie :</p>
<pre>5/21/2010 - Defcon qualifiers are underway.

5/18/2010 - It's Bob Randolph's birthday today, wish him well
 if you see him

5/16/2010 - It's IBM old timer's night at the bowling alley.
 The key thing to remember at these things is that:
 once upon a time IBM ruled the world

4/29/2001 - First post! w00t!
</pre>
<p>La news du 16 mai 2010 m&#8217;interpelle du fait de la présence du mot &laquo;&nbsp;key&nbsp;&raquo;&#8230; Nous testons donc la réponse &laquo;&nbsp;<em>once upon a time IBM ruled the world</em>&nbsp;&raquo; à l&#8217;épreuve, et après un léger acharnement collectif sur le team board, nous parvenons à valider ! Finalement, ce n&#8217;était pas compliqué&#8230;</p>
<h3>Crypto Badness 400</h3>
<p>Dans cette épreuve épinglée de l&#8217;indice &laquo;&nbsp;crack me&nbsp;&raquo;, on fournit une <a href="http://www.segmentationfault.fr/wp-content/uploads/2010/05/c400_95bcb7c5807a366d.tgz_.txt">archive tgz</a> (encore une fois à renommer). Celle-ci contient un fichier blob.dat visiblement chiffré et une clé publique pubkey.pem. Il s&#8217;agit donc visiblement de casser la <a href="http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique">clé publique</a> afin de retrouver la clé privée et déchiffrer le fichier .dat. Voici la clé publique :</p>
<pre>-----BEGIN RSA PUBLIC KEY-----
MGgCYQDK2YRVfJfgOUMaImrXJ/DG1D7z1BhGnxs3UEmyKYQ+6fg7H5dzisJ09fYf
QB8h8ZE+S2S7MbVaONOYwN/tALE5LwiJcRxEs1nnl2xhf8xzTwbj6VwmR2CRtS9G
LnlBPbUCAwEAAQ==
-----END RSA PUBLIC KEY-----
</pre>
<p>Il s&#8217;agit d&#8217;une clé <a href="http://en.wikipedia.org/wiki/RSA">RSA</a>. Pour analyser ce genre de clé, l&#8217;outil tout indiqué est <a href="http://www.openssl.org/">OpenSSL</a>. Cependant, une mauvaise surprise nous attend&#8230;</p>
<pre>$ openssl rsa -pubin -in pubkey.pem -text
unable to load Public Key
20934:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: PUBLIC KEY
</pre>
<p>Impossible de lire la clé avec cet outil, donc. Un peu de recherche Google, et je trouve <a href="http://barelyenough.org/blog/2008/04/fun-with-public-keys/">quelqu&#8217;un</a> qui a eu le même problème :</p>
<blockquote><p>The problem is this an RSA public key PEM or <a href="http://en.wikipedia.org/wiki/Distinguished_Encoding_Rules">DER</a> generated by Ruby’s <a href="http://ruby-doc.org/stdlib/libdoc/openssl/rdoc/index.html"><code>OpenSSL::PKey::RSA</code></a> are unreadable by <a href="http://www.openssl.org/">OpenSSL</a>, <a href="http://www.bouncycastle.org/">Bouncy Castle</a> and probably other  crypto tools.</p>
<p>The actual issue is that Ruby’s <code>OpenSSL::PKey::RSA#to_pem</code> and <code>#to_der</code> generate a <a href="http://tools.ietf.org/html/rfc3447#appendix-A.1.1">PKCS#1 public  key format</a> while the <code>openssl rsa</code> command only works <a href="http://en.wikipedia.org/wiki/PKCS">PKCS#8</a> formatted public keys.</p></blockquote>
<p>Ainsi, la clé semble avoir été générée avec le module OpenSSL de Ruby, et son format PKCS#1 empêche sa lecture avec OpenSSL. Qu&#8217;à cela ne tienne, nous allons utiliser ce même module pour la lire ! On ouvre le shell Ruby (IRB) et on tape :</p>
<pre>$ irb
irb(main):001:0&gt; require 'openssl'
=&gt; true
irb(main):002:0&gt; a=OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
=&gt; -----BEGIN RSA PUBLIC KEY-----
MGgCYQDK2YRVfJfgOUMaImrXJ/DG1D7z1BhGnxs3UEmyKYQ+6fg7H5dzisJ09fYf
QB8h8ZE+S2S7MbVaONOYwN/tALE5LwiJcRxEs1nnl2xhf8xzTwbj6VwmR2CRtS9G
LnlBPbUCAwEAAQ==
-----END RSA PUBLIC KEY-----

irb(main):003:0&gt; a.params
=&gt; {"dmq1"=&gt;0, "dmp1"=&gt;0, "iqmp"=&gt;0, "n"=&gt;12301866845301177551304949
58384962720772853569595334792197322452151726400507263657518745202199
78646938995647494277406384592519255732630345373154826850791702612214
29134616704292143116022212404792747377940806653514195974598569021434
13, "d"=&gt;0, "p"=&gt;0, "e"=&gt;65537, "q"=&gt;0}
</pre>
<p>On arrive ainsi à extraire le module (n) et l&#8217;exposant public (e). Ce dernier étant quasiment toujours le même, seul le module importe ici. Pour savoir si nous avons une chance de le casser, regardons sa taille en bits :</p>
<pre>$ python
&gt;&gt;&gt; import math
&gt;&gt;&gt; n=12301866845301177551304949583849627207728535695953347921973224
52151726400507263657518745202199786469389956474942774063845925192557
32630345373154826850791702612214291346167042921431160222124047927473
7794080665351419597459856902143413
&gt;&gt;&gt; math.log(n, 2)
767.66426718447133</pre>
<p>Il semble codé sur 728 bits&#8230; Cela ne vous rappelle rien ? Le nombre <a href="http://en.wikipedia.org/wiki/RSA_numbers#RSA-768">RSA-768</a> a été cassé en décembre dernier. Et comme par hasard, c&#8217;est bien le même qui est utilisé ici&#8230; Nous allons donc pouvoir utiliser sa factorisation pour générer la clé privée correspondante. Par chance, <a href="http://blog.stalkr.net/">StalkR</a> de la team <a href="http://nibbles.tuxfamily.org">Nibbles</a> a posté un <a href="http://nibbles.tuxfamily.org/?p=1040">article très similaire</a> issu du CTF <a href="http://www.codegate.org/Eng/">Codegate</a> il y a quelques mois. Il y indique la procédure à suivre pour générer le certificat, qui pour simplifier se résume à télécharger un <a href="http://stalkr.net/files/codegate/2010/7/e_os.h">en-tete d&#8217;OpenSSL</a> ainsi qu&#8217;un <a href="http://stalkr.net/files/codegate/2010/7/create_private.c">programme C</a> servant à générer la clé. On lance tout ça :</p>
<pre>$ gcc -lssl -o create_private create_private.c
$ ./create_private
</pre>
<p>La clé privée est générée dans le fichier private.pem. Il ne reste alors plus qu&#8217;à décrypter le fichier blob.dat en utilisant la commande :</p>
<pre>$ openssl rsautl -decrypt -inkey private.pem -in blob.dat -out output.txt</pre>
<p>Moment de vérité&#8230;</p>
<pre>$ cat output.txt
how long until 1024 falls by the wayside?</pre>
<p>Il s&#8217;agit bien de la réponse à l&#8217;épreuve (validée encore une fois grâce à un acharnement collectif).</p>
<p>Comme l&#8217;épreuve précédente, ce n&#8217;était techniquement pas compliqué, l&#8217;obstacle majeur étant la non-reconnaissance de la clé par OpenSSL&#8230; En tout cas merci à StalkR pour son article qui a été d&#8217;une grande aide.</p>
<h3>Conclusion</h3>
<p>Ces épreuves ont été l&#8217;occasion pour moi de me remettre un peu dans le bain des CTFs. Le niveau était globalement assez élevé (plus dur que l&#8217;année dernière à en croire certains), et nous n&#8217;avons réussi à valider que quelques épreuves; les résultats sont disponibles <a href="http://www.ddtek.biz/qualsDC18scores.txt">ici</a>. Pour ceux que ça intéresse, vous trouverez le résultat de la dernière épreuve du Poursuit trivial <a href="http://scott.wolchok.org/t500.html">ici</a>.</p>
<p>Chapeau à Nibbles pour avoir terminé 10ème ; un grand bravo à eux. Et merci à tous ceux avec qui j&#8217;ai challengé, en particulier à <a href="http://silkcut.wordpress.com/">Silkut</a>, MatToufoutu, et Dad. En espérant que nous parviendrons à créer une équipe HZV l&#8217;année prochaine, du moins si nous avons plus de temps et de ressources&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/resume-dc18-ctf-quals/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Conférence sur XeeK à la NDH 2010</title>
		<link>http://www.segmentationfault.fr/projets/conference-sur-xeek-a-la-ndh-2010/</link>
		<comments>http://www.segmentationfault.fr/projets/conference-sur-xeek-a-la-ndh-2010/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 12:27:00 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Nuit du hack]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[XeeK]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=789</guid>
		<description><![CDATA[Comme certains ont pu le voir sur Twitter ou sur le site de la NDH, j&#8217;ai repris le développement de XeeK, un projet de framework d&#8217;exploitation de faille XSS. J&#8217;ai déjà présenté une ébauche de ce projet à la Nuit Du Hack 2009, que j&#8217;ai stoppé entre temps, faute de temps (oui, je sais, c&#8217;est [...]]]></description>
			<content:encoded><![CDATA[<p>Comme certains ont pu le voir sur <a href="http://twitter.com/emiliengirault" target="_blank">Twitter</a> ou sur le site de la <a href="http://www.nuitduhack.com/conferences-fr-conferences-salon-challenge-hack.htm" target="_blank">NDH</a>, j&#8217;ai repris le développement de <a href="http://www.segmentationfault.fr/projets/xeek-framework-exploitation-xss/">XeeK</a>, un projet de framework d&#8217;exploitation de faille XSS. J&#8217;ai déjà présenté une ébauche de ce projet à la Nuit Du Hack 2009, que j&#8217;ai stoppé entre temps, faute de temps (oui, je sais, c&#8217;est mal). Mais rassurez-vous : début janvier, je me suis remis en tête de reprendre ce projet et d&#8217;en publier une version stable à la NDH 2010. En attendant la mise en place d&#8217;une page dédiée au projet, voici quelques informations sur les nouveautés à venir.</p>
<p><span id="more-789"></span></p>
<h3>XeeK is not dead</h3>
<p>Ainsi, je travaille activement sur le projet depuis plus d&#8217;un mois. J&#8217;ai profité de l&#8217;expérience de mes collègues pour faire une petit brainstorm sur l&#8217;état du projet, et ainsi obtenir de nouvelles idées. Comme certaines de ces idées remettaient en cause la structure mise en place, j&#8217;ai préféré reprendre le développement du projet from scratch.</p>
<h3>Quoi de neuf depuis 2009 ?</h3>
<p>Plusieurs personnes ont développé des outils aux fonctionnalités similaires (Beef, XSS Shell, etc). Plutôt que de réinventer la roue, j&#8217;ai préféré m&#8217;inspirer de ces outils afin d&#8217;intégrer leurs bonnes idées dans la plateforme. Voici quelques unes des nouvelles fonctionnalités prévues pour le moment : (cette liste est susceptible d&#8217;évoluer dans les mois à venir)</p>
<ul>
<li>L&#8217;architecture est désormais de type client &#8211; serveur</li>
<li>Les deux entités communiquent via une API basée sur HTTP/JSON</li>
<li>Cette architecture permettra de développer de multiples clients, un peu sur le modèle de Metasploit :
<ul>
<li>Interface console</li>
<li>Interface Web</li>
<li>Interface graphique (applicative)</li>
<li>Pourquoi pas une extension Firefox</li>
</ul>
</li>
<li>Abandon du concept de &laquo;&nbsp;scheduler&nbsp;&raquo; ; les instructions sont désormais toujours récupérées dynamiquement</li>
<li>Concept de chaine d&#8217;exploits : suite d&#8217;instructions qui s&#8217;enchaînent</li>
<li>De nouveaux exploits sont prévus
<ul>
<li>Scan de port du réseau interne</li>
<li>Récupération d&#8217;historique</li>
<li>Proxy</li>
</ul>
</li>
</ul>
<p>Au niveau technique, ce nouveau XeeK nécessitera PHP &gt;= 5.3.0 (à cause des <a href="http://php.net/manual/fr/language.oop5.late-static-bindings.php" target="_blank">Late Static Bindings</a>), MySQL ainsi que Python pour l&#8217;interface en ligne de commande.</p>
<h3>Licence</h3>
<p>Ce projet est développé principalement dans le cadre de mon temps R&amp;D chez Sysdream. Il sera diffusé en GPL suite à la conférence que je donnerai à la prochaine <a href="http://www.nuitduhack.com/conferences-fr-conferences-salon-challenge-hack.htm" target="_blank">Nuit Du Hack</a>. Un SVN ainsi qu&#8217;un wiki seront certainement mis en place pour permettre aux intéressés de récupérer les sources ainsi que la documentation.</p>
<p>En attendant le 19 juin, si vous avez des idées / suggestions, n&#8217;hésitez pas <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/projets/conference-sur-xeek-a-la-ndh-2010/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>George Hotz sera à la Nuit Du Hack 2010</title>
		<link>http://www.segmentationfault.fr/securite-informatique/nuit-du-hack-2010-georges-hotz/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/nuit-du-hack-2010-georges-hotz/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 14:41:16 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Evénement]]></category>
		<category><![CDATA[Nuit du hack]]></category>
		<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=766</guid>
		<description><![CDATA[La Nuit Du Hack 2010 aura lieu le 19 et 20 juin en plein centre de Paris. Comme les autres années, cet événement convivial a pour but de regrouper tous les passionnés de hacking et sécurité informatique, d&#8217;échanger librement et de tester ses connaissances par la pratique. Mais par rapport à 2009, cette année réserve [...]]]></description>
			<content:encoded><![CDATA[<p>La Nuit Du Hack 2010 aura lieu le 19 et 20 juin en plein centre de Paris. Comme les autres années, cet événement convivial a pour but de regrouper tous les passionnés de hacking et sécurité informatique, d&#8217;échanger librement et de tester ses connaissances par la pratique. Mais par rapport à 2009, cette année réserve son lot de nouveautés&#8230; puisque <strong>George Hotz</strong> présentera une conférence sur le cracking de la PS3 !<span id="more-766"></span></p>
<h3>La PS3 retournée par George Hotz</h3>
<p>Cette année, nous invitons des &laquo;&nbsp;VIP&nbsp;&raquo; pour présenter des conférences inédites. La liste définitive n&#8217;est pas encore connue, néanmoins la présence de<strong> </strong><a href="http://fr.wikipedia.org/wiki/George_Hotz" target="_blank">George Hotz</a> a été confirmée. Aussi connu sous le pseudo <a href="http://twitter.com/geohot" target="_blank">GeoHot</a>, cet étudiant du <a href="http://www.segmentationfault.fr/semestre-etats-unis/arrivee-au-rit/" target="_blank">RIT</a> est le premier à avoir jailbreaké l&#8217;<a href="http://iphonejtag.blogspot.com/2007/08/full-hardware-unlock-of-iphone-done.html" target="_blank">iPhone</a>, et <a href="http://www.techno-science.net/?onglet=news&amp;news=7447" target="_blank">plus récemment</a> la <a href="http://geohotps3.blogspot.com/" target="_blank">PS3</a>. C&#8217;est sur le cracking cette dernière console que portera sa conférence.</p>
<h3>Call for papers</h3>
<p>Bien entendu, présenter une conférence n&#8217;est pas réservé aux VIP. Nous recherchons d&#8217;ailleurs activement des volontaires souhaitant présenter leurs travaux pour des conférences d&#8217;une trentaine de minutes. Si vous êtes intéressés, n&#8217;hésitez pas à <a href="http://www.nuitduhack.com/conferences-fr-conferences-salon-challenge-hack.htm" target="_blank">soumettre</a> votre proposition au staff !</p>
<h3>Une péniche de 3 étages</h3>
<p>Comme l&#8217;année dernière, l&#8217;événement aura lieu sur une péniche. Mais cette fois-ci, nous avons pris le gabarit supérieur ! Avec ses 3 étages, la péniche <a href="http://www.nuitduhack.com/programme-fr-conferences-salon-challenge-hack.htm" target="_blank">Concorde Atlantique</a> sera en mesure d&#8217;accueillir pas moins de 400 participants.</p>
<h3>Do you speak English?</h3>
<p>Jusqu&#8217;ici restée 100% francophone, la Nuit Du Hack devient pour la première fois bilingue, et se voit traduite par &laquo;&nbsp;Night Da Hack&nbsp;&raquo; en Anglais. Le but étant bien sur de rendre l&#8217;événement accessible à nos amis anglophones venant de toute l&#8217;Europe, des États-Unis, et partout ailleurs. Certaines conférences seront données en Anglais, d&#8217;autres en Français.</p>
<h3>Ateliers</h3>
<p>A l&#8217;image de la DEF CON, nous organiserons des ateliers en parallèle des conférences et challenges. Chacun centré sur un thème particulier, leur but sera de favoriser la mise en pratique pour les participants. Nous recherchons également des volontaires pour présenter des ateliers (ex: lockpicking, manipulation d&#8217;outils tels que Metasploit, Maltego, etc), n&#8217;hésitez pas à <a href="http://www.nuitduhack.com/conferences-fr-conferences-salon-challenge-hack.htm" target="_self">vous faire connaître</a> si vous avez des idées !</p>
<h3>Capture The Flag</h3>
<p>Comme l&#8217;année dernière, le challenge sera un &laquo;&nbsp;Capture The Flag&nbsp;&raquo;. Pour les néophytes, il s&#8217;agit d&#8217;un concours par équipes de 5, dans lequel chaque équipe se voit remettre un serveur hébergeant un certain nombre de services vulnérables. Son but est de protéger son serveur en maintenant ses services disponibles, tout en attaquant les serveurs ennemis et en faisant tomber leurs services. Pour gagner des points, il faut trouver des failles ou bien patcher ses services. Chaque service qui tombe fait perdre un certain nombre de points par minute à l&#8217;adversaire. Le staff disposera en parallèle d&#8217;un serveur de monitoring pour être en mesure de comptabiliser les points en temps réel.</p>
<p>Le CTF est limité à 10 équipes de 5, alors <a href="http://www.nuitduhack.com/challenges-fr-conferences-salon-challenge-hack.htm" target="_blank">inscrivez-vous</a> vite !</p>
<h3>Challenge public</h3>
<p>Pour les gens n&#8217;ayant que peu d&#8217;expérience en pentesting, nous mettrons à disposition de tous un challenge ouvert. Il s&#8217;agira d&#8217;un serveur accessible en Wifi hébergeant des épreuves communes.</p>
<h3>Prix</h3>
<p>Les gagnants du CTF se verront remettre divers prix offerts par <a href="http://www.sysdream.com/" target="_blank">Sysdream</a> :</p>
<ul>
<li>Livres techniques sur la sécurité</li>
<li>Hardware (laptop, etc)</li>
<li>Certifications en sécurité (<a href="http://www.sysdream.com/section_124/Formation-Certified-Ethical-Hacker.html" target="_blank">CEH</a>, <a href="http://www.sysdream.com/section_125/Formation-EC-Council-Certified-Security-Analyst.html" target="_blank">ECSA/LPT</a>, <a href="http://www.sysdream.com/section_142/Certification-Management-Certified-Information-Systems-Security-Professional.html" target="_blank">CISSP</a>, etc.) reconnues mondialement</li>
</ul>
<h3>Pour plus d&#8217;infos</h3>
<p>Pour vous inscrire ou pour toute information complémentaire, n&#8217;hésitez pas à consulter le <a href="http://www.nuitduhack.com/accueil-fr-nuit-du-hack-2010.htm" target="_blank">site de la Nuit Du Hack</a> ! Vous y trouverez notamment des photos et vidéos des <a href="http://www.nuitduhack.com/archives-fr-archives-nuit-du-hack.htm" target="_blank">années passées</a>. J&#8217;ai également posté <a href="http://www.segmentationfault.fr/categories/evenement/nuit-du-hack/">quelques articles</a> au sujet des dernières éditions sur ce blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/nuit-du-hack-2010-georges-hotz/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Insomni&#8217;hack 2010 : HZV won</title>
		<link>http://www.segmentationfault.fr/securite-informatique/insomnihack2010-hzv-won/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/insomnihack2010-hzv-won/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 20:42:26 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Evénement]]></category>
		<category><![CDATA[Nuit du hack]]></category>
		<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=752</guid>
		<description><![CDATA[Ce week-end, c&#8217;est avec trois membres de HZV (Crashfr, Virtualabs, et Fluxius) que je me suis rendu à Insomni&#8217;hack, un challenge de hacking se déroulant à Genève. Le challenge était au départ individuel, mais nombreux étaient ceux qui, comme nous, s&#8217;entre-aidaient. Le but était simple : valider un maximum d&#8217;épreuves avant 1h du matin. Au [...]]]></description>
			<content:encoded><![CDATA[<p>Ce week-end, c&#8217;est avec trois membres de <a href="http://www.thehackademy.net/index.php" target="_blank">HZV</a> (Crashfr, Virtualabs, et Fluxius) que je me suis rendu à <a href="http://www.scrt.ch/pages/concours10.html" target="_blank">Insomni&#8217;hack</a>, un challenge de hacking se déroulant à Genève. Le challenge était au départ individuel, mais nombreux étaient ceux qui, comme nous, s&#8217;entre-aidaient. Le but était simple : valider un maximum d&#8217;épreuves avant 1h du matin. Au final, c&#8217;est notre équipe qui a remporté le challenge. Voici un petit résumé de quelques épreuves intéressantes dont je me rappelle.</p>
<p><span id="more-752"></span></p>
<p>Le challenge était composé de 9 séries d&#8217;épreuves, chacune étant d&#8217;un type différent. Décidés à en valider un maximum, nous nous sommes répartis le travail entre tous les membres de l&#8217;équipe, en centralisant les solutions. Et c&#8217;est moi qui me suis retrouvé désigné comme étant la personne en charge de tout valider <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Enfin, deux difficultés notables étaient à souligner : les prises électriques étaient suisses (merci à la personne nous ayant prêté un adaptateur)  et aucune connexion internet n&#8217;était fournie.</p>
<div class="wp-caption aligncenter" style="width: 458px"><img title="L'équipe HZV" src="http://lh3.ggpht.com/_Rzr3MErwyvk/S138HX8cIbI/AAAAAAAAEzQ/rn8klY2SN4M/s640/024.JPG" alt="L'équipe HZV" width="448" height="336" /><p class="wp-caption-text">L&#39;équipe HZV</p></div>
<p style="text-align: center;">
<h3>One Time Pad</h3>
<p>J&#8217;ai commencé par la première épreuve de la série intitulée &laquo;&nbsp;One Time Pad&nbsp;&raquo;, portant sur la crypto. Il s&#8217;agissait de décrypter un fichier chiffré avec l&#8217;algorithme <a href="http://fr.wikipedia.org/wiki/One_Time_Pad" target="_blank">One Time Pad</a>, sachant que l&#8217;on nous donnait un couple plaintext &#8211; ciphertext chiffré avec la même clé&#8230; Un simple XOR entre les deux permettait donc de révéler cette dernière, et donc de déchiffrer le message.</p>
<h3>RSA</h3>
<p>Après cet échauffement, on enchaîne avec du RSA. La deuxième épreuve OTP consiste à casser un message chiffré avec une implémentation de RSA vraisemblablement pas terrible niveau sécurité. Le message en question était composé d&#8217;un header qui n&#8217;était autre que la concaténation de l&#8217;exposant public (e) et du module (N) utilisé pour chiffrer le message, le tout encodé en base 64. Étant donné que N avait une taille ridiculement faible (une trentaine de bits), il était très facile de le factoriser. Personnellement, je me suis servi de l&#8217;outil RSA Tool 2, permettant non seulement de factoriser N mais aussi de retrouver l&#8217;exposant privé (d). Une fois d obtenu, il suffisait d&#8217;utiliser l&#8217;outil fourni pour déchiffrer le message.</p>
<h3>Follow the white rabbit</h3>
<p>La 3ème épreuve de la série consistait à lire un message dans une image représentant un lapin, elle faisait donc appel à de la stéganographie. Notre intuition nous disait qu&#8217;il y avait du <a href="http://fr.wikipedia.org/wiki/Bit_de_poids_faible" target="_blank">LSB</a> dans l&#8217;air, mais nous n&#8217;avons pas eu le temps de coder un outil sur place (nous avions la flemme de lire les specs du BMP). Plusieurs membres de notre équipe ont fait une fixation sur ce lapin, espérant y voir un &laquo;&nbsp;message subliminal&nbsp;&raquo; (private joke)&#8230; Suite à  la fin de ce billet.</p>
<div class="wp-caption aligncenter" style="width: 458px"><img title="F|UxIuS, dont le pseudo a donné mal à la tête au staff" src="http://lh6.ggpht.com/_Rzr3MErwyvk/S138F8iZ1kI/AAAAAAAAEzI/R2N0hGpDxqE/s640/011.JPG" alt="F|UxIuS, dont le pseudo a donné mal à la tête au staff" width="448" height="336" /><p class="wp-caption-text">F|UxIuS, dont le pseudo a donné mal à la tête au staff</p></div>
<h3>Shoot the caribou</h3>
<p>Dans cette épreuve flash faisant partie de la série &laquo;&nbsp;les soirées de Kévin&nbsp;&raquo;, il fallait tirer sur un caribou pour obtenir un score le plus élevé possible. Ce score était alors envoyé au serveur, qui affichait le code de validation si le score était suffisamment élevé. Sauf qu&#8217;il était physiquement impossible d&#8217;atteindre un tel score, à moins d&#8217;être un maniaque de la souris&#8230;</p>
<p>Virtualabs et Fluxius se sont alors mis à décompiler le flash, et on trouvé que le score était d&#8217;abord chiffré en RC4 puis envoyé au serveur. Bien entendu, la clé RC4 étaient hardcodée dans le flash. Apres extraction de la clé, il leur a donc été possible de forger un score de plusieurs millions de points, de le chiffrer correctement et de l&#8217;envoyer au serveur pour que celui-ci accepte de révéler le code de validation.</p>
<div class="wp-caption aligncenter" style="width: 458px"><img title="La team soutenue par son sponsor..." src="http://lh3.ggpht.com/_Rzr3MErwyvk/S138GrEDm0I/AAAAAAAAEzM/doNjRmRORRA/s640/012.JPG" alt="La team soutenue par son sponsor..." width="448" height="336" /><p class="wp-caption-text">La team soutenue par son sponsor...</p></div>
<p style="text-align: center;">
<h3>300 captchas</h3>
<p>Épreuve &laquo;&nbsp;kikoo&nbsp;&raquo; n°2. Il fallait résoudre 300 <a href="http://fr.wikipedia.org/wiki/Captcha" target="_blank">captchas</a> sur une page Web dans un laps de temps très bref. Même si dans l&#8217;absolu c&#8217;est théoriquement envisageable, cela reste quand même assez incertain. Il fallait donc remarquer que l&#8217;URL de validation du captcha contenait en réalité le texte de celui-ci encodé en base64&#8230; Il a donc été assez facile de coder un bot en Python récupérant les pages et effectuant la chaîne de validation pour valider l&#8217;épreuve.</p>
<h3>Failles applicatives</h3>
<p>La série d&#8217;épreuve nommée  &laquo;&nbsp;Exploitation&nbsp;&raquo; consistait à télécharger une VM Linux et à exploiter les différentes failles qui s&#8217;y trouvaient. Il s&#8217;agissait d&#8217;une série de binaires SUID comportant différentes failles applicatives. La première n&#8217;était autre qu&#8217;un <a href="http://www.ghostsinthestack.org/article-13-les-buffers-overflows.html" target="_blank">buffer overflow</a>. Le temps de sortir Python, un shellcode Linux, ainsi que GDB, et l&#8217;épreuve a été validée sans trop de soucis.  La deuxième faille de la série était une format string, un peu plus galère à exploiter. Enfin la dernière était une faille maison qui s&#8217;exploitait en forgeant le paramètre d&#8217;entrée de telle sorte à ce qu&#8217;il soit accepté et que le programme finisse par lire le fichier contenant le code de validation.</p>
<h3>Grub FAIL!</h3>
<p>Pour exploiter ces 3 failles applicatives, il fallait donc être quand même motivé&#8230; Mais il y avait moyen de faire plus simple. Beaucoup plus simple. En effet, les membres du staff avaient oublié un détail crucial : sécuriser le Grub de la VM&#8230; Il était par conséquent possible de rooter la VM juste en ajoutant la chaîne ultra-connue &laquo;&nbsp;init=/bin/sh&nbsp;&raquo; comme paramètre du noyau pour se retrouver automatiquement logué en root. Et paf le shell !</p>
<div id="attachment_755" class="wp-caption aligncenter" style="width: 360px"><a href="http://www.segmentationfault.fr/wp-content/uploads/2010/01/exploit_grub.png"><img class="size-full wp-image-755" title="Owned by Grub" src="http://www.segmentationfault.fr/wp-content/uploads/2010/01/exploit_grub.png" alt="Owned by Grub" width="350" height="79" /></a><p class="wp-caption-text">Owned by Grub</p></div>
<p>Voila ce qui arrive lorsqu&#8217;on oublie ce genre de détail <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Le staff a d&#8217;ailleurs fait une drôle de tête quand nous les avons informé de ce léger oubli. Enfin, ils auraient pu jouer le jeu et accorder un bonus supplémentaire&#8230;</p>
<h3>Remise des prix</h3>
<p>A 1h du mat, le challenge se termine et le vainqueur est annoncé. Même s&#8217;il s&#8217;agit de moi, je tiens vraiment à rappeler que le véritable vainqueur du challenge n&#8217;est pas moi, mais bien l&#8217;ensemble de la team qui représentait HZV ! Le 2ème est Samsa (un Espagnol fort sympathique), suivi de Nagual (de Backtrack-fr) et de l&#8217;équipe de Maubeuge (merci à Shatter pour le screenshot des scores !).</p>
<p style="text-align: center;">
<div id="attachment_756" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.segmentationfault.fr/wp-content/uploads/2010/01/insomnihack_results.png"><img class="size-large wp-image-756 " title="Résultats Insomni'hack 2010" src="http://www.segmentationfault.fr/wp-content/uploads/2010/01/insomnihack_results-1024x663.png" alt="Résultats Insomni'hack 2010" width="500" height="356" /></a><p class="wp-caption-text">Résultats Insomni&#39;hack 2010</p></div>
<p>Nous recevons alors une panoplie de t-shirts Kaspersky et Insomni&#8217;hack, ainsi qu&#8217;un sympathique routeur firewall Fortinet. Bref, de quoi s&#8217;amuser un peu à Sysdream <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nous terminons la soirée tranquillement à notre hôtel, accompagné comme il se doit d&#8217;une bouteille de Vodka, de chips et de saucisson. Bah oui, il faut bien fêter tout ça !</p>
<h3>Annexe : Le poutrage du lapin masqué</h3>
<p>Le lendemain du challenge, après avoir été hanté toute la nuit par l&#8217;image du lapin (One Time Pad n°3) resté incomprise, je me suis mis en tête de trouver la solution à cette épreuve. Avec GIMP, je me suis aperçu que l&#8217;outil pot de peinture appliqué (réglé avec un seuil nul) sur des zones aléatoires de l&#8217;image faisait apparaître clairement des bandes verticales, qui en plus étaient toutes espacées de 7 pixels. Autrement dit, ces bandes avaient beaucoup de chance de représenter les pixels dont le bit de poids fort était à zéro, comme c&#8217;est toujours le cas en ASCII (non étendu). Le LSB se confirmait de plus en plus&#8230; Ayant Python sous la main, j&#8217;ai codé un petit tool permettant de parser l&#8217;image, extraire tous ses bits de poid faible, et ainsi reconstituer le message. A un décalage près, voici le résultat :</p>
<pre>W3LCOME_2_H4CK3R'S_WOND3RL4ND</pre>
<p>On notera la référence au lapin blanc d&#8217;Alice au Pays des Merveilles&#8230; Maintenant, Crashfr et Fluxius peuvent dormir tranquille sans être hantés <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Seul regret : ne pas avoir eu le temps de valider cette épreuve sur place&#8230;</p>
<div class="wp-caption aligncenter" style="width: 458px"><img title="Les geeks aussi ont le droit de faire du tourisme" src="http://lh3.ggpht.com/_Rzr3MErwyvk/S1y52M-edBI/AAAAAAAAExk/Gq6MhBbSymo/s640/IMG_7072.JPG" alt="Les geeks aussi ont le droit de faire du tourisme" width="448" height="336" /><p class="wp-caption-text">Les geeks aussi ont le droit de faire du tourisme</p></div>
<h3>Conclusion et remarques</h3>
<p>Au final, toute l&#8217;équipe ainsi que moi-même avons passé un très bon moment lors de cette soirée, riche en ambiance chaleureuse, rencontre, boissons (enfin, nous étions la seule équipe à boire), et prise de tête sur les différents challenges <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . C&#8217;était la première fois que je me rendais à un événement de ce genre à l&#8217;étranger.</p>
<p>J&#8217;aurais toutefois quelques remarques / critiques concernant l&#8217;événement :</p>
<ul>
<li>Nous avons trouvé assez peu réglo le fait que certaines équipes disposaient d&#8217;Internet via une connexion 3G, car cela avantage considérablement.</li>
<li>Nous regrettons le manque de réalisme des épreuves, un peu trop axées sur la kikoolol attitude et pas assez sur ce qui se trouve réellement en pentest.</li>
<li>Dommage que l&#8217;événement se termine si tôt (1h du mat), surtout avec un nom comme &laquo;&nbsp;Insomni&#8217;hack&nbsp;&raquo;&#8230;</li>
</ul>
<p>J&#8217;espère que le staff, s&#8217;il lit ce billet, ne les prendra pas mal ; il s&#8217;agit au contraire de conseils pour l&#8217;année prochaine.</p>
<p>En tout cas, félicitations à eux pour avoir organisé cet événement ! Nous espérons les voir le 19 juin à la <a href="http://www.nuitduhack.com/accueil-fr-ndh.htm" target="_blank">Nuit du Hack</a> <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://www.slashon.com/index.php/2010-01-25/InsomniHack_2010_HzV_Winners" target="_blank">Plus de photos sur le blog de Fluxius</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/insomnihack2010-hzv-won/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Bypassing SEHOP on Windows 7</title>
		<link>http://www.segmentationfault.fr/securite-informatique/bypassing-sehop-on-windows-7/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/bypassing-sehop-on-windows-7/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 12:59:28 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[seven]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=740</guid>
		<description><![CDATA[La protection SEHOP introduite dans Windows Vista et 2008 permet de protéger les applications contre les exploitations de buffer-overflows classiques. Celles-ci consistent en général à écraser non seulement une adresse de retour, mais aussi la structure SEH gérant les exceptions provoquées par l&#8217;application, dans le but de rediriger le flux d&#8217;exécution vers un shellcode. La [...]]]></description>
			<content:encoded><![CDATA[<p>La protection SEHOP <a href="http://blogs.technet.com/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx">introduite</a> dans Windows Vista et 2008 permet de protéger les applications contre les exploitations de buffer-overflows classiques. Celles-ci consistent en général à écraser non seulement une adresse de retour, mais aussi la structure SEH gérant les exceptions provoquées par l&#8217;application, dans le but de rediriger le flux d&#8217;exécution vers un shellcode. La protection SEHOP empêche ce type d&#8217;exploitation en parcourant au préalable la chaîne des structures SEH et en s&#8217;assurant qu&#8217;elle soit valide. Jusqu&#8217;à maintenant, elle était considérée par beaucoup comme inviolable. Microsoft ont d&#8217;ailleurs décidé de l&#8217;activer par défaut dans Windows 2008, ainsi que dans Windows Vista et 7 sous forme de fix.<span id="more-740"></span></p>
<p>Or, deux collègues de <a href="http://www.sysdream.com/">Sysdream</a>, Stéfan Leberre (<a href="http://www.ghostsinthestack.org">Heurs</a>) et Damien Cauquil (<a href="http://www.virtualabs.fr">Virtualabs</a>), viennent de trouver une méthode permettant de la contourner sous certaines conditions. Leur article ainsi que leur Proof Of Concept est disponible sur le site de Sysdream :</p>
<ul>
<li><a href="http://www.sysdream.com/articles/sehop_en.pdf">L&#8217;article Bypassing SEHOP</a></li>
<li><a href="http://www.sysdream.com/SEHOP.zip">Proof Of Concept fonctionnant sous Windows 7</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/bypassing-sehop-on-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>emiliengirault.fr devient segmentationfault.fr</title>
		<link>http://www.segmentationfault.fr/blog/emiliengirault-fr-devient-segmentationfault-fr/</link>
		<comments>http://www.segmentationfault.fr/blog/emiliengirault-fr-devient-segmentationfault-fr/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 22:29:59 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=736</guid>
		<description><![CDATA[Comme vous l&#8217;avez sûrement constaté, l&#8217;adresse de ce blog est désormais www.segmentationfault.fr. La principale raison étant que je trouve que le nouveau titre sonne mieux que l&#8217;ancien  . L&#8217;ancienne adresse reste valide, mais pensez à mettre à jour vos RSS au cas où.
]]></description>
			<content:encoded><![CDATA[<p>Comme vous l&#8217;avez sûrement constaté, l&#8217;adresse de ce blog est désormais <a href="http://www.segmentationfault.fr">www.segmentationfault.fr</a>. La principale raison étant que je trouve que le nouveau titre sonne mieux que l&#8217;ancien <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . L&#8217;ancienne adresse reste valide, mais pensez à mettre à jour vos RSS au cas où.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/blog/emiliengirault-fr-devient-segmentationfault-fr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exploitation de faille include avec les sessions PHP</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/</link>
		<comments>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 19:05:43 +0000</pubDate>
		<dc:creator>Emilien Girault</dc:creator>
				<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713</guid>
		<description><![CDATA[Il y a quelques jours, je suis tombé sur un challenge de hack PHP. J&#8217;arrive sur une page avec une URL du type www.site.com/index.php?page=main.php,  qui ressemble étrangement à la célèbre faille include. En effet, quelques tests le démontrent. Autre part sur le site, on trouve une page protégée par un .htaccess. Pour le bypasser, on [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a quelques jours, je suis tombé sur un challenge de hack PHP. J&#8217;arrive sur une page avec une URL du type <code>www.site.com/index.php?page=main.php</code>,  qui ressemble étrangement à la célèbre faille include. En effet, quelques tests le démontrent. Autre part sur le site, on trouve une page protégée par un .htaccess. Pour le bypasser, on utilise naturellement cette faille include (ou bien <a href="http://www.segmentationfault.fr/securite-informatique/contourner-htaccess-limit-get-post/">cette autre méthode</a>). Mais ce n&#8217;est pas tout. Outre le fait qu&#8217;on ne puisse pas inclure de page distante (directive <code>allow_url_include</code> activée), l&#8217;administrateur n&#8217;a pas du tout protégé cette faille include. On peut donc inclure tous les fichiers locaux accessibles&#8230;<span id="more-713"></span></p>
<h3>Il était une fois une include non protégée&#8230;</h3>
<p>Je me lance donc dans l&#8217;exploration de l&#8217;arborescence en récupérant quelques fichiers intéressants. Commepar exemple /proc/version, qui indique que le serveur tourne sous une Ubuntu basée sur un kernel 2.6.25. Je regarde également  une partie de la configuration Apache dans /etc/apache2/apache2.conf, la liste des utilisateurs dans /etc/passwd. /etc/shadow est bien évidemment non accessible car Apache n&#8217;est pas lancé par le root. Mais sachant qu&#8217;un <a href="http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html">exploit</a> touchant les Linux non patchés a récemment été <a href="http://www.milw0rm.com/exploits/9435">publié</a>,  je me dis qu&#8217;il doit certainement être possible de rooter le serveur à partir de là. Si j&#8217;arrive à exécuter des commandes sur le serveur avec les droits d&#8217;Apache, devenir root ne devrait pas être dur en utilisant cet exploit&#8230;</p>
<p>Je cherche donc un moyen d&#8217;utiliser la faille include pour pouvoir exécuter du code. Je pense en particulier à l&#8217;injection de commandes dans les logs Apache. Seul problème : ils ne sont lisibles que par le root, donc pas par Apache (il suffit de tester pour s&#8217;en rendre compte rapidement). Où vais-je donc pouvoir injecter mes commandes&#8230; ? Quels sont les fichiers manipulés par Apache et PHP dans lesquels on peut écrire indirectement et lire ensuite ? Sur le coup, je sèche&#8230;</p>
<h3>&#8230;un site utilisant les sessions&#8230;</h3>
<p>Là, <a href="http://www.ghostsinthestack.org/">Heurs</a> et <a href="http://virtualabs.fr">Virtualabs</a> me donnent la réponse : les sessions PHP. En effet, PHP stocke les variables de session dans des fichiers (elles sont sérialisées) qui se situent dans /var/lib/php5/. Leur nom suit le format <code>sess_$PHPSESSID</code> où <code>$PHPSESSID</code> est l&#8217;identifiant de session qui est envoyé dans le cookie, donc facilement récupérable. Et, coup de chance, il se trouve que le challenge en question utilise les sessions pour stocker l&#8217;utilisateur courant et son mot de passe. Champs qui ne sont sont bien pas vérifiés lors de la soumission du formulaire <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>C&#8217;est parti ! Je crée un compte bidon avec quelque chose comme <code>&lt;?php system($_GET['c']); ?&gt;</code> pour le login. Je soumet, récupère le cookie contenant l&#8217;identifiant de session, et inclus le fichier de session correspondant. Et là, j&#8217;obtiens une jolie backdoor PHP sur le serveur. Rudimentaire, certes, mais fonctionnelle ! A partir de là, j&#8217;en conçois une légèrement plus élaborée, que je place sur un de mes serveurs, et que je fais télécharger au serveur victime avec un <code>wget</code> (suivi d&#8217;un <code>mv</code>). Je peux maintenant exécuter des commandes PHP à volonté, lire des fichiers sources, etc. Je récupère une autre backdoor permettant d&#8217;obtenir un remote shell sur ma machine. J&#8217;ouvre un port avec Netcat sur ma machine, j&#8217;upload et lance la backdoor, et le tour est joué.</p>
<h3>&#8230; et un kernel non patché.</h3>
<p>Je peux maintenant exécuter des commandes de façon interactive, mais toujours avec les droits d&#8217;Apache. Je télécharge un des exploits sock_sendpage de Milw0rm, le compile sur le serveur (gcc y était installé, cool), je lance l&#8217;exécutable généré, et bing ! Root sur le serveur <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Comme mon but n&#8217;est pas de planter le serveur, je m&#8217;arrête ici. Enfin je prends quand même soin de supprimer toute trace de l&#8217;intrusion dans les logs. Et je garde un petit screenshot, pour envoyer au propriétaire du site, l&#8217;histoire de le prévenir. Bien entendu, pour envoyer le mail j&#8217;ai pris soin de créer un mail anonyme et de passer par un proxy, au cas où le propriétaire serait furax et menacerait de porter plainte&#8230; Heureusement, celui-ci est sympa ; il me répond rapidement et me remercie de l&#8217;avoir prévenu. Et vous savez le comble de l&#8217;histoire ? Ce serveur ne lui appartenait pas, il ne disposait pas lui-même des droits root <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Conclusion</h3>
<p>Je crois que cette histoire (vraie, pour ceux qui douteraient) illustre plutôt bien et de façon concrète la marche à suivre employée par un attaquant afin de prendre la main sur un serveur : exploitation d&#8217;une faille distante pour récupérer des informations, exécution de commandes dans le contexte du processus vulnérable, élévation de privilèges en utilisant un local root, et nettoyage des logs. De plus, cet exemple démontre que ce n&#8217;est pas parce que l&#8217;on a interdit l&#8217;inclusion de fichiers distant que l&#8217;on a un appel à include() sécurisé.</p>
<p>J&#8217;insiste enfin sur le fait que ce que j&#8217;ai réalisé ici était à la portée d&#8217;un script kiddie pour peu qu&#8217;il connaisse la faille, sache utiliser une backdoor PHP et compiler un exploit. Administrateurs de challenges de hack PHP, méfiez-vous : reproduire des applications vulnérables c&#8217;est bien, mais pensez à vous protéger un minimum pour éviter le pire&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
