Affichage des articles dont le libellé est PENTEST. Afficher tous les articles
Affichage des articles dont le libellé est PENTEST. Afficher tous les articles

samedi, février 07, 2009

Retour aux sources

Déjà dix-huit mois à trimer sur toutes les techno' web. Je fais une pause. Pour chaque système audité, ce n'est pas moins de 8 techno' différentes à maîtriser. C'est épuisant, mais passionnant.
Au détour d'un gros pentest système pur, réalisé sans aucune préparation (merci le collègue consultant senior qui se dégonfle à la dernière minute), j'ai repris pied brutalement dans le petit monde des PoC, que j'avais abandonné sur un coup de tête.
Que de temps écoulé, depuis que l'on retravaillait à la main un PoC pour trouver une adresse de retour stable dans nos chers systèmes Krosoft frenchies. Nous disposons aujourd'hui de boîtes à outils vraiment performantes, qui, heureusement, ne coûtent pas toutes 5*.000$ pièce...
Afin de pouvoir justifier auprès de mes clients l'impact d'un pentest, je m'efforce de toujours choisir des outils opensources. Il est vrai qu'il est agassant durant la présentation des résultats de se faire interroger sur ses outils : "vous avez fait ça avec un outil spécialisé ou avec des logiciels libres ?" Comme si les outils opensources n'étaient pas aussi affutés qu'une suite pro' en python qui coûte plus d'un mois de prestation ?
C'est vrai, il ne faut pas vous cacher que les modules externes pour ratproxy et burp dans msf3 ne sont pas étrangers à mon soudain intérêt pour la programmation ruby (bibliothèque jruby pour le lien avec les appli' web) et la génération de rapports avec wmap.
Pour info, le readme du module pour burp possède une erreur : il faut remplacer les ";" par des ":" dans l'invocation des librairies java... Je vais essayer de soigner mon aversion maladive pour la lumière des projecteurs et peut être faire un petit track chez msf avec un nouveau pseudo, car celui là est un peu percé. (ou alors, j'y enverrai mon apprentit ;-)
Ce retour au sources m'a d'ailleurs permis de parcourir rapidement la prose et les traductions courageuses de notre Jérome Athias national. Ce dernier a le mérite d'y croire et d'essayer de faire bouger les lignes de notre scène hexagonale endormie. C'est vrai que quinze ans d'encadrement par les OPJ de la DS* sans moustaches, ça ne donne pas envie aux anciens de former la jeunesse (on a des mômes maintenant...). Dormez braves gens, et consommez sur nos portails d'achat pourris en priant tout de même que votre numéro de carte soit bien stockée sur une base antédéluvienne et sur un OS frenchie oublié de tous (i.e., une sous-version boguée et expurgée des algo crypto trop difficiles à péter : cela coûte cher le temps de calcul au CEA... alors qu'avec une serviette éponge et un kilo d'oranges, nos pro' de l'HUMINT font des merveilles)
La semaine prochaine, un nouveau pentest (de nuit !!) démarre. Je n'aurais vraisemblablement pas le temps de faire vivre ce blog...
Au fait, si vous avez des "jmp esi" stables pour la librairie WS2HELP.DLL de win2k3 sp2 (sans dep) version française (bien entendue), vous me ferez gagner quelques heures de sommeil. ;-)

samedi, janvier 10, 2009

La gravité est le bonheur des imbéciles

