<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for tomwells.org</title>
	<atom:link href="http://www.tomwells.org/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tomwells.org</link>
	<description>foremost expert on many stuff</description>
	<pubDate>Thu, 11 Mar 2010 01:24:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>Comment on Making Apache leak behind SSL by david b</title>
		<link>http://www.tomwells.org/?p=67#comment-737</link>
		<dc:creator>david b</dc:creator>
		<pubDate>Wed, 08 Jul 2009 15:34:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=67#comment-737</guid>
		<description>thoughts on the google os ?</description>
		<content:encoded><![CDATA[<p>thoughts on the google os ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Kaitan Behold by Kate</title>
		<link>http://www.tomwells.org/?p=66#comment-551</link>
		<dc:creator>Kate</dc:creator>
		<pubDate>Sun, 07 Jun 2009 05:42:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=66#comment-551</guid>
		<description>Enjoyed your entries. All read on ipod! Will be back! Fx</description>
		<content:encoded><![CDATA[<p>Enjoyed your entries. All read on ipod! Will be back! Fx</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Making Apache leak behind SSL by haroon</title>
		<link>http://www.tomwells.org/?p=67#comment-539</link>
		<dc:creator>haroon</dc:creator>
		<pubDate>Thu, 04 Jun 2009 19:46:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=67#comment-539</guid>
		<description>heya.. 
thanks for the positive comments on the talk.. any talk i manage to give without being called a dumbass, i chalk up as a success..

pydbg is pretty sweet in general as a full featured python debugger.. i've kicked it around on windows for some sillyness and just tried the OSX port (http://code.google.com/p/paimei/source/browse/#svn/trunk/pydbg) which seems to work ok..

(it supports a dbg.search_memory('foo') call which should yield instant joy, except it doesnt.. i suspect u will have to end up doing your break on SSL_read(), then locating / dumping ur buff) 

are u currently using ptrace to get as far as u are ?

Post ur success story when u are done.. :&#62;</description>
		<content:encoded><![CDATA[<p>heya..<br />
thanks for the positive comments on the talk.. any talk i manage to give without being called a dumbass, i chalk up as a success..</p>
<p>pydbg is pretty sweet in general as a full featured python debugger.. i&#8217;ve kicked it around on windows for some sillyness and just tried the OSX port (http://code.google.com/p/paimei/source/browse/#svn/trunk/pydbg) which seems to work ok..</p>
<p>(it supports a dbg.search_memory(&#8217;foo&#8217;) call which should yield instant joy, except it doesnt.. i suspect u will have to end up doing your break on SSL_read(), then locating / dumping ur buff) </p>
<p>are u currently using ptrace to get as far as u are ?</p>
<p>Post ur success story when u are done.. :&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Making Apache leak behind SSL by Tom</title>
		<link>http://www.tomwells.org/?p=67#comment-532</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Wed, 03 Jun 2009 21:48:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=67#comment-532</guid>
		<description>Hey Haroon!

Thanks for the comment - and yes I've gone down this same track, however even with "more messing about" it's not actually as easy as it sounds. Apache is quite good about not making system calls with the clear HTTP (except for the log file entry), leaving a tool like "strace" pretty much in the dark. Of course I can see the read and writes to the connected client socket, but this data is already encrypted.

Something like ltrace would be ideal, and I was hoping to hook the openssl calls here, but for whatever reason it manages to crash my apache process, rendering it pretty useless (on my environment at least). 

Of course a debugger would be great - but I believe it would be unacceptable to halt the process (think malicious web server admin attempting to steal user credentials in a production environment). I haven't looked at pydbg, if it's possible to automate this process then that's certainly an option. Thanks, I'll check that out.

So (assuming pydbg doesn't lead me anywhere) my option using strace is to actually break apart the SSL handshake (as I have the private key), steal the symmetric session key and use this to decrypt the conversation. This is cool because from an attack execution point of view it's as simple as attaching strace to the running apache processes and logging all the data - the decrypt can occur after the fact, and no fancy tools are required (except strace, which is very common on machines I've encountered).

btw - I wanted to say hi and bravo on your itweb talk (i think the most entertaining one of the summit, dom's a close second), but you sp guys are way too sneaky... :)

Ciao,
Tom</description>
		<content:encoded><![CDATA[<p>Hey Haroon!</p>
<p>Thanks for the comment - and yes I&#8217;ve gone down this same track, however even with &#8220;more messing about&#8221; it&#8217;s not actually as easy as it sounds. Apache is quite good about not making system calls with the clear HTTP (except for the log file entry), leaving a tool like &#8220;strace&#8221; pretty much in the dark. Of course I can see the read and writes to the connected client socket, but this data is already encrypted.</p>
<p>Something like ltrace would be ideal, and I was hoping to hook the openssl calls here, but for whatever reason it manages to crash my apache process, rendering it pretty useless (on my environment at least). </p>
<p>Of course a debugger would be great - but I believe it would be unacceptable to halt the process (think malicious web server admin attempting to steal user credentials in a production environment). I haven&#8217;t looked at pydbg, if it&#8217;s possible to automate this process then that&#8217;s certainly an option. Thanks, I&#8217;ll check that out.</p>
<p>So (assuming pydbg doesn&#8217;t lead me anywhere) my option using strace is to actually break apart the SSL handshake (as I have the private key), steal the symmetric session key and use this to decrypt the conversation. This is cool because from an attack execution point of view it&#8217;s as simple as attaching strace to the running apache processes and logging all the data - the decrypt can occur after the fact, and no fancy tools are required (except strace, which is very common on machines I&#8217;ve encountered).</p>
<p>btw - I wanted to say hi and bravo on your itweb talk (i think the most entertaining one of the summit, dom&#8217;s a close second), but you sp guys are way too sneaky&#8230; :)</p>
<p>Ciao,<br />
Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Making Apache leak behind SSL by haroon</title>
		<link>http://www.tomwells.org/?p=67#comment-530</link>
		<dc:creator>haroon</dc:creator>
		<pubDate>Wed, 03 Jun 2009 20:04:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=67#comment-530</guid>
		<description>i might be missing the point here a little, but i wouldnt really expect privacy once the traffic hits the host machine ?
Im guessing turning verbose logging on the httpd will leave the clear text info you want in /var/log/apache ? (or even in the application server logfiles if you are using one?)

Once it hits the app, theres a basquillion places to hook the data (because the app doesnt notice at all..)

if for some reason u still want to:
i took a quick look this evening, and if u run httpd -X (for simplicity for now) and then attach a debugger, breaking on SSL_read() you should be able to find your way to the un-encrypted buff..

if you did this in pydbg you could automate this fairly easily..

if you are running solaris (or OSX) u could also try dtrace (just for the geek fun of it)

trace -n 'syscall:::entry /execname=="httpd"/{self-&#62;arg1=arg1;}' -n 'syscall::write:return /self-&#62;arg1/ {printf("%s(\"%S\")\n",probefunc,copyinstr(self-&#62;arg1)); }'

on my machine returns:
CPU     ID                    FUNCTION:NAME
  1  17719                     write:return write("::1 - - [03/Jun/2009:22:03:44 +0200] \"GET /?moo=blah/ HTTP/1.1\" 304 -\n")

  1  17719                     write:return write("[03/Jun/2009:22:03:44 +0200] ::1 TLSv1 DHE-RSA-AES256-SHA \"GET /?moo=blah/ HTTP/1.1\" -\n")

(Both are still calls to the log write, but with more messing about you should get what you need?)</description>
		<content:encoded><![CDATA[<p>i might be missing the point here a little, but i wouldnt really expect privacy once the traffic hits the host machine ?<br />
Im guessing turning verbose logging on the httpd will leave the clear text info you want in /var/log/apache ? (or even in the application server logfiles if you are using one?)</p>
<p>Once it hits the app, theres a basquillion places to hook the data (because the app doesnt notice at all..)</p>
<p>if for some reason u still want to:<br />
i took a quick look this evening, and if u run httpd -X (for simplicity for now) and then attach a debugger, breaking on SSL_read() you should be able to find your way to the un-encrypted buff..</p>
<p>if you did this in pydbg you could automate this fairly easily..</p>
<p>if you are running solaris (or OSX) u could also try dtrace (just for the geek fun of it)</p>
<p>trace -n &#8217;syscall:::entry /execname==&#8221;httpd&#8221;/{self-&gt;arg1=arg1;}&#8217; -n &#8217;syscall::write:return /self-&gt;arg1/ {printf(&#8221;%s(\&#8221;%S\&#8221;)\n&#8221;,probefunc,copyinstr(self-&gt;arg1)); }&#8217;</p>
<p>on my machine returns:<br />
CPU     ID                    FUNCTION:NAME<br />
  1  17719                     write:return write(&#8221;::1 - - [03/Jun/2009:22:03:44 +0200] \&#8221;GET /?moo=blah/ HTTP/1.1\&#8221; 304 -\n&#8221;)</p>
<p>  1  17719                     write:return write(&#8221;[03/Jun/2009:22:03:44 +0200] ::1 TLSv1 DHE-RSA-AES256-SHA \&#8221;GET /?moo=blah/ HTTP/1.1\&#8221; -\n&#8221;)</p>
<p>(Both are still calls to the log write, but with more messing about you should get what you need?)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Making Apache leak behind SSL by Tom</title>
		<link>http://www.tomwells.org/?p=67#comment-529</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Wed, 03 Jun 2009 16:06:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=67#comment-529</guid>
		<description>Ha! This is exactly the kind of perception I expect to blow out of the water with this research. I admit that scraping apache's memory is hard, but I think you might be surprised how close I am. I'm already dumping the SSL handshake + encrypted conversation, and because I'm assuming the machine is compromised, access to and use of the private key is all I need to start decrypting.</description>
		<content:encoded><![CDATA[<p>Ha! This is exactly the kind of perception I expect to blow out of the water with this research. I admit that scraping apache&#8217;s memory is hard, but I think you might be surprised how close I am. I&#8217;m already dumping the SSL handshake + encrypted conversation, and because I&#8217;m assuming the machine is compromised, access to and use of the private key is all I need to start decrypting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Making Apache leak behind SSL by Dominic White</title>
		<link>http://www.tomwells.org/?p=67#comment-528</link>
		<dc:creator>Dominic White</dc:creator>
		<pubDate>Wed, 03 Jun 2009 15:25:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=67#comment-528</guid>
		<description>Yeah, freeze the ram with liquid nitrogen and use an electron microscope to see if you can get it out of memory, they both about equally likely as an attack vector :P</description>
		<content:encoded><![CDATA[<p>Yeah, freeze the ram with liquid nitrogen and use an electron microscope to see if you can get it out of memory, they both about equally likely as an attack vector :P</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on I&#8217;m a mechanic by Tom</title>
		<link>http://www.tomwells.org/?p=65#comment-118</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Tue, 02 Dec 2008 12:42:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=65#comment-118</guid>
		<description>What a typical "Duty Fulfiller" comment. In my defense it only scraped the first page, it's not clever enough to crawl the entire site. Now let me get back to my mechanic'ing...</description>
		<content:encoded><![CDATA[<p>What a typical &#8220;Duty Fulfiller&#8221; comment. In my defense it only scraped the first page, it&#8217;s not clever enough to crawl the entire site. Now let me get back to my mechanic&#8217;ing&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on I&#8217;m a mechanic by Dominic White</title>
		<link>http://www.tomwells.org/?p=65#comment-117</link>
		<dc:creator>Dominic White</dc:creator>
		<pubDate>Tue, 02 Dec 2008 04:57:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=65#comment-117</guid>
		<description>You're tenth entry and you're already devolving into survey reposts. It's the America, quick come back.</description>
		<content:encoded><![CDATA[<p>You&#8217;re tenth entry and you&#8217;re already devolving into survey reposts. It&#8217;s the America, quick come back.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Chrome Wars by German Gov says Google is the Devil; SRWare performs exorcism - Dominic White</title>
		<link>http://www.tomwells.org/?p=61#comment-45</link>
		<dc:creator>German Gov says Google is the Devil; SRWare performs exorcism - Dominic White</dc:creator>
		<pubDate>Wed, 24 Sep 2008 20:20:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.tomwells.org/?p=61#comment-45</guid>
		<description>[...]    My tin foil, now covered in joyous spittle, reflects the news that I'm not crazy (and neither is Tom). In reaction, SRWare provides Iron, which according to downloadsquad had none of the privacy [...]</description>
		<content:encoded><![CDATA[<p>[...]    My tin foil, now covered in joyous spittle, reflects the news that I&#8217;m not crazy (and neither is Tom). In reaction, SRWare provides Iron, which according to downloadsquad had none of the privacy [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
