<?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-6288294589134566895</id><updated>2011-11-27T19:46:16.549-05:00</updated><category term='mobile'/><category term='unpack'/><category term='tools'/><category term='kris kaspersky'/><category term='vs2008'/><category term='chrome'/><category term='home'/><category term='python-constraint'/><category term='redhat'/><category term='cisco'/><category term='iphone'/><category term='locks'/><category term='valgrind'/><category term='exploitation'/><category term='pwnage'/><category term='geekery'/><category term='bugspy'/><category term='whitelisting'/><category term='work'/><category term='bind'/><category term='bsodomizer'/><category term='patch'/><category term='reversing'/><category term='facebook'/><category term='m2crypto'/><category term='visualization'/><category term='nasm'/><category term='dns tunneling'/><category term='64-bit'/><category term='heap'/><category term='wifi'/><category term='san francisco'/><category term='api hooking'/><category term='socat'/><category term='privilege escalation'/><category term='endering'/><category term='hotspot hacks'/><category term='CAPTCHA'/><category term='appsec'/><category term='cloud'/><category term='brute forcing'/><category term='django'/><category term='ideas'/><category term='viagra'/><category term='constraint solvers'/><category term='vulnerability markets'/><category term='oracle'/><category term='endust'/><category term='click jacking'/><category term='paris'/><category term='april fools'/><category term='drm'/><category term='social network security'/><category term='ammonite'/><category term='errors'/><category term='saas'/><category term='ssl'/><category term='GUI automation'/><category term='scam'/><category term='serialize'/><category term='vista'/><category term='json'/><category term='google'/><category term='felicia'/><category term='objc'/><category term='fuzzing'/><category term='challenge'/><category term='smtp'/><category term='0day'/><category term='scanners'/><category term='fast flux'/><category term='bsod'/><category term='immunity debugger'/><category term='automatic vulnerability discovery'/><category term='sony'/><category term='im'/><category term='x86'/><category term='gadget'/><category term='conference'/><category term='note to self'/><category term='tracing'/><category term='user enumeration'/><category term='proxmark'/><category term='proto_ops'/><category term='150.70.84.45'/><category term='ctypes'/><category term='MS09-020'/><category term='ms'/><category term='frameworks'/><category term='python'/><category term='setsockopt'/><category term='windows'/><category term='outpost24'/><category term='hitb'/><category term='lulz'/><category term='cpu bugs'/><category term='rfid'/><category term='hack'/><category term='pydbg'/><category term='endeavor'/><category term='programming'/><category term='startup'/><category term='core dump'/><category term='CVE-2009-1676'/><category term='drunk'/><category term='input0'/><category term='ssh'/><category term='botnet'/><category term='sockstress'/><category term='wishlist'/><category term='startup school'/><category term='acrobat'/><category term='primes'/><category term='antivirus'/><category term='minion'/><category term='scada'/><category term='anti-debug'/><category term='SO_REUSEADDR'/><category term='packer'/><category term='gcc'/><category term='patch tuesday'/><category term='borkd'/><category term='netcat'/><title type='text'>From a malicious attacker</title><subtitle type='html'>Application Security &amp;amp; Reverse Engineering</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default?start-index=101&amp;max-results=100'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>116</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5614235685998953565</id><published>2011-08-05T05:49:00.006-04:00</published><updated>2011-08-05T05:57:53.972-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scanners'/><category scheme='http://www.blogger.com/atom/ns#' term='ammonite'/><title type='text'>Ammonite</title><content type='html'>Ammonite is a &lt;a href="http://ammonite.ryscc.com"&gt;security scanner extension for Fiddler&lt;/a&gt; that allows you to detect all the usual suspects including SQLi, XSS, file inclusion, buffer overflows etc. It has some pretty cool features I haven't seen elsewhere. My favs are exporting requests to python urllib2 code, breadth first vuln search, and scanner throttling. In breadth first search mode, the scanner only looks for the first instance of a vuln for a given session. This is great on a pentest where you don't have much time and want to get as deep as you can in the shortest possible time. Throttling is useful in a variety of scenarios but the most common one is where you are testing in an unstable environment and too many requests per second knock the thing over or make your results unreliable. It also fuzzes XML and JSON POST bodies which are now standard on most recently created apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5614235685998953565?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5614235685998953565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5614235685998953565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5614235685998953565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5614235685998953565'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2011/08/ammonite.html' title='Ammonite'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6913239841879363768</id><published>2011-04-01T13:33:00.004-04:00</published><updated>2011-04-01T13:40:20.265-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='april fools'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='saas'/><title type='text'>Cross Cloud Scripting</title><content type='html'>XCS or Cross-Cloud Scripting is one of the more recent threats affecting cloud applications delivered as a service enhancing RoI. Applications exchange information in the cloud, specifically cross-cloud applications, in an effort to increase business and IT productivity, data productivity, context and business objects.&lt;br /&gt;&lt;br /&gt;Before we can understand XCS, a thorough understanding of BI, SaaS and digital DNA must be grasped. Cloud platforms and cloud infrastructure are relatively immature and suffer from the same vulnerabilities as traditional distributed point to point applications. Complex data management and quality requirements dictate the methodologies employed by cloud products and service providers.&lt;br /&gt;&lt;br /&gt;Agile software development processes must be tweaked to address the problem of XCS if the industry is to succeed. Finally, Ask not what your cloud can do for you, but what you can do for your cloud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6913239841879363768?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6913239841879363768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6913239841879363768' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6913239841879363768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6913239841879363768'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2011/04/cross-cloud-scripting.html' title='Cross Cloud Scripting'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3859748660855348673</id><published>2011-02-24T10:27:00.008-05:00</published><updated>2011-02-24T11:36:31.475-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='user enumeration'/><title type='text'>Django User Enumeration</title><content type='html'>Django sites that run the built-in admin site prior to r15639 are vulnerable to user enumeration. The Django team was notified and corrected this in SVN revision 15639. Details here: http://code.djangoproject.com/changeset/15639. By specifying a content type id of 3 and enumerating object IDs beginning with 1, the view responds with redirects containing usernames (ex: /admin/r/3/[USERID]/). No authentication is required to exploit this vulnerability.&lt;br /&gt;&lt;br /&gt;Django sites should either upgrade to the latest SVN or manually modify django/trunk/django/contrib/admin/sites.py changing:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;url(r'^r/(?P&amp;lt;content_type_id&amp;gt;\d+)/(?P&amp;lt;object_id&amp;gt;.+)/$', 'django.views.defaults.shortcut'), &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;to&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;url(r'^r/(?P&amp;lt;content_type_id&amp;gt;\d+)/(?P&amp;lt;object_id&amp;gt;.+)/$', wrap(contenttype_views.shortcut)),&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Better still, bind the admin site to 127.0.0.1 and access it over SSH.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3859748660855348673?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3859748660855348673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3859748660855348673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3859748660855348673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3859748660855348673'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2011/02/django-user-enumeration.html' title='Django User Enumeration'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8104857341952863763</id><published>2011-02-20T17:07:00.012-05:00</published><updated>2011-02-20T18:20:22.938-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='objc'/><category scheme='http://www.blogger.com/atom/ns#' term='tracing'/><title type='text'>Tracing Objective-C</title><content type='html'>I don't know much about Objective-C and decided to get my learn on. Here are some discoveries I made.&lt;br /&gt;&lt;br /&gt;Objective-C is dynamic. Objects and classes support some degree of introspection at runtime. Methods / messages are routed and dispatched. They are not hardcoded addresses as in C++.&lt;br /&gt;&lt;br /&gt;Objective-C is message oriented. All those fancy Object Oriented / Message passing calls end up going through one of a few functions. When you compile&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[self printMessageWithString:@"Hello World!"];&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;it is translated to something like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;objc_msgSend(self,@selector(printMessageWithString:),@"Hello World!");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I borrowed those snippets from http://cocoasamurai.blogspot.com/2010/01/understanding-objective-c-runtime.html without permission.&lt;br /&gt;&lt;br /&gt;This is good news. It means just about every OO operation in ObjC will pass through this function. Way to make hooking/tracing easy. I then asked Google if anyone else has been talking about this sort of thing. It looks like I am late to the game - http://www.dribin.org/dave/blog/archives/2006/04/22/tracing_objc/.&lt;br /&gt;&lt;br /&gt;Specifically:&lt;br /&gt;&lt;block&gt;&lt;br /&gt;If you set the NSObjCMessageLoggingEnabled environment variable to "YES", the Objective-C runtime will log all dispatched Objective-C messages to a file named /tmp/msgSends-&lt;pid&gt;.&lt;br /&gt;&lt;/block&gt;&lt;br /&gt;&lt;br /&gt;You can even enable message logging from within a debugging session using:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;(gdb) call (void)instrumentObjcMessageSends(YES)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It gets better. The Apple objc runtime also includes support for a custom logger. This might be useful logging the parameters of certain messages of interest.&lt;br /&gt;&lt;br /&gt;I also found good general information on reversing objc here: http://culater.net/wiki/moin.cgi/CocoaReverseEngineering. New bits here are class-dump and FScript. The former will dump a header file close enough for use, the latter (through FScriptAnywhere) allows you to introspect and modify apps at runtime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8104857341952863763?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8104857341952863763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8104857341952863763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8104857341952863763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8104857341952863763'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2011/02/tracing-objective-c.html' title='Tracing Objective-C'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2578808333141289212</id><published>2011-02-11T09:18:00.006-05:00</published><updated>2011-02-11T10:07:47.962-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='core dump'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='heap'/><title type='text'>Finding the Heap of an iPhone Application</title><content type='html'>Often when doing mobile application assessments it is necessary to check that sensitive data is properly discarded when no longer in use. This data is often found on the heap. While it would be nice to dump core of a running process and strings/grep the dump this is tough on a jailbroken iphone. The gdb from Cydia does not include core dump commands (generate-core-file, gcore). &lt;br /&gt;&lt;br /&gt;Building &lt;a href="https://github.com/emonti/gcore-arm"&gt;gcore-arm&lt;/a&gt; from source is pretty easy with Xcode, however, it runs into trouble when making kernel syscalls on the iphone. Specifically, task_for_pid fails. I'm not sure why but I suspect it's related to some missing entitlements. A concept I don't fully understand just yet. Somehow Cydia's gdb has all the right entitlements. It would be great if there was a gcore package from Cydia.&lt;br /&gt;&lt;br /&gt;Anyway, here's a trick for finding the heap when you need to. First, attach to your app running on the phone with &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;gdb -p [PID]&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;Set a breakpoint on malloc with &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;break malloc&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Do something with the app so that the malloc breakpoint triggers. Once triggered, run till return with 'finish'. Inspect r0 with 'info reg r0'. The r0 register stores a function's return value on ARM platforms. The return value from malloc is an address somewhere on the heap. To find the base of the heap, use: &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;info mach-region [RETURNVAL]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This should show the start and end of the region. You can then dump the heap to a file with:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dump binary memory [FILENAME] [STARTADDR] [ENDADDR]&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/6288294589134566895-2578808333141289212?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2578808333141289212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2578808333141289212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2578808333141289212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2578808333141289212'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2011/02/finding-heap-of-iphone-application.html' title='Finding the Heap of an iPhone Application'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4199348572738661389</id><published>2011-01-09T15:37:00.006-05:00</published><updated>2011-01-09T15:45:48.266-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='m2crypto'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Fun with M2Crypto</title><content type='html'>Here is one way to load an RSA public key from a string with M2Crypto in python.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;from M2Crypto import RSA, BIO&lt;br /&gt;&lt;br /&gt;def _load_pub_key(ks):&lt;br /&gt;    ks = ks.encode('utf-8')&lt;br /&gt;    return RSA.load_pub_key_bio(BIO.MemoryBuffer(ks))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If ks contains unicode characters the operation will fail hence the recoding of ks.&lt;br /&gt;&lt;br /&gt;Verifying a signature is a little tricky. The verify function is documented as accepting a data parameter. The parameter name is misleading. It is actually expecting data to contain a hash. The same hash used to generate the signature. Here is an example.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; from M2Crypto import RSA, BIO&lt;br /&gt;&gt;&gt;&gt; k = RSA.load_key('bank_cert.pem')&lt;br /&gt;&gt;&gt;&gt; data = "easy like sunday morning"&lt;br /&gt;&gt;&gt;&gt; from hashlib import sha1&lt;br /&gt;&gt;&gt;&gt; signature = k.sign(sha1(data).digest(), 'sha1')&lt;br /&gt;&gt;&gt;&gt; k.verify(sha1(data).digest(), signature, 'sha1')&lt;br /&gt;1&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/6288294589134566895-4199348572738661389?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4199348572738661389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4199348572738661389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4199348572738661389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4199348572738661389'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2011/01/fun-with-m2crypto.html' title='Fun with M2Crypto'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4164145096825766515</id><published>2010-12-24T09:04:00.007-05:00</published><updated>2010-12-24T09:50:21.546-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='primes'/><title type='text'>Python Prime Number Generator</title><content type='html'>Here's an interesting prime number generator that I created. It avoids multiplication and modulo arithmetic. It does not sieve a preallocated set of integers (ex. find all primes up to N). You can serialize it and then resume generating (no need to specify an upper bound).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Its internal state consists of 2 lists and an integer representing the current candidate. The lists are a list of primes and a corresponding list of prime multiples. For a given candidate, the algorithm compares the candidate to current prime multiples. If the candidate is less than a multiple, the prime multiple is increased additively to its next multiple (p + p + ... + p) where p is the prime root. If the multiple is equal to the candidate, the candidate is not prime. If there's no match, the candidate is prime and added to the list (p**2 added to the list of multiples).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class PrimeGen:&lt;br /&gt;    p = [ ] # primes found&lt;br /&gt;    m = [ ] # current multiple of each prime&lt;br /&gt;&lt;br /&gt;    def prime(self, i):&lt;br /&gt;        for j in xrange(0, len(self.p)):&lt;br /&gt;            if (i + i) &lt; self.m[j]: break&lt;br /&gt;            if i &gt; self.m[j]: self.m[j] += self.p[j]&lt;br /&gt;            if i == self.m[j]: return 0&lt;br /&gt;        self.p.append(i)&lt;br /&gt;        self.m.append(i ** 2)&lt;br /&gt;        return 1&lt;br /&gt;&lt;br /&gt;    def gen(self):&lt;br /&gt;        """A prime generator"""&lt;br /&gt;        i = 2&lt;br /&gt;        while 1:&lt;br /&gt;            if self.prime(i): yield(i)&lt;br /&gt;            i += 1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The drawback is running time. Sieves (ex. Eratosthenes) are faster. This one generates the first million primes (&lt;= 15,485,863) in about 10 minutes on modest hardware.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4164145096825766515?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4164145096825766515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4164145096825766515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4164145096825766515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4164145096825766515'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2010/12/python-prime-number-generator.html' title='Python Prime Number Generator'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2188635081321520628</id><published>2010-12-22T09:00:00.007-05:00</published><updated>2010-12-23T03:37:03.915-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='minion'/><category scheme='http://www.blogger.com/atom/ns#' term='constraint solvers'/><category scheme='http://www.blogger.com/atom/ns#' term='python-constraint'/><title type='text'>Constraint Solvers</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;Lately, I've become interested in integer factorization and have been playing with constraint solvers. I started out with &lt;a href="http://minion.sourceforge.net/"&gt;minion&lt;/a&gt; but quickly became frustrated. Minion does not support nesting of constraints or custom constraints from what I can tell. The set of equations I was working with were mostly comprised of terms that were either a*b mod 10 or (a*b - a*b mod 10) / 10. I would need to have all sorts of intermediate variables and constraints to express these terms. Which isn't difficult, but would be tedious.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enter &lt;a href="http://labix.org/python-constraint"&gt;python-constraint&lt;/a&gt;. This module is awesome and I thank the &lt;a href="http://niemeyer.net/"&gt;author&lt;/a&gt; for creating it. It allowed me to write constraints that were easy to read and understand. It supports constraints expressed as lambda functions (nameless functions in py). Unfortunately, the worst case performance of python-constraint is not great when compared to minion. I ended up writing a simple benchmark in py and minion to contrast the differences. Here is the python benchmark. It is nice and readable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;import sys&lt;/div&gt;&lt;div&gt;from constraint import *&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;p = Problem()&lt;/div&gt;&lt;div&gt;p.addVariables(["x", "y"], range(0, 999))&lt;/div&gt;&lt;div&gt;p.addVariable("z", range(0, 999999))&lt;/div&gt;&lt;div&gt;p.addConstraint(lambda x, y: x &gt; 1 and y &gt; 1, ["x", "y"])&lt;/div&gt;&lt;div&gt;p.addConstraint(lambda x, y, z: x * y == z, ["x", "y", "z"])&lt;/div&gt;&lt;div&gt;p.addConstraint(lambda z: z == 123456, ["z"])&lt;/div&gt;&lt;div&gt;print p.getSolution()&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;This little snippet took 17 minutes and 11 seconds to complete.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;time ./bench.py&lt;/div&gt;&lt;div&gt;{'y': 192, 'x': 643, 'z': 123456}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;real    17m16.996s&lt;/div&gt;&lt;div&gt;user    17m11.200s&lt;/div&gt;&lt;div&gt;sys     0m0.392s&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;And now, minion:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;MINION 3&lt;/div&gt;&lt;div&gt;**VARIABLES**&lt;/div&gt;&lt;div&gt;DISCRETE x {0..999}&lt;/div&gt;&lt;div&gt;DISCRETE y {0..999}&lt;/div&gt;&lt;div&gt;DISCRETE z {0..999999}&lt;/div&gt;&lt;div&gt;**SEARCH**&lt;/div&gt;&lt;div&gt;VARORDER [x, y]&lt;/div&gt;&lt;div&gt;PRINT[[x, y, z]]&lt;/div&gt;&lt;div&gt;**TUPLELIST**&lt;/div&gt;&lt;div&gt;**CONSTRAINTS**&lt;/div&gt;&lt;div&gt;product(x, y, z)&lt;/div&gt;&lt;div&gt;eq(z, 123456)&lt;/div&gt;&lt;div&gt;sumgeq([x], 2)&lt;/div&gt;&lt;div&gt;sumgeq([y], 2)&lt;/div&gt;&lt;div&gt;**EOF**&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;Minion spits out a result in under 1 second. Yipes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Sol: 192 643 123456&lt;/div&gt;&lt;div&gt;&lt;div&gt;Solution Number: 1&lt;/div&gt;&lt;div&gt;Time:0.000000&lt;/div&gt;&lt;div&gt;Nodes: 2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solve Time: 0.208013&lt;/div&gt;&lt;div&gt;Total Time: 0.276017&lt;/div&gt;&lt;div&gt;Total System Time: 0.288018&lt;/div&gt;&lt;div&gt;Total Wall Time: 0.651100&lt;/div&gt;&lt;div&gt;Maximum Memory (kB): 0&lt;/div&gt;&lt;div&gt;Total Nodes: 2&lt;/div&gt;&lt;div&gt;Problem solvable?: yes&lt;/div&gt;&lt;div&gt;Solutions Found: 1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;real 0m0.680s&lt;/div&gt;&lt;div&gt;user 0m0.276s&lt;/div&gt;&lt;div&gt;sys 0m0.312s&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;That's a huge reduction in processing time. Note that both problems are poorly structured. Looks like I may need to dive into that tedious process of translating equations to minion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2188635081321520628?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2188635081321520628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2188635081321520628' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2188635081321520628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2188635081321520628'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2010/12/constraint-solvers.html' title='Constraint Solvers'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-500907573765120435</id><published>2009-12-01T13:27:00.002-05:00</published><updated>2009-12-01T13:31:11.512-05:00</updated><title type='text'>Standardized Filesystem Access from JavaScript</title><content type='html'>W3C introduces the FileReader object. More &lt;a href="http://arstechnica.com/open-source/news/2009/11/w3c-publishes-draft-of-new-file-api-spec.ars"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-500907573765120435?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/500907573765120435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=500907573765120435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/500907573765120435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/500907573765120435'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/12/filesystem-access-from-javascript.html' title='Standardized Filesystem Access from JavaScript'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5392888562080795299</id><published>2009-11-17T06:57:00.001-05:00</published><updated>2009-11-17T06:57:56.314-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api hooking'/><title type='text'>SpyStudio</title><content type='html'>&lt;a href="http://www.nektra.com/products/spystudio-api-monitor/"&gt;SpyStudio&lt;/a&gt;: Really nice API monitoring with python baked in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5392888562080795299?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5392888562080795299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5392888562080795299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5392888562080795299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5392888562080795299'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/11/spystudio.html' title='SpyStudio'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2878992329635753924</id><published>2009-08-13T16:11:00.001-04:00</published><updated>2009-08-13T16:13:07.348-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='privilege escalation'/><category scheme='http://www.blogger.com/atom/ns#' term='proto_ops'/><title type='text'>Linux proto_ops local privilege escalation</title><content type='html'>Useful attack affecting Linux hosts. More &lt;a href="http://seclists.org/bugtraq/2009/Aug/0116.html"&gt;here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2878992329635753924?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2878992329635753924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2878992329635753924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2878992329635753924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2878992329635753924'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/08/linux-protoops-local-privilege.html' title='Linux proto_ops local privilege escalation'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6516743213084503729</id><published>2009-06-22T18:31:00.001-04:00</published><updated>2009-06-22T18:32:35.546-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Facebook View Profile Information Hack</title><content type='html'>Details on the &lt;a href="http://www.fbhive.com/private-facebook-info-accessible-with-a-simple-hack/"&gt;facebook hack&lt;/a&gt; are available from &lt;a href="http://www.fbhive.com"&gt;FBHive&lt;/a&gt;. The vulnerability appears to have been patched.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6516743213084503729?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6516743213084503729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6516743213084503729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6516743213084503729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6516743213084503729'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/06/facebook-view-profile-information-hack.html' title='Facebook View Profile Information Hack'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2901363875965338046</id><published>2009-06-19T11:26:00.004-04:00</published><updated>2009-06-21T15:27:07.436-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CVE-2009-1676'/><category scheme='http://www.blogger.com/atom/ns#' term='MS09-020'/><title type='text'>WebDav Authentication Bypass Details [ MS09-020 / CVE-2009-1676 ]</title><content type='html'>Found a nice &lt;a href="http://www.skullsecurity.org/blog/?p=285"&gt;writeup&lt;/a&gt; from SkullSecurity on the fairly recent WebDav authentication bypass vulnerability. Additional information on &lt;a href="http://blog.zoller.lu/2009/05/iis-6-webdac-auth-bypass-and-data.html"&gt;Thierry Zollier's&lt;/a&gt; blog. Original advisory &lt;a href="http://archives.neohapsis.com/archives/fulldisclosure/2009-05/att-0135/IIS_Advisory.pdf"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2901363875965338046?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2901363875965338046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2901363875965338046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2901363875965338046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2901363875965338046'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/06/webdav-authentication-bypass-details.html' title='WebDav Authentication Bypass Details [ MS09-020 / CVE-2009-1676 ]'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4979981786066640414</id><published>2009-06-19T07:04:00.003-04:00</published><updated>2009-06-19T07:07:55.520-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valgrind'/><category scheme='http://www.blogger.com/atom/ns#' term='fuzzing'/><category scheme='http://www.blogger.com/atom/ns#' term='automatic vulnerability discovery'/><title type='text'>FuzzGrind</title><content type='html'>I was recently introduced to a tool called &lt;a href="http://security-labs.org/fuzzgrind/"&gt;FuzzGrind&lt;/a&gt;. FuzzGrind smashes together Valgrind, STP (a constraint solver) and a fuzzing engine. It's written in python (bonus points). I need more time to play with it, but it looks really promising.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4979981786066640414?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4979981786066640414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4979981786066640414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4979981786066640414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4979981786066640414'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/06/fuzzgrind.html' title='FuzzGrind'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1047457257300479255</id><published>2009-06-11T19:20:00.000-04:00</published><updated>2009-06-11T20:28:05.094-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='endering'/><category scheme='http://www.blogger.com/atom/ns#' term='social network security'/><title type='text'>Attacking Social Networks: "Endering"</title><content type='html'>The sci-fi masterpiece Ender's Game details the formative years of the story's hero - Ender Wiggin. Upon entering battle school, he is immediately made into an outcast by his superiors and begins an uphill climb to gain power and a following. Early on, he figures out that he can send messages that appear to come from other students. He does this by creating a new identity in the shcool computers and exploiting an implementation flaw within the system. Ender leverages the weakness to twist his opponent's words, humiliating his adversary and winning over his friends.&lt;br /&gt;&lt;br /&gt;The 44th president has a LinkedIn profile and a Twitter account. How do we know that it's actually Barack tweeting and making connections? Ignoring the fact that an aid is probably responsible for managing Barack's online identities, what is to stop any barely computer literate individual from setting up a facebook account in your name? How long could an impostor go undetected? Social networks naturally support multiplicities of an identity. Take for example the many faces of Paris Hilton on LinkedIn.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/SjDuCDEQx5I/AAAAAAAAAH0/x1BqE6Y-UYs/s1600-h/Parises.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 309px; height: 320px;" src="http://3.bp.blogspot.com/_92MpPwIByfk/SjDuCDEQx5I/AAAAAAAAAH0/x1BqE6Y-UYs/s320/Parises.png" alt="" id="BLOGGER_PHOTO_ID_5346034476639111058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Impersonating online identities, or "Endering", uses personal information from one or more sources and turns that into an online identity within a social network. The potential sources vary wildly and include court records, job boards, wikipedia, mailing lists, social networks, background checks, credit reports etc. In its simplest form, Endering involves an exact duplication of an existing online identity.&lt;br /&gt;&lt;br /&gt;Endering is actively being conducted on popular social networks. Tweeple were left confused in May of this year after witnessing what appeared to be an &lt;a href="http://uk.techcrunch.com/2009/05/20/mp-tweets-election-in-weeks-then-deletes-twitter-account-fake-or-real/"&gt;MP's tweets&lt;/a&gt; indicating inside knowledge of an upcoming general election. At least one &lt;a href="http://www.techdirt.com/articles/20080224/225920339.shtml"&gt;Moroccan individual has received Jail time for Endering&lt;/a&gt;. Less extreme cases in the US have resulted in &lt;a href="http://www.law.com/jsp/article.jsp?id=1202421864062"&gt;Law Suits&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Endering and its variations are attacks with political implications and consequences. In practical terms, these attacks can be used to market products, stage hilarious practical jokes, subvert employees, distribute propaganda, manipulate the press, recruit talent, monitor employees, and more.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;More Examples&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.northbynorthwestern.com/2007/10/4687/facebook-friends/"&gt;Fake facebook student used to monitor student body&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Northwestern officials declined to comment on whether they use or would consider using a false Facebook account to gain access to students’ information. But in general, they said, they would not rule out using information found through Facebook, or other Web communication, in disciplinary matters.&lt;/blockquote&gt;&lt;a href="http://www.guardian.co.uk/world/2009/jan/02/facebook-guyana-president-bharrat-jagdeo"&gt;Guyana President Impersonated&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Facebook said that under the network's terms of use members are banned from attempting to "impersonate any person or entity".&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Stealing Friends&lt;/span&gt;&lt;br /&gt;Once your fake identity has been setup, you'll want to do something with it. Before you can do much of anything useful, you will need to convince some of your target's associates to become your clone's associates. A little research goes a long way here. Some of the best candidates are those you can learn about from public sources but do not have accounts on the social network you're operating within. For example, you want to impersonate the CEO of a company. You know that the CEO is friends with a VP of the same company however the VP does not have a Facebook/LinkedIn/Hi5/YouNameIt account.&lt;br /&gt;&lt;br /&gt;Another option is to hijack connections. This one requires some grifting but can be just as fruitful. The associate being targeted already has an account on the social network but you will need to trick them into becoming your associate, so in your invitation to connect message, you let them know that your other account was hacked, you lost the password, or some other form of "my dog ate it". It's already fairly common for this to happen without attackers being thrown into the mix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1047457257300479255?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1047457257300479255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1047457257300479255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1047457257300479255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1047457257300479255'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/05/attacking-social-networks-endering.html' title='Attacking Social Networks: &quot;Endering&quot;'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_92MpPwIByfk/SjDuCDEQx5I/AAAAAAAAAH0/x1BqE6Y-UYs/s72-c/Parises.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5885697865159115082</id><published>2009-06-04T06:31:00.007-04:00</published><updated>2009-06-04T08:03:19.070-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proxmark'/><category scheme='http://www.blogger.com/atom/ns#' term='rfid'/><title type='text'>RFID Tinkering: Proxmark Python API</title><content type='html'>Yesterday, I set out to create a Python API for my &lt;a href="http://proxmark3.com/"&gt;Proxmark&lt;/a&gt;. The toughest part was selecting the right USB module. My gut reaction said "PyUSB", but was rightly corrected by &lt;a href="http://blog.didierstevens.com/"&gt;Didier&lt;/a&gt; that python-hid would be a better fit since the Proxmark exports a HID interface. The suggestion was sound logic, however, what appear to be implementation flaws in libhid (upon which python-hid relies) prevented me from using it with the Proxmark. &lt;br /&gt;&lt;br /&gt;For some reason, libhid was unable to retrieve the Proxmark's device descriptor and this would cause hid_force_open() to fail. Google revealed that other folks have had the same problem. After pulling out my hair with python-hid, I went back to my original candidate and things just started working. The first operation I implemented for test purposes was the tune command.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;root@stumpi:~/python-proxmark# cat tune.py &lt;br /&gt;#! /usr/bin/env python&lt;br /&gt;# Copyright 2009, Rysc Corp.&lt;br /&gt;&lt;br /&gt;from proxmark import *&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':&lt;br /&gt; pm3 = Proxmark()&lt;br /&gt; antennas = pm3.tune()&lt;br /&gt; for ant in antennas:&lt;br /&gt;  print ant&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The code above invokes the Proxmark API to display the voltage and impedance measured on each antenna. Sample output shown below:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;125kHz v=123mV z=1273 ohms&lt;br /&gt;134kHz v=0mV z=1273 ohms&lt;br /&gt;13.56MHz v=99mV z=90 ohms&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Another snippet designed to mimic the loread command is shown below.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pm3 = Proxmark()&lt;br /&gt;samples = pm3.lf_read_125khz()&lt;br /&gt;print samples&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Which results in the list:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[-89, -128, -49, 109, 127, 107, 26, -42, ... , -22, -81]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I'm still not 100% confident in the routine that downloads samples from the proxmark, it was ported from the C client. In the next few weeks, I'll be working to test ported commands and add decoding (ASK, FSK etc) routines in a separate Python module. &lt;br /&gt;&lt;br /&gt;For experimentation purposes, developing new routines in firmware is slow, which is where I hope Python will help. It is a much simpler exercise implementing a HID tag decoder in Python versus in C with an ARM as your target. I also hope that having a base API in python will usher in a nicer user interface... PyGTK anyone? We'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5885697865159115082?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5885697865159115082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5885697865159115082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5885697865159115082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5885697865159115082'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/06/rfid-tinkering-proxmark-python-api.html' title='RFID Tinkering: Proxmark Python API'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4229845448296758921</id><published>2009-04-27T12:24:00.002-04:00</published><updated>2009-04-27T12:25:48.653-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sony'/><category scheme='http://www.blogger.com/atom/ns#' term='rfid'/><category scheme='http://www.blogger.com/atom/ns#' term='felicia'/><title type='text'>Paying from the couch</title><content type='html'>Sony has unleashed technology allowing you to &lt;a href="http://www.finextra.com/fullstory.asp?id=19966."&gt;pay for stuff through your remote&lt;/a&gt; ala Felicia. Felicia is still being studied, but if it's anything like Mifare...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4229845448296758921?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4229845448296758921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4229845448296758921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4229845448296758921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4229845448296758921'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/04/paying-from-couch.html' title='Paying from the couch'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2167549178068795804</id><published>2009-02-18T10:32:00.001-05:00</published><updated>2009-02-18T10:33:08.320-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugspy'/><title type='text'>BugSpy: Open Source Bug Search Engine</title><content type='html'>Monitor and search OSS bugs. See it in action &lt;a href="http://www.bugspy.net/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2167549178068795804?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2167549178068795804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2167549178068795804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2167549178068795804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2167549178068795804'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/02/bugspy-open-source-bug-search-engine.html' title='BugSpy: Open Source Bug Search Engine'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-583604686030062155</id><published>2009-02-13T07:41:00.002-05:00</published><updated>2009-02-13T07:41:59.402-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='endeavor'/><title type='text'>Endeavor Security Acquired By McAfee</title><content type='html'>My alma-mater was recently purchased by MCF. More &lt;a href="http://www.streetinsider.com/Press+Releases/McAfee,+Inc.+Reports+Record+Quarterly+and+Full+Year+2008+Revenue/4391861.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-583604686030062155?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/583604686030062155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=583604686030062155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/583604686030062155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/583604686030062155'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/02/endeavor-security-acquired-by-mcafee.html' title='Endeavor Security Acquired By McAfee'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7384825034270506112</id><published>2009-02-08T12:49:00.002-05:00</published><updated>2009-02-08T12:51:35.484-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='bsod'/><category scheme='http://www.blogger.com/atom/ns#' term='bsodomizer'/><title type='text'>BSOD Video Pass Thru</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bsodomizer.com/bsod_top.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://bsodomizer.com/bsod_top.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;This is probably one of the most fun gadgets I've seen in a while. Check out the &lt;a href="http://bsodomizer.com/"&gt;BSODomizer&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7384825034270506112?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7384825034270506112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7384825034270506112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7384825034270506112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7384825034270506112'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/02/bsod-video-pass-thru.html' title='BSOD Video Pass Thru'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5975178339109575400</id><published>2009-02-06T06:24:00.006-05:00</published><updated>2009-02-06T06:29:30.999-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='locks'/><category scheme='http://www.blogger.com/atom/ns#' term='endust'/><title type='text'>Compressed Air + Locks</title><content type='html'>If you've ever had an office fight with Endust&amp;trade;, you'll know that holding a can of compressed air upside down and spraying delivers a cold blast. What you may not know is that combined with a hammer, you can break most padlock style locks in half.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.metacafe.com/fplayer/839625/freeze_a_lock_off.swf" width="400" height="345" wmode="transparent"  pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;Original &lt;a href="http://www.instructables.com/id/How-To-Freeze-A-Lock-Off!/"&gt;instructable&lt;/a&gt; has the step-by-step.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5975178339109575400?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5975178339109575400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5975178339109575400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5975178339109575400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5975178339109575400'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/02/compressed-air-locks.html' title='Compressed Air + Locks'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-561779841574790215</id><published>2009-01-31T09:59:00.003-05:00</published><updated>2009-01-31T10:00:39.391-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='borkd'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Demonstrates How to Fail Closed</title><content type='html'>Sometime this morning, Google decided that all websites may be harmful to your computer, which is not really a false statement :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_92MpPwIByfk/SYRnZAtK2iI/AAAAAAAAAHc/mZFnBgi6krg/s1600-h/fail_closed.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 287px;" src="http://1.bp.blogspot.com/_92MpPwIByfk/SYRnZAtK2iI/AAAAAAAAAHc/mZFnBgi6krg/s320/fail_closed.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5297472741078391330" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-561779841574790215?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/561779841574790215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=561779841574790215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/561779841574790215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/561779841574790215'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2009/01/google-demonstrates-how-to-fail-closed.html' title='Google Demonstrates How to Fail Closed'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_92MpPwIByfk/SYRnZAtK2iI/AAAAAAAAAHc/mZFnBgi6krg/s72-c/fail_closed.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8924952212472782325</id><published>2008-12-03T06:41:00.002-05:00</published><updated>2008-12-03T06:45:25.645-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='150.70.84.45'/><title type='text'>TrendMicro Shadow Surfing</title><content type='html'>Are you seeing hits to your pages from 150.70.84.45? Some people are even seeing hits to &lt;a href="http://support.zetaboards.com/topic/522822/1/"&gt;protected pages&lt;/a&gt; from this and other IPs. This hasn't been completely vetted, but I'm pretty sure it's a result of using TrendMicro. When I disable "Internet &amp; Email Controls" -&gt; "Protection Against Web Threats", the visits stop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8924952212472782325?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8924952212472782325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8924952212472782325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8924952212472782325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8924952212472782325'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/12/trendmicro-shadow-surfing.html' title='TrendMicro Shadow Surfing'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5234754640396668245</id><published>2008-11-30T11:46:00.003-05:00</published><updated>2008-11-30T11:48:54.123-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='netcat'/><category scheme='http://www.blogger.com/atom/ns#' term='socat'/><title type='text'>Netcat + SSL</title><content type='html'>How I wish netcat had SSL support. Instead, I've always ended up using socat for this purpose. Unfortunately, the socat syntax has never grown on me, so I end up relearning the command line every time I need it. Actually that's a lie as I usually use a py script. Anyway, here's a one liner that will pipe stdin to a remote SSL endpoint:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    socat - ssl:www.somewhere.com:443,verify=0&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/6288294589134566895-5234754640396668245?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5234754640396668245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5234754640396668245' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5234754640396668245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5234754640396668245'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/11/netcat-ssl.html' title='Netcat + SSL'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-231048854858094512</id><published>2008-11-02T10:08:00.006-05:00</published><updated>2008-11-02T10:16:13.910-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kris kaspersky'/><category scheme='http://www.blogger.com/atom/ns#' term='hitb'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu bugs'/><title type='text'>Exploiting Intel CPU Bugs</title><content type='html'>Well, &lt;a href="http://souriz.wordpress.com/"&gt;Kris&lt;/a&gt; finally gave his presentation on exploiting Intel CPU bugs at HITBSec. Got word from &lt;a href="http://www.blackops.cn/"&gt;ol&lt;/a&gt; that I received an honorable mention -- Thanks Kris. Would've been cool to get out to HITB, but alas, I am poor and need to work :) &lt;a href="http://conference.hitb.org/hitbsecconf2008kl/materials/D2T1 - Kris Kaspersky - Remote Code Execution Through Intel CPU Bugs.pdf"&gt;Slides&lt;/a&gt; are here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-231048854858094512?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/231048854858094512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=231048854858094512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/231048854858094512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/231048854858094512'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/11/exploiting-intel-cpus.html' title='Exploiting Intel CPU Bugs'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5186941142182107974</id><published>2008-10-28T17:29:00.003-04:00</published><updated>2008-10-28T17:50:10.952-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api hooking'/><category scheme='http://www.blogger.com/atom/ns#' term='64-bit'/><title type='text'>API Hooking: x64 Trampolines</title><content type='html'>Learned something new today. On x64, it's not possible to jmp directly to a 64 bit address as you might be used to on x86 with a single jmp instruction. Hooking functions on x86 was relatively simple with respect to the trampoline. All you needed was a JMP to the installed hook, totalling 5 bytes. After poring over the IA64 reference and a few Google searches, the best trampoline I could find was&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mov rax, 0x4142434445464748&lt;br /&gt;jmp rax&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;When assembled, the above bit of code amounts to 12 bytes. Using yasm, I got the following machine code.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;0000000: 48b8 4847 4645 4443 4241 ffe0            H.HGFEDCBA..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I kept the faith that there was a possibly smaller alternative, however, after checking with &lt;a href="http://www.codeplex.com/easyhook"&gt;EasyHook&lt;/a&gt; it seems this is the defacto standard. I'm no .NET coder, but I managed to find my way to its trampoline installation logic in DriverShared/LocalHook/install.c at line 278.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;RtlCopyMemory(Hook-&gt;OldProc + RelocSize, Jumper_x64, 12);&lt;br /&gt;RtlCopyMemory(Hook-&gt;OldProc + RelocSize + 2, &amp;amp;RelAddr, 8);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The definition of Jumper_x64 matches right up with my yasm output.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Jumper_x64[12] = {0x48, 0xb8, 0x00, 0x00, 0x00, &lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0};&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/6288294589134566895-5186941142182107974?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5186941142182107974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5186941142182107974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5186941142182107974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5186941142182107974'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/api-hooking-x64-trampolines.html' title='API Hooking: x64 Trampolines'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7640553774396174056</id><published>2008-10-25T08:00:00.015-04:00</published><updated>2008-10-27T07:27:10.560-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vs2008'/><category scheme='http://www.blogger.com/atom/ns#' term='64-bit'/><title type='text'>Creating 64-bit Applications with VS2008 Express</title><content type='html'>This post provides step by step instructions on how to create 64-bit applications using Visual C++ 2008 Express Edition. There are a large number of related posts on forums and other venues, but these don't really boil things down.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 0: Install VS 2008 Express&lt;/span&gt;&lt;br /&gt;Download and install &lt;a href="http://www.microsoft.com/express/vc/"&gt;Visual C++ 2008 Express Edition&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 1: Install Platform SDK&lt;/span&gt;&lt;br /&gt;Install the appropriate Platform SDK. For example, if you run Vista, install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4377F86D-C913-4B5C-B87E-EF72E5B4E065&amp;amp;displaylang=en"&gt;Vista Platform SDK&lt;/a&gt;. This package will contain IA64 versions of the VC tool chain.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_92MpPwIByfk/SQNFdxI1iQI/AAAAAAAAAGA/-iCp28pI30E/s1600-h/platsdkcmd.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 160px;" src="http://2.bp.blogspot.com/_92MpPwIByfk/SQNFdxI1iQI/AAAAAAAAAGA/-iCp28pI30E/s320/platsdkcmd.jpg" alt="" id="BLOGGER_PHOTO_ID_5261125167407794434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2: Launch Platform SDK Command Line&lt;/span&gt;&lt;br /&gt;Launch a Platform SDK command shell by clicking &lt;strong&gt;Start -&gt; Microsoft Windows SDK -&gt; CMD Shell&lt;/strong&gt;. Note that I typed 'cl' in the command prompt and got back information indicating that this version of cl targets x64.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3: Launch VC Express From Command Line&lt;/span&gt;&lt;br /&gt;Launch VCExpress from the Platform SDK command like this:&lt;br /&gt;&lt;blockquote&gt;cd C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE&lt;br /&gt;VCExpress.exe /useenv&lt;br /&gt;&lt;/blockquote&gt;The location of your VCExpress.exe may be different. After entering the command, Visual C++ Express should pop up. Most of the work is done at this point, there are just a few project configuration tweaks to make.&lt;br /&gt;&lt;br /&gt;Step 4: Verify Environment Paths&lt;br /&gt;Verify that the VC++ paths are correct by going to Tools -&gt; Options -&gt; Projects &amp;amp; Solutions -&gt; VC++ Directories. Your settings should resemble those shown in the screenshots below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/SQNM6VsA31I/AAAAAAAAAGI/Qpgr2sNd-68/s1600-h/vsexepath.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 184px;" src="http://3.bp.blogspot.com/_92MpPwIByfk/SQNM6VsA31I/AAAAAAAAAGI/Qpgr2sNd-68/s320/vsexepath.jpg" alt="" id="BLOGGER_PHOTO_ID_5261133354836746066" border="0" /&gt;&lt;/a&gt;Note that the executable paths include the x64 tool chains.&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;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_92MpPwIByfk/SQNNE4X4wPI/AAAAAAAAAGQ/VM50Qg7bC6k/s1600-h/vsincludepath.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 184px;" src="http://1.bp.blogspot.com/_92MpPwIByfk/SQNNE4X4wPI/AAAAAAAAAGQ/VM50Qg7bC6k/s320/vsincludepath.jpg" alt="" id="BLOGGER_PHOTO_ID_5261133535946260722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Include paths are shown to the left and library paths shown below on the right.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/SQNNQPwuwOI/AAAAAAAAAGY/ZAWtw3svL_g/s1600-h/vslibpath.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 184px;" src="http://4.bp.blogspot.com/_92MpPwIByfk/SQNNQPwuwOI/AAAAAAAAAGY/ZAWtw3svL_g/s320/vslibpath.jpg" alt="" id="BLOGGER_PHOTO_ID_5261133731203039458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 5: Configuration Tweaks&lt;/span&gt;&lt;br /&gt;One you've verified that paths are setup correctly, it's time to make a few small changes. Change the target machine to be x64 as shown below. These have to be made per project, so open up a project you'd like to build targeting x64. In my case, I just created a dummy application using a Win32 template.&lt;br /&gt;&lt;br /&gt;Open the properties page of the project (right click the project in the browser bar on the left and click properties).  You should see something looking like the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/SQNSDLVBcvI/AAAAAAAAAGg/CWqwK0wOIDI/s1600-h/props_machine.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 223px;" src="http://3.bp.blogspot.com/_92MpPwIByfk/SQNSDLVBcvI/AAAAAAAAAGg/CWqwK0wOIDI/s320/props_machine.jpg" alt="" id="BLOGGER_PHOTO_ID_5261139004232921842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Next, verify that Debug Information Format is set to Zi, as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/SQNTl_b-2lI/AAAAAAAAAGo/EHMbwlr-hNY/s1600-h/props_debug.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="http://3.bp.blogspot.com/_92MpPwIByfk/SQNTl_b-2lI/AAAAAAAAAGo/EHMbwlr-hNY/s320/props_debug.jpg" alt="" id="BLOGGER_PHOTO_ID_5261140701847935570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Finally, ensure that Register Output is set to "No" as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_92MpPwIByfk/SQNX7GaDP5I/AAAAAAAAAGw/dWGRBk_Y1MY/s1600-h/props_regoutput.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="http://1.bp.blogspot.com/_92MpPwIByfk/SQNX7GaDP5I/AAAAAAAAAGw/dWGRBk_Y1MY/s320/props_regoutput.jpg" alt="" id="BLOGGER_PHOTO_ID_5261145462542647186" border="0" /&gt;&lt;/a&gt;You should be all set now! Build the solution and see for yourself.&lt;br /&gt;&lt;br /&gt;As fate would have it, I found a &lt;a href="http://software.intel.com/en-us/articles/generating-64-bit-binary-executables-using-microsoft-visual-studio-net"&gt;good reference from Intel&lt;/a&gt; for doing something very close to what I outlined. Wish I had found that before I wrote this post :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7640553774396174056?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7640553774396174056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7640553774396174056' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7640553774396174056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7640553774396174056'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/creating-64-bit-applications-with.html' title='Creating 64-bit Applications with VS2008 Express'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_92MpPwIByfk/SQNFdxI1iQI/AAAAAAAAAGA/-iCp28pI30E/s72-c/platsdkcmd.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7461260329111268010</id><published>2008-10-21T22:48:00.002-04:00</published><updated>2008-10-21T22:52:56.055-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='input0'/><title type='text'>InputZero &lt;3 RSS</title><content type='html'>I released a new version of the site earlier this evening. This version has three times the &lt;a href="http://input0.com/rfp/feeds/projects/"&gt;RSS action&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7461260329111268010?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7461260329111268010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7461260329111268010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7461260329111268010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7461260329111268010'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/inputzero-3-rss.html' title='InputZero &lt;3 RSS'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2365683618014798858</id><published>2008-10-21T16:15:00.003-04:00</published><updated>2008-10-22T08:20:47.785-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sockstress'/><title type='text'>Sockstress Goes Official</title><content type='html'>Sockstress made it into the &lt;a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-4609"&gt;NIST CVE&lt;/a&gt; database today. It's official now, the Intertubes are closed for business.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2365683618014798858?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2365683618014798858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2365683618014798858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2365683618014798858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2365683618014798858'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/sockstress-goes-official.html' title='Sockstress Goes Official'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3753254614463942142</id><published>2008-10-21T08:25:00.003-04:00</published><updated>2008-10-21T08:27:59.184-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='input0'/><title type='text'>InputZero Troubleshooting</title><content type='html'>If, as a consultant, you're having trouble confirming your email address it may be because you're attempting to reply to the confirmation email. Don't reply. Instead of replying click the confirmation link inside the email. If you are having trouble getting a confirmation email in the first place, please let me know. My email is base64 encoded in the footer of this page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3753254614463942142?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3753254614463942142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3753254614463942142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3753254614463942142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3753254614463942142'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/inputzero-troubleshooting.html' title='InputZero Troubleshooting'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7177759806845041352</id><published>2008-10-21T07:55:00.002-04:00</published><updated>2008-10-21T07:57:11.373-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='brute forcing'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>SSH Bruting Experiment Update</title><content type='html'>After 61 separate successful brute logins in 48 hrs, there have been no commands. Not nearly as entertaining as I had planned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7177759806845041352?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7177759806845041352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7177759806845041352' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7177759806845041352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7177759806845041352'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/ssh-bruting-experiment-update.html' title='SSH Bruting Experiment Update'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6212668833139734710</id><published>2008-10-20T15:54:00.003-04:00</published><updated>2008-10-20T16:05:54.519-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='input0'/><title type='text'>InputZero Update</title><content type='html'>It's been a little over a week since I launched InputZero and things are slowly moving along. I had to fix some very annoying issues with spam blacklists the day after launching, but that was a good learning experience. Those BLs are pretty stupid.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_92MpPwIByfk/SPzkWcYyhOI/AAAAAAAAAF4/zRFHa8r8OWo/s1600-h/input0_se.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_92MpPwIByfk/SPzkWcYyhOI/AAAAAAAAAF4/zRFHa8r8OWo/s320/input0_se.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5259329539090318562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;InputZero was my first django application to be completed (there are many more in the works). I listed it on &lt;a href="http://www.djangosites.org/s/input0-com/"&gt;django sites&lt;/a&gt; and posted about it on &lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;gid=38412&amp;discussionID=249845&amp;sik=1224532644229&amp;trk=ug_qa_q&amp;goback=.hom.ana_38412_1224532644229_3"&gt;LinkedIn&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have no marketing budget, so if this thing ever gets legs it will be from the great consultants who continue to sign up. If you believe in the cause, please link to InputZero, every little bit counts. As consultants, we number fifteen strong right now. Hopefully the site will gain exposure and people will start posting more projects soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6212668833139734710?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6212668833139734710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6212668833139734710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6212668833139734710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6212668833139734710'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/inputzero-update.html' title='InputZero Update'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_92MpPwIByfk/SPzkWcYyhOI/AAAAAAAAAF4/zRFHa8r8OWo/s72-c/input0_se.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4229556061796148904</id><published>2008-10-19T20:20:00.004-04:00</published><updated>2008-10-20T06:25:21.852-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>SSH Brute Force: After The Login</title><content type='html'>I've been running a little experiment for the last 24 hours. The adventure began with wondering what these people brute forcing SSH accounts were after. To quench my curiosity, I rigged together a small SSH server that permits anyone to login. It then logs commands. So far, every single bruter has connected with libssh and disconnected right after successfully authenticating. I assume they'll be back later on. Hopefully I'll see some commands soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4229556061796148904?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4229556061796148904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4229556061796148904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4229556061796148904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4229556061796148904'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/ssh-brute-force-after-login.html' title='SSH Brute Force: After The Login'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1097951927621339333</id><published>2008-10-19T13:51:00.013-04:00</published><updated>2008-10-19T15:28:58.504-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='appsec'/><title type='text'>Website Security in 60 Seconds</title><content type='html'>OK, maybe 5 minutes not 60 seconds. You've just finished getting a site developed or maybe you're thinking about ordering something online. You're curious as to whether the site is full of security holes. Here I'll discuss the intuition I've developed in assessing sites over the years. These are general indicators to watch out for that usually go hand in hand with security problems. They are all easy to spot and don't require any technical skills to speak of.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Mickey Mouse Look and Feel&lt;/span&gt;&lt;br /&gt;This one is touchy-feely, but has never let me down. I can generally tell 2 minutes into an assessment whether the site is going to be full of holes. If the site looks like it was thrown together by a teenager on summer break, chances are there will be problems a-plenty.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Spurious Errors&lt;/span&gt;&lt;br /&gt;If you're casually browsing the site and encounter detailed error messages which make no sense to you, that's a problem. These error messages leak information about the internals of an application hackers will find useful. You can also try to evoke errors by entering data containing quote, semicolon, less-than/greater-tan, "../", or percent characters.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Number of Inputs&lt;/span&gt;&lt;br /&gt;Does the application contain lots of forms? Every input to an application is another exposure. Sites with lots of forms or inputs are more likely to contain security problems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Email Me My Password&lt;/span&gt;&lt;br /&gt;If the site has a "send me my password via email" button or emails you a password after registration, pwnage.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Hidden Fields&lt;/span&gt;&lt;br /&gt;Browse to the busiest pages in the site and view the HTML source by right clicking on the page. Do a quick search for "hidden", hidden fields are generally abused by developers and lead to security problems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Login with Quotes&lt;/span&gt;&lt;br /&gt;Try logging in with the password &lt;u&gt;' or 1=1 --&lt;/u&gt;. If the login succeeds or you see lots of errors there could be a problem. Don't try this one on a site that's not your own.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Setting Passwords&lt;/span&gt;&lt;br /&gt;Try setting your password to your username or your username concatenated with "123". If the site allows you to do so, there will be pwnage.&lt;br /&gt;&lt;br /&gt;These signs only provide a general idea of what you're working with. Most sites contain security problems and so the absence of these indicators does not imply that a site is secure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1097951927621339333?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1097951927621339333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1097951927621339333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1097951927621339333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1097951927621339333'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/website-security-in-60-seconds.html' title='Website Security in 60 Seconds'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8410462961042751231</id><published>2008-10-18T06:03:00.002-04:00</published><updated>2008-10-18T06:29:19.918-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='sockstress'/><category scheme='http://www.blogger.com/atom/ns#' term='outpost24'/><title type='text'>Cisco's Response to Outpost24</title><content type='html'>Cisco posted a public &lt;a href="http://www.cisco.com/en/US/products/products_security_response09186a0080a15120.html"&gt;response&lt;/a&gt; to the sockstress TCP bugs recently half-disclosed by Outpost24. Cisco's response doesn't really add much, but does confirm a few things. Attacks can't be spoofed as they must complete the TCP 3-way (duh). More importantly, &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The TCP vulnerabilities that Outpost24 announced are an extension of well-known weaknesses in the TCP protocol.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Nothing new here. For now, Cisco recommends limiting TCP conversations to trusted sources where possible as a mitigation for core infrastructure. They are still exploring how these bugs affect their products.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8410462961042751231?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8410462961042751231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8410462961042751231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8410462961042751231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8410462961042751231'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/ciscos-response-to-outpost24.html' title='Cisco&apos;s Response to Outpost24'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7681357934493730636</id><published>2008-10-16T15:21:00.007-04:00</published><updated>2008-10-19T17:11:41.878-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sockstress'/><title type='text'>Sockstress Released? Lookout Internet!</title><content type='html'>Looks like we should either brace for a &lt;a href="http://www.sockstress.com/"&gt;sockstress&lt;/a&gt; release or someone is exploiting the hype behind the recently half-disclosed TCP bugs. Ominous photo aside, I don't know quite what to make of this site. Due to the site verbiage being an apparent reproduction of dialog between Fyodor and the researchers, I'm guessing its bogus. A Unicornscan release is featured right next to a presently defunct sockstress download link (http://www.sockstress.com/releases/sockstress-0.1.0.tgz).&lt;br /&gt;&lt;br /&gt;Update: Looks like &lt;a href="http://blog.robertlee.name/2008/10/very-strange-website.html"&gt;they made friends&lt;/a&gt; with the site owner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7681357934493730636?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7681357934493730636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7681357934493730636' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7681357934493730636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7681357934493730636'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/sockstress-released-lookout-internet.html' title='Sockstress Released? Lookout Internet!'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3330989631033563698</id><published>2008-10-16T07:12:00.028-04:00</published><updated>2008-10-16T12:45:42.991-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='click jacking'/><category scheme='http://www.blogger.com/atom/ns#' term='appsec'/><title type='text'>Banking Applications Vulnerable to Click Jacking</title><content type='html'>&lt;a href="http://www.securityfocus.com/news/11534/1"&gt;Click Jacking&lt;/a&gt; is not a new attack, RSnake and Jeremiah Grossman just brought it some public attention. I remember the day I was introduced to a similar version of the attack by a friend a few years ago. I was dumbstruck that such a simple attack actually worked. In the example shown to me, a frame from one domain was intercepting the keystrokes of another frame from a separate domain.&lt;br /&gt;&lt;br /&gt;These attacks can be mitigated by including frame busting code in websites. This is javascript code you place on your site that detects whether the page is being loaded in a frame, an example of which is shown below.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; if (top.frames.length!=0)&lt;br /&gt;  top.location=self.document.location;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Click Jacking never seemed to catch on in the underground since there are simpler attacks that work just as well, like phishing. Instead of hijacking a login form, you just reproduce one. I have compiled a list of popular online banking sites below that do not contain frame busting code.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SunTrust&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/SPcu7hwch3I/AAAAAAAAAEk/yDxCvWPZP44/s1600-h/suntrust.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_92MpPwIByfk/SPcu7hwch3I/AAAAAAAAAEk/yDxCvWPZP44/s320/suntrust.jpg" alt="" id="BLOGGER_PHOTO_ID_5257722690187069298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PNC Bank&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_92MpPwIByfk/SPcwfklhWTI/AAAAAAAAAEs/r1FQw4mysuI/s1600-h/pnc.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_92MpPwIByfk/SPcwfklhWTI/AAAAAAAAAEs/r1FQw4mysuI/s320/pnc.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5257724408933472562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Wamu&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_92MpPwIByfk/SPcybFTLjdI/AAAAAAAAAE0/eK-fnNmXXyw/s1600-h/wamu.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_92MpPwIByfk/SPcybFTLjdI/AAAAAAAAAE0/eK-fnNmXXyw/s320/wamu.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5257726530838826450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;M&amp;T&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/SPc9HBv6bfI/AAAAAAAAAE8/fmiYVe9jhuU/s1600-h/mandt.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_92MpPwIByfk/SPc9HBv6bfI/AAAAAAAAAE8/fmiYVe9jhuU/s320/mandt.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5257738280916119026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;TD Ameritrade&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/SPc_9_gmtMI/AAAAAAAAAFM/MJgV3vqvc4Y/s1600-h/ameritrade.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_92MpPwIByfk/SPc_9_gmtMI/AAAAAAAAAFM/MJgV3vqvc4Y/s320/ameritrade.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5257741424231101634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;JP Morgan Chase&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_92MpPwIByfk/SPc_Cli-uQI/AAAAAAAAAFE/ncLFKGpRg4Q/s1600-h/jpmc.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_92MpPwIByfk/SPc_Cli-uQI/AAAAAAAAAFE/ncLFKGpRg4Q/s320/jpmc.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5257740403649460482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sites with Busters&lt;/span&gt;&lt;br /&gt;To their credit, the following sites were found to contain frame busters.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.bankofamerica.com/index.jsp"&gt;Bank of America&lt;/a&gt;, &lt;a href="http://www.wachovia.com/"&gt;Wachovia&lt;/a&gt;, &lt;a href="https://www.wellsfargo.com/"&gt;Wells Fargo&lt;/a&gt;, &lt;a href="http://www.citibank.com/us/index.htm"&gt;Citi&lt;/a&gt;, &lt;a href="https://us.etrade.com/e/t/home"&gt;E*Trade&lt;/a&gt;, &lt;a href="https://secure.ingdirect.com/myaccount/InitialINGDirect.html?command=displayLogin&amp;device=web&amp;locale=en_US&amp;userType=Client"&gt;ING Direct&lt;/a&gt;, &lt;a href="http://www.us.hsbc.com/1/2/3/personal?home=personal"&gt;HSBC Bank USA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3330989631033563698?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3330989631033563698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3330989631033563698' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3330989631033563698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3330989631033563698'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/banking-applications-vulnerable-to.html' title='Banking Applications Vulnerable to Click Jacking'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_92MpPwIByfk/SPcu7hwch3I/AAAAAAAAAEk/yDxCvWPZP44/s72-c/suntrust.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5491973697684895844</id><published>2008-10-15T07:25:00.003-04:00</published><updated>2008-10-15T07:27:30.083-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lulz'/><title type='text'>Best Book Dedication Ever</title><content type='html'>Scroll down to the bottom of the best &lt;a href="http://safari.oreilly.com/9780321446114/copyrightpg#X2ludGVybmFsX1ByaW50RmlkZWxpdHk/eG1saWQ9OTc4MDMyMTQ0NjExNC9jb3B5cmlnaHRwZyZpbWFnZXBhZ2U9dg== "&gt;book dedication&lt;/a&gt; ever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5491973697684895844?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5491973697684895844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5491973697684895844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5491973697684895844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5491973697684895844'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/best-book-dedication-ever.html' title='Best Book Dedication Ever'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6064214489289094141</id><published>2008-10-15T07:08:00.002-04:00</published><updated>2008-10-15T07:09:00.721-04:00</updated><title type='text'>OMG BMW</title><content type='html'>I didn't know I needed a shape shifting car until today. http://blog.wired.com/cars/2008/06/bmw-builds-a-ca.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6064214489289094141?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6064214489289094141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6064214489289094141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6064214489289094141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6064214489289094141'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/omg-bmw.html' title='OMG BMW'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5691216438902077610</id><published>2008-10-13T07:03:00.008-04:00</published><updated>2008-10-18T07:18:16.595-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='input0'/><title type='text'>InputZero: Information Security Services Marketplace</title><content type='html'>InputZero is a &lt;a href="http://input0.com/"&gt;market place for information security services&lt;/a&gt; designed with convenience in mind for both organizations seeking services and consultants delivering them. The site does not require registration, however, projects and consultants are moderated in that both must be approved before participating. Approved consultants can respond to projects with quotes by sending email to an input0.com hosted address. Quotes are forwarded onto project owners. After which point communication between project owners and consultants is direct.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5691216438902077610?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5691216438902077610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5691216438902077610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5691216438902077610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5691216438902077610'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/10/inputzero.html' title='InputZero: Information Security Services Marketplace'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4331008886075507362</id><published>2008-09-26T16:36:00.004-04:00</published><updated>2008-09-26T16:40:47.425-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serialize'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='json'/><category scheme='http://www.blogger.com/atom/ns#' term='errors'/><title type='text'>Serializing Django Form Errors to JSON</title><content type='html'>I almost lost my cool this morning wrangling with django's BS. If you've every tried serializing a form's errors property, you'll know of what I speak. Namely:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; type(mf.errors)&lt;br /&gt;&lt;class 'django.forms.util.ErrorDict'&gt;&lt;br /&gt;&gt;&gt;&gt; y = dict(mf.errors)&lt;br /&gt;&gt;&gt;&gt; type(y)&lt;br /&gt;&lt;type 'dict'&gt;&lt;br /&gt;&gt;&gt;&gt; simplejson.dumps(y)&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "&lt;console&gt;", line 1, in &lt;module&gt;&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/__init__.py", line 236, in dumps&lt;br /&gt;    return _default_encoder.encode(obj)&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 366, in encode&lt;br /&gt;    chunks = list(self.iterencode(o))&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 308, in _iterencode&lt;br /&gt;    for chunk in self._iterencode_dict(o, markers):&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 274, in _iterencode_dict&lt;br /&gt;    for chunk in self._iterencode(value, markers):&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 305, in _iterencode&lt;br /&gt;    for chunk in self._iterencode_list(o, markers):&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 203, in _iterencode_list&lt;br /&gt;    for chunk in self._iterencode(value, markers):&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 316, in _iterencode&lt;br /&gt;    for chunk in self._iterencode_default(o, markers):&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 322, in _iterencode_default&lt;br /&gt;    newobj = self.default(o)&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/django/utils/simplejson/encoder.py", line 343, in default&lt;br /&gt;    raise TypeError("%r is not JSON serializable" % (o,))&lt;br /&gt;TypeError: &lt;django.utils.functional.__proxy__ object at 0x7fd84a4c&gt; is not JSON serializable&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Arrrgh. My workaround for the time being is supremely ugly.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def getErrorDict(errors):&lt;br /&gt;    errorstr = repr(errors)&lt;br /&gt;    errors = eval(errorstr)&lt;br /&gt;    return errors&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/6288294589134566895-4331008886075507362?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4331008886075507362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4331008886075507362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4331008886075507362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4331008886075507362'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/09/serializing-django-form-errors-to-json.html' title='Serializing Django Form Errors to JSON'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1213807750578093026</id><published>2008-09-15T20:30:00.019-04:00</published><updated>2008-09-16T07:42:09.710-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wishlist'/><category scheme='http://www.blogger.com/atom/ns#' term='brute forcing'/><category scheme='http://www.blogger.com/atom/ns#' term='appsec'/><title type='text'>Generalized Web Application Brute Forcing</title><content type='html'>I've been doing a lot of web app security work recently and have been putting together some features &amp;amp; capabilities I'd like to see. The first one I'll write about is Generalized Brute Forcing.&lt;br /&gt;&lt;br /&gt;Bruting is commonly associated with password brute forcing, but I am referring to the general case. Often times I have a set of inputs where I'd like to permute the parameter values over some lists or derivatives of lists (see python generators). &lt;br /&gt;&lt;br /&gt;The common example is a login form processor. In this case there are two parameters: username and password. The values I'd like to try might vary with the particular application I'm testing. What I don't want to do is take a huge generic list of passwords and try each one. Most banking customers won't have 'analslut' as a password (&lt;span style="font-style:italic;"&gt;most&lt;/span&gt;). Common pet names might be a better start. I'd also like to permute the values in different ways based on the particular application. One app might have a weak password policy. I'm going for LHF, so I don't need as many permutations. Simple numeric prefixes and suffixes might suffice.&lt;br /&gt;&lt;br /&gt;Another common example is "forced browsing" or directory brute forcing (as found in &lt;a href="http://www.owasp.org/index.php/Category:OWASP_DirBuster_Project"&gt;DirBuster&lt;/a&gt;). Whenever I test an Internet facing application, I usually spend a good portion of time testing as an unauthenticated actor trying to gain some unauthorized access. Forced browsing is a key part of this. The only thing that changes here is that now I'm using a list of common directory or filenames as opposed to usernames or passwords. This example illustrates the importance of flexibility in a bruter. If I'm searching for common directories and files, how does the bruter know when it has found one? It's no rarity to run into an application that returns HTTP/200 messages displaying HTML saying the file cannot be found instead of the expected 404.&lt;br /&gt;&lt;br /&gt;Another example might be a session ID suspected of being a hashed time value. Again, we'd like to try lots of values based on a duration of time.&lt;br /&gt;&lt;br /&gt;Desirable properties of bruters: loading arbitrary requests as templates, resumable, customizable detection of success cases, easily customizable lists and list composition, customizable list transformers/generators (prefixes, suffixes, hashes etc).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1213807750578093026?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1213807750578093026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1213807750578093026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1213807750578093026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1213807750578093026'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/09/generalized-web-application-brute.html' title='Generalized Web Application Brute Forcing'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8872742182370259499</id><published>2008-09-02T15:23:00.002-04:00</published><updated>2008-09-02T15:26:02.789-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>Rollin on Chrome</title><content type='html'>Google's new browser, &lt;a href="http://www.google.com/chrome"&gt;chrome&lt;/a&gt;, is out. It is so hot. Go get it. Now. Bow pointed out that plugins run in a separate process, meaning, there's IPC between tabs and plugins. Here's an interesting excerpt from the &lt;a href="http://dev.chromium.org/developers/design-documents/inter-process-communication"&gt;developer docs&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;You must be very careful when unpacking messages in the browser. Since the renderer is sandboxed, one of the easiest ways to get out of the sandbox is to take advantage of insecure message unpacking. All parameters must be carefully validated and never trusted. Be particularly careful about signedness errors.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8872742182370259499?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8872742182370259499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8872742182370259499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8872742182370259499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8872742182370259499'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/09/rollin-on-chrome.html' title='Rollin on Chrome'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8949236250334565149</id><published>2008-08-30T12:47:00.002-04:00</published><updated>2008-08-30T12:52:11.278-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smtp'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python SMTP Server</title><content type='html'>Today I found a nice little &lt;a href="http://www.hare.demon.co.uk/pysmtp.html"&gt;python smtp server&lt;/a&gt; written by Les Smithson. This was a real life safer and enabled me to test an application module without installing and configuring a "real" smtp server such as postfix or some other beast. &lt;br /&gt;&lt;br /&gt;It depends on a DNS library, but the code and limited documentation don't specify the name of the library or a URL. I got lucky with apt-cache and it turns out python-dns is the required package. With just one small mod, I have a functional SMTP relay server (doesn't accept mail for a domain but will deliver messages to others).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8949236250334565149?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8949236250334565149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8949236250334565149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8949236250334565149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8949236250334565149'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/python-smtp-server.html' title='Python SMTP Server'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6929833160094741536</id><published>2008-08-23T11:14:00.014-04:00</published><updated>2008-08-25T22:17:01.922-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unpack'/><category scheme='http://www.blogger.com/atom/ns#' term='packer'/><category scheme='http://www.blogger.com/atom/ns#' term='paris'/><title type='text'>The "Paris Hilton Video" Packer</title><content type='html'>Yesterday, I got an interesting email promising nude footage of Paris Hilton. The link points to a binary (video-paris-hilton.avi.exe) whose contents periodically change. The binaries were not detected by my AV product. The change is slight with new binaries being roughly the same size as old ones and displaying similar packer traits. The first thing to catch my eye was the entry point, reproduced below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/SLAvuK4MAII/AAAAAAAAAEc/XkUUemAxt5o/s1600-h/EntryPoint.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_92MpPwIByfk/SLAvuK4MAII/AAAAAAAAAEc/XkUUemAxt5o/s320/EntryPoint.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5237738836872396930" /&gt;&lt;/a&gt;&lt;br /&gt;EIP is at the entry point and so is the dump. There are lots of patterns evident in the dump, such as "PRXZ". Also, note the first instruction.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;00401000 &gt; F3:              PREFIX REP:                              ; Superfluous prefix&lt;br /&gt;00401001   EB 05            JMP SHORT video-pa.00401008&lt;br /&gt;00401003   3A91 723C6BE8    CMP DL,BYTE PTR DS:[ECX+E86B3C72]&lt;br /&gt;00401009   0100             ADD DWORD PTR DS:[EAX],EAX&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Looks like a bad case of the old jump to the middle of an instruction trick (target 401008 vs. linearly disassembled 401009). This proves to be a PITA to work with in Olly. You have to click about three times to redefine a portion of memory. After a bit of single stepping through this junk, it becomes evident that the author is wasting your time. There are over 9000 bytes in the .text section and the bulk of them appear to be doing nothing useful in a most complicated manner.&lt;br /&gt;&lt;br /&gt;Examples include:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;push eax&lt;br /&gt;push edx&lt;br /&gt;pop eax&lt;br /&gt;pop edx&lt;br /&gt;swap eax,edx&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Somewhere in this mess of junk instructions is a golden nugget, but how do we find it? I started by doing a frequency distribution on characters in the text section since HexWorkshop has that feature built in. Took a look at the least frequent bytes but this was not very telling. After staring at a hexdump of the section for a while, I noticed a couple interesting 4 byte strings. The first was "rote", then closeby I found "ualP", and finally "Virt". Smells like VirtualProtect!&lt;br /&gt;&lt;br /&gt;Back in Olly, I look for instructions in the vicinity of these strings and eventually find the last part of the string being built first here.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;00401A35   . C74424 10 6374&gt;MOV DWORD PTR SS:[ESP+10],7463&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That's "ct". I step through until VirtualProtect is on the stack in full and then set a hardware bp on it. Then I let the thing run and my bp triggers. The first time through this point I just kept letting the thing run hoping my bp would hit periodically, but this wound up triggering some anti-debugging. Second time around, I step through some instructions after the first trigger and see a pointer to the string being pushed onto the stack. Then I set a bp on that.&lt;br /&gt;&lt;br /&gt;Now my bp would trigger twice inside a loop. Once where the pointer was loaded up and once more where VirtualProtect was being compared to names inside kernel32. This is a homegrown version of GetProcAddress.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;00401E87   &gt; F3:A6          REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:&gt;;  compare VirtualProtect to kernel32.name&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I look through the stuff pointed to by ESI until I find VirtualProtect and set a hw mem bp on that in order to skip past all the boring comparisons. Once this hits, I single step a bit more until I find the address for VirtualProtect being loaded here.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;004020DC   . 8B0496         MOV EAX,DWORD PTR DS:[ESI+EDX*4]         ;  low order bytes for VirtualProtect are now in EAX&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A little bit later on we see&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;00402117   . 50             PUSH EAX                                 ;  kernel32.VirtualProtect&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;We also see our .data section being pushed onto the stack here:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;004021DD   &gt; FF7424 38      PUSH DWORD PTR SS:[ESP+38]               ;  .data pushed on stack&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Could this mean our data section is about to have its permissions modified? :) A little exhausted from all that single stepping, I set a hw bp on the pointer to .data which is now on the stack and let the prog run.&lt;br /&gt;&lt;br /&gt;Bam! It Triggers! &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;77E6169E &gt;/$ 55             PUSH EBP&lt;br /&gt;77E6169F  |. 8BEC           MOV EBP,ESP&lt;br /&gt;77E616A1  |. FF75 14        PUSH [ARG.4]                             ; /pOldProtect&lt;br /&gt;77E616A4  |. FF75 10        PUSH [ARG.3]                             ; |NewProtect&lt;br /&gt;77E616A7  |. FF75 0C        PUSH [ARG.2]                             ; |Size&lt;br /&gt;77E616AA  |. FF75 08        PUSH [ARG.1]                             ; |Address&lt;br /&gt;77E616AD  |. 6A FF          PUSH -1                                  ; |hProcess = FFFFFFFF&lt;br /&gt;77E616AF  |. E8 A4BB0100    CALL kernel32.VirtualProtectEx           ; \VirtualProtectEx&lt;br /&gt;77E616B4  |. 5D             POP EBP&lt;br /&gt;&lt;br /&gt;Stack frame:&lt;br /&gt;&lt;br /&gt;0012FF48   FFFFFFFF  |hProcess = FFFFFFFF&lt;br /&gt;0012FF4C   004CC000  |Address = video-pa.004CC000&lt;br /&gt;0012FF50   0002A7A4  |Size = 2A7A4 (173988.)&lt;br /&gt;0012FF54   00000040  |NewProtect = PAGE_EXECUTE_READWRITE&lt;br /&gt;0012FF58   0012FF74  \pOldProtect = 0012FF74&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The actual call from video-pa into VirtualProtect is @ 0040221D. We see above that the prog wants our .data section to be executable and read/write. Next I set a one-shot bp on .data (Alt-M -&gt; F2)and let her run. It triggers and I get the following key tidbits.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;00402FC3   &gt; 56             PUSH ESI&lt;br /&gt;0040303B   &gt; 8A4C04 14      MOV CL,BYTE PTR SS:[ESP+EAX+14]          ;  key byte is loaded into CL here&lt;br /&gt;0040328F   . 300F           XOR BYTE PTR DS:[EDI],CL                 ;  decoding .data&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A nice simple XOR decoder loop stretched out over lots of junk instructions. I was curious about the key stream so I setup logging breakpoints to track the bytes and see if a period existed. It appears to be random and I'm not THAT interested in reversing the key byte generator. I can tell that the loop is progressing through .data sequentially, so I set a hw mem bp on the last byte and let her run.&lt;br /&gt;&lt;br /&gt;I have the OllyDump plugin loaded. It has a really useful feature called "Trace into next section". This just sets a condition on EIP and breaks when EIP is no longer in the current section. Doing so lands us here.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;004CCD6F   6A 00            PUSH 0&lt;br /&gt;004CCD71   90               NOP&lt;br /&gt;004CCD72   90               NOP&lt;br /&gt;004CCD73   90               NOP&lt;br /&gt;004CCD74   E8 32FBFFFF      CALL video-pa.004CC8AB&lt;br /&gt;004CCD79   E8 58F7FFFF      CALL video-pa.004CC4D6&lt;br /&gt;004CCD7E   E8 7DF6FFFF      CALL video-pa.004CC400&lt;br /&gt;004CCD83   E8 ECF2FFFF      CALL video-pa.004CC074&lt;br /&gt;004CCD88   E8 0DF8FFFF      CALL video-pa.004CC59A&lt;br /&gt;004CCD8D   E8 46FCFFFF      CALL video-pa.004CC9D8&lt;br /&gt;004CCD92   E8 79F5FFFF      CALL video-pa.004CC310&lt;br /&gt;004CCD97   E8 64F9FFFF      CALL video-pa.004CC700&lt;br /&gt;004CCD9C   E8 DFF6FFFF      CALL video-pa.004CC480&lt;br /&gt;004CCDA1   C3               RETN&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I'm now looking out for OEP. Some snapshotting and messing around lead me to step over everything up to the last call @ 4CCD9C. By this call, all DLLs have been loaded and I feel like we're close to a point where rebuilding the IAT seems possible. If you search for intermodular calls up to this point, you'll find a bunch of gibberish. Stepping in and following along for a while lead me to.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;004CC469   FF10             CALL DWORD PTR DS:[EAX]                  ; kernel32.VirtualAlloc&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Unexpected! This allocated memory at 00A60000. Standard procedure applies, bp set on new mem and then... paydirt.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;004CCF38   F3:A4            REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This populates the newly allocated memory by copying 0x100 bytes from .data:4cc204. What are these for? Step over the copy operation and let her run again.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;004CC4D4   FFD0             CALL EAX&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Instructions! (EAX=A60000). Single stepping through this code brings us to.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;00A6008A  -FF6424 E0        JMP DWORD PTR SS:[ESP-20]                ; kernel32.VirtualFree&lt;br /&gt;0012FFB4   0040AC6A  /CALL to VirtualFree&lt;br /&gt;0012FFB8   00A60000  |Address = 00A60000&lt;br /&gt;0012FFBC   00000000  |Size = 0&lt;br /&gt;0012FFC0   00004000  \FreeType = MEM_DECOMMIT&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;We free ourself (A60000) and return here.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;0040AC6A   . 6A 60          PUSH 60&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;OEP! We see the standard setup calls (GetModuleHandle etc.). Dump the process using OllyDmp, fire up import reconstructor and you're done unpacking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6929833160094741536?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6929833160094741536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6929833160094741536' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6929833160094741536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6929833160094741536'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/interesting-packer.html' title='The &quot;Paris Hilton Video&quot; Packer'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_92MpPwIByfk/SLAvuK4MAII/AAAAAAAAAEc/XkUUemAxt5o/s72-c/EntryPoint.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7051452444777986989</id><published>2008-08-22T12:29:00.002-04:00</published><updated>2008-08-22T12:37:23.833-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redhat'/><category scheme='http://www.blogger.com/atom/ns#' term='pwnage'/><title type='text'>Redhat Pwnd</title><content type='html'>Details &lt;a href="https://rhn.redhat.com/errata/RHSA-2008-0855.html"&gt;here&lt;/a&gt;. Might be time for a switch to debian, errr ubuntu, err openbsd... UGH.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7051452444777986989?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7051452444777986989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7051452444777986989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7051452444777986989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7051452444777986989'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/redhat-pwnd.html' title='Redhat Pwnd'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2308687375972407999</id><published>2008-08-19T19:50:00.003-04:00</published><updated>2008-08-19T20:22:15.036-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reversing'/><category scheme='http://www.blogger.com/atom/ns#' term='anti-debug'/><title type='text'>Anti-Debugging with SetUnhandledExceptionFilter</title><content type='html'>Recently, I wrote up a short program to demonstrate some anti-debugging concepts. The result surprised me a bit. The program is simple, it calls a routine that installs an application specific top-level exception handler via &lt;a href="http://msdn.microsoft.com/en-us/library/ms680634(VS.85).aspx"&gt;SetUnhandledExceptionFilter&lt;/a&gt;. Next it performs a glorious divide by zero. The handler will set a flag if it is called (noDbg=1) under the assumption no debugger caught the exception. The program has been reproduced below.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int x=100, y=73, noDbg=0;&lt;br /&gt;&lt;br /&gt;LONG WINAPI catchException(struct _EXCEPTION_POINTERS *excInfo)&lt;br /&gt;{&lt;br /&gt;        noDbg = 1;      // if we get here, then we pass the test&lt;br /&gt;        y++;&lt;br /&gt;        return EXCEPTION_CONTINUE_EXECUTION;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void wildGooseChase(int i)&lt;br /&gt;{&lt;br /&gt;        for (;i &lt; i*50; i += (i&amp;0xff)^41) {&lt;br /&gt;                wildGooseChase(i);&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void checkDivZero(void)&lt;br /&gt;{&lt;br /&gt;        SetUnhandledExceptionFilter(catchException);&lt;br /&gt;        y -= y;&lt;br /&gt;        x = x / y;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;        char c;&lt;br /&gt;        checkDivZero();&lt;br /&gt;        if (!noDbg)&lt;br /&gt;                wildGooseChase(0xdeadbeef);&lt;br /&gt;        MessageBoxA(0, "no debugger detected", "antidebug", MB_OK);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;As shown above, if a debugger is detected, we send the reverser on a wild goose chase. The result is interesting because when the process is being debugged, the user defined handler is never called. After some googling, I found that this is a not-well-documented feature of SetUnhandledExceptionFilter. See &lt;a href="http://evilcodecave.wordpress.com/2008/07/24/setunhandledexception-filter-anti-debug-trick/"&gt;here&lt;/a&gt; and &lt;a href="http://www.openrce.org/forums/posts/45"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This all means that even after telling your debugger to ignore (or pass along) a div by zero exception to the application, the handler will not be called if the app is being debugged. Debugger 0, anti-debug trick 1. Pretty neat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2308687375972407999?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2308687375972407999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2308687375972407999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2308687375972407999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2308687375972407999'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/anti-debugging-with-setunhandledexcepti.html' title='Anti-Debugging with SetUnhandledExceptionFilter'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1821821274144956651</id><published>2008-08-17T12:36:00.003-04:00</published><updated>2008-08-17T12:39:09.031-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='challenge'/><category scheme='http://www.blogger.com/atom/ns#' term='reversing'/><title type='text'>Reversing Challenge</title><content type='html'>Had fun this morning doing a reversing challenge that showed up in my gmail/blog ads. It's meant to be an unconventional interview (or part of an interview process), but it was fun nonetheless. Visit 0x41414141.com if you're bored or looking for a job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1821821274144956651?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1821821274144956651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1821821274144956651' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1821821274144956651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1821821274144956651'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/reversing-challenge.html' title='Reversing Challenge'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5212585303034924561</id><published>2008-08-16T14:52:00.007-04:00</published><updated>2008-08-17T12:36:24.479-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hotspot hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='dns tunneling'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>Hotspot Security</title><content type='html'>Lately I've been spending more time than I'd like inside airports. All the ones I've been to so far don't have free wifi. Instead of paying for it, curiosity got me thinking about alternatives to paid access. I haven't tried or tested any of these, since I'm not cut out for prison or "thug life".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hack 1: Tunneling over DNS&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;It would appear that many hotspots allow DNS queries through the gateway. Without paying, I could successfully resolve names inside domains I control. Everything else seems to get blocked, except HTTP. All HTTP requests get redirected to the hotspot carrier. After a little googling today, I found that at least one &lt;a href="http://thomer.com/howtos/nstx.html"&gt;other person&lt;/a&gt; made this same observation before I did.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hack 2: Images / Media&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I did not think of &lt;a href="http://debuggable.com/posts/hacking-a-commercial-airport-wlan:480f4dd5-50a0-40c6-aa60-4afccbdd56cb"&gt;this one&lt;/a&gt;, but it is pretty slick. I did however notice that the sites you get redirected to allow some 3rd party content to be displayed (like ads). I figured if I found a link that had a URL embedded as a parameter, I could maybe tunnel thru that. It turns out that lots of hotspots allow urls to be loaded from third parties on condition that these urls are images or other media files. This helps things like advertising work. The hotspot does a simple check for whether the URL ends with the appropriate extension like .jpg or .gif. If you simply add a .jpg or .gif at the end of a URL, you get a different URL. However, if you add a ?.jpg or ?.gif, that has a very different meaning. Now the .jpg or .gif is treated as part of the parameter string to the previously specified URL. Most websites will ignore extraneous parameters. Allowing you to surf to any URL by simply adding one of ?.jpg, ?.gif or ?.swf.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hack 3: Modify User Agent&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Recently, one of the most popular hotspot companies was giving out &lt;a href="http://www.airportwifiguide.com/for-free-airport-wifisee-this-boingoiphone-free-wifi-hack-for-laptop-users/"&gt;free wifi&lt;/a&gt; access if you had an iPhone. Solution here is easy, just set your user agent to that of an iPhone.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hack 4: Spoof Source IP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The gateways used by all these hotspots authorize your MAC for communication. What's to stop someone from just sniffing hotspot traffic (which is not encrypted) and then modifying their MAC to match an established session?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5212585303034924561?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5212585303034924561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5212585303034924561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5212585303034924561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5212585303034924561'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/hotspot-security.html' title='Hotspot Security'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3633457320290346528</id><published>2008-08-09T11:24:00.005-04:00</published><updated>2008-08-09T11:38:43.858-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SO_REUSEADDR'/><category scheme='http://www.blogger.com/atom/ns#' term='bind'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='setsockopt'/><category scheme='http://www.blogger.com/atom/ns#' term='appsec'/><title type='text'>The Mysteries of SO_REUSEADDR</title><content type='html'>Last week while teaching a class on Reverse Engineering I was explaining how, on Windows, it's important to note there are two types of binds when creating server applications. These are exclusive and non-exclusive, I believe these modes exist on UNIX systems as well, but I think the implementation details are a bit different (not 100% sure). More plainly put, in Windows, two applications can listen on the same port. &lt;br /&gt;&lt;br /&gt;If a port is bound with default options, a second application can come along and bind to the same port by calling setsockopt() with SO_REUSEADDR before binding its socket. I pointed this out on a few of my app pen-tests where an application implicitly expected to be the only one capable of listening on a port. &lt;br /&gt;&lt;br /&gt;A student in the class asked a great question which went something like "How does the OS determine which socket gets an incoming connection if two apps are listening on the same socket?". The answer is that there are no guarantees as to which socket will receive incoming connections -- either one might get lucky. More information can be found &lt;a href="http://blogs.msdn.com/wndp/attachment/447425.ashx"&gt;here&lt;/a&gt;. Of course, this could be very dangerous in certain contexts, since it allows another application to impersonate the server without actually shutting down the existing one. &lt;br /&gt;&lt;br /&gt;You can easily verify this on Windows using netcat or writing a small prog. So, when developing server apps for windows, make sure to keep out impersonators by calling setsockopt with SO_EXCLUSIVEADDRUSE before binding the socket.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3633457320290346528?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3633457320290346528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3633457320290346528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3633457320290346528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3633457320290346528'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/mysteries-of-soreuseaddr.html' title='The Mysteries of SO_REUSEADDR'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4752901849930308400</id><published>2008-08-05T18:09:00.004-04:00</published><updated>2008-08-05T18:12:48.899-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patch tuesday'/><category scheme='http://www.blogger.com/atom/ns#' term='ms'/><title type='text'>Microsoft opens arms for big vulnerability hug</title><content type='html'>Microsoft will be &lt;a href="http://blogs.zdnet.com/security/?p=1646"&gt;sharing vulnerability info&lt;/a&gt; with security vendors prior to patch tuesday. Finally.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4752901849930308400?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4752901849930308400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4752901849930308400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4752901849930308400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4752901849930308400'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/microsoft-opens-arms-for-big.html' title='Microsoft opens arms for big vulnerability hug'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-570959835559411859</id><published>2008-08-01T08:35:00.003-04:00</published><updated>2008-08-01T08:49:29.312-04:00</updated><title type='text'>Chicago</title><content type='html'>I should be in Chicago the week of 8/11. I'll be staying somewhere in Arlington Heights. Hit me up if you're not at blackhat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-570959835559411859?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/570959835559411859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=570959835559411859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/570959835559411859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/570959835559411859'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/08/chicago.html' title='Chicago'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3130818952284426633</id><published>2008-07-31T06:39:00.003-04:00</published><updated>2008-07-31T06:59:34.474-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>SSL Nonsense Part 3</title><content type='html'>Well, it didn't work, i received the response below last night.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;Dear Secure Certificate Customer,&lt;br /&gt;&lt;br /&gt;An SSL certificate cannot be issued for the domain: www.amazon.com without domain authentication.&lt;br /&gt;&lt;br /&gt;Verification of your certificate request has failed.&lt;br /&gt;&lt;br /&gt;Your certificate request has been denied.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you encounter any problems or have any questions, our Customer Support department is ready to help, around-the-clock, seven days a week.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;A better title for these posts would be "attacking the glue of SSL" since SSL is completely reliant on the CAs to verify identities before issuing certificates. I still have a few avenues to explore.&lt;br /&gt;&lt;br /&gt;Most of these CA sites confirm domain ownership through whois. When you generate a CSR and submit it. They lookup whois information for the domain portion of the CN (e.g. www.amazon.com). They send an email to the domain contact specified in whois. The email will contain instructions on how to confirm but will usually contain a confirmation link that can be clicked.&lt;br /&gt;&lt;br /&gt;If any of these sites use predictable confirmation links, an attacker could confirm the certificate request without ever receiving the email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3130818952284426633?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3130818952284426633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3130818952284426633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3130818952284426633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3130818952284426633'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/07/ssl-nonsense-part-3.html' title='SSL Nonsense Part 3'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5822961032721019674</id><published>2008-07-29T22:47:00.004-04:00</published><updated>2008-12-12T15:46:21.104-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Breaking SSL: Part 2</title><content type='html'>Well, I couldn't stand it any longer. I had to find out for myself what the most obvious attempt might result in. It was probably a $15.00 mistake, but fun none the less. I hope noone gets upset with me.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/SI_W10e__rI/AAAAAAAAAEM/2C8gSbxm9QE/s1600-h/amazon_cert.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_92MpPwIByfk/SI_W10e__rI/AAAAAAAAAEM/2C8gSbxm9QE/s320/amazon_cert.png" alt="" id="BLOGGER_PHOTO_ID_5228633912510512818" 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/6288294589134566895-5822961032721019674?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5822961032721019674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5822961032721019674' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5822961032721019674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5822961032721019674'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/07/breaking-ssl-part-2.html' title='Breaking SSL: Part 2'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_92MpPwIByfk/SI_W10e__rI/AAAAAAAAAEM/2C8gSbxm9QE/s72-c/amazon_cert.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8106667173454359428</id><published>2008-07-29T07:05:00.005-04:00</published><updated>2008-07-29T07:39:58.244-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Breaking SSL</title><content type='html'>A little over a year ago, I realized something about SSL. &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;The CAs don't talk to each other.&lt;/span&gt;&lt;/blockquote&gt;More importantly, CAs are supposed to validate the identity of the cert's owner but that's always been hard. Most of the ones that try just call a number and ask you to verify your info. Let's face it, CAs are in business to make a profit, there's no time for all this validation.&lt;br /&gt;&lt;br /&gt;There are many devices out there that would love to have the privilege of being able to inspect SSL traffic. IPS/IDS vendors, bad guys.... OK, maybe just two sets of people. Now it's easy and fun. Just follow these instructions and you too can intercept and modify any SSL traffic you like.&lt;br /&gt;&lt;br /&gt;1) Go to the website of a Certificate Authority&lt;br /&gt;2) Specify the site you would like to hijack (e.g. amazon.com)&lt;br /&gt;3) Pay for your new shiny certificate&lt;br /&gt;4) Redirect the targets DNS so that amazon.com now points to 192.168.0.100 and vice versa&lt;br /&gt;5) Setup a machine on the LAN with IP 192.168.0.100&lt;br /&gt;6) Wait for your coworkers to visit amazon&lt;br /&gt;&lt;br /&gt;There's nothing stopping you from requesting a cert for any CN you like. It may also be possible to generalize the exploitation of this flaw so that you don't need to purchase a cert for each SSL website you want to intercept. This should be possible by purchasing a CA certificate. These allow CAs to delegate to other CAs, allowing them to sign their own certs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8106667173454359428?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8106667173454359428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8106667173454359428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8106667173454359428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8106667173454359428'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/07/playing-man-in-middle-with-ssl.html' title='Breaking SSL'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4040812519520727211</id><published>2008-07-19T13:38:00.004-04:00</published><updated>2008-07-19T13:40:55.369-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ms'/><category scheme='http://www.blogger.com/atom/ns#' term='fuzzing'/><title type='text'>Microsoft Releases Binary File Formats</title><content type='html'>You can now download file format specifications for Office products &lt;a href="http://www.microsoft.com/interop/docs/officebinaryformats.mspx"&gt;here&lt;/a&gt;. These include Word, Excel, and Power Point. Let the vulnerabilities pour in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4040812519520727211?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4040812519520727211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4040812519520727211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4040812519520727211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4040812519520727211'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/07/microsoft-releases-binary-file-formats.html' title='Microsoft Releases Binary File Formats'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2060325859757257347</id><published>2008-07-14T15:56:00.007-04:00</published><updated>2008-07-15T06:37:17.346-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><category scheme='http://www.blogger.com/atom/ns#' term='whitelisting'/><title type='text'>Application Whitelisting</title><content type='html'>SHHH, Did you hear that?&lt;br /&gt;&lt;br /&gt;Don't panic, it's just the death-bed groans of a dying technology. Last rites are being doled out to traditional anti-virus solutions. The problem has evolved and left the solution behind with flailing arms, bad test scores, and industry leaders admitting they've lied to consumers. So what will the future of malware prevention technologies look like? Have a &lt;a href="http://www.darkreading.com/document.asp?doc_id=158750&amp;amp;f_src=darkreading_section_296"&gt;look&lt;/a&gt; for yourself.&lt;br /&gt;&lt;br /&gt;Last weekend my Dad called to tell me he had been infected with something while reading an article on the Madonna/A-rod drama... all while running a popular AV product. I know for a fact that had he been using a white listing solution, his machine would probably be usable today. He only runs a sum total of 10 unique applications. Like many people his age, the computer just needs to surf the web,  send email, and do a little word processing. Instead it has been transformed into a porn &amp;amp; advertising delivery platform. Can he ever trust it again? I couldn't.&lt;br /&gt;&lt;br /&gt;Whitelisting is so simple. It borrows from the early stages of developing firewall policies (and elsewhere). The whitelist approach says "here are the programs I know to be good, I will allow them to run". Everything else is blocked with an option to permit. Lookout AV, your days are numbered. Your nests at the Fortune 500 won't grow cold just yet. The scale of these networks in certain cases prohibits new roll outs. However, individuals and small to mid-sized businesses can easily switch. Once their relatives and trusted geeks begin telling them to go with a WL solution, the exodus will begin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2060325859757257347?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2060325859757257347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2060325859757257347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2060325859757257347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2060325859757257347'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/07/application-whitelisting.html' title='Application Whitelisting'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4278417375404934643</id><published>2008-07-06T07:35:00.023-04:00</published><updated>2008-12-12T15:46:21.506-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acrobat'/><category scheme='http://www.blogger.com/atom/ns#' term='reversing'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>APSB08-15: Part 1</title><content type='html'>This post is about reversing the &lt;a href="http://www.adobe.com/support/security/bulletins/apsb08-15.html"&gt;latest security update&lt;/a&gt; from Adobe for Acrobat Reader 8.1.2 (APSB08-15 / CVE-2008-2641). I'm not finished yet, but this is the journey so far.&lt;br /&gt;&lt;br /&gt;To start at the beginning, the security update is distributed as an MSI file. At first, I tried unpacking the .msi but after doing so realized it would  be better to just backup all the binaries and apply the patch. Once I did that, I ran a python script to compare the updated and original folders. This revealed that the only binary changed was plug_ins/Annots.api.&lt;br /&gt;&lt;br /&gt;I created IDA databases of the new and old Annots.api DLLs. These are quite large. BinDiff took a very long time to diff the databases. Surprisingly, PatchDiff (from Tenable) was much faster. In terms of matched functions, PatchDiff only found 6 more than BinDiff (False Positives). The graphs produced by BinDiff are a little easier to comprehend. Still, not bad for a free plugin.&lt;br /&gt;&lt;br /&gt;I looked through the changed functions and the only one of interest appeared to be @ 0x221f939b in the new DLL and 0x221f91dc in the old one. I searched  for xrefs to the function and determined that the changed function is called "collectEmailInfo" based on the logic within the only xref which is some sort of Javascript method registration. A vulnerability had been reported in this function prior to this bulletin, it was also reportedly being exploited in the wild by things like Neosploit.&lt;br /&gt;&lt;br /&gt;A quick google for collectEmailInfo revealed that the function was part of the Javascript API. I found it interesting that the method is actually referenced as Collab.collectEmailInfo(...) in Javascript even though it is defined in Annots.api. I verified that the function in Annots actually gets called when referenced like this by creating a PDF with embedded Javascript using &lt;a href="http://www.pdfill.com/download.html"&gt;PDFFill&lt;/a&gt;. Here's a shot of a breakpoint on collectEmailInfo triggering in Immunity's debugger.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/SHC-ecCQCII/AAAAAAAAACM/qubQC2GbQkQ/s1600-h/collectEmailInfo_triggers_in_Annots.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_92MpPwIByfk/SHC-ecCQCII/AAAAAAAAACM/qubQC2GbQkQ/s320/collectEmailInfo_triggers_in_Annots.PNG" alt="" id="BLOGGER_PHOTO_ID_5219881398253389954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The new function contains some input validation checks that do not appear to be present in the prior DLL. These check the lengths of different wide input strings. The first of which can be found @ 0x221F9C7F. A custom strlen function that deals with wide strings is used repeatedly in these checks. It is defined @ 0x2218B669.&lt;br /&gt;&lt;br /&gt;The differences are best illustrated by the IDA graph views side by side.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_92MpPwIByfk/SHDEdxMcQlI/AAAAAAAAACU/MI8xPUPqbYA/s1600-h/flowgraph_diff_inputvalidation.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_92MpPwIByfk/SHDEdxMcQlI/AAAAAAAAACU/MI8xPUPqbYA/s320/flowgraph_diff_inputvalidation.PNG" alt="" id="BLOGGER_PHOTO_ID_5219887983823176274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The graph on the left is the original function while the one on the right is the new version. The original version appears to do a memset operation followed by some pointer copying. This information is troubling because, without any testing, the vuln here would appear to be very similar to the &lt;a href="http://www.slideshare.net/nsbuttar/re-over-adobe-acrobat-reader-using-immunity-debugger-pablo-sole"&gt;previously reported&lt;/a&gt; one (CVE-2007-5659). Next step here is to unpatch Reader and begin testing with a debugger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4278417375404934643?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4278417375404934643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4278417375404934643' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4278417375404934643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4278417375404934643'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/07/apsb08-15-part-1.html' title='APSB08-15: Part 1'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_92MpPwIByfk/SHC-ecCQCII/AAAAAAAAACM/qubQC2GbQkQ/s72-c/collectEmailInfo_triggers_in_Annots.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4638137567603562719</id><published>2008-05-15T15:22:00.003-04:00</published><updated>2008-05-15T15:31:48.631-04:00</updated><title type='text'>Attention Bot Masters</title><content type='html'>Hope all is well with your P2P infrastructure, rootkits and the like. It has come to my attention that people are willing to &lt;a href="http://www.fonts.com/findfonts/detail.htm?pid=427413&amp;grab_id=0&amp;page_id=33733&amp;query=myriad%20pro&amp;SCOPE=Fonts"&gt;pay&lt;/a&gt; upwards of $900 (USD) for ... [drum roll] ... a single font. Yes, fonts. At this point, it might be obvious where I'm headed.&lt;br /&gt;&lt;br /&gt;It's time to start harvesting those fonts your victims have so graciously purchased and then reselling them to other suckers. I accept no liability in the event someone actually goes through with this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4638137567603562719?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4638137567603562719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4638137567603562719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4638137567603562719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4638137567603562719'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/05/attention-bot-masters.html' title='Attention Bot Masters'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2505277754644295733</id><published>2008-05-09T17:04:00.000-04:00</published><updated>2008-05-09T17:05:26.990-04:00</updated><title type='text'>UpDown</title><content type='html'>Fantasy football meets wall street &lt;a href="http://www.updown.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2505277754644295733?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2505277754644295733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2505277754644295733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2505277754644295733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2505277754644295733'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/05/updown.html' title='UpDown'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6354089925670756174</id><published>2008-05-05T13:40:00.002-04:00</published><updated>2008-05-05T13:43:12.342-04:00</updated><title type='text'>IBM Speaks the Truth</title><content type='html'>&lt;a href="7 Drity Secrets"&gt;http://www.infoworld.com/article/08/05/01/7-dirty-secrets-of-the-security-industry_1.html&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Vendors say that the network perimeter must be defended, but most data that is actually lost doesn't go through the firewall. Half of all breaches are the result of either lost laptops or lost thumb drives or other removable media. Businesses need to tighten up their business processes at least as much as they need to tighten up network perimeters, he says. "If you still believe in perimeters, you may as well believe in Santa Claus," he says.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Amen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6354089925670756174?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6354089925670756174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6354089925670756174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6354089925670756174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6354089925670756174'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/05/ibm-speaks-truth.html' title='IBM Speaks the Truth'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1666106331919229228</id><published>2008-05-02T15:55:00.002-04:00</published><updated>2008-05-02T15:57:46.876-04:00</updated><title type='text'>The Road Less Travelled</title><content type='html'>Guess I'm emo today.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Robert Frost (1874–1963).  Mountain Interval.  1920.&lt;br /&gt; &lt;br /&gt;The Road Not Taken&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;TWO roads diverged in a yellow wood, &lt;br /&gt;And sorry I could not travel both &lt;br /&gt;And be one traveler, long I stood &lt;br /&gt;And looked down one as far as I could &lt;br /&gt;To where it bent in the undergrowth;         &lt;br /&gt; &lt;br /&gt;Then took the other, as just as fair, &lt;br /&gt;And having perhaps the better claim, &lt;br /&gt;Because it was grassy and wanted wear; &lt;br /&gt;Though as for that the passing there &lt;br /&gt;Had worn them really about the same,        &lt;br /&gt; &lt;br /&gt;And both that morning equally lay &lt;br /&gt;In leaves no step had trodden black. &lt;br /&gt;Oh, I kept the first for another day! &lt;br /&gt;Yet knowing how way leads on to way, &lt;br /&gt;I doubted if I should ever come back.         &lt;br /&gt; &lt;br /&gt;I shall be telling this with a sigh &lt;br /&gt;Somewhere ages and ages hence: &lt;br /&gt;Two roads diverged in a wood, and I— &lt;br /&gt;I took the one less traveled by, &lt;br /&gt;And that has made all the difference.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1666106331919229228?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1666106331919229228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1666106331919229228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1666106331919229228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1666106331919229228'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/05/road-less-travelled.html' title='The Road Less Travelled'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7369613855501595665</id><published>2008-05-01T15:36:00.002-04:00</published><updated>2008-05-01T15:40:13.266-04:00</updated><title type='text'>Relies on tricking a user into clicking a malicious link</title><content type='html'>How many times have you heard that one? Almost as many times as "a malicious attacker".&lt;br /&gt;&lt;br /&gt;It turns out, that's not quite true any more. Need to test your browser exploit? Check out the security quagmire that is &lt;a href="http://browsershots.org/screenshots/"&gt;browsershots&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7369613855501595665?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7369613855501595665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7369613855501595665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7369613855501595665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7369613855501595665'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/05/relies-on-tricking-user-into-clicking.html' title='Relies on tricking a user into clicking a malicious link'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4973853243906662221</id><published>2008-05-01T11:22:00.004-04:00</published><updated>2008-05-01T11:26:42.363-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><title type='text'>DropBox</title><content type='html'>&lt;a href="http://www.getdropbox.com/"&gt;DropBox&lt;/a&gt; is a nice little startup funded by Y-combinator. It offers storage for your files on Amazon's S3 via tight integration with existing desktops. Runs on mac and win32.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4973853243906662221?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4973853243906662221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4973853243906662221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4973853243906662221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4973853243906662221'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/05/dropbox.html' title='DropBox'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6021417066227367699</id><published>2008-04-28T09:13:00.001-04:00</published><updated>2008-04-28T09:14:15.882-04:00</updated><title type='text'>Open Source Census</title><content type='html'>Came across this and it seemed pretty interesting.&lt;br /&gt;&lt;br /&gt;https://www.osscensus.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6021417066227367699?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6021417066227367699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6021417066227367699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6021417066227367699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6021417066227367699'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/04/open-source-census.html' title='Open Source Census'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1544593627462965050</id><published>2008-04-20T11:44:00.001-04:00</published><updated>2008-04-29T17:08:04.886-04:00</updated><title type='text'>StartupSchool 08: Awesome Greatness</title><content type='html'>I'm so glad I went. Met some great hackers and listened to some great hackers. I would highly recommend this event to anyone interested in starting a tech company.&lt;br /&gt;&lt;br /&gt;Watch the whole thing &lt;a href="http://www.justin.tv/hackertv/97554/Startup_School"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here are some of the &lt;a href="http://wiki.startupschool.org/doku.php?id=list_of_startups_projects_of_attendees"&gt;startup&lt;/a&gt; founders in attendance.&lt;br /&gt;&lt;br /&gt;It turns out the organizer of SS08 is also the author of Founders at Work. She has a nice summary of the conference on her &lt;a href="http://www.foundersatwork.com/1/post/2008/04/startup-school-speakers-rock-the-house.html"&gt;blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1544593627462965050?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1544593627462965050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1544593627462965050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1544593627462965050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1544593627462965050'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/04/startupschool-08-awesome-greatness.html' title='StartupSchool 08: Awesome Greatness'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-14824836784197374</id><published>2008-04-14T08:11:00.005-04:00</published><updated>2008-04-14T08:31:07.396-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='startup school'/><category scheme='http://www.blogger.com/atom/ns#' term='san francisco'/><title type='text'>StartupSchool '08</title><content type='html'>I've been following Paul Graham's &lt;a href="http://www.paulgraham.com/"&gt;writings&lt;/a&gt; for some time now and periodically found myself returning to his &lt;a href="http://paulgraham.com/start.html"&gt;"How to Start a Startup"&lt;/a&gt; paper. One day I revisited start.html and noticed there was a link to this thing called &lt;a href="http://startupschool.org/"&gt;StartupSchool&lt;/a&gt;. I filled out the application early last month and was accepted.&lt;br /&gt;&lt;br /&gt;So, the wife and I leave for San Fran Friday evening this week. The course is only a day long, and falls on Saturday, so she'll be shopping while I'm learning about startups. I'm really looking forward to meeting like-minded individuals at SS08 -- should be a great networking opportunity. Also looking forward to hear what some of the startup visionaries have to say. The &lt;a href="http://startupschool.org/speakers.html"&gt;speakers&lt;/a&gt; include Jeff Bezos and the creator of Ruby on Rails. I'll have to make a special effort to contain my disdain for frameworks :)&lt;br /&gt;&lt;br /&gt;I'm also really looking forward to doing some sight seeing. Never been able to tour around San Fran since I've only flown there on business. The wife and I will be bonafide tourists taking in sights, sounds and most importantly -- wine. Yes, the highlight of our trip will be riding around Napa in a bus and then stumbling back to our room.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-14824836784197374?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/14824836784197374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=14824836784197374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/14824836784197374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/14824836784197374'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/04/startupschool-08.html' title='StartupSchool &apos;08'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6220892117613532392</id><published>2008-04-09T14:10:00.010-04:00</published><updated>2008-04-09T15:12:11.587-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Programmer Brain Soup Rant</title><content type='html'>A good friend of mine once said&lt;br /&gt;&lt;blockquote&gt;The difference between libraries and frameworks is that &lt;span style="font-style:italic;"&gt;you&lt;/span&gt; call libraries while frameworks &lt;span style="font-style:italic;"&gt;call you&lt;/span&gt;.&lt;/blockquote&gt;&lt;br /&gt;For quite some time now I've been a black sheep among you programmers, hurling insults and discrediting the notion of frameworks whenever I get the chance. Frameworks are evil (in the red-pill/blue-pill sense) and this is how they get started. &lt;br /&gt;&lt;br /&gt;You develop a few applications and notice that they have striking similarities. You start working on little modules to automate the observed patterns and before you know it an ORM (Object Relational Mapping) layer pops out. I wrote one with a friend back when I worked for Mason in '98. I think it was called autodb eventually, although we went thru a bunch of names we thought were cool at the time.&lt;br /&gt;&lt;br /&gt;Soon after you "stabilize" the ORM layer, you notice that having links directly in your code is ugly, so you come up with the "action" abstraction. Since most of the interface stays the same, you only need to update the parts that change and so there's an action router that will take requests, figure out where the handler lives, call the handler and generate a response that's plugged into the interface.&lt;br /&gt;&lt;br /&gt;The process continues, abstraction after abstraction your framework grows (along with all the configuration options and special cases). Now you have been tasked to create another application and guess what... the framework grows once again because you encounter cases that your framework couldn't handle. At this point you're feeling pretty confident about your framework, or,  you were smarter than the rest and threw in the towel.&lt;br /&gt;&lt;br /&gt;Frameworks are a naive attempt at creating one-size-fits-all applications. The study of software patterns provides value in understanding how to deal with certain repetitive problems, but there is a tendency to try and translate these directly into frameworks. Things don't usually work out.&lt;br /&gt;&lt;br /&gt;There are many reasons why frameworks will eventually go away, but it's much easier to just take the modern developer's &lt;a href="http://term.ie/devdev/why_frameworks_suck"&gt;pulse&lt;/a&gt;. At the end of the day, what do frameworks really buy you? Are you all of a sudden able to develop applications faster than you could before? I don't buy it. &lt;br /&gt;&lt;br /&gt;Time is the most precious resource we have and adopting a framework requires large withdrawals from your time bank.&lt;br /&gt;&lt;br /&gt;A framework is "a structure supporting or containing something". As such, frameworks constrain innovation. They work great for hello world type applications, but real applications always break the mold. If frameworks are so great, why do we need to have 3billion different ones? I'll tell you why... we don't know wtf we're doing. Of course there will be nay-sayers sighting the successful adoption of Ruby on Rails. I challenge you nay-sayers to find a wildly successful RoR application that didn't significantly break ties with the underlying framework.&lt;br /&gt;&lt;br /&gt;Now I'll exercise a little caution. I do believe in reusing code, doing otherwise would be stupid. But all the frameworks I've seen don't help solve this problem. Look at the amount of code floating around on the Internet. There is so much duplication between different languages, slightly different modules, reinventing the wheel etc. I believe there is hope for code reuse to actually take root, but not through a framework. The problem is much simpler than that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6220892117613532392?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6220892117613532392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6220892117613532392' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6220892117613532392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6220892117613532392'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/04/programmer-brain-soup-rant.html' title='Programmer Brain Soup Rant'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-4408336095707149843</id><published>2008-04-07T20:37:00.005-04:00</published><updated>2008-04-07T20:44:35.666-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drunk'/><category scheme='http://www.blogger.com/atom/ns#' term='im'/><title type='text'>DWIM</title><content type='html'>I'm not even sure what half the things said during this IM conversation mean.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;B: i chugged ab ottle ofiwne&lt;br /&gt;i meawtc&lt;br /&gt; me: lol&lt;br /&gt; B: os trashed&lt;br /&gt; me: u better cut it out&lt;br /&gt; B: gonab e hung over&lt;br /&gt; me: u watchin the horse whisperer?&lt;br /&gt; B: wtf is that&lt;br /&gt; me: some chic flick&lt;br /&gt; B: sounds like chick flik&lt;br /&gt;scre whorses, my last gf woudl ratehr be with them than me i mean wtf&lt;br /&gt;human &gt; horse, right?&lt;br /&gt;women, i mean wtf&lt;br /&gt; me: ya&lt;br /&gt; B: sorry, iv'e had tway too much ot drink&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This is where I realize the conversation is better than watching TV.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt; me: nahhh&lt;br /&gt;if anything u should drink summore&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I try to score free entertainment for the night, but fail.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;B: i dumped my liquor out as a precaution, wi asf araid i'd dirnk it all&lt;br /&gt; me: then start callin her every name under the sun&lt;br /&gt;it'll make ya feel better&lt;br /&gt; B: ill start with "hey baby, wtf"&lt;br /&gt;i still have remy and jonsoemthign walker&lt;br /&gt; me: well it's  not gonna drink itself&lt;br /&gt; B: SU(T AEY&lt;br /&gt;damn straight&lt;br /&gt;best if elt lin 4 days&lt;br /&gt;thanks bottle and a half of wine&lt;br /&gt;sory, i'l be at work, i just couldn't take it nahymore, booze makes it better&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-4408336095707149843?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/4408336095707149843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=4408336095707149843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4408336095707149843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/4408336095707149843'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/04/dwim.html' title='DWIM'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5392573613591485785</id><published>2008-03-31T07:49:00.006-04:00</published><updated>2008-03-31T08:18:30.635-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='san francisco'/><category scheme='http://www.blogger.com/atom/ns#' term='botnet'/><title type='text'>Back from Cali</title><content type='html'>Well, contrary to my original plan, I didn't get to see much of San Francisco. We pretty much held to the hotel / conference circuit. Actually, hotel doesn't do it justice, it was much closer to a motel... you know, where your room door faces a sidewalk. We were staying in the projects surrounding Menlo Park (Stanford), and I do mean projects. Next to our accommodations was a liquor store that didn't feature candy or readers digest at the checkout, but instead had a massive selection of porn DVD titles. It's owner, who we affectionately named "Yoko", was very nice but also scary. &lt;br /&gt;&lt;br /&gt;There were a couple good presentations, one on massively parallel pattern matching in hardware, and another on automatically generating inputs of death. There were some other talks that were mildly interesting, but I can't remember them now. There were two days of talks from 8am - 6pm, each talk was 30min. By the end of the second day, we were all fried. Rick Wesson let us know he was up for a beer run, so we pitched in and helped quench the thirst of our fellow botnet researchers. These poor folks had to attend a round-table discussion after enduring a day packed with presentations. The libations helped loosen everyone up, and I ended up meeting David Dagon and &lt;a href="http://fm.vix.com/"&gt;Paul Vixie&lt;/a&gt;, which was pretty cool. These two have been cooking up a &lt;a href="https://forum.defcon.org/showthread.php?t=7611"&gt;malware repository&lt;/a&gt; / clearing house. Paul was pretty arrogant, but I guess that's to be expected, he did after all give us the gift of cron and DNS. I'm sure he'd be alot more bearable if you got him alone over a few beers.&lt;br /&gt;&lt;br /&gt;After that we headed back to the motel, ate some dinner, and then went to bed in preparation for our flight at 2am. I'm glad to be back. Looks like I'll be heading back out there in April for &lt;a href="http://www.paulgraham.com/start.html"&gt;startupschool&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5392573613591485785?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5392573613591485785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5392573613591485785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5392573613591485785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5392573613591485785'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/03/back-from-cali.html' title='Back from Cali'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5894306245905414663</id><published>2008-03-28T16:42:00.002-04:00</published><updated>2008-03-28T16:46:36.515-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='nasm'/><title type='text'>Creating PE with nasm</title><content type='html'>I hate figuring things out more than once. I have a situation where I want to create a Windows executable that contains just a few instructions. It's easier for me to use INTEL syntax than AT&amp;T, so gcc inline asm is not what i'm looking for. Additionally, by default, gcc will throw in a bunch of prologue that I don't want.  &lt;br /&gt;&lt;br /&gt;Nasm supports win32 COFF format.&lt;br /&gt;&lt;br /&gt;nasm -f coff -o test.o test.asm&lt;br /&gt;ld -o test.exe test.o&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5894306245905414663?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5894306245905414663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5894306245905414663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5894306245905414663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5894306245905414663'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/03/creating-pe-with-nasm.html' title='Creating PE with nasm'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5859972829492705875</id><published>2008-03-24T05:59:00.008-04:00</published><updated>2008-03-28T16:48:52.553-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geekery'/><category scheme='http://www.blogger.com/atom/ns#' term='x86'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Calling Assembly from Python</title><content type='html'>Why would you ever want to execute machine code using python? Why not? My own reason is that I like being able to experiment without a compiler. In the past few weeks I've been wondering if I can use the structured exception handler (SEH) to monitor shellcode execution.&lt;br /&gt;&lt;br /&gt;The inner works of the SEH are not easily accessible with library calls. I searched MSDN for a while looking for functions like SetExceptionHandler, but without much luck. Then I came across this &lt;a href="http://www.microsoft.com/msj/0197/exception/exception.aspx"&gt;article&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;With this new knowledge in hand and fiddling with ctypes for a bit, I did my first bit of pyasm. The following snippet will get a pointer to the head SEH node and print it out.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;from ctypes import *&lt;br /&gt;&lt;br /&gt;get_exception_handler_x86 = (&lt;br /&gt;'\x64\xA1\x00\x00\x00\x00' # mov eax, [fs:0]&lt;br /&gt;'\xC3'  # ret&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;# create buffer&lt;br /&gt;geh_buffer = create_string_buffer(get_exception_handler_x86, len(get_exception_handler_x86))&lt;br /&gt;# create function prototype&lt;br /&gt;geh_proto = CFUNCTYPE(c_int)&lt;br /&gt;# create callable object&lt;br /&gt;get_exception_handler = geh_proto(addressof(geh_buffer))&lt;br /&gt;# call the function&lt;br /&gt;seh = get_exception_handler()&lt;br /&gt;print "seh", hex(seh)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Next on my list is to have a method allowing me to install my own exception handler. An adventure for this week, since I'll be in San Francisco till Thursday.&lt;br /&gt;&lt;br /&gt;UPDATE: It turns out i'm an artard. I knew there was a way to do it through API! The function is &lt;a href="http://msdn2.microsoft.com/en-us/library/ms680634(VS.85).aspx"&gt;SetUnhandledExceptionFilter&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5859972829492705875?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5859972829492705875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5859972829492705875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5859972829492705875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5859972829492705875'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/03/calling-assembly-from-python.html' title='Calling Assembly from Python'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5245009113614291052</id><published>2008-02-27T12:09:00.002-05:00</published><updated>2008-02-27T12:11:24.102-05:00</updated><title type='text'>Agriculture 2.0</title><content type='html'>There's now a &lt;a href="http://dsc.discovery.com/news/2008/02/26/seed-vault-arctic.html"&gt;Noah's ark&lt;/a&gt; for crops sitting in the arctic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5245009113614291052?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5245009113614291052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5245009113614291052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5245009113614291052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5245009113614291052'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/02/agriculture-20.html' title='Agriculture 2.0'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6996240316287905600</id><published>2008-02-14T06:55:00.006-05:00</published><updated>2008-02-14T07:35:45.826-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='note to self'/><title type='text'>Note to Self</title><content type='html'>This post is just a reminder to myself on stuff I've been musing about.&lt;br /&gt;&lt;br /&gt;Idea 1, Execution visualization: instruction sets are pretty simple when considering their major functions. From up high instruction sets provide a way to load and store data, do arithmetic, make decisions and branch execution. To get an intuitive idea of what an application "does", it may be easier to have a unified visual representation of the 5 functions mentioned earlier. Additionally, major system functions such as reading input, communicating over the network can easily be identified by location/identity of instructions involved. Just for fun.&lt;br /&gt;&lt;br /&gt;Idea 2, Manipulating search engine results: is it possible to abuse PageRank? What sort of defenses are in place. Let's say I had a couple hundred pages vulnerable to persistent XSS and I spammed them all with links to my site. Would that guarantee a crawl? What sort of impact could I make on search terms. Is it possible for me to own a search term? For example, can I get "iced sprockets" to always return my page as #1. Futile.&lt;br /&gt;&lt;br /&gt;Idea 3, Identify who's searching for/scoping you (google, facebook etc). Shows who's been searching for you, how they found you, etc. Name seeding, history swiping, identity triangulation. Social intelligence... interesting.&lt;br /&gt;&lt;br /&gt;Idea 4, Simple techniques for stopping malware. Storm spread in an embarrassingly simple way -- users click an executable, c'mon. Develop some.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6996240316287905600?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6996240316287905600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6996240316287905600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6996240316287905600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6996240316287905600'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2008/02/note-to-self.html' title='Note to Self'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1483487078722364206</id><published>2007-10-19T02:30:00.000-04:00</published><updated>2008-12-12T15:46:21.853-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='viagra'/><category scheme='http://www.blogger.com/atom/ns#' term='fast flux'/><category scheme='http://www.blogger.com/atom/ns#' term='botnet'/><title type='text'>Of Bots, Fast-Flux Services, and Viagra</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/RxhP6SmUeNI/AAAAAAAAABc/JW1dUx3Sd4A/s1600-h/email.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_92MpPwIByfk/RxhP6SmUeNI/AAAAAAAAABc/JW1dUx3Sd4A/s320/email.jpg" alt="" id="BLOGGER_PHOTO_ID_5122932438977509586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I get an email today that escapes my junk mail filter. After looking at the mail headers briefly, I start poking around in DNS/whois and it turns out that medscit.com is a fine example of so called &lt;a href="http://www.honeynet.org/papers/ff/fast-flux.html"&gt;fast-flux services&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm intrigued by this strange melding together of botnets, the marketing of botnet services,  and the successful implementation of an application running on fast flux.&lt;br /&gt;&lt;br /&gt;This case would appear to fall into the single-flux category, where the domain's authoritative name servers don't change often.&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;www.medscit.com has address 61.225.3.24&lt;br /&gt;www.medscit.com has address 61.238.0.248&lt;br /&gt;www.medscit.com has address 68.122.212.98&lt;br /&gt;www.medscit.com has address 69.233.244.240&lt;br /&gt;www.medscit.com has address 69.239.240.32&lt;br /&gt;www.medscit.com has address 76.241.110.102&lt;br /&gt;www.medscit.com has address 122.29.172.16&lt;br /&gt;www.medscit.com has address 124.8.197.14&lt;br /&gt;www.medscit.com has address 202.101.215.10&lt;br /&gt;www.medscit.com has address 210.6.56.90&lt;br /&gt;www.medscit.com has address 218.189.230.201&lt;br /&gt;www.medscit.com has address 221.126.232.218&lt;br /&gt;www.medscit.com has address 221.127.70.187&lt;br /&gt;www.medscit.com has address 221.127.172.234&lt;br /&gt;www.medscit.com has address 61.26.41.75&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;Every time I lookup the host, I get a different set of IP addresses. Pretty cool!&lt;br /&gt;&lt;br /&gt;Now I can't stop wondering where the real server is. There's obviously some sort of proxy running on zombie machines communicating with flux master HQ. In fact, I get apache proxy errors when I fiddle around.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;Looks like the proxy target is hardcoded to some degree :( Would've been cool to have my own little Tor network.&lt;br /&gt;&lt;br /&gt;How does one determine the true server? I will probably be the victim of a DDoS attack of unimaginable scale within the next 24 hours... hence my eager posting.&lt;br /&gt;&lt;br /&gt;Couple things off the bat. The server has directory indexing enabled. The site uses smarty templates (checkout templates/). Once looking in there, you'll notice that the developer did a checkout instead of an export of the code. This leaves .svn directories all over, which have "entries" files. Those are full of goodies... you can use them to completely determine the directory structure and files present. It would have been close to game over if we could have read source code via /.svn/text-base/config.php.svn-base. Ahh well.&lt;br /&gt;&lt;br /&gt;Other cool stuff:&lt;br /&gt;&lt;br /&gt;Limited file inclusion: getimage.php?id=188&lt;br /&gt;Looks like you can get session id's here: get_orders_list.php&lt;br /&gt;Full on system status report here: get_status.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1483487078722364206?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1483487078722364206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1483487078722364206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1483487078722364206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1483487078722364206'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/10/of-bots-fast-flux-services-and-viagra.html' title='Of Bots, Fast-Flux Services, and Viagra'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_92MpPwIByfk/RxhP6SmUeNI/AAAAAAAAABc/JW1dUx3Sd4A/s72-c/email.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-215261843001329869</id><published>2007-08-30T06:44:00.000-04:00</published><updated>2007-08-30T06:53:40.055-04:00</updated><title type='text'>DNS Rebinding Attacks and More</title><content type='html'>Dan Boneh gave a really interesting talk on a bunch of emerging web threats yesterday.&lt;br /&gt;These included creative timing attacks and circumventing same origin policy. Read more on &lt;a href="http://crypto.stanford.edu/dns/"&gt;DNS rebinding&lt;/a&gt; here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-215261843001329869?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/215261843001329869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=215261843001329869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/215261843001329869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/215261843001329869'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/08/dns-rebinding-attacks-and-more.html' title='DNS Rebinding Attacks and More'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2443971909727621771</id><published>2007-08-09T07:12:00.000-04:00</published><updated>2008-12-12T15:46:22.052-05:00</updated><title type='text'>New Addittion to the Family</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_92MpPwIByfk/Rrr4ip25KcI/AAAAAAAAABU/YYXRGbRSZiI/s1600-h/Sam.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_92MpPwIByfk/Rrr4ip25KcI/AAAAAAAAABU/YYXRGbRSZiI/s200/Sam.jpg" alt="" id="BLOGGER_PHOTO_ID_5096659202558470594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Last night at about 10:30pm our baby girl was delivered by C-section. It was an emergency delivery, but thankfully both Mom and Baby are just fine. She weighed in at 5 pounds 7 ounces and looks just like Sean to me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&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/6288294589134566895-2443971909727621771?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2443971909727621771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2443971909727621771' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2443971909727621771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2443971909727621771'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/08/new-addittion-to-family.html' title='New Addittion to the Family'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_92MpPwIByfk/Rrr4ip25KcI/AAAAAAAAABU/YYXRGbRSZiI/s72-c/Sam.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7356807485117831543</id><published>2007-08-03T21:32:00.000-04:00</published><updated>2007-08-03T21:38:41.611-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='immunity debugger'/><category scheme='http://www.blogger.com/atom/ns#' term='pydbg'/><title type='text'>Immunity Debugger Released</title><content type='html'>At long last, the dowry has been accepted, the two forever wed, the vision unfolds before our eyes. Yes, I'm referring to the marriage of Python and OllyDbg that is now Immunity Debugger. That's right folks. Time to pack away PaiMei. Give her a prominent position on your RE shelf. For she was good to us. Now she has aged, and would need major cosmetic surgery to compete with this blossom of a debugger.&lt;br /&gt;&lt;br /&gt;The entire API is exposed to python. You can execute python commands right inside the debugger. It's your wildest fantasy come true. Read more on the OpenRCE &lt;a href="http://www.openrce.org/blog/view/842/Immunity_Debugger_is_now_released"&gt;post&lt;/a&gt;. Or, go to the source &lt;a href="http://www.immunitysec.com/products-immdbg.shtml"&gt;directly&lt;/a&gt;. Such a great Friday. Cheers Aitel!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7356807485117831543?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7356807485117831543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7356807485117831543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7356807485117831543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7356807485117831543'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/08/immunity-debugger-released.html' title='Immunity Debugger Released'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-1167525837091631788</id><published>2007-07-09T13:49:00.001-04:00</published><updated>2007-07-09T13:52:58.399-04:00</updated><title type='text'>Real Vulnerability Market</title><content type='html'>Looks like someone else had the same idea I discussed months long ago.&lt;br /&gt;&lt;br /&gt;According to http://www.wslabi.com/wabisabilabi/faq.do, they vet purchasers and somehow confirm seller identities. Good Job!&lt;br /&gt;&lt;br /&gt;Current market place information here: http://www.wslabi.com/wabisabilabi/initPublishedBid.do.&lt;br /&gt;&lt;br /&gt;Thanks to Kaps for bringing a real live version to my attention!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-1167525837091631788?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/1167525837091631788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=1167525837091631788' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1167525837091631788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/1167525837091631788'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/07/real-vulnerability-market.html' title='Real Vulnerability Market'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2972031672377876708</id><published>2007-06-28T16:41:00.001-04:00</published><updated>2007-07-04T20:57:33.915-04:00</updated><title type='text'>Low-Tech Parking Lot Hacks</title><content type='html'>I started thinking about parking lot security recently after being gouged for $20 on the way out of a Target lot. I'm a geek, and naturally started thinking about mag-stripe reader/writer approaches. Then I realized something ... it's obviously possible if you have the right equipment and spend enough time. What became more interesting is pondering the problem and keeping it low-tech. With one exception, these hacks have not been validated in the field :)&lt;br /&gt;&lt;br /&gt;A few of the hacks presented center around being able to obtain a ticket right when you're ready to leave. Most of these work better at unmanned lots, and by that I mean, they don't seem real pragmatic to me. Just fun to think about.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hack 1&lt;/strong&gt;. You pull up like normal, get your ticket, go about your business and four hours later it's time to leave. Instead of walking back to your car as you usually would, you walk back to the ticket station and issue yourself a new ticket. Then walk to your car and check out to guarantee the minimum fare.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hack 2&lt;/strong&gt;. Some lots may allow you to take multiple tickets at the booth. I decided to try this while visiting a customer recently and hilarity ensued. I pull up to the booth, get a ticket, and the gate opens. Instead of proceeding, I wait for the display to reset to a "ready to dispense ticket" state. Cars begin to beep at me... finally the display says "push button for ticket". I push the button, and right when the ticket begins to print, the parking attendant comes running out shouting "you can only take one ticket!". I speed off laughing immediately. Might be hard to pull off in a manned lot without distracting the attendant somehow.&lt;br /&gt;&lt;br /&gt;Now you are probably wondering why I wanted 2 tickets. The extra ticket is of no use to me, but it is probably of use to someone leaving the lot. The idea behind this hack is to sell extra tickets you obtain upon entry to the lot in order to recoup your money.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hack 3&lt;/strong&gt;. Barter with a nudie mag. If your attendant is male, there's a good chance he's bored stiff in his booth. By offering to make things that much stiffer, you might get out of the lot for free.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hack 4&lt;/strong&gt;. The obligatory magnet hack. Before leaving home, take a kitchen magnet with you. When you're ready to leave the lot, destroy the magstripe by running the magnet back-and-forth over it several times. Next put some believable wear and tear on the ticket short of setting it on fire. Spill coffee, stick a piece of half-sucked candy on there maybe... you get the idea. When you get to the booth, present your ticket and wait for them to inform you they are unable to read the ticket. Then you tell them how long you've been in the lot.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hack 5&lt;/strong&gt;. This one is &lt;i&gt;really&lt;/i&gt; low-tech, but does have some stringent requirements, by which I mean -- a set of hefty stones and an off-road vehicle. Many lots, including the most recent one to gouge me, are on flat open land  with nothing but medians separating you from the road. When it's time to go, simply hop in your pickup and move out.&lt;br /&gt;  &lt;br /&gt;More later. I'm off to JA tomorrow!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2972031672377876708?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2972031672377876708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2972031672377876708' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2972031672377876708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2972031672377876708'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/06/low-tech-parking-lot-hacks.html' title='Low-Tech Parking Lot Hacks'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2018530887622759254</id><published>2007-06-26T06:56:00.000-04:00</published><updated>2008-12-12T15:46:22.490-05:00</updated><title type='text'>To be a Kid Again</title><content type='html'>I love guns. Yes they're dangerous and a scourge on society. I get that. Maybe it's the smell of oiled metal, the thrill experienced loading a weapon, the complete obliteration of a target, my exposure to them at a young age, keeping the playing field level between citizens and bullies. I'm not sure which characteristic, if any, is solely responsible for my illogical affection.&lt;br /&gt;&lt;br /&gt;This past weekend I made up my mind I was getting an air rifle. Saturday, Sean and myself paid a visit to Dick's Sporting Goods and looked at several models. We settled on a cheap, multi-stroke pneumatic crossman that fires .177 pellets and BBs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_92MpPwIByfk/RoDu7wiQyII/AAAAAAAAAAw/-QcCtq3i7Nk/s1600-h/PelletGun+008.jpg"&gt;&lt;img style="padding: 10px; display: block; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_92MpPwIByfk/RoDu7wiQyII/AAAAAAAAAAw/-QcCtq3i7Nk/s320/PelletGun+008.jpg" alt="" id="BLOGGER_PHOTO_ID_5080323090082220162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As soon as I got home on Saturday, I took a heaping dose of flak and stink-eye from the wife, then got to open up my new toy. Right when my day can't get any better, I open up the box and see a smaller box inside. Opening the smaller box reveals a scope! Good things &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; come in smaller gun boxes. After rigging everything up, we needed to find a good spot from which to shoot and some innocents to obliterate.&lt;br /&gt;&lt;br /&gt;Our backyard slopes down and meets our neighbor's property in a small valley. I setup a target fashioned from one cardboard box and three coke cans. Shooting at the ground is always better.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/RoDyDAiQyJI/AAAAAAAAAA4/hurS1-QrtZ4/s1600-h/PelletGun+005.jpg"&gt;&lt;img style="margin: 0px auto 10px; padding: 10px; display: block; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_92MpPwIByfk/RoDyDAiQyJI/AAAAAAAAAA4/hurS1-QrtZ4/s320/PelletGun+005.jpg" alt="" id="BLOGGER_PHOTO_ID_5080326513171155090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For multiple reasons, the shooter station turned out to be located on our back deck -- about 30 yards horizontally from the target. So, you're shooting into the valley about 30ft below. After some initial calibration of the scope, I could hit all three cans with about 4 rounds. What I didn't know is just how powerful my little air rifle was.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/RoDy1AiQyKI/AAAAAAAAABA/gHHFYIyvRlU/s1600-h/PelletGun+007.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_92MpPwIByfk/RoDy1AiQyKI/AAAAAAAAABA/gHHFYIyvRlU/s320/PelletGun+007.jpg" alt="" id="BLOGGER_PHOTO_ID_5080327372164614306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What a great way to spend a weekend. Next up, cow tipping, miller lite and 5 string pickin'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2018530887622759254?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2018530887622759254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2018530887622759254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2018530887622759254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2018530887622759254'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/06/to-be-kid-again.html' title='To be a Kid Again'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_92MpPwIByfk/RoDu7wiQyII/AAAAAAAAAAw/-QcCtq3i7Nk/s72-c/PelletGun+008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2583133054903868827</id><published>2007-06-08T10:47:00.001-04:00</published><updated>2007-06-08T10:48:43.858-04:00</updated><title type='text'>Funny IM</title><content type='html'>&lt;blockquote&gt;Nat: jason.... this is your liver... please don't take me to eCiti tonight... I can't take it... go home and drink juice... I've been talking to your car... we both agree this can't go on.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;It's so good to have friends who care. It would be better to have friends who would go out when they're supposed to!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2583133054903868827?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2583133054903868827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2583133054903868827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2583133054903868827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2583133054903868827'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/06/funny-im.html' title='Funny IM'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8604098085044455226</id><published>2007-05-23T15:23:00.000-04:00</published><updated>2008-12-12T15:46:22.730-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scada'/><title type='text'>SCADA Stuff</title><content type='html'>My company recently partnered with &lt;a href="http://www.loftyperch.com/"&gt;Lofty Perch&lt;/a&gt; and DHS working toward developing signatures for control systems (aerospace, energy, manufacturing, etc.). I spent last night "helping" with a honeypot install at a critical infrastructure lab in northern Virginia and had the pleasure of hanging out with a good group of guys. Action shot below of Mark Fabro (sitting) doing a pretty good &lt;a href="http://movies.yahoo.com/movie/1804486105/info"&gt;swordfish&lt;/a&gt; impersonation, complete with the twin keyboards. Mark is freaking hilarious.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_92MpPwIByfk/RlSWI4ZZ-KI/AAAAAAAAAAo/_3z23aJAjOo/s1600-h/fabro_swordfish.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5067840560020715682" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_92MpPwIByfk/RlSWI4ZZ-KI/AAAAAAAAAAo/_3z23aJAjOo/s320/fabro_swordfish.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There were also two really cool guys from &lt;a href="http://www.inl.gov/"&gt;Idaho National Labs&lt;/a&gt; and another from SecuriCon. Once we identified the cause for our moneypot [WAllen] troubles, a resounding "beer-o-clock" was heard throughout the lab.&lt;br /&gt;&lt;br /&gt;After locating a suitable establishment at which to seek refreshment, we played "who do you know?" and told stories. Everyone at the table ended up knowing everyone else through two degrees of separation. Mark told his luggage story -- which is unbelievable. Marty had oysters and was promptly convicted of premeditated spankervision crimes that would supposedly be committed later that night.&lt;br /&gt;&lt;br /&gt;We closed the tab, they all left, but I stuck around. Ended up meeting a Marine that just got back from Iraq. It was quite interesting getting this guys perspective on the war and whether we should pull out or not. Anyway, three hours later my car is driving itself back to Manassas. Speaking of driving, I'll have to break down a new game I invented in another post. Great night.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8604098085044455226?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8604098085044455226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8604098085044455226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8604098085044455226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8604098085044455226'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/05/scada-stuff.html' title='SCADA Stuff'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_92MpPwIByfk/RlSWI4ZZ-KI/AAAAAAAAAAo/_3z23aJAjOo/s72-c/fabro_swordfish.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-321254606997916133</id><published>2007-04-19T08:38:00.000-04:00</published><updated>2007-04-19T08:47:32.817-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='home'/><title type='text'>Settling In</title><content type='html'>The chaos of last week is finally winding down. Boxes are unpacked and the new place feels like home. There is so much to be done, and right now so little money to do it with, that I feel quite tormented. Paint, flooring, little things that need fixing, landscaping, blah blah blah. On the brighter side, I do now own a riding lawn mower that I would guess is as old as I am. The thing has a clutch and gears. Still haven't got it started up yet... might need gas or something :) The prior owner also left me a chain-saw with a bent blade -- which should make for good fun.&lt;br /&gt;&lt;br /&gt;Fortunately, I don't have time to think about most of this stuff since I'm still busy getting things done to the condo -- which is not even on the market yet. My wife is about to have an aneurysm. Paint got done Monday, plumbing was yesterday, flooring on Friday hopefully, and cabinets and counter tops on Monday. At some point I'll also need to squeeze in Merry Maids for a good top to bottom cleaning.&lt;br /&gt;&lt;br /&gt;When will spring &lt;span style="font-style:italic;"&gt;get here&lt;/span&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-321254606997916133?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/321254606997916133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=321254606997916133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/321254606997916133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/321254606997916133'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/04/settling-in.html' title='Settling In'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6466111013826462228</id><published>2007-04-10T07:43:00.000-04:00</published><updated>2007-04-10T08:09:07.218-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>Farewell</title><content type='html'>Well, this Friday will be my last day at Symantec Professional Services. What a ride it has been. Never before have I worked with such a talented group of people and actually enjoyed every minute of it. The lunches at Rusticos, fierce Halo matches, overflowing of buffers, and laughing in the face of corporate dress-code. You will all be sorely missed. &lt;br /&gt;&lt;br /&gt;I decided to move on and join the great folks at Endeavor Security. Endeavor is a small company creating big technology which backs their &lt;a href="http://www.endeavorsecurity.com/products.php"&gt;FirstLight&lt;/a&gt; product line. I worked for Endeavor before coming to Symantec... we are old friends. While there, I helped develop sophisticated pattern detection technology which is now used in their Early Warning System and Signature Subscription Service.&lt;br /&gt;&lt;br /&gt;The underlying technology automatically derives signatures for both new and old attacks on the fly. Signatures are then inspected, tested and tailored by analysts through a workbench which provides statistical feedback about signature coverage and accuracy (FPs and FNs).&lt;br /&gt;&lt;br /&gt;Now business is booming and they've brought me back to take ownership of the product line. I'll be working like a dog, but hopefully the ends will justify the means. I'll be managing the technical architecture of the FirstLight product suite and a team of developers. To celebrate my departure :), the Symantec DC office will be going to the Aqua Teen Hunger Force movie this Friday. Drop me a line if you'd like to join us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6466111013826462228?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6466111013826462228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6466111013826462228' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6466111013826462228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6466111013826462228'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/04/farewell.html' title='Farewell'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6878333858920090923</id><published>2007-04-04T08:05:00.000-04:00</published><updated>2007-04-06T15:30:35.199-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scam'/><title type='text'>Inside a Local Pyramid Scheme</title><content type='html'>The story begins with me pulling up into the parking lot of my barber shop a few weeks ago. As I'm getting out of my car, a friendly looking gent is passing behind it. His hands are full of Chipotle bags. In passing he says hello and asks if he can take a quick peek inside my car. This seems like a great opportunity since I am actually getting ready to sell the car. He takes a look inside and pays me a compliment and after I explain that the car is for sale, we start musing over what a strange coincidence this is. He tells me that one of his business associates is looking to buy a car like mine.&lt;br /&gt;&lt;br /&gt;This fellow was so personable that I was totally comfortable standing in the parking lot shooting the breeze. We stood there talking for about 5 minutes and completed the transaction by exchanging contact information. He gives me a business card. During our discourse he mentioned that he had a background in medicine but was really interested in doing his own thing. I naturally gravitate towards people with an entrepreneurial outlook... and we talked about that for a while.&lt;br /&gt;&lt;br /&gt;Fast forward one week later. I get a call from my new friend on the following Sunday. I'm glad to hear from him since he made such a great impression on me -- he was sharp, funny and in health-care, which is supposed to be the next big-boom field. First he tells me that his business partners were no longer interested in my car, they leased instead. After some discussion, he ends up inviting me to meet with him at a nearby Starbucks to discuss some business ideas. The meeting is setup for one week out after work hours. I accept the meeting but here's where my spidey senses started tingling.&lt;br /&gt;&lt;br /&gt;I dig up his business card and of course it contains the company website address. Keep in mind that he was dressed like a male nurse or medical technician when I first met him. The card he gave me, which I had not looked at until now, was for some company called T&amp;E International. I visit the &lt;a href="http://www.te-international.com/"&gt;website&lt;/a&gt; and find the content very vague. Browsing around some more leads me to their &lt;a href="http://home.quixnet.net/danpalexand/intranette.html"&gt;intranet&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The intranet contains a bunch of material internal to the operation. Have a look &lt;a href="http://home.quixnet.net/danpalexand/intranet/news.html"&gt;here&lt;/a&gt;. As it turns out, the document titled "&lt;a href="http://home.quixnet.net/danpalexand/intranet/tools/documents/phonescript.pdf"&gt;Phone Script&lt;/a&gt;" contains the exact verbiage recited to me on my most recent encounter with their pawn. Pyramid Scheme. That's all for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6878333858920090923?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6878333858920090923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6878333858920090923' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6878333858920090923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6878333858920090923'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/04/inside-local-pyramid-scheme.html' title='Inside a Local Pyramid Scheme'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-275562821892278697</id><published>2007-03-18T09:11:00.000-04:00</published><updated>2008-12-12T15:46:23.067-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='home'/><title type='text'>The Compromise</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_92MpPwIByfk/Rf07PAFf7eI/AAAAAAAAAAY/Yd0etuAbS8c/s1600-h/gatsby.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_92MpPwIByfk/Rf07PAFf7eI/AAAAAAAAAAY/Yd0etuAbS8c/s320/gatsby.jpg" alt="" id="BLOGGER_PHOTO_ID_5043252286631964130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After hunting in Manassas for 2 days, finally, the hunt is over. Our offer was accepted last night. Most of the homes we looked at were spacious, relatively affordable, had nice lots (&gt; 1 acre), and weren't &lt;span style="font-style:italic;"&gt;that&lt;/span&gt; far out. &lt;br /&gt;&lt;br /&gt;The place we found was listed way below tax assessment and other comparable homes in the neighborhood. This is probably because of the interior, which is very dated. Anyway, the home is 3000 sq ft, not including the unfinished basement. It is situated on a 2.1 acre lot and backs to mature trees and a creek. My son was the weight that tipped the scales on this one... for whatever reason, he really liked the place and didn't want to leave. The home had been on the market for over a year and been re-listed 3 times, each time with a lower asking price. &lt;br /&gt;&lt;br /&gt;After throwing a low-ball, we ended up going back and forth with the seller a few times doing offers and counter-offers. Eventually, we found their breaking point as their counter-offers would  always net the same sale amount. So, even though it was a couple thousand more than I wanted to pay, our love for the house overpowered any financial analysis I may or may not have performed :)&lt;br /&gt;&lt;br /&gt;Anyway, the wife and I are very excited and should be moving sometime in April. Hopefully, we won't be completely broke and able to throw a "before and after" party. I'm thinking it will be pot luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-275562821892278697?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/275562821892278697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=275562821892278697' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/275562821892278697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/275562821892278697'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/03/compromise.html' title='The Compromise'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_92MpPwIByfk/Rf07PAFf7eI/AAAAAAAAAAY/Yd0etuAbS8c/s72-c/gatsby.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5229495887129057207</id><published>2007-03-14T08:15:00.000-04:00</published><updated>2007-03-18T09:35:23.163-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='home'/><title type='text'>House Hunting</title><content type='html'>First -- a little background. My 3 year old son, wife, and myself now live in a condo in Virginia. The condo is spacious and very inexpensive -- perfect for young people. We recently discovered we're pregnant again. So, with a new addition on the way we realized the imminent need for more space. So begins the quest for a single family home.&lt;br /&gt;&lt;br /&gt;As a result, we've been busy the past week scheduling contractors and house hunting. Overall, it's been quite depressing. In one week and a few days, my wife and I have progressed through something very similar to the 5 stages of grief.&lt;br /&gt;&lt;br /&gt;Denial. Initially, looking in the DC-metro area turned up nothing special in our price range. Naive, we both say "let's go out west like everyone else". Searching on homesdatabase.com, we saw many nice looking homes out in Leesburg. Let's just say that you can't trust pictures. After seeing a few of the homes for ourselves, and really considering how much time we'd be adding to our commute, Leesburg was thrown out. Back to the DC-metro area.&lt;br /&gt;&lt;br /&gt;Anger. After searching in Springfield, we find a really homey place. Well maintained and decorated, but not much land or driveway. We did place a bid, however the seller had already been made an offer that wasn't sufficiently below ours to make him/her switch. In hind-sight, this may have been a blessing. At the time, however, we were quite angry. Why? We spent a few days looking at homes but nothing else in our price range was anywhere nearly as attractive. &lt;br /&gt;&lt;br /&gt;Bargaining. Next, I suggest that our problem is our price range. We should just up our maximum price. I talk to the lender and up our pre-approval cap. The interesting part is that we see no marked improvement in our search results. All of the homes we visit are well over half-million dollars and have bugs crawling around in the foyer.&lt;br /&gt;&lt;br /&gt;Depression. Bargaining didn't work, our price range was raised 100k, but made no real difference in the quality of homes we saw. &lt;br /&gt;&lt;br /&gt;Acceptance. We are too poor/picky to live in the DC-metro area. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5229495887129057207?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5229495887129057207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5229495887129057207' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5229495887129057207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5229495887129057207'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/03/house-hunting.html' title='House Hunting'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2234478688352324406</id><published>2007-03-02T08:11:00.000-05:00</published><updated>2007-03-02T08:47:07.606-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drm'/><title type='text'>The All Powerful RIAA</title><content type='html'>This is an anonymized sample of what organizations receive from the &lt;a href="http://www.riaa.com/"&gt;RIAA&lt;/a&gt; when one of their members is suspected of violating the DMCA.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dear XYZ&lt;br /&gt;&lt;br /&gt;We are national counsel to a group of record companies and their labels and&lt;br /&gt;subsidiaries including  BMG Music; EMI Music North America; SONY BMG MUSIC&lt;br /&gt;ENTERTAINMENT; Warner Music Group Inc.; and UMG Recordings, Inc. ("record&lt;br /&gt;companies").  Our clients create, manufacture, and/or distribute the&lt;br /&gt;majority of all legitimate sound recordings sold and distributed in the&lt;br /&gt;United States.&lt;br /&gt;&lt;br /&gt;We believe that one of your subscribers has been violating federal copyright&lt;br /&gt;laws by uploading and downloading the record companies' copyrighted sound&lt;br /&gt;recordings without authorization.  Before initiating a lawsuit against that&lt;br /&gt;individual, we are sending you an early settlement letter that we now ask&lt;br /&gt;you to forward to your subscriber.  This letter describes the record&lt;br /&gt;companies' claims against the subscriber and offers to settle those claims&lt;br /&gt;at an early stage for a substantially reduced dollar amount.  We ask that&lt;br /&gt;you forward this letter as promptly as possible.  If we do not hear back&lt;br /&gt;from your subscriber shortly, we will go ahead and file suit.&lt;br /&gt;&lt;br /&gt;We are also sending you this advance notice to alert you to the possibility&lt;br /&gt;that we will seek identifying information about the subscriber if we do not&lt;br /&gt;resolve our claims against this individual in a timely manner.&lt;br /&gt;Specifically, we will seek to serve a subpoena on you that will request&lt;br /&gt;documents that identify the name, current (and permanent) addresses,&lt;br /&gt;telephone numbers, email addresses, and MAC (Media Access Control) address&lt;br /&gt;of the subscriber of your network who has infringed the record companies'&lt;br /&gt;copyrighted sound recordings.  Please preserve all documents that reflect&lt;br /&gt;identifying information of the subscriber in the meantime.&lt;br /&gt;&lt;br /&gt;The user was located at IP address IPADDR and has been assigned case id CASEID.&lt;br /&gt;&lt;br /&gt;We hope this advance notice has proved helpful.  Thank you for your&lt;br /&gt;cooperation.  Please feel free to call if you have any questions.&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;&lt;br /&gt;Katheryn Jarvis Coggon&lt;br /&gt;Holme Roberts &amp;amp; Owen&lt;br /&gt;1700 Lincoln, Suite 4100&lt;br /&gt;Denver, Colorado 80203&lt;br /&gt;katheryn.coggon@hro.com&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;First of all, how many organizations still allow their members to use public IP space? If an organization of 2000 people all traverse a NAT-enabled firewall, the IP information included is nowhere close to a unique identifier. This means the organization's logs will need to be consulted to see who had what IP address at the time of the offense.&lt;br /&gt;&lt;br /&gt;The next step is to seize the suspect machines and perform forensics that can later be used to in court to correlate RIAA-side observations with client-side software and media. My advice to the college kids out there is that they do all DMCA violating with the knowledge that this could be coming down the pipeline. I wonder if this idea has product potential.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2234478688352324406?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2234478688352324406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2234478688352324406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2234478688352324406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2234478688352324406'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/03/all-powerful-riaa.html' title='The All Powerful RIAA'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7791564529832501616</id><published>2007-02-28T15:29:00.000-05:00</published><updated>2007-02-28T15:33:35.941-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><title type='text'>Symantec Publishes Vista Research</title><content type='html'>&lt;a href="http://www.symantec.com/enterprise/theme.jsp?themeid=vista_research"&gt;Here&lt;/a&gt; you can find papers by Ollie Whitehouse covering core security features present in Vista. These are: Address Space Layout Randomization (ASLR) and Compile Time Stack Protection via /GS. Some interesting weaknesses are identified in both papers. There are also two papers discussing Windows Vista security from a holistic point of view and with respect to Malware threats.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7791564529832501616?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7791564529832501616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7791564529832501616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7791564529832501616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7791564529832501616'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/symantec-publishes-vista-research.html' title='Symantec Publishes Vista Research'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6454340146223730793</id><published>2007-02-28T15:02:00.000-05:00</published><updated>2007-02-28T15:04:42.668-05:00</updated><title type='text'>New Worm Exploiting Solaris Telnetd</title><content type='html'>Anyone getting owned by this &lt;a href="http://news.com.com/Worm+targets+Solaris+telnet+bug/2100-7349_3-6162955.html?tag=nefd.top"&gt;worm&lt;/a&gt; deserves it! No one in their right mind should be leaving telnetd enabled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6454340146223730793?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6454340146223730793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6454340146223730793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6454340146223730793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6454340146223730793'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/new-worm-exploiting-solaris-telnetd.html' title='New Worm Exploiting Solaris Telnetd'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6283609443934702309</id><published>2007-02-27T14:46:00.000-05:00</published><updated>2007-02-28T15:36:22.476-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rfid'/><title type='text'>RFID Commotion at BlackHat Federal 2007</title><content type='html'>Finally! Someone took the trouble to break HID proximity cards.  These cards, ubiquitously found in commercial and government environments, fail to ensure communications security. One of the first &lt;a href="http://cq.cx/proxmark3.pl"&gt;public RFID cloners&lt;/a&gt; seems to have been released back in 2005. The device is generic and can handle both low and high frequencies. I want one. Read more about the commotion &lt;a href="http://www.infoworld.com/article/07/02/26/HNblackhatrfid_1.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6283609443934702309?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6283609443934702309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6283609443934702309' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6283609443934702309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6283609443934702309'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/commotion-at-blackhat-federal-2007.html' title='RFID Commotion at BlackHat Federal 2007'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3495432139961980774</id><published>2007-02-22T15:19:00.000-05:00</published><updated>2007-02-22T15:22:26.397-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exploitation'/><title type='text'>Exploiting Non-Exploitable Bugs</title><content type='html'>Recently read yet another great paper from the brilliant minds at uninformed.org. This one showcases methods for exploiting bugs that are typically considered non-exploitable, such as NULL pointer dereference bugs, via the Unhandled Exception Filter. Check it out &lt;a href="http://uninformed.org/index.cgi?v=4&amp;amp;a=5"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3495432139961980774?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3495432139961980774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3495432139961980774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3495432139961980774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3495432139961980774'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/exploiting-non-exploitable-bugs.html' title='Exploiting Non-Exploitable Bugs'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-7718695341716494116</id><published>2007-02-21T09:07:00.000-05:00</published><updated>2007-02-21T09:14:29.535-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAPTCHA'/><title type='text'>CAPTCHA Alternatives</title><content type='html'>&lt;a href="http://www.w3.org/TR/turingtest/"&gt;This article&lt;/a&gt; from the W3C does a great job of explaining the history of CAPTCHAs, their deficiencies, and possible alternatives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-7718695341716494116?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/7718695341716494116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=7718695341716494116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7718695341716494116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/7718695341716494116'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/alternatives-to-captcha.html' title='CAPTCHA Alternatives'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-3055179559055572268</id><published>2007-02-19T14:24:00.000-05:00</published><updated>2007-02-19T14:27:03.463-05:00</updated><title type='text'>Survive a Tsunami in Second Life</title><content type='html'>NOAA has an &lt;a href="http://www.dailycamera.com/news/2007/feb/19/noaa-creates-a-second-life/?printer=1/"&gt;island on SecondLife&lt;/a&gt; where players can experience Tsunami and Hurricanes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-3055179559055572268?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/3055179559055572268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=3055179559055572268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3055179559055572268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/3055179559055572268'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/survive-tsunami-in-second-life.html' title='Survive a Tsunami in Second Life'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2158581541690412035</id><published>2007-02-17T11:12:00.000-05:00</published><updated>2007-02-17T11:13:46.849-05:00</updated><title type='text'>Person-to-Person File Sharing</title><content type='html'>Put on your ranting helmet and brace for the bumpy ride ahead. Why is it so hard to share files and folders with people? Before you say "it's not hard, you moron", consider the various ways you regularly exchange files. Instant messenger, email, upload to server, and USB key.&lt;br /&gt;&lt;br /&gt;Often times you're chatting away with someone on IM when your buddy suddenly pops the big question. After repeated attempts, your NAT-shame compells you to say, "my firewall won't allow it".&lt;br /&gt;&lt;br /&gt;"Oh, I know! I'll email it". Unfortunately, both your company's and the intended recipient's mail server have full-time administrators that protect users from themselves. Their duties include securing email, which means to drop just about all useful file types and anything above a certain size. Even without filters, your file is probably too large for the recipients mailbox quota.&lt;br /&gt;&lt;br /&gt;Some of you may have your own web server, or an account on a web server. I use this method all the time. I'll upload my data, then send my IM buddy a URL where they can download said data. This method works, but what a pain! Especially when you consider that most of the time, you want to encrypt the data so as to not scatter it across the known universe. Lucky for me, most of my colleagues are cryptosavvy and know how to operate gnupg, but there are many people alienated here. Imagine Grandma trying to encrypt and send you a file with gpg.&lt;br /&gt;&lt;br /&gt;If the person is right next to you, this can be even more frustrating. To send them a file without leaving your desk... your data has to travel all across the Internet just to get to the next cube. Quite inefficient. I typically tackle this scenario with a USB key, but then... you have to make sure the USB key doesn't contain a PDF of the recipient's latest performance review -- or some other embarassing document. More contortions.&lt;br /&gt;&lt;br /&gt;There needs to be a &lt;span style="font-style: italic;"&gt;dirt simple&lt;/span&gt; mechanism whereby people can exchange files in an efficient manner. By efficient I mean via a &lt;span style="font-style: italic;"&gt;direct connection&lt;/span&gt;. This &lt;a href="http://sparrow.ece.cmu.edu/%7Eadrian/projects/natblaster.pdf"&gt;paper&lt;/a&gt; can probably help out here. The only other requirements I have are that transfers are reliable and secure. Network miscreants should not be able to read, modify or intercept my data. Also, in the event of a networking error, I should be able to resume a transmission without having to resend the entire body of data. Please comment with your ideas and then knock out some code :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2158581541690412035?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2158581541690412035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2158581541690412035' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2158581541690412035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2158581541690412035'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/person-to-person-file-sharing.html' title='Person-to-Person File Sharing'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-5986058255108297113</id><published>2007-02-17T10:22:00.000-05:00</published><updated>2007-02-17T10:28:37.671-05:00</updated><title type='text'>The Found Bin</title><content type='html'>I found this really cool &lt;a href="http://www.thefoundbin.com/"&gt;lost &amp;amp; found&lt;/a&gt; site while browsing code.google.com. There doesn't seem to be much data yet, but the site might eventually be useful to petty criminals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-5986058255108297113?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/5986058255108297113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=5986058255108297113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5986058255108297113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/5986058255108297113'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/found-bin.html' title='The Found Bin'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-6468149753947220297</id><published>2007-02-17T07:02:00.000-05:00</published><updated>2007-02-17T07:08:40.648-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Compromising Oracle without Connecting</title><content type='html'>There's a &lt;a href="http://www.petefinnigan.com/bbed_used_to_change_sys_password.doc"&gt;new paper&lt;/a&gt; up on Pete Finnigan's website that details a process by which regular OS users can change the SYS password without ever connecting to the database. A neat little "hex editor" trick. Great for those cases where you've compromised a host running Oracle but don't have database credentials.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-6468149753947220297?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/6468149753947220297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=6468149753947220297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6468149753947220297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/6468149753947220297'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/compromising-oracle-without-connecting.html' title='Compromising Oracle without Connecting'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-8341099990125196259</id><published>2007-02-08T11:47:00.000-05:00</published><updated>2007-02-08T08:10:14.915-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drm'/><title type='text'>Thoughts on DRM</title><content type='html'>Steve Jobs recently wrote about the state of DRM with respect to Apple's products and the music industry's "big four". Several companies and individuals are already dissatisfied with the state of DRM, including &lt;a href="http://www.techcrunch.com/2006/12/14/bill-gates-on-the-future-of-drm/"&gt;Bill Gates&lt;/a&gt;. The article resonated with me because it recognized the ingrained cat-and-mouse game companies are required to play to satisfy music distributors. Jobs presents a compelling argument for a DRM free future. Read more &lt;a href="http://www.apple.com/hotnews/thoughtsonmusic/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-8341099990125196259?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/8341099990125196259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=8341099990125196259' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8341099990125196259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/8341099990125196259'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/02/thoughts-on-drm.html' title='Thoughts on DRM'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6288294589134566895.post-2901130216916843770</id><published>2007-01-27T21:45:00.000-05:00</published><updated>2007-01-27T22:57:20.191-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pydbg'/><title type='text'>Setting Up Pydbg</title><content type='html'>This post should provide guidance to the individual looking to setup pydbg with the least amount of headache. When last I tried, PaiMei didn't play nice running under cygwin Python. Things worked much better under Python for Windows. I recommend creating a VMware image and then setting up shop in the image. Once you have a suitable image setup, install &lt;a href="http://www.python.org/download/releases/2.4.4"&gt;Python 2.4 for Windows&lt;/a&gt;. Next, download and run the &lt;a href="http://downloads.sourceforge.net/ctypes/ctypes-1.0.1.win32-py2.4.exe?modtime=1161376216&amp;amp;big_mirror=0"&gt;ctypes installer for windows&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now you're ready to install PaiMei. Download it from &lt;a href="http://www.openrce.org/downloads/details/208/PaiMei"&gt;OpenRCE&lt;/a&gt;. Extract the zip file and execute the installer found in the installers directory. If you chose to install under VMware, there is a &lt;a href="http://maliciousattacker.blogspot.com/2006/12/pydbg-in-vmware.html"&gt;small hack&lt;/a&gt; you may need to implement before pydbg will work correctly inside VMware. To verify that you have a working installation, download my &lt;a href="http://www.da-experts.com/pydbg/setup/test_pydbg.py"&gt;&lt;span&gt;test script&lt;/span&gt;&lt;/a&gt;, fire up notepad.exe and execute the script. If the script barfs with an error, something is wrong. Otherwise, you are now ready to begin debugging applications from Python.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6288294589134566895-2901130216916843770?l=maliciousattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maliciousattacker.blogspot.com/feeds/2901130216916843770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6288294589134566895&amp;postID=2901130216916843770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2901130216916843770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6288294589134566895/posts/default/2901130216916843770'/><link rel='alternate' type='text/html' href='http://maliciousattacker.blogspot.com/2007/01/setting-up-pydbg.html' title='Setting Up Pydbg'/><author><name>Jason</name><uri>http://www.blogger.com/profile/15563296084226754433</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='http://bp2.blogger.com/_92MpPwIByfk/SHu_jmorUlI/AAAAAAAAAC8/xVo9H702vUc/S220/tech.jpg'/></author><thr:total>0</thr:total></entry></feed>