Je vous préviens tout de suite, ce billet illisible est bourré de disgressions proustiennes...
Parce que le monde est imparfait et que je connais pas encore d'industriel (même ceux qui vendent sur leurs sites web des pièces détachées à plus de 2.000.000 euros !!) qui ait réalisé une analyse de risques à la sauce 27.005 pour ses appli' web, il sera toujours difficile de qualifier le niveau d'impact du risque potentiel (trop classe comme appelation, nan ?) de la petite centaine de vulnérabilités qui forment votre rapport d'audit.
On a beau marteler durant la réunion de lancement, qu'il vous faut au minimum un classement par niveaux de criticité des différentes applications à auditer (et oui, je ne parle même pas d'actifs primaires et secondaires, car je ne veux pas brusquer le chaland toujours ignare en matière de SSI), tout ce que le chef de projet surchargé vous sortira après deux semaines de harcèlement quotidien, c'est un pov' schéma visio (avec un fond noir pour raisons de sécurité...) avec les noms des appli', ou deux noms ont été soulignés car : "ce sont les appli' dont les bases sont sauvegardées toutes les demies journées...alors ce doit être les plus importantes !!"
Tout ça pour dire, qu'il ne faut pas tomber dans le FUD complet (ça, c'est pour la citation de Montesquieu dans le titre) comme le pratiquent certains concurrents (vous savez, une de ces grosses boîtes de la région parisienne qui utilisent Nessus pour auditer des services web !), mais choisir soigneusement les vulnérabilités à mettre en avant lors de la réunion de restitution (vous savez la réunion programmée à 14h00, après le repas arrosé où les commerciaux, qui payent l'addition, ont gonflé le client avec un étalage indigeste de chiffres et de succes story... et d'où il ne faut pas repartir sans avoir fait signer le sacro-saint PV de recette).
Le plus simple, pour choisir les bonnes vuln' à mettre en avant, consiste à utiliser le ratio "facilité d'exécution"/"gain attendue" du délinquant moyen (ratio qui a fait la prospérité de l'ancien maire de New York et de nos chers ministres de l'intérieure, avec la cèlèbre politique de la tolérance zéro, mais ceci est encore une autre histoire...).
Le fait est, que ce sont ces vulnérabilités qui sont les plus simples à expliquer lors de la réunion/sieste de l'après-midi, surtout lorsque vous avez un auditoire composé de littéraires (là, je veux parler des RSSI de toutes les filliales du client qui se sont donné le mot pour la bouff' gratos, et non du consultant sénior qui a insisté pour vous accompagné, car il veut vendre au client une analyse de risques 27.005 ou une politique de sécu de 400 pages... encore que !!) qui considèrent tout sigle anglosaxon comme une grossière insulte à leur intelligence...
En fait, mon message était tout simple : je m'interrogeais sur le ratio vuln' critiques/vuln' hautes qu'il faut glisser dans un rapport d'audit ?
Ah, j'oubliais : "bonne année toi-même !" pour mes six lecteurs.

vendredi, décembre 19, 2008

La nouvelle version de Burp Suite est énorme !!!

Argh ! Enfin les vacances. Je suis sur les genoux.

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...

Un billet de mauvaise humeur, pour chasser les miasmes :

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é

