<?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-5746974606022786317</id><updated>2012-02-16T18:47:49.975-08:00</updated><category term='BurpExtender'/><category term='thin client'/><category term='jser'/><category term='xml'/><category term='flash'/><category term='tools'/><category term='burp'/><category term='plug-in'/><category term='serialization'/><category term='hacking'/><category term='adobe'/><category term='Belch'/><category term='java objects'/><category term='flex'/><category term='sqlmap'/><category term='VS2008'/><category term='SOAP'/><category term='java serialization'/><category term='pentesting'/><category term='Ngrep'/><category term='analysis'/><category term='BlazeDS'/><category term='Lenovo'/><category term='sql-injection'/><category term='windows'/><category term='SQLi'/><category term='pen-testing'/><category term='fn f5'/><category term='access connection hijack'/><category term='JVMITM'/><category term='AMF'/><category term='Winpcap'/><category term='hotkey driver'/><title type='text'>Invalid Packet by @_coreDump</title><subtitle type='html'>application security, tools, ideas and technologies</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5746974606022786317.post-8823857203912091871</id><published>2010-09-12T04:10:00.000-07:00</published><updated>2010-09-12T04:15:55.964-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='pen-testing'/><category scheme='http://www.blogger.com/atom/ns#' term='JVMITM'/><category scheme='http://www.blogger.com/atom/ns#' term='java objects'/><category scheme='http://www.blogger.com/atom/ns#' term='java serialization'/><title type='text'>Attacking Java serialization protocol</title><content type='html'>Hi Guys&lt;br /&gt;&lt;br /&gt;My colleague Manish from A&amp;D Labs has posted and released DSer for attacking Java Serialization protocol, using the JVMITM approach check it out &lt;a href="http://blog.andlabs.org/2010/09/re-visiting-java-de-serialization-it.html" target="_blank"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-8823857203912091871?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/8823857203912091871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2010/09/attacking-java-serialization-protocol.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/8823857203912091871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/8823857203912091871'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2010/09/attacking-java-serialization-protocol.html' title='Attacking Java serialization protocol'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5746974606022786317.post-8048911715406535826</id><published>2010-08-09T21:53:00.000-07:00</published><updated>2010-08-10T02:21:44.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jser'/><category scheme='http://www.blogger.com/atom/ns#' term='serialization'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='JVMITM'/><category scheme='http://www.blogger.com/atom/ns#' term='java objects'/><category scheme='http://www.blogger.com/atom/ns#' term='AMF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='java serialization'/><category scheme='http://www.blogger.com/atom/ns#' term='Belch'/><title type='text'>Abusing serialization protocol using JVMITM (JVM in the middle)</title><content type='html'>A friend of mine asked me to clarify about Belch usage in serialization manipulating, so here goes:&lt;br /&gt;&lt;br /&gt;When a serialization channel is created between client and server, all traffic switches from basic http to serialization over http. This makes tracing, manipulating and testing more difficult due to the binary content of the serialization protocol.&lt;br /&gt;&lt;br /&gt;This in mind, what you need is a decrytor-encryptor utility to stick in the middle of communication channel, so you can get a better understanding and control over the communication between the client and server. You need it to be very efficient and very fast: enters JVMITM - JVM in the middle.&lt;br /&gt;&lt;br /&gt;If you could divert the communication to an Java VM, you could utilize java to translate the serialization protocol into a somewhat better understandable format -say XML. Once in XML format, you abuse it at your will and then redirect it to JVM back. JVM convert it back to serialization protocol and send it down the communication channel.&lt;br /&gt;&lt;br /&gt;JVMITM approach support any serialization protocol that Java understand, such as Flash, Java-serialization and more. The only thing you have to do in order to decrypt the protocol, is to include the proper library in your JVMITM classpath&lt;br /&gt;&lt;br /&gt;Belch can help you utilize JVMITM by enabling you to redirect the communication to your chosen application (hex-editor ,batch wrapper of a JVM or other self written tool) &lt;br /&gt;&lt;br /&gt;Stay tuned as I will publish some example of using Belch to JVMITM against Flash AMF serialization protocol&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-8048911715406535826?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/8048911715406535826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2010/08/abusing-serialization-protocol-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/8048911715406535826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/8048911715406535826'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2010/08/abusing-serialization-protocol-using.html' title='Abusing serialization protocol using JVMITM (JVM in the middle)'/><author><name>invalid</name><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-5746974606022786317.post-5700442563904115401</id><published>2010-06-23T02:37:00.000-07:00</published><updated>2010-06-23T03:25:48.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='sql-injection'/><category scheme='http://www.blogger.com/atom/ns#' term='pen-testing'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLi'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlmap'/><title type='text'>SQLmap 0.8 and SOAP based Web-Services</title><content type='html'>I Love SQLmap , it's clean, fast, super efficient, fully automated and get's the job done when a POC is needed.&lt;br /&gt;&lt;br /&gt;Lately I was pen-testing SOAP Web-Services, and I came to learn that SQLmap wasn't aware of SOAP syntax.&lt;br /&gt;&lt;br /&gt;Being the lazy hacker I am the thought of manually testing the entire application using SOAPUI and some tweaking gave me a chill ,So, I have fired up my Python and patched a small mod to let SQLmap do it's magic on SOAP request too.&lt;br /&gt;&lt;br /&gt;Basically, the mod instructs SQLmap to parse XML input into parameter-value map in the same manner that SQLmap was parsing GET/POST parameters.&lt;br /&gt;&lt;br /&gt;In the same manner of looking for &amp;amp;parametera=valueA&amp;amp;paramB=valueB.. etc. SQLmap now looks into the XML request and parse it to Child and Value (current mod omit the attributes)&lt;br /&gt;&lt;br /&gt;That said, if you wanna get some serious injection and SOAP'n dirty (Ha!)  try this patch and let me know ;)&lt;br /&gt;&lt;br /&gt;There are three files to patch for version 0.8: agent.py, common.py and traget.py&lt;br /&gt;Happy Hunting ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;--- /Users/osx/Downloads/sqlmap/./lib/core/agent.py    2010-03-05 11:14:36.000000000 +0200&lt;br /&gt;+++ ./lib/core/agent.py    2010-06-20 13:08:35.000000000 +0300&lt;br /&gt;@@ -32,7 +32,7 @@ from lib.core.data import kb&lt;br /&gt; from lib.core.data import queries&lt;br /&gt; from lib.core.data import temp&lt;br /&gt; from lib.core.exception import sqlmapNoneDataException&lt;br /&gt;-&lt;br /&gt;+from xml.etree import ElementTree as ET&lt;br /&gt;&lt;br /&gt; class Agent:&lt;br /&gt;     """&lt;br /&gt;@@ -77,7 +77,15 @@ class Agent:&lt;br /&gt;             retValue = value.replace(value, newValue)&lt;br /&gt;         else:&lt;br /&gt;             paramString = conf.parameters[place]&lt;br /&gt;-            retValue = paramString.replace("%s=%s" % (parameter, value),&lt;br /&gt;+            if conf.paramDict["POSTxml"]:&lt;br /&gt;+                root = ET.XML(paramString)&lt;br /&gt;+                iterator = root.getiterator(parameter)&lt;br /&gt;+                for child in iterator:&lt;br /&gt;+                    child.text =newValue&lt;br /&gt;+                retValue=ET.tostring(root)&lt;br /&gt;+               &lt;br /&gt;+            else:&lt;br /&gt;+                retValue = paramString.replace("%s=%s" % (parameter, value),&lt;br /&gt;                                            "%s=%s" % (parameter, newValue))&lt;br /&gt;&lt;br /&gt;         return retValue&lt;br /&gt;--- /Users/osx/Downloads/sqlmap/./lib/core/common.py    2010-03-05 11:14:36.000000000 +0200&lt;br /&gt;+++ ./lib/core/common.py    2010-06-20 13:54:01.000000000 +0300&lt;br /&gt;@@ -53,6 +53,7 @@ from lib.core.settings import IS_WIN&lt;br /&gt; from lib.core.settings import SITE&lt;br /&gt; from lib.core.settings import SQL_STATEMENTS&lt;br /&gt; from lib.core.settings import VERSION_STRING&lt;br /&gt;+from xml.etree import ElementTree as ET&lt;br /&gt;&lt;br /&gt; def paramToDict(place, parameters=None):&lt;br /&gt;     """&lt;br /&gt;@@ -81,9 +82,9 @@ def paramToDict(place, parameters=None):&lt;br /&gt;         splitParams = parameters.split(";")&lt;br /&gt;     else:&lt;br /&gt;         splitParams = parameters.split("&amp;amp;")&lt;br /&gt;-&lt;br /&gt;-    for element in splitParams:&lt;br /&gt;-        elem = element.split("=")&lt;br /&gt;+    if place is not "POSTxml":&lt;br /&gt;+        for element in splitParams:&lt;br /&gt;+            elem = element.split("=")&lt;br /&gt;&lt;br /&gt;         if len(elem) == 2:&lt;br /&gt;             parameter = elem[0].replace(" ", "")&lt;br /&gt;@@ -94,6 +95,12 @@ def paramToDict(place, parameters=None):&lt;br /&gt;             if condition:&lt;br /&gt;                 value = elem[1]&lt;br /&gt;                 testableParameters[parameter] = value&lt;br /&gt;+    else:&lt;br /&gt;+       &lt;br /&gt;+        root = ET.XML(parameters)&lt;br /&gt;+        iterator = root.getiterator()&lt;br /&gt;+        for child in iterator:&lt;br /&gt;+            testableParameters[child.tag] =child.text&lt;br /&gt;&lt;br /&gt;     if conf.testParameter and not testableParameters:&lt;br /&gt;         paramStr = ", ".join(test for test in conf.testParameter)&lt;br /&gt;--- /Users/osx/Downloads/sqlmap/./lib/core/target.py    2010-03-05 11:14:36.000000000 +0200&lt;br /&gt;+++ ./lib/core/target.py    2010-06-21 12:47:53.000000000 +0300&lt;br /&gt;@@ -24,6 +24,8 @@ Franklin St, Fifth Floor, Boston, MA  02&lt;br /&gt;&lt;br /&gt; import os&lt;br /&gt; import time&lt;br /&gt;+"""for RegEx identification of &lt;xml&gt; partterns in POST data"""&lt;br /&gt;+import re&lt;br /&gt;&lt;br /&gt; from lib.core.common import dataToSessionFile&lt;br /&gt; from lib.core.common import paramToDict&lt;br /&gt;@@ -44,7 +46,7 @@ def __setRequestParams():&lt;br /&gt;     """&lt;br /&gt;&lt;br /&gt;     __testableParameters = False&lt;br /&gt;-&lt;br /&gt;+    __paramDict = list()&lt;br /&gt;     # Perform checks on GET parameters&lt;br /&gt;     if conf.parameters.has_key("GET") and conf.parameters["GET"]:&lt;br /&gt;         parameters = conf.parameters["GET"]&lt;br /&gt;@@ -60,14 +62,19 @@ def __setRequestParams():&lt;br /&gt;         raise sqlmapSyntaxException, errMsg&lt;br /&gt;&lt;br /&gt;     if conf.data:&lt;br /&gt;-        conf.parameters["POST"] = conf.data&lt;br /&gt;-        __paramDict = paramToDict("POST", conf.data)&lt;br /&gt;-&lt;br /&gt;-        if __paramDict:&lt;br /&gt;-            conf.paramDict["POST"] = __paramDict&lt;br /&gt;-            __testableParameters = True&lt;br /&gt;+       conf.parameters["POST"] = conf.data&lt;br /&gt;+       """Search the POST data for &lt;xml&gt; tags if found - treat as XML"""&lt;br /&gt;+       if re.match(".*&lt;.*&gt;.*", conf.data):&lt;br /&gt;+           conf.paramDict["POSTxml"] = True&lt;br /&gt;+           __paramDict = paramToDict("POSTxml",conf.data)&lt;br /&gt;+       else:&lt;br /&gt;+           __paramDict = paramToDict("POST", conf.data)&lt;br /&gt;+&lt;br /&gt;+    if __paramDict:&lt;br /&gt;+        conf.paramDict["POST"] = __paramDict&lt;br /&gt;+        __testableParameters = True&lt;br /&gt;&lt;br /&gt;-        conf.method = "POST"&lt;br /&gt;+    conf.method = "POST"&lt;br /&gt;&lt;br /&gt;     # Perform checks on Cookie parameters&lt;br /&gt;     if conf.cookie:&lt;br /&gt;&lt;xml&gt;&lt;xml&gt;&lt;br /&gt;&lt;/xml&gt;&lt;/xml&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-5700442563904115401?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/5700442563904115401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2010/06/sqlmap-08-and-soap-based-web-services.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/5700442563904115401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/5700442563904115401'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2010/06/sqlmap-08-and-soap-based-web-services.html' title='SQLmap 0.8 and SOAP based Web-Services'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5746974606022786317.post-3876800730145319115</id><published>2010-05-03T06:43:00.000-07:00</published><updated>2010-06-23T05:01:34.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='pentesting'/><category scheme='http://www.blogger.com/atom/ns#' term='burp'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='AMF'/><category scheme='http://www.blogger.com/atom/ns#' term='BlazeDS'/><category scheme='http://www.blogger.com/atom/ns#' term='Belch'/><title type='text'>Pentesting Adobe Flex AMF with Belch</title><content type='html'>Hi all, long time no post,&lt;br /&gt;I had to do some developing, got a flex/BlazeDS application to attack.&lt;br /&gt;&lt;br /&gt;The AMF architecture is very straight forward, the flash client communicate to BlazeDS server using adobe AMF binary protocol.&lt;br /&gt;Yep, those words &lt;span style="font-weight: bold; font-style: italic;"&gt;Binary-Protocol&lt;/span&gt; means some playing around when trying to manipulate in the middle.&lt;br /&gt;&lt;br /&gt;So, got myself busy and wrote a new external library for good old &lt;span style="font-weight: bold; font-style: italic;"&gt;Belch&lt;/span&gt;. It handles all the decoding-manipulating-encoding on the fly and makes my life easier.&lt;br /&gt;&lt;br /&gt;Stay put for sources, I will publish as soon as they are stable&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-3876800730145319115?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/3876800730145319115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2010/05/pentesting-adobe-flex-amf-with-belch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/3876800730145319115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/3876800730145319115'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2010/05/pentesting-adobe-flex-amf-with-belch.html' title='Pentesting Adobe Flex AMF with Belch'/><author><name>invalid</name><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-5746974606022786317.post-7419883412821554051</id><published>2010-03-08T06:30:00.000-08:00</published><updated>2010-03-08T07:04:58.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fn f5'/><category scheme='http://www.blogger.com/atom/ns#' term='Lenovo'/><category scheme='http://www.blogger.com/atom/ns#' term='hotkey driver'/><category scheme='http://www.blogger.com/atom/ns#' term='access connection hijack'/><title type='text'>Full disclosure:Security vulnerability in Lenovo™ Laptops(Hotkey™ Driver and Access Connections™ v5.33) - Fix availble</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Subject&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;br /&gt;Security vulnerability &lt;privilege&gt; in Lenovo™ Hotkey™ Driver and Access Connections™ v5.33&lt;o:p&gt;&lt;/o:p&gt;&lt;/privilege&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Impact:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;br /&gt;A privilege escalation attack can be used as a backdoor to bypass login and run arbitrary code as a System user on Lenovo™ or Thinkpad™ laptops running Access Connection™ v5.33 and earlier versions (tracked back to version 4)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Technical details:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;The Hotkey™ Driver is an Lenovo™ application that      monitors the Lenovo™ special Hotkeys (Fn keys) and execute Lenovo™      specified applications upon their invocation.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;The default installation of the Hotkey™ Driver is as      a service and runs under NT Authority\System privileges.&lt;/span&gt; &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Upon hot key detection, the Hotkey™ driver checks the      registry key for the specified file to lunch and evokes that file, as      example When the Fn + F5 key combination is pressed the Hotkey™ driver      checks the registry key named File at      HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\CLASS\01\05 for its value and then      launches the specified application (by default, Tp/AcFnF5.exe).&lt;/span&gt; &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;The Hotkey™ driver is available even prior to Windows      login due to its installation configuration.&lt;/span&gt; &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;The value of the registry key to be lunched is not      verified at invocation time.&lt;/span&gt; &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;This key is not monitored by the operating system and      any change to this key is undetected.&lt;/span&gt; &lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;An attacker with restricted access to the registry      can use this information to launch a targeted attack on Lenovo™ or      Thinkpad™ users that changes this key into an arbitrary application that      runs with System permission.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Reproduce&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;:&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;span style=""&gt;1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Using the target laptop change the File registry key value at HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\CLASS\01\05 from 'Tp/AcFnF5.exe' to 'cmd.exe'. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;span style=""&gt;2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Lock the station ('Windows' + 'L'). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 12pt 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;span style=""&gt;3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Press 'Fn'+'F5' and a windows command prompt opens with System privilege. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Mitigation:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;Please update Hotkey&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt;™&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:10pt;"  &gt; Driver and Access connection™ to the most updated version (&lt;a href="http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-74261"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;link here&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;) at Lenovo™ website&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-7419883412821554051?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/7419883412821554051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2010/03/full-disclosure-security-vulnerability.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/7419883412821554051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/7419883412821554051'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2010/03/full-disclosure-security-vulnerability.html' title='Full disclosure:&lt;BR&gt;Security vulnerability in Lenovo™ Laptops&lt;BR&gt;(Hotkey™ Driver and Access Connections™ v5.33) - Fix availble'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5746974606022786317.post-6271155990871015007</id><published>2009-12-30T07:08:00.000-08:00</published><updated>2010-01-04T00:41:01.748-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thin client'/><category scheme='http://www.blogger.com/atom/ns#' term='plug-in'/><category scheme='http://www.blogger.com/atom/ns#' term='jser'/><category scheme='http://www.blogger.com/atom/ns#' term='BurpExtender'/><category scheme='http://www.blogger.com/atom/ns#' term='burp'/><category scheme='http://www.blogger.com/atom/ns#' term='java serialization'/><title type='text'>Belch v1.0 - Burp external channel manipulator</title><content type='html'>Belch v1.0 is out.&lt;br /&gt;&lt;br /&gt;Belch is a plug-in for burp suite designed to aid protocol analysis and manipulation, it is fairly simple.&lt;br /&gt;&lt;br /&gt;When dealing with thin client application (such as jser - java serialization protocol ) most of the time the communication between the client and the server is encrypted and transmitted in binary format.&lt;br /&gt;&lt;br /&gt;Most proxy tools cannot manipulate binary packets on the fly with a valuable editor, that is why i wrote Belch.&lt;br /&gt;&lt;br /&gt;Belch is aimed at helping protocol analysis be smother, once you understood the protocol concepts and write an encryption/decryption tool, you wish to use it upon live communication.&lt;br /&gt;&lt;br /&gt;Enters Belch..&lt;br /&gt;&lt;br /&gt;Belch lunches as a burp suite plug-in that interacts with the communication on both ends.&lt;br /&gt;Once a message has been trapped burp forwards it to Belch process.&lt;br /&gt;&lt;br /&gt;Belch perform the following action on the message:&lt;br /&gt;&lt;br /&gt;1. it logs the message to a file&lt;br /&gt;2. it then execute an external editor (user choice , notepad,sed,awk,perl, etc.) on the file, in this step the editor manipulate the message data.&lt;br /&gt;3. once editor process has terminated Belch reads the file content and forward it to Burp onto the wire.&lt;br /&gt;&lt;br /&gt;Bellow is a screen capture of Belch settings:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_E4Y2JqGa0zM/SztxxcntABI/AAAAAAAAACo/9YM_-3IU0fs/s1600-h/BelchGUIsettings.bmp"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 178px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5421051670780772370" alt="" src="http://4.bp.blogspot.com/_E4Y2JqGa0zM/SztxxcntABI/AAAAAAAAACo/9YM_-3IU0fs/s320/BelchGUIsettings.bmp" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Enable/Disable&lt;/span&gt; : this option enable or disable Belch.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Change&lt;/span&gt;: this button pops up the Logging folder selection GUI, in this folder Belch will record all the traffic that passes throw it.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Trap Requests&lt;/span&gt;: when enabled Belch will pass requests to the External editor for processing.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Trap Responses&lt;/span&gt;: when enabled Belch will pass responses to the External editor for processing.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Select:&lt;/span&gt; this button pops up the External editor selection GUI, Belch will execute the editor on each selected message as pre-configured in the requests/responses check-boxes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Automation Enabled:&lt;/span&gt; when checked responses that arrived will be preprocessed by the selected processor and the will be sent to the client side of communication.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Automation Folder (Automator)&lt;/span&gt;:&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; this button will pop up the Automation responses folder selection, when automation is enabled select the first response to be sent to the processor and the to the client, since Belch records it traffic using the ##_Response.raw convention, Belch automation will iterate on the following responses sequentially.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Processor:&lt;/span&gt; this button will pop up the processor selection GUI, Belch will execute this processor on each response prior to forwarding it to the client.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reset:&lt;/span&gt; this button will reset the iteration responses into the first response that was selected.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;command line arguments:&lt;br /&gt;Belch will process the following tokens when lunched: &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Editor &lt;/span&gt;- the external editor to use, &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;LogPath &lt;/span&gt;- the folder in which Belch should record its traffic, &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Processor &lt;/span&gt;- the executable that will be launched on server responses prior to forwarding them to the client.&lt;br /&gt;&lt;br /&gt;here is an example of running Belch using &lt;span style="font-weight: bold;"&gt;notepad &lt;/span&gt;as an editor and as an processor&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;java -Xmx512m -cp burpsuite_v1.2.01.jar;Belch.jar burp.StartBurp Editor="notepad.exe" LogPath=.\temp Processor=notepad.exe&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Download from source forge at &lt;a href="https://sourceforge.net/projects/belch/"&gt;https://sourceforge.net/projects/belch/&lt;/a&gt;&lt;br /&gt;Enjoy :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-6271155990871015007?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/6271155990871015007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/12/belch-v10-burp-external-channel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/6271155990871015007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/6271155990871015007'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/12/belch-v10-burp-external-channel.html' title='Belch v1.0 - Burp external channel manipulator'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E4Y2JqGa0zM/SztxxcntABI/AAAAAAAAACo/9YM_-3IU0fs/s72-c/BelchGUIsettings.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5746974606022786317.post-5089607322285230644</id><published>2009-12-07T21:59:00.000-08:00</published><updated>2009-12-07T22:07:18.102-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='jser'/><category scheme='http://www.blogger.com/atom/ns#' term='java serialization'/><title type='text'>new tools - new boundaries to explore !</title><content type='html'>It's been a while since my last post, I was preoccupied writing a new tools set for "on the fly" manipulation of Java Serialization packets.&lt;br /&gt;I got to a great progress and now I am finalizing the tools.&lt;br /&gt;Will post soon with tools.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-5089607322285230644?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/5089607322285230644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/12/new-tools-new-boundaries-to-explore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/5089607322285230644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/5089607322285230644'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/12/new-tools-new-boundaries-to-explore.html' title='new tools - new boundaries to explore !'/><author><name>invalid</name><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-5746974606022786317.post-707851561843274640</id><published>2009-09-30T04:52:00.000-07:00</published><updated>2009-09-30T05:24:44.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='jser'/><category scheme='http://www.blogger.com/atom/ns#' term='java objects'/><category scheme='http://www.blogger.com/atom/ns#' term='Ngrep'/><category scheme='http://www.blogger.com/atom/ns#' term='java serialization'/><title type='text'>Wrapping it up together</title><content type='html'>Following my post on Java serialized object capture, I had some time for cleanup, so here goes:&lt;br /&gt;&lt;br /&gt;Problem:&lt;br /&gt;You are trying to pentest a j2ee application, the client - server are deployed using jser protocol for communication (java objects over tcp).&lt;br /&gt;you set up a reverse proxy and capture the conversation on the fly - only thing is that the content of the packets are mainly binary and you don't have anything else to work with except for the Mighty hex-editor :-)&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;my setup is as follows:&lt;br /&gt;client &lt;-&gt; reverse proxy &lt;-&gt; wrapper batch (ngrep-jser)&lt;-&gt; simple proxy &lt;-&gt; server&lt;br /&gt;&lt;br /&gt;The wrapper batches  automate the analysis process by repeatedly executing ngrep-jser and forwarding the packet to a java desiralization routine  that tampers the data and writes back the (now tampered) object.&lt;br /&gt;&lt;br /&gt;The new object can be forward to the server instead of the original one by dropping it at the proxy and injecting the new object instead.&lt;br /&gt;&lt;br /&gt;ok enough said here are the files&lt;br /&gt;(warning: very straight to the point no hoo-ha's included):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Requests_monitor.bat&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;--------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;@echo Requests monitor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;@SET /P M=Type dst to listen to:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;@SET /P F=Type Flowdirectory to write to:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;if exist %F%\requests goto start&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;md %F%\requests&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;:start&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FOR /L  %%i IN (1,1,100) DO @echo "Recording Packet to .\%F%\requests\request_%%i" &amp;amp;&amp;amp; ngrep -d 2 -q -m -O .\%F%\requests\request_%%i.pcap -X 0x78 dst %m% &amp;amp;&amp;amp; java -jar JSER_Descryptor.jar .\%F%\requests\request_%%i.pcap &gt;&gt; .\%F%\requests\request.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;goto start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;--------------------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;Responses_monitor.bat&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;--------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;@echo Responses monitor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;@SET /P M=Type src to listen to:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;@SET /P F=Type Flow directory to write to:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;if exist %F%\responses goto start&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;md %F%\responses&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;:start&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FOR /L  %%i IN (1,1,100) DO @echo "Recording Packet to .\%F%\responses\response_%%i" &amp;amp;&amp;amp; ngrep -d 2 -q -m -O .\%F%\responses\response_%%i.pcap -X 0x78 src %m% &amp;amp;&amp;amp; java -jar JSER_Descryptor.jar .\%F%\responses\response_%%i.pcap &gt;&gt; .\%F%\responses\response.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;goto start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;--------------------------------&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-707851561843274640?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/707851561843274640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/09/wrapping-it-up-together.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/707851561843274640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/707851561843274640'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/09/wrapping-it-up-together.html' title='Wrapping it up together'/><author><name>invalid</name><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-5746974606022786317.post-1015525875352549936</id><published>2009-08-03T08:18:00.000-07:00</published><updated>2009-08-04T04:45:57.392-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jser'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Ngrep'/><category scheme='http://www.blogger.com/atom/ns#' term='java serialization'/><title type='text'>Ngrep 1.45 for Java Serialized Objects</title><content type='html'>Following my last post, a new need for adjusting Ngrep has arose.&lt;br /&gt;We needed  to let Ngrep identify JSER communication session and to dump the whole req/res into one file so it can be sent to decryption and further analysis.&lt;br /&gt;To address this issue I have added a new option (-m) to Ngrep that identifies the end of object transmitting and exits the pcap_loop upon it.&lt;br /&gt;&lt;br /&gt;usage example: &lt;span style="font-style: italic;"&gt;ngrep -d 5 -O output.pcap &lt;span style="font-weight: bold;"&gt;-m -X 0x78&lt;/span&gt; dst host www.mytarget.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sources and precompiled windows binary tarball here (&lt;a href="http://ngrep-145-jser.svn.sourceforge.net/viewvc/ngrep-145-jser.tar.gz?view=tar"&gt;sourceforge svn&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;A .patch file for use with the original 1.45 distribution can be download &lt;a href="http://ngrep-145-jser.svn.sourceforge.net/viewvc/ngrep-145-jser/JavaSerializeNgrep.patch?revision=2&amp;amp;pathrev=2"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-1015525875352549936?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/1015525875352549936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/08/ngrep-145-for-java-serialized-objects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/1015525875352549936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/1015525875352549936'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/08/ngrep-145-for-java-serialized-objects.html' title='Ngrep 1.45 for Java Serialized Objects'/><author><name>invalid</name><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-5746974606022786317.post-4593480890526818198</id><published>2009-07-14T01:19:00.000-07:00</published><updated>2009-08-04T08:15:34.269-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Winpcap'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Ngrep'/><title type='text'>Building Ngrep 1.45 on VS2008</title><content type='html'>&lt;span style="font-style: italic;"&gt;update (08-04-2009) check up Ngrep for JSER mod in &lt;a href="http://invalid-packet.blogspot.com/2009/08/ngrep-145-for-java-serialized-objects.html"&gt;today's post&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Needed to fine tune Ngrep for windows, downloaded the source from the net but it wasn't compatible with the new VS2008 distrib. after some time messing around with it got to a very clean solution, all code changes are marked in &lt;span style="color: rgb(51, 204, 0);"&gt;green&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;download &lt;a href="http://www.sfr-fresh.com/cgi-bin/warex?unix/misc/ngrep-1.45.zip"&gt;Ngrep &lt;/a&gt;sources&lt;br /&gt;&lt;/li&gt;&lt;li&gt;download &lt;a href="http://www.winpcap.org/install/bin/WpdPack_4_0_2.zip"&gt;WinCap &lt;/a&gt;sources&lt;br /&gt;&lt;/li&gt;&lt;li&gt;extract and open with VS2008&lt;/li&gt;&lt;li&gt;fix include lib to point to the WinCap location&lt;/li&gt;&lt;li&gt;open up regex.c and change the regerror() definition&lt;br /&gt;from this:&lt;br /&gt;&lt;br /&gt;size_t&lt;br /&gt;regerror (errcode, preg, errbuf, errbuf_size)&lt;br /&gt; int errcode;&lt;br /&gt; const regex_t *preg;&lt;br /&gt; char *errbuf;&lt;br /&gt; size_t errbuf_size;&lt;br /&gt;&lt;br /&gt;to this:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;size_t &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;regerror(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;         int errcode, &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;         const regex_t * preg,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;         char * errbuf,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;         size_t errbuf_size)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;open ws2tcpip.h from microsoft SDK (usally under c:\program files\microsoft SDKs) and add an ifndef macro definition of you choice (i name it NGREP_COMPILE) before the NTDDI_VERSION LONGHORN check like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;#ifndef NGREP_COMPILE&lt;/span&gt;&lt;br /&gt;#if (NTDDI_VERSION &gt;= NTDDI_LONGHORN)&lt;br /&gt;&lt;br /&gt;close this macro at the end of the LONGHORN and add the endif so it will close the wrapper like this:&lt;br /&gt;&lt;br /&gt;#endif  //  TYPEDEFS&lt;br /&gt;#endif  //  LONGHORN&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;#endif //NGREP_COMPILE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;in config.h define the macro you set in step 6:&lt;br /&gt;&lt;br /&gt;add macro definition to end of file like this:&lt;br /&gt;&lt;br /&gt;#define USE_DROPPRIVS                0&lt;br /&gt;#define DROPPRIVS_USER               "notused"&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#define NGREP_COMPILE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;that's it now compile and build your self-tailored Ngrep for windows&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-4593480890526818198?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/4593480890526818198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/07/building-ngrep-145-on-vs2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/4593480890526818198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/4593480890526818198'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/07/building-ngrep-145-on-vs2008.html' title='Building Ngrep 1.45 on VS2008'/><author><name>invalid</name><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-5746974606022786317.post-275359883338372201</id><published>2009-02-17T04:58:00.000-08:00</published><updated>2009-02-17T06:20:35.047-08:00</updated><title type='text'>iPC 10.5.6 + ThinkpadR50</title><content type='html'>&lt;div&gt;Being tackling this one for a week now, just got it all tide up together. &lt;a href="http://3.bp.blogspot.com/_E4Y2JqGa0zM/SZrHm3r_NCI/AAAAAAAAAAM/xa1p9bwzKT0/s1600-h/ScreenShot001.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5303770981779584034" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 249px" alt="" src="http://3.bp.blogspot.com/_E4Y2JqGa0zM/SZrHm3r_NCI/AAAAAAAAAAM/xa1p9bwzKT0/s320/ScreenShot001.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Current works:&lt;br /&gt;&lt;br /&gt;Sound AC97&lt;br /&gt;Ethernet Intel Pro 100&lt;br /&gt;ATI Radeon 7500&lt;br /&gt;Touchpad&lt;br /&gt;Keyborad&lt;br /&gt;&lt;br /&gt;Not :&lt;br /&gt;Intel 2200 wifi pci&lt;br /&gt;&lt;br /&gt;photoes and a quick tutorial in the next days.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-275359883338372201?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/275359883338372201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/02/ipc-1056-thinkpadr50.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/275359883338372201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/275359883338372201'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/02/ipc-1056-thinkpadr50.html' title='iPC 10.5.6 + ThinkpadR50'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E4Y2JqGa0zM/SZrHm3r_NCI/AAAAAAAAAAM/xa1p9bwzKT0/s72-c/ScreenShot001.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5746974606022786317.post-8297163266240721926</id><published>2009-02-16T03:35:00.000-08:00</published><updated>2009-02-16T03:43:25.903-08:00</updated><title type='text'>a trip to the blacksmith</title><content type='html'>&lt;p&gt;on my list, among others are:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;thinkpad&lt;/span&gt; R50&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;iPC&lt;/span&gt; 10.5.6&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;xCode&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;pdb&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Racket&lt;/li&gt;&lt;li&gt;Rumble&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;libevent&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;trying to forge together a new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;pentest&lt;/span&gt; architecture.&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/5746974606022786317-8297163266240721926?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/8297163266240721926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/02/trip-to-blacksmith.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/8297163266240721926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/8297163266240721926'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/02/trip-to-blacksmith.html' title='a trip to the blacksmith'/><author><name>invalid</name><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-5746974606022786317.post-1662840620819889657</id><published>2009-02-11T04:14:00.000-08:00</published><updated>2009-02-17T05:14:17.096-08:00</updated><title type='text'>from black to white</title><content type='html'>&lt;a href="http://www.freedigitalphotos.net/images/photos/IMG_7837.JPG"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 146px; CURSOR: hand; HEIGHT: 127px" alt="" src="http://www.freedigitalphotos.net/images/photos/IMG_7837.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;New day, new blog, new job &lt;/div&gt;&lt;div&gt;fading from blak to white.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.freedigitalphotos.net/images/photos/IMG_7837.JPG"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.freedigitalphotos.net/images/photos/IMG_7837.JPG"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.freedigitalphotos.net/images/photos/IMG_7837.JPG"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;image by &lt;/span&gt;&lt;a href="http://www.freedigitalphotos.net/"&gt;&lt;span style="font-size:78%;"&gt;freedigital&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt; photos&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5746974606022786317-1662840620819889657?l=invalid-packet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://invalid-packet.blogspot.com/feeds/1662840620819889657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://invalid-packet.blogspot.com/2009/02/from-black-to-white.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/1662840620819889657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5746974606022786317/posts/default/1662840620819889657'/><link rel='alternate' type='text/html' href='http://invalid-packet.blogspot.com/2009/02/from-black-to-white.html' title='from black to white'/><author><name>invalid</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
