<?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>Le blog de John Jean &#187; munin</title>
	<atom:link href="http://www.john-jean.com/blog/tag/munin/feed" rel="self" type="application/rss+xml" />
	<link>http://www.john-jean.com/blog</link>
	<description>L&#039;actualité d&#039;un consultant en sécurité informatique</description>
	<lastBuildDate>Tue, 29 Nov 2011 14:42:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>John the ripper multi-core grâce à Open MPI&#8230;</title>
		<link>http://www.john-jean.com/blog/crypto/john-the-ripper-multi-core-grace-a-open-mpi-233</link>
		<comments>http://www.john-jean.com/blog/crypto/john-the-ripper-multi-core-grace-a-open-mpi-233#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:33:44 +0000</pubDate>
		<dc:creator>John JEAN</dc:creator>
				<category><![CDATA[Crypto]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[comparatif]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[john the ripper]]></category>
		<category><![CDATA[multi-core]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[open-mpi]]></category>

		<guid isPermaLink="false">http://www.john-jean.com/blog/?p=233</guid>
		<description><![CDATA[&#8230; ou comment multiplier la rapidité de bruteforce de John the Ripper par 8 ou plus. J&#8217;ai écrit il y a quelques temps, un billet présentant un comparatif des méthodes de bruteforce CPU / GPU sur des hashs de type MD5. J&#8217;avais expliqué que la méthode GPU (avec l&#8217;aide de cuda) explosait allègrement les méthodes ...]]></description>
			<content:encoded><![CDATA[<p>&#8230; ou comment multiplier la rapidité de bruteforce de <a title="John the ripper" href="http://www.openwall.com/john/" target="_blank">John the Ripper</a> par 8 ou plus. J&#8217;ai écrit il y a quelques temps, un billet présentant un <a title="comparatif methode bruteforce md5 gpu cpu" href="http://www.john-jean.com/blog/crypto/bruteforcer-une-chaine-md5-nouvelles-methodes-et-comparatif-des-softs-159" target="_blank">comparatif des méthodes de bruteforce CPU / GPU</a> sur des hashs de type MD5. J&#8217;avais expliqué que la méthode GPU (avec l&#8217;aide de cuda) explosait allègrement les méthodes CPU, même avec du dual core. C&#8217;est toujours le cas. Sauf que cette méthode a ses limites: elle manque cruellement de softs permettant de bruteforcer tout et n&#8217;importe quoi. Le soft de référence pour avaler à peu près tous les hashs est John the ripper, mais il prend malheuresement assez cher face à des softs comme BarsWF. C&#8217;était sans compter sur un patch de <a title="bindshell.net" href="http://www.bindshell.net/" target="_blank">bindshell.net</a> qui permet d&#8217;exécuter autant d&#8217;instances du soft qu&#8217;on a de core.</p>
<p><span id="more-233"></span></p>
<p>Pour les besoins du boulot, nous avons monté un serveur relativement puissant et efficace: 16 Go de RAM et surtout du double quadruple coeurs (Intel Bi Xeon Quad 8x 2.00+ GHz). J&#8217;en ai donc profité pour tester l&#8217;objet de mes plus grands fantasmes :) (Bah oui, tout le monde n&#8217;a pas un 8 core sur son laptop, et les méthodes GPU sur un serveur sans CG&#8230;), et le résultat est sans appel:</p>
<p>Avant:</p>
<p><code>john-laptop:~/johntheripper/run# ./john -test<br />
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE<br />
Many salts: 1912K c/s real, 1912K c/s virtual<br />
Only one salt: 1631K c/s real, 1631K c/s virtual</code></p>
<p>Après:</p>
<p><code>john-laptop:~/john-1.7.2-bp17-mpi8/run# mpirun -np 8 ./john -test<br />
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE<br />
Many salts: 15269K c/s real, 15273K c/s virtual<br />
Only one salt: 12997K c/s real, 13000K c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: BSDI DES (x725) [128/128 BS SSE2-16]... DONE<br />
Many salts: 62387 c/s real, 62512 c/s virtual<br />
Only one salt: 60723 c/s real, 60723 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: BSDI DES (x725) [128/128 BS SSE2-16]... DONE<br />
Many salts: 497326 c/s real, 496954 c/s virtual<br />
Only one salt: 484527 c/s real, 484527 c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: FreeBSD MD5 [32/64 X2]... DONE<br />
Raw: 8592 c/s real, 8592 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: FreeBSD MD5 [32/64 X2]... DONE<br />
Raw: 68862 c/s real, 68844 c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: OpenBSD Blowfish (x32) [32/64 X2]... DONE<br />
Raw: 518 c/s real, 518 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: OpenBSD Blowfish (x32) [32/64]... DONE<br />
Raw: 2415 c/s real, 2416 c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: Kerberos AFS DES [48/64 4K]... DONE<br />
Short: 285330 c/s real, 285330 c/s virtual<br />
Long: 911564 c/s real, 911564 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: Kerberos AFS DES [48/64 4K]... DONE<br />
Short: 2281K c/s real, 2279K c/s virtual<br />
Long: 7241K c/s real, 7241K c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: LM DES [128/128 BS SSE2-16]... DONE<br />
Raw: 9688K c/s real, 9688K c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: NT LM DES [128/128 BS SSE2-16]... DONE<br />
Raw: 79468K c/s real, 79587K c/s virtual</code></p>
<p>&nbsp;</p>
<p>Et en bonus, juste pour la version 8 core cette fois:</p>
<p><code>Benchmarking: Apache MD5 [32/64 X2]... DONE<br />
Raw: 68674 c/s real, 68674 c/s virtual</code></p>
<p><code>Benchmarking: mysql [mysql]... DONE<br />
Raw: 20638K c/s real, 20643K c/s virtual</code></p>
<p><code>Benchmarking: Netscape LDAP SHA [SHA1]... DONE<br />
Raw: 14961K c/s real, 14961K c/s virtual</code></p>
<p><code>Benchmarking: NT MD4 [TridgeMD4]... DONE<br />
Raw: 18830K c/s real, 18844K c/s virtual</code></p>
<p><code>Benchmarking: Lotus5 [Lotus v5 Proprietary]... DONE<br />
Raw: 1204K c/s real, 1205K c/s virtual</code></p>
<p><code>Benchmarking: M$ Cache Hash [mscash]... DONE<br />
Raw: 12567K c/s real, 12567K c/s virtual</code></p>
<p><code>Benchmarking: Raw MD5 [raw-md5]... DONE<br />
Raw: 19448K c/s real, 19448K c/s virtual</code></p>
<p><code>Benchmarking: IPB2 MD5 [Invision Power Board 2.x salted MD5]... DONE<br />
Raw: 10592K c/s real, 10587K c/s virtual</code></p>
<p><code>Benchmarking: Eggdrop [blowfish]... DONE<br />
Raw: 136593 c/s real, 136627 c/s virtual</code></p>
<p><code>Benchmarking: Raw SHA1 [raw-sha1]... DONE<br />
Raw: 14720K c/s real, 14720K c/s virtual</code></p>
<p><code>Benchmarking: MS-SQL [ms-sql]... DONE<br />
Raw: 15442K c/s real, 15446K c/s virtual</code></p>
<p><code>Benchmarking: HMAC MD5 [hmac-md5]... DONE<br />
Raw: 5473K c/s real, 5477K c/s virtual</code></p>
<p><code>Benchmarking: WPA PSK [wpa-psk]... DONE<br />
Raw: 472 c/s real, 472 c/s virtual</code></p>
<p><code>Benchmarking: Netscape LDAP SSHA [salted SHA1]... DONE<br />
Raw: 14922K c/s real, 14926K c/s virtual</code></p>
<p>Ca c&#8217;est pour la théorie. Maintenant pour la pratique, j&#8217;ai encodé via htpasswd le mot de passe suivant <em>blogjohn</em>; et j&#8217;ai testé la vitesse de bruteforce avec les deux logiciels, le classique et le multi-thread donc.</p>
<p><span style="text-decoration: underline;">John the ripper:</span></p>
<p><code>guesses: 1 time: 0:11:01:58 c/s: 1704K trying: blogji1X - blogjoek<br />
Loaded 1 password hash (Traditional DES [128/128 BS SSE2-16])<br />
blogjohn (john)</code></p>
<p><strong>Soit 11h01 de travail.</strong></p>
<p><span style="text-decoration: underline;">John the ripper n-core (ici 8, bindshell.net):</span></p>
<p><code>thread: 0 guesses: 1 time: 0:01:27:22 c/s: 1702K trying: blogjim9 - blogjone</code></p>
<p><strong>Soit 1h30 de travail !</strong></p>
<p>Je sors un petit graphique de munin pour l&#8217;occasion, le premier histo est donc le john classique et le second le multi-core. Pour la petite histoire, cela a bien duré 1h30, mais on continue de voir une utilisation CPU parce que je n&#8217;ai pas stoppé les 7 autres threads.</p>
<p><img src="http://www.john-jean.com/blog/wp-content/uploads/2009/09/johntheripper.png" alt="johntheripper" width="450" height="311" align="left" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Donc pour conclure, comment on utilise la bête ?</p>
<p>Tout d&#8217;abord on récupère le john tunné pour l&#8217;occasion (il est aussi disponible sous forme de diff à appliquer, au choix):</p>
<p><code>wget <a href="http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi8.tar.gz">http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi8.tar.gz</a></code></p>
<p>On untar:</p>
<p><code>tar zxvf john-1.7.2-bp17-mpi8.tar.gz</code></p>
<p>Ensuite on installe <a title="libopenmpi-dev" href="http://packages.debian.org/fr/sid/libopenmpi-dev" target="_blank">libopenmpi-dev</a> pour compiler cette version de john sinon on a pas mpicc et <a title="open mpi" href="http://www.open-mpi.org/" target="_blank">openmpi-bin</a> pour utiliser mpirun:</p>
<p><code>apt-get install libopenmpi-dev<br />
apt-get install openmpi-bin</code></p>
<p>Puis on compile john:</p>
<p><code>cd john-1.7.2-bp17-mpi8/src/<br />
make //ici il va vous lister les possibilités de compilation optimisée selon votre OS, ce qui donne chez moi:<br />
make clean linux-x86-64<br />
cd ../run</code></p>
<p>Et enfin, notre salvateur:</p>
<p><code>mpirun -np &lt;NUMPROCS&gt; ./john -i pass.txt //&lt;NUMPROCS&gt; correspond bien entendu au nombre de core que vous avez à disposition.</code></p>
<p>Voilà amusez vous bien, et ne le faites pas tourner n&#8217;importe où, comme vu sur le graph, ca fera hurler munin et tous les softs de monitoring du sysadmin ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-jean.com/blog/crypto/john-the-ripper-multi-core-grace-a-open-mpi-233/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