Bien qu'il soit sympa de vérifier chaque jour combien le petit père Francis s'est lamentablement planté en jouant les prophètes, je vous rassure, je ne vais pas tenter de vous démontrer ici en quoi l'éternel retour hégélien peut s'appliquer au Pentest web2.0 ! 
Quant à la notion de révolte, il faut simplement faire un diff entre l'œuvre de Camus (le révolté) et celle de Sartre (le révolutionnaire) pour comprendre l'allusion, mais je ne vais pas  faire ici l'étalage de mes lettres (d'autres Pentesteurs se complaisent  à le faire  quotidiennement !) '];alert('Troll');//.
Les frameworks de Pentest ont révolutionné notre métier en nous délestant, entre autres, de l'énorme travail de veille-techno/adaptation-opcodes-frenchies que tout pentesteur digne de ce nom doit fournir. Bien qu'ayant trouvé un employeur qui reconnaisse enfin cette tâche en tant que "travail à part entière" (vive le code de pointage "Formation_Perso" !), je peux vous avouer, qu'en ce moment, je me fie énormément aux mises à jour de Metasploit pour tout ce qui touche au domaine Client-Serveur, afin de mieux me concentrer sur les appli' Web et en particulier le Web2.0. (Chacun son domaine de prédilection)
Les frameworks de Pentest pour appli Web sont apparemment à la mode parmis mes confrères. Pourtant, je suis resté fidèle à l'Open Source (ou est-ce ma parano/prudence habituelle ?) en m'appuyant sur le trio Burp/Wapiti/w3af plutôt que sur un framework comme Accunetix, Appscan ou Web Inspect.(oui, je sais, Burp n'est pas vraiment de l'Open Source...)
En fait, les frameworks propriétaires actuels sont très décevants lorsqu'il s'agit de réaliser un pentest d'une appli sous Ajax. Les meilleurs d'entre eux arrivent péniblement à passer en revue ("parser" dans le jargon) les objets Thick Clients (Applets Java, Controles ActiveX, ObjectsFlash...) et restent sans voix face à un appel XHR.
En raison de l'extrême transparence des techno Ajax (tout passe en clair), je ne pense pas qu'un parseur web2.0 très poussé soit actuellement indispensable. En effet, la reconnaissance d'une appli sous Ajax est tout à fait réalisable aujourd'hui à l'aide d'un furieux mélange d'interruptions sous Firebug et de scripts Greasemonkey et Chikenfoot. Avec la pratique, on arrive en quelques minutes à obtenir la liste de toutes les requêtes XHR et à extraire les fonctions intéressantes correspondantes.
En parlant de scripts Greasemonkey, je vous déconseille vivement le script WebPageFingerprint d'Aung Khant qui n'est rien d'autre qu'un cheval de Troie sur pattes ! Celui-ci rapatrie toutes les failles potentielles directement au site de yehg. L'étude de ce script est cependant très enrichissante, bien que les fonctions d'analyse restent inaccessibles sur le site de son auteur. ;-)
Pour revenir à l'idée d'un parser Ajax, un tel outil va devenir indispensable lorsque les techno' Ajax vont gagner en maturité et commencer à chiffrer/masquer toutes les XHR. En fait, un petit nombre de développeurs web2.0 semblent avoir déjà entammer ce travail d'obfuscation à l'aide des différents outils d'anonymisation de variables à leur disposition (à moins que je soit tombé sur des développeurs off-shore indiens qui protègent leur gagne-pain ??)
En dépit de l'apparente complexité d'Ajax, un tel parser n'est pas monstrueux à coder. Pour démarrer, on peut se baser sur le parser rudimentaire proposé par Sheeraj Shah : scanajax.rb et l'enrichir peu à peu au fil de ces découvertes. A savoir que cet outil ne fonctionne correctement qu'une fois toutes ces dépendances respectées : gem install rest-open-uri openuri-memcached urirequire jrexml rexml-expansion-fix
Cependant, dès que l'on rencontre des techniques d'obfuscation, il faut se raccrocher aux interruptions de Firebug et à une analyse approfondie sous WebDevelopper pour s'y retrouver. Je doute que les parser d'Acunetix ou de Web Inspect aient un quelconque avenir en la matière. Bref, il nous faut construire l'ollydbg du JavaScript/XHR. 
CQFD pour la digression hégélienne...

samedi, juillet 12, 2008

PenTest2.0 : le pourquoi avant le comment !

Il suffit de faire un peu le tour des magasines, listes de diffusion, conférences/symposiums et autres blogs pour se rendre compte que la scène française (de la profession ou pas) est fortement concentrée sur les failles systèmes et tout ce qui tourne autour du Ring 0. Il semble bien que la Patrie des Lumières snobe ouvertement tout ce qui ne fournit pas un accès direct au Saint Graal du siècle dernier, à savoir le compte administrateur/root.
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

N'étant pas un furieux de la prog' (chacun son boulot), j'avoue avoir passé pas mal de temps à tester des scanners passifs de vuln' web à base des différents parser www dispo' ; que cela soit les vieux parser Perl, le bizaroïde hpricot (en Ruby) ou un bricolage de Python (ça c'est pour le troll). Bref, un passe-temps beaucoup plus sympa que la rédaction de propales.

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..

Pas de grande envolée lyrique cette semaine. Un simple billet sous la forme de pense-bête suffira.

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/*" -v

Une 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.txt

Puis, retirer les mots usuels du dictionnaire français :
# comm -23 wordlistleclient-triee.txt /usr/local/lib/aspell/french.words > dico-leclient.txt

Aprè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...

Ce titre n'est pas un appel au meurtre, encore moins un pamphlet contre un quelconque consultant sénior (quoi que...) seulement la litanie favorite des tortionnaires coréens ayant réussi, grâce à la technique de l'autocritique, à retourner quelques majors de promo de West Point des années 49, 50 et 51...

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

Juste un p'tit billet sur Burp Suite, qui est devenu en quelques journées mon outil préféré pour l'audit des applications web. PORTSWIGGER a réalisé un travail remarquable, et notamment le module Burp Intruder de la version pro qui vaut largement ses 99 pounds (en note de frais ;-).

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...

Au final, passer de l'autre côté du miroir est vraiment sympa. Si sympa, qu'il faudra me faire violence pour que je retourne faire de l'analyse forensic pour besogneux !