samedi, février 07, 2009
Retour aux sources
samedi, janvier 10, 2009
La gravité est le bonheur des imbéciles
vendredi, décembre 19, 2008
La nouvelle version de Burp Suite est énorme !!!
Bientôt deux mois sans rien poster ! La honte...Pour ma défense, il faut savoir que les fins de semestre sont toujours super chargées pour les pov' p'tits pentesteurs. A croire que nos prestations ne sont commandées qu'avec des queues de crédit ou des fonds de tiroir. Et enfin, ma fille ainée est rentrée en maternelle cette année. Elle rapporte donc toutes les maladies infantiles du continent à sa p'tite soeur. Mes nuits sont bientôt plus fatiguantes que mes jours...
Nous avons terminé aujourd'hui, zaz idan et moi-même (bizarre ce pseudo, cela ressemble un peu à Zapp Brannigan ! Un parent ?) un audit marathon d'une quarantaine d'applications Web. Dur de réussir à vendre une prestation de qualité lorsque vos concurrents (apparemment, en place chez le client depuis des années) se contente d'un simple scan Nessus ! Bref, il a fallu s'aligner et casser les prix et faire en 15 jours ce qui aurait du être vendu en 40. La galère !
Mais, bon la pêche a été super bonne. Il faut dire que dix ans de scans Nessus sur des portails extranet, cela laisse tout un tas de vulnérabilités super critiques. Un vrai festival du hack. On s'est régalé !
Ces trois dernières semaines nous ont donc permis de tester sur un grand nombre de technos et de plates-formes la version béta, puis la version finale de Burp Suite, nouvelle mouture. Un seul regret, c'est la sortie tardive de sqlmap qui prend désormais en entrée les log de burp. Cela devient de la tuerie...
Pour revenir à Burp, même si les deux premières versions béta étaient plutôt instables, nous avons pu comparer nos tests habituels sous Burp, aux résultats du scanner de vuln' web GrosCulnetix (figure imposée par le client, qui insistait pour avoir du scan !!!). Il n'y a vraiment pas photo, surtout lorsque l'on passe au travers un SiteMinder dernier cri (mais avec des cookies mal gérés par les appli') et des portails extranet WebLogic montés à l'ancienne (mod_rewrite et iframes bidons à la Apache Coyotte vers des vieux Tomcat, Domino et IIS-ASP), alors qu'ils devraient normalement s'appuyer sur leurs fonctionnalités d'hubs de connexions en T3 vers les seules bases de données !!
Bon. Je dois y aller. Si vous avez des trucs à partager sur Burp ou autre chose. N'hésitez pas... Cela me donnera peut être envie de réécrire durant mes vacances (si je trouve une connexion wifi pas trop éloignée et hackable sans antenne externe près de ma location ! Pas évident...)
vendredi, octobre 31, 2008
La connaissance engendre la peur... ou bien ça fatigue...
J'ai rien à écrire d'interressant. Ou bien est-ce la flème ? Toujours est-il que ma verve s'épuise peu à peu entre les copier-coller des rapports d'audit et autres propales. Il faut vraiment ramer pour alimenter son boulot de pentester. Ce boulot est synonyme de missions courtes de moins de 20 jours. Quand j'en aurais marre, je deviendrais Consultant Orga' qui passe l'hiver au chaud avec une mission de plus de 100 jours. Une bonne politique de sécurité Coorporate. Voila ce qu'il me faut pour reprendre pied !
Si j'avais le courage, je vous parlerais de la faille de conception trouvée aujourd'hui : la bonne vieille faille qu'aucun scan de vuln' web, même un à 4000$, n'aurait pu trouvé. Mais bon, cela serait trop compliqué de décrire un script d'authentification, à la sauce Ajax, scotché sur une vieille base Domino aux ACL super-aiguisées. De toute manière, je ne sais même pas si je retrouverai un jour le même type de faille chez un autre client...
Bon, je soigne ma mauvaise grippe ce weekend et je me remotive. Promis !
samedi, août 30, 2008
Fukuyama n'a jamais été un homme révolté
samedi, juillet 12, 2008
PenTest2.0 : le pourquoi avant le comment !
Fort de cette constatation, je ne suis pas étonné que l'OWASP soit si peu représentée dans notre cher pays et que ces membres en soient réduits à prêcher dans le désert numérique...
Lorsque j'ai l'occasion de lire d'anciens rapports d'audit (lors de mon arrivée chez un nouvel employeur ou bien chez des clients qui me les fournissent sous couvert du classique : "Essayez de nous trouver quelque chose de nouveau"), je remarque assez souvent que le Pentester Frenchy, après quelques copies d'écran de pop-up "XSS", concentre tout son talent à décrire le magnifique OpCode qu'il a pu "coller" au service SNMP du serveur Web afin d'obtenir son "Saint Graal". Reste que ce type de technique est improductive, voire contre-productive, dans les Pentests d'architectures Web2.0...
Après cette intro' ayant presque rien à voir avec notre sujet (digne d'un pisseur de copie à la Hackin9), j'en reviens à ce qui nous interesse : les Pentests2.0 et les différentes méthodes d'exploitation des techno' Ajax; Flash, SOAP, REST, XML-RPC et autres utilisations bizaroïdes des feed RSS/Atom...Non, je ne vais pas vous faire ce soir un cours magistral sur ce sujet à l'étendu conséquent, mais simplement discourir sur le fait que ces techno' demandent autre chose qu'un wget -r www.hackme.com | grep "executeQuery"...
Le fait est qu'il est pratiquement impossible de réaliser un Pentest d'appli' Web bâtie sur ces techno à partir de la procédure de crawling habituelle (exploration de l'appli avec son proxy préféré : Burp ou WebScarab, puis analyse de l'arborescence obtenue).
Quelle soit bâtie sur de l'AJAX ou du Flash, une page 2.0 peut être l'unique page de votre belle arborescence apparaissant dans votre proxy, mais pourtant elle sera le support d'une bonne vingtaine d'applications métiers (les appels DOM à ne pas louper) reliées à autant de serveurs d'application et de bases de données, souvent sur des systèmes n'appartenant pas à votre client (du moins à son service).
C'est ce que nos chers architectes nomment les architectures SOA ou les applications mashups (une application d'applications) dans lesquelles une page web lancée dans notre navigateur se transforme en client léger virtuel pour toutes les appli du client et ses partenaires/filiales/clients/fournisseurs.
Si votre système de facturation de Pentest est bâti sur le nombre de pages à traiter, vous allez y être de votre poche... Amis Pentester, ne rigolaient pas avec ce type d'archi', nos copains les développeurs (les petits jeunes qui sortent d'école) en pondent une dizaine chaque mois pour nos chers clients...
Les appli web2.0 s'échangent toutes sortes de formats d'information de manière asynchrone, tels que XML, du JSON (JavaScript Object Notation), du JS-array (une sorte de tableau en JavaScript) et des flux d'informations temps réel en RSS (cotations...) en provenance de différents domaines. Réaliser un diagramme simple de toutes les interactions possibles de cette appli web (la modélisation des menaces comme on aime à appeler le bô schéma visio de nos rapport d'audit) peut prendre des heures, surtout avec l'outillage dont nous disposons actuellement (Firebug...).
La clé du PenTest web2.0 réside en fait dans ces communications Cross-Domain au sein de cette page unique, ouverte à ces sources diverses et plus ou moins sûres. La boite de Pandore des XSS et autres XSRF est ouverte. Il nous reste à pouvoir analyser toutes ces données asynchrones écrites en XML, le langage le moins user-friendly de la planète.
Si cela intéresse mes quatre lecteurs, je vais essayer d'écrire quelques bafouilles la-dessus dans les prochains jours. S'ils s'en foutent, cela me servira de pense-bête, comme le reste...
mercredi, juillet 02, 2008
Ratproxy un parser de vulnérabilités passif pour les Web Services
Après avoir pratiquer, puis écarter le célèbre nikto, w3af avec son code source super bien documenté et l'étonnant sts-scanner, en raison de leur trop grande agressivité, j'ai finalement jeté mon dévolu sur l'outil Ratproxy de Michal Zalewski qui semble de loin le plus prometteur.
Le fait est qu'il devient de plus en plus difficile de dénicher des Pentests d'appli Web qui soient sur plate-forme de test ou de pré-prod'. De toute manière, lorsque l'on insiste un peu trop lourdement pour disposer d' un environnement hors prod', on s'en tire souvent avec une base boguée datant de 2 ans et des versions d'appli du type 0.1.0.27 qui semblent sorties tout droit d'un mauvais trip de pisseur de code stagiaire.
De toute façon, on a l'air crétin au kick-off en face du gros malin de développeur en chef qui n'arrête pas de vous contrer en affirmant que la nouvelle version n'est plus vulnérable... A moins d'avoir deux jours complets à passer sur l'appli (cela arrive encore) ou bien être assez cinglé pour utiliser un Canvas ou un Core Impact sur de la prod' (même en passant toutes mes nuits sur les sources, je n'aurais pas d'avantage confiance en leurs rootkit-maison) on est parfois tenté d'utiliser un scanner de vuln' Web pour ne pas rater son RER (Ivry la bataille, ça fait loin de la Défense...).
Mais voila, en prod, l'utilisation d'un de ces scanners est un véritable suicide. Sans compter les dénis de service sur les répartiteurs de charge poussifs, un tel outil génère toujours un nombre incalculable de XSS qui sont autant de nano-bombes à fragmentation vertes fluo portant votre dédicace... D'où ma recherche d'une solution pouvant soit être utilisée en proxy passif lors de l'exploration de l'appli' avec détection à la volée des vuln' ou soit pouvant être utilisée à partir des logs d'un Burp Proxy, de WebScarab (ou même de Paros).
Sts-scanner avait l'air bien partie sur le papier, sachant qu'il prend les logs de Burp. Burp reste aujourd'hui mon outil préféré, bien qu'il soit beaucoup moins stable sous linux que sous Windows (si vous avez une astuce pour agrandir la RAM allouée à un processus java sous Linux je suis preneur). Cependant, j'ai vite déchanté lorsque je me suis aperçu que les logs de Burp lui permettaient uniquement de traduire le javascript et le java pour passer les mécanismes d'authentification (hpricot ne comprend ni le javascript, ni le java, et pour ce qui est des technos Web2.0...) et qu'il était finalement un pur scanner actif avec tout l'arsenal d'XSS qui va bien...
Ratproxy semble l'outil que j'attendais depuis longtemps, il parle le JSON (avec un peu de bol on doit pouvoir également lancer les premiers tests sur les identifiants UDDI et DISCO) et surtout son option -d permet de choisir finement les domaines à tester (ce qui est souvent indispensables avec les appli' métier de nos chères fusions/acquisition/filiales-à-15%_du_capital...)
N'ayant pas sous la main d'appli Web Services permettant de tester pleinement Ratproxy, je vous promets de vous faire une retour d'expérience plus complet dans les prochaines semaines (peut être la semaine prochaine si le client est au rendez-vous)...
samedi, avril 05, 2008
Un dico corporate à 10 cents..
voici une petite recette pour constituer rapidement un dico regroupant le jargon du client. Cela peut être utile pour réaliser un brute force rapide de clé WPA (les gros dico ne sont pas vraiment taillés pour attaquer cette techno en un minimum de temps) :
Tout d'abord, avec httrack (mon préféré) aspirer la partie du site web du client (ou de son intranet si dispo) qui regroupe l'essentiel de son jargon (cela peut être la liste de ces produits ou les pages de son support technique) :
# httrack "http://www.leclient.com/jargon/" -O "/root/websites/leclient" "+www.leclient.com/jargon/*" -vUne fois le site aspiré, passer le résultat à la moulinette avec l'excellent wyd.pl de Max Moser et Martin Muench :
# cd /usr/local/bin/wyd# ./wyd.pl -b -e -f -v -o wordlistleclient.txt /root/websites/leclient/www.leclient.com/*Faire un peu de tri :
# tr '[A-Z]' '[a-z]' <wordlistleclient.txt | sort | uniq > wordlistleclient-triee.txtPuis, retirer les mots usuels du dictionnaire français :
# comm -23 wordlistleclient-triee.txt /usr/local/lib/aspell/french.words > dico-leclient.txtAprès un peu de dépoussiérage à la mano, cela fournit un complément sympa pour votre liste de mots de passe par défaut...
Enfin, n'oubliez pas les jeux de mot basés sur le nom du client. Les plus bidons fonctionnent toujours le mieux...
dimanche, mars 23, 2008
Le vieil homme doit mourir...
Mais bon, je ne vais pas aujourd'hui disserter sur l'effet papillon de la coercition nord-coréenne sur la consommation de LSD dans les technivales d'Europe de l'Ouest (il y a pourtant un lien surprenant...). Nan, je vais vous parler de la condamnation de la vieille école de l'INFOSEC incapable de s'adapter à un nouvel environnement trop dérangeant, qui met allègrement au placard la quasi-totalité du savoir et des certitudes qu'elle a accumulés jusqu'au début de ce millénaire.
De savoirs obsolètes, je veux bien sûr parler des techno pare-feu, de la lutte anti-virale, des théories sur la défense en profondeur, de la prog' raw-sockets en C et, plus largement, de la majorité des sujets de discussion qui ont fait et font encore les choux gras des listes de diffusion INFOSEC.
Ça y est, vous vous dites : "encore un p'tit jeunot qui crache sa haine de la Old School et ne pense qu'à se faire une place auprès de ses ainés !" En fait, je vais avoir 36 ans le mois prochain, et je suis un pur produit de cette Old School !
Ce vieil homme doit mourir. Voici son autocritique :
Il y a quelques mois, j'avoue m'être jeté sur les systèmes SCADA, en pensant avoir trouvé un El Dorado pour mes connaissances obsolètes. Tout y était : de l'exploit raw-socket au ping of Death (exploit qui marque encore les esprits des consultants Orga-Sénior façon 27001). J'en étais à monter un pentest pur année 90 avec du hping et toute la panoplie du paquet-forgery (scapy) un vieux modem, des scripts pour du brute-force Telnet et même un sifflet Cap'tain Crunch... lorsque, devant l'interface web de connexion, j'ai essayé les 9 caractères (avec les espaces) connus de tous les scripts kiddies de moins de 16 ans qui n'ont rien à foutre des protocoles réseau : 1' OR 1=1. Argh...
bref, à l'heure où la majorité des plus de 30 ans se demande s'il faut faire du pentest avec un poste Windows ou la dernière BackTrack (je parle de ceux qui ne sont pas encore manager ou qui ne veulent plus l'être), ou encore s'il faut s'afficher aux réunions de l'OSSIR du lundi alors que ça plait pas aux copains anciens des écoles du Kremlin Bicêtre, qui sont des ayatollahs du BSD et des buveurs de bières d'Asie du sud-est... le monde a bougé sans vous !
Un professionnel Old School pourra survivre encore quelques années. L'informatique industrielle et ses SCADA d'un autre âge sont là pour ça. Pour ma part, j'ai décidé de tout balancer (et de claquer la porte de ma boite par dessus le marché...).
Ceci est donc mon autocritique : le vieil homme est mort !
Lecteur Old School, je te propose de venir ici faire toi aussi ton autocritique et de... signer une pétition pour faite péter l'OSSIR avec ces deux écoles d'un autre âge : Unix contre Windows (ça, c'est pour avoir un maximum de Trolls dans les commentaires)
Je ne vais pas vous faire le coup du 99,99% des flux passent au travers d'un pare-feu avec les ports 25 et 80 d'ouverts... Mais bon, il faut vous réveiller : on trouve désormais des langages de script pour drivers dynamiques ! Tout est logiciel et tout se passe au niveau de la couche application. Ce n'est pas la dernière coquille du Firewire qui va changer cela ! Tout se passe dans des applications qui se lancent dans et se partagent la mémoire vive des machines.
Bon. Il est tard. Au moins, ça s'est fait !
samedi, mars 22, 2008
Burp Suite
Les attaques possibles via les payload Intruder en font l'outil de pentest web le plus abouti du moment. Par exemple, les injections SQL, permettant d'extraire des données d'une base, peuvent être forgées très rapidement en retravaillant l'injection à partir du message d'erreur (via regex), puis en les lançant un bon millier de fois pour dévaliser la base. Il faut tout de même faire attention aux architectures en pré-prod, dont le client vous a assuré qu'elles étaient totalement séparées de la prod... à l'exception des boîtiers Altéon complétement poussifs qui coincent à 1.000 sessions la minute !!! Trois minutes pour configurer le regex, c'est vraiment rapide à côté du temps que prenait la rédaction du script Perl.
Trouver des Race condition est une promenade de santé, bien que la dernière version de PeopleSoft Enterprise Human Capital Management nous a résisté durant près de 10 heures. Mais, avec seulement une dizaine de fonctionnalités utilisées (sur une centaine) et surtout aucun code-maison qui ne s'écarte des putains de variables liées à trois étages façon Dev-Oracle-Next-Generation, nous n'avions aucune chance. Heureusement que la clôture d'un compte suite à un brute force possédait une petite subtilité sur la page de résultat en cas de réussite... sinon, nous étions marrons pour cette appli. !
Heureusement que PeopleSoft et un Oracle 10g release 2 (qui se faisait passer pour du 9i, selon notre client et ses développeurs en tout cas) n'étaient pas les seuls plats au menu de ce pentest. Nous avons pu nous gaver de la partie Web de Business Object et d'appli partagées sur un cluster Domino de folie...
