<?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> &#187; wireless</title>
	<atom:link href="http://travisaltman.com/category/wireless/feed/" rel="self" type="application/rss+xml" />
	<link>http://travisaltman.com</link>
	<description></description>
	<lastBuildDate>Sun, 25 Jul 2010 19:55:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>password dictionary generator</title>
		<link>http://travisaltman.com/password-dictionary-generator/</link>
		<comments>http://travisaltman.com/password-dictionary-generator/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 04:13:59 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[learning]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://travisaltman.com/?p=199</guid>
		<description><![CDATA[I had the need to generate a password dictionary that would cover every possible combination for a defined character set.  I first learned to program in Python so I was going to start there first.  Before writing the program I decided to Google and see if anyone else had tackled this problem via Python, turned [...]]]></description>
			<content:encoded><![CDATA[<p>I had the need to generate a password dictionary that would cover every possible combination for a defined character set.  I first learned to program in Python so I was going to start there first.  Before writing the program I decided to Google and see if anyone else had tackled this problem via Python, turned out they had.  <a href="http://forums.remote-exploit.org/programming/14204-another-password-wordlist-generator-python.html" target="_blank">Siph0n posted his Python code</a> to create a password dictionary over at the BackTrack forums.  I wanted to post it here as a mirror and to discuss the implications of creating a password dictionary with every possible combination.  Below is the Python code.</p>
<div class="codecolorer-container python blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">f=<span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'wordlist'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">def</span> xselections<span style="color: black;">&#40;</span>items, n<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> n==0: <span style="color: #ff7700;font-weight:bold;">yield</span> <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">xrange</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>items<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> ss <span style="color: #ff7700;font-weight:bold;">in</span> xselections<span style="color: black;">&#40;</span>items, n-1<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">yield</span> <span style="color: black;">&#91;</span>items<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>+ss<br />
<br />
<span style="color: #808080; font-style: italic;"># Numbers = 48 - 57</span><br />
<span style="color: #808080; font-style: italic;"># Capital = 65 - 90</span><br />
<span style="color: #808080; font-style: italic;"># Lower = 97 - 122</span><br />
numb = <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>48,58<span style="color: black;">&#41;</span><br />
cap = <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>65,91<span style="color: black;">&#41;</span><br />
low = <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>97,123<span style="color: black;">&#41;</span><br />
choice = 0<br />
<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>choice<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>1,8<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; choice = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span><span style="color: #483d8b;">'<br />
&nbsp; &nbsp; 1) Numbers<br />
&nbsp; &nbsp; 2) Capital Letters<br />
&nbsp; &nbsp; 3) Lowercase Letters<br />
&nbsp; &nbsp; 4) Numbers + Capital Letters<br />
&nbsp; &nbsp; 5) Numbers + Lowercase Letters<br />
&nbsp; &nbsp; 6) Numbers + Capital Letters + Lowercase Letters<br />
&nbsp; &nbsp; 7) Capital Letters + Lowercase Letters<br />
&nbsp; &nbsp; : '</span><span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span> <br />
<br />
choice = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>choice<span style="color: black;">&#41;</span><br />
poss = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
<span style="color: #ff7700;font-weight:bold;">if</span> choice == 1:<br />
&nbsp; &nbsp; poss += numb<br />
<span style="color: #ff7700;font-weight:bold;">elif</span> choice == 2:<br />
&nbsp; &nbsp; poss += cap<br />
<span style="color: #ff7700;font-weight:bold;">elif</span> choice == 3:<br />
&nbsp; &nbsp; poss += low<br />
<span style="color: #ff7700;font-weight:bold;">elif</span> choice == 4:<br />
&nbsp; &nbsp; poss += numb<br />
&nbsp; &nbsp; poss += cap<br />
<span style="color: #ff7700;font-weight:bold;">elif</span> choice == 5:<br />
&nbsp; &nbsp; poss += numb<br />
&nbsp; &nbsp; poss += low<br />
<span style="color: #ff7700;font-weight:bold;">elif</span> choice == 6:<br />
&nbsp; &nbsp; poss += numb<br />
&nbsp; &nbsp; poss += cap<br />
&nbsp; &nbsp; poss += low<br />
<span style="color: #ff7700;font-weight:bold;">elif</span> choice == 7:<br />
&nbsp; &nbsp; poss += cap<br />
&nbsp; &nbsp; poss += low<br />
<br />
bigList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> poss:<br />
&nbsp; &nbsp; bigList.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">chr</span><span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
<br />
MIN = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;What is the min size of the word? &quot;</span><span style="color: black;">&#41;</span><br />
MIN = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>MIN<span style="color: black;">&#41;</span><br />
MAX = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;What is the max size of the word? &quot;</span><span style="color: black;">&#41;</span><br />
MAX = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>MAX<span style="color: black;">&#41;</span><br />
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>MIN,MAX+1<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> s <span style="color: #ff7700;font-weight:bold;">in</span> xselections<span style="color: black;">&#40;</span>bigList,i<span style="color: black;">&#41;</span>: f.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: black;">&#41;</span></div></div>
<p>If you&#8217;re familiar with programming and Python in particular then you could just grab the code and roll but I really wanted to discuss the usefulness of an application like this.  First I will discuss the basics of how to get this program up and running but will eventually jump into other implications such as time, storage, and usefulness of a password dictionary.</p>
<p>How to install and use the program</p>
<ol>
<li>You must have Python installed.  If you&#8217;re running Linux (you should be) then it&#8217;s probably already installed.  If you&#8217;re running then Windows then you will have to <a href="http://www.python.org/download/" target="_blank">download Python</a>.</li>
<li>Now that you have Python installed simply copy and paste the code above into a text file and name it passwordDictionaryGenerator.py.  The .py extension is needed because that&#8217;s how Python recognizes code that it&#8217;s suppose to execute.</li>
<li>Modify appropriate variables within the program.  The only variables you may want to modify are numb, cap, and low.  These variables contain the ASCII equivalent ranges for the letters and numbers you will be using to generate your dictionary.  You may want to modify these variables so that your dictionary does not contain a-z but only a-k, I&#8217;ll leave that up to you.</li>
<li>Now to run the program simply type
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">python passwordDictionaryGenerator.py</div></div>
<p>You will have to answer the questions about which character set you want to use and how long / short your password dictionary is going to be.  Once you answer the questions it may seem like the program isn&#8217;t doing anything but it is, it will spit you back to the command line once the program has completed.  The output will be a file called wordlist.</li>
</ol>
<p>So now you have this cool program that can generate a password dictionary for you, how big (size MB, GB, TB, etc) will this dictionary be?  How long will it take to generate this dictionary?  Let&#8217;s tackle the size question first as it will help us calculate the time as well.  The key to calculating the size is a math term called permutations.  <a href="http://www.aaaknow.com/sta-permu.htm" target="_blank">Permutations</a> is a simple equation to determine the number of words for that particular character set and length of word.  The basic equation is below.</p>
<p>n<sup>r</sup></p>
<p>n = total character set (e.g.  a-z + A-Z + 0-9 = 62)</p>
<p>r = length of the word</p>
<p>Now you&#8217;ll have to calculate n<sup>r</sup> for each length to get every possible combination.  So for a 6 digit long password your equation will look like the following.</p>
<p>n<sup>6</sup> + n<sup>5</sup> + n<sup>4</sup> + n<sup>3</sup> + n<sup>2</sup> + n<sup>1</sup> = every possible combination</p>
<p>Let&#8217;s try an example where our character set is a-z (n = 26) and our password is no longer than 6 (r = 1-6) digits, how many words will be in our dictionary?</p>
<p>26<sup>6</sup> + 26<sup>5</sup> + 26<sup>4</sup> + 26<sup>3</sup> + 26<sup>2</sup> + 26<sup>1</sup> = 321,272,406 = total # of words</p>
<p>So now we understand how to calculate the total number of words in our dictionary.  How does that relate to the size?  Well for the most part if the length of the password is x then the size in bytes will be x + 1 for that particular line.  Then all we have to do is multiply each n<sup>r</sup> times the size of that particular line to get the size for that particular length.  That may have just sound really confusing so hopefully the following graph clears that up some.</p>
<p><a href="http://travisaltman.com/wp-content/possibleCombinationChart.png"><img class="aligncenter size-full wp-image-212" title="possibleCombinationChart" src="http://travisaltman.com/wp-content/possibleCombinationChart.png" alt="" width="395" height="210" /></a></p>
<p>I went ahead and generated this dictionary, it took about 30 minutes.  Turns out the size matched my calculations.</p>
<p><a href="http://travisaltman.com/wp-content/wordlistSize.png"><img class="aligncenter size-full wp-image-215" title="wordlistSize" src="http://travisaltman.com/wp-content/wordlistSize.png" alt="" width="250" height="198" /></a></p>
<p>So now you have the basic formula for calculating the size of your desired dictionary.  Let&#8217;s take a look at a larger example just to cure our curiosity.  Let&#8217;s assume the following parameters.</p>
<ul>
<li>character set = a-z, A-Z, &amp; 0-9</li>
<li>password length = 1-8</li>
<li>n = 62</li>
<li>r = 1 &#8211; 8</li>
</ul>
<p>With these parameters the size of our dictionary jumps to 1,800 terabytes or 1.8 petabytes. Take a look at the chart below.</p>
<p><a href="http://travisaltman.com/wp-content/possibleCombinationChart2.png"><img class="aligncenter size-full wp-image-221" title="possibleCombinationChart2" src="http://travisaltman.com/wp-content/possibleCombinationChart2.png" alt="" width="487" height="290" /></a></p>
<p>You can see how quickly the size jumps up. I don&#8217;t know about you but I don&#8217;t have a two petabyte drive lying around. Generating this dictionary is just infeasible. I did calculate the time it would probably take to generate this dictionary, it came out to be about 11 days. So the time to create such a dictionary is nothing compared to the storage required to house it. Not only that I don&#8217;t know to many applications that can handle a large dictionary as input, so that&#8217;s another factor you&#8217;ll have to keep in mind when generating your dictionary.</p>
<p>Calculating the time it takes to generate these dictionaries I&#8217;ll leave up to you.  The basic idea is that you can run the python program for a particular length password for a set amount of time and then extrapolate form there.  For the most part time isn&#8217;t really a factor but storage is. The concepts I&#8217;ve talked about here are nothing new. The idea of generating a password came to me and my coworkers as we were thinking of ways to test a WPA wireless infrastructure. Attacking WPA can be done offline so we were thinking of generating a dictionary to accomplish this. Hours later we soon realized the difficulty with generating such a large dictionary. This was actually good news because it meant that an attacker would have an extremely difficult time attacking a WPA access point with a complex password. <a href="http://www.renderlab.net/projects/WPA-tables/" target="_blank">Renderman and the Church of Wifi</a> have thought about this problem way before I did and came up with some rainbow tables to help test the strength of your WPA access point. You can&#8217;t really create a dictionary with every single combination for a lengthy password, your best bet is to create a dictionary with the most &#8220;common&#8221; passwords, which is no easy task either.</p>
<p>The moral of the story is to use lengthy complex passwords with a high character set, but you knew that already. So I just suggested that this program is somewhat useless, well it is but it isn&#8217;t. You can use this program to generate a small dictionary but a large dictionary (greater than a couple of terabytes) is probably out of the question. So use this program and let me know what your results are, I&#8217;m always interested in your feedback. Happy cracking.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisaltman.com/password-dictionary-generator/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Video tutorial for metasploit autopwn and nessus</title>
		<link>http://travisaltman.com/video-tutorial-for-metasploit-autopwn-and-nessus/</link>
		<comments>http://travisaltman.com/video-tutorial-for-metasploit-autopwn-and-nessus/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 18:15:27 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[video]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://travisaltman.com/?p=174</guid>
		<description><![CDATA[

I teach network secuirty at ECPI College of Technology. At the end of every class students present their projects for the course. One group put together a video of their project and I figured it would be a good idea to post it. It&#8217;s about 27 minutes and goes over a hand full of things, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p style="text-align: center;"><br /><img src="/wp-content/cis425project.jpg" alt="media" /><br />
[See post to watch Flash video]</p>
<p>I teach network secuirty at <a href="http://ecpi.edu/" target="_blank">ECPI College of Technology</a>. At the end of every class students present their projects for the course. One group put together a video of their project and I figured it would be a good idea to post it. It&#8217;s about 27 minutes and goes over a hand full of things, one of the neatest being the part using Nessus and Metasploit&#8217;s autopwnage. I also think the video has some great funny moments as well, especially the Star Wars CVE effect. Either way let me know if you find it helpful or not. I don&#8217;t have the greatest bandwidth so be patient with the player as it may take a while to load. It&#8217;s also a large video, high resolution that is, so don&#8217;t forget to click the fullscreen icon on the bottom right of the player. The audio capture is low so you will probably need to jack up the volume.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisaltman.com/video-tutorial-for-metasploit-autopwn-and-nessus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="/wp-content/cis425project.flv" length="1" type="video/x-flv"/>
	</item>
	</channel>
</rss>
