Re: Reducing java leakage in windows

2007-12-04 Thread Arrakis
In the latest build of xB Browser, if you foolishly trust metasploit to allow
scripts, you get the following results:

External Address206.57.47.50Browser (CONTROL)
Internal Host   192.168.0.4 Java(SUCCESS)
Internal Address192.168.0.4 Java(SUCCESS)
DNS Server (Java)   unknown Java(FAIL)
DNS Server (HTTP)   unknown Browser (FAIL)
External NAT (Java) x.x.x.x Java(SUCCESS)
External NAT (Flash)unknown Flash   (FAIL)



icmp30 wrote:
> How's it do against the decloak tests at metasploit?
> http://metasploit.com/research/misc/decloak/
> 
> 
> --- Arrakis <[EMAIL PROTECTED]> wrote:
> 
>> It appears that Java attacks for causing external IP data to be leaked
>> can be mitigated to some good degree. The upshot is that you can now run
>> Java applets that even when attempting to phone home directly (revealing
>> your IP), they are routed through the socks port and thus Tor or any
>> other socks speaking application. What we are doing is changing the
>> proxy settings of the Java Control Panel in windows. The following will
>> shortly be applied to xB Browser after testing, and I highly suggest it
>> for other proxy programs. Needs lots of testing of course, and I would
>> also like to know if Java applets can acquire the authority to modify
>> that file as well. May require administrative access, but I imagine
>> Vista will popup a priv escalation window. There are probably variations
>> in the directories and syntax if you are running JRE <1.4. A good
>> indicator of old versioning is to see if your shoes employ the use of
>> velcro, you have a pair of 'jams' in your closet, or you've found
>> yourself to be too legitimate to quit.
>>
>> Regards,
>> Steve Topletz
>>
>>
>> -
>>
>>
>> 1. Look for $APPDATA\Sun\Java\Deployment\deployment.properties
>> If there is no deployment.properties file there, try all administrative
>> usernames we can enumerate until we find the file. This is not a certianty.
>>
>> 2. Back up deployment.properties to a new file name.
>> 3. Open it up
>> 4. Read and store all lines beginning with "deployment.version"
>> 5. Read and store all lines beginning with "deployment.javapi"
>> 6. Close the file
>> 7. Create a new file deployment.properties where the old one was.
>> 8. Open the file
>> 9. Insert the following lines
>>
>>  #deployment.properties
>>  deployment.system.tray.icon=false
>>  deployment.browser.vm.iexplorer=false
>>  deployment.proxy.socks.host=localhost
>>  deployment.proxy.type=1
>>  deployment.proxy.same=true
>>  deployment.browser.vm.mozilla=false
>>  deployment.capture.mime.types=true
>>  deployment.proxy.socks.port=8080
>>
>> (where port 8080 is your socks port. in Tor, use 9050 by default)
>>
>> 10. Write all previously stored lines from old opened file.
>> 11. Close the new deployment.properties
>>
>> Continue starting your proxy program
>> On program exit...
>>
>> 12. Delete the deployment.properties file we created.
>> 13. Restore the deployment.properties file we backed up.
>>
> 
> 
> 
>   
> 
> Be a better pen pal. 
> Text or chat with friends inside Yahoo! Mail. See how.  
> http://overview.mail.yahoo.com/
> 


Re: Reducing java leakage in windows

2007-12-04 Thread icmp30
How's it do against the decloak tests at metasploit?
http://metasploit.com/research/misc/decloak/


--- Arrakis <[EMAIL PROTECTED]> wrote:

> It appears that Java attacks for causing external IP data to be leaked
> can be mitigated to some good degree. The upshot is that you can now run
> Java applets that even when attempting to phone home directly (revealing
> your IP), they are routed through the socks port and thus Tor or any
> other socks speaking application. What we are doing is changing the
> proxy settings of the Java Control Panel in windows. The following will
> shortly be applied to xB Browser after testing, and I highly suggest it
> for other proxy programs. Needs lots of testing of course, and I would
> also like to know if Java applets can acquire the authority to modify
> that file as well. May require administrative access, but I imagine
> Vista will popup a priv escalation window. There are probably variations
> in the directories and syntax if you are running JRE <1.4. A good
> indicator of old versioning is to see if your shoes employ the use of
> velcro, you have a pair of 'jams' in your closet, or you've found
> yourself to be too legitimate to quit.
> 
> Regards,
> Steve Topletz
> 
> 
> -
> 
> 
> 1. Look for $APPDATA\Sun\Java\Deployment\deployment.properties
> If there is no deployment.properties file there, try all administrative
> usernames we can enumerate until we find the file. This is not a certianty.
> 
> 2. Back up deployment.properties to a new file name.
> 3. Open it up
> 4. Read and store all lines beginning with "deployment.version"
> 5. Read and store all lines beginning with "deployment.javapi"
> 6. Close the file
> 7. Create a new file deployment.properties where the old one was.
> 8. Open the file
> 9. Insert the following lines
> 
>  #deployment.properties
>  deployment.system.tray.icon=false
>  deployment.browser.vm.iexplorer=false
>  deployment.proxy.socks.host=localhost
>  deployment.proxy.type=1
>  deployment.proxy.same=true
>  deployment.browser.vm.mozilla=false
>  deployment.capture.mime.types=true
>  deployment.proxy.socks.port=8080
> 
> (where port 8080 is your socks port. in Tor, use 9050 by default)
> 
> 10. Write all previously stored lines from old opened file.
> 11. Close the new deployment.properties
> 
> Continue starting your proxy program
> On program exit...
> 
> 12. Delete the deployment.properties file we created.
> 13. Restore the deployment.properties file we backed up.
> 



  

Be a better pen pal. 
Text or chat with friends inside Yahoo! Mail. See how.  
http://overview.mail.yahoo.com/


Re: Reducing java leakage in windows

2007-12-03 Thread Arrakis
I can confirm that this code does indeed expose the external IP address,
despite the setting in JCP/deployment.properties.

James Muir wrote:
> [EMAIL PROTECTED] wrote:
>> On Sun, Dec 02, 2007 at 11:35:49PM -0800, [EMAIL PROTECTED] wrote
>> 0.9K bytes in 21 lines about:
>> : I remember these tests. I can't seem to find a copy of the applets you
>> : used. Are you willing to publish them? Or point me in the right
>> : direction should I want to try implementing them?
>>
>> http://exitthematrix.dod.net/matrixmirror/ar01s05.html  Jump down to the
>> "Web bugs" section.  It references
>> http://exitthematrix.dod.net/matrixmirror/misc/superipbug.java from
>> http://www.inet-police.com/cgi-bin/env.cgi
>>
>> There is another more thorough test of a java applet completely ignoring
>> the jvm proxy configuration.  However, my google-fu is weak.
> 
> When I read that example it seems to indicate that the applet reads your
> IP address locally and then submits it back to the originating web site
> through the proxy.  The applet does not seem to ignore proxy settings
> (i.e. it does not seem to open a non-proxied connnection); it just
> submits identifying information through the proxied connection.
> 
> Jacob, Steve: I don't want to publish my complete ready-to-run code on
> the list, but here is an excerpt:
> 
> /***/
> 
> Socket socket_to_originating_host = null;
> int tcp_port = 80;
> InetSocketAddress originating_host =
>   new InetSocketAddress(getCodeBase().getHost(), tcp_port);
> 
> try {
>   socket_to_originating_host = new Socket(Proxy.NO_PROXY);
>   // timeout is in milliseconds
>   socket_to_originating_host.connect(originating_host, 1);
>   System.out.println(
>"Socket Local Address = " +
>socket_to_originating_host.getLocalAddress().getHostAddress());
> }
> 
> catch (Exception e) {
>   System.out.println("EXCEPTION THROWN:  " + e);
>   System.exit(1);
> 
> }
> 
> //
> 
> More details can be found in the paper "Internet Geolocation" on my web
> site.
> 
> -James
> 
> 
> 
> 
> 


Re: Reducing java leakage in windows

2007-12-03 Thread James Muir

Arrakis wrote:

So what we want to see is an applet running around the
deployment.properties setting, exposing the external network IP.


I agree.  This is what my applet does.

-James


Re: Reducing java leakage in windows

2007-12-03 Thread Arrakis
Okay pause.

We need to distinguish here because ya'll are talking about different
terms. Internal network IP (192.168.x.x, etc), external IP (your public
IP address), and DNS requests (locally vs remote through socks). The
internal network IP probably isn't a terribly valuable piece of
information to most snoops. The local DNS is an issue because you're
telling your local network/ISP or whomever what addresses  you're
looking at. The big issue is the external network IP, which is what the
public sees and identifies the home user's specific computer.

So what we want to see is an applet running around the
deployment.properties setting, exposing the external network IP. The DNS
leakage should also be investigate of course.

Steve



James Muir wrote:
> [EMAIL PROTECTED] wrote:
>> On Sun, Dec 02, 2007 at 11:35:49PM -0800, [EMAIL PROTECTED] wrote
>> 0.9K bytes in 21 lines about:
>> : I remember these tests. I can't seem to find a copy of the applets you
>> : used. Are you willing to publish them? Or point me in the right
>> : direction should I want to try implementing them?
>>
>> http://exitthematrix.dod.net/matrixmirror/ar01s05.html  Jump down to the
>> "Web bugs" section.  It references
>> http://exitthematrix.dod.net/matrixmirror/misc/superipbug.java from
>> http://www.inet-police.com/cgi-bin/env.cgi
>>
>> There is another more thorough test of a java applet completely ignoring
>> the jvm proxy configuration.  However, my google-fu is weak.
> 
> When I read that example it seems to indicate that the applet reads your
> IP address locally and then submits it back to the originating web site
> through the proxy.  The applet does not seem to ignore proxy settings
> (i.e. it does not seem to open a non-proxied connnection); it just
> submits identifying information through the proxied connection.
> 
> Jacob, Steve: I don't want to publish my complete ready-to-run code on
> the list, but here is an excerpt:
> 
> /***/
> 
> Socket socket_to_originating_host = null;
> int tcp_port = 80;
> InetSocketAddress originating_host =
>   new InetSocketAddress(getCodeBase().getHost(), tcp_port);
> 
> try {
>   socket_to_originating_host = new Socket(Proxy.NO_PROXY);
>   // timeout is in milliseconds
>   socket_to_originating_host.connect(originating_host, 1);
>   System.out.println(
>"Socket Local Address = " +
>socket_to_originating_host.getLocalAddress().getHostAddress());
> }
> 
> catch (Exception e) {
>   System.out.println("EXCEPTION THROWN:  " + e);
>   System.exit(1);
> 
> }
> 
> //
> 
> More details can be found in the paper "Internet Geolocation" on my web
> site.
> 
> -James
> 
> 
> 
> 
> 


Re: Reducing java leakage in windows

2007-12-03 Thread James Muir

[EMAIL PROTECTED] wrote:

On Sun, Dec 02, 2007 at 11:35:49PM -0800, [EMAIL PROTECTED] wrote 0.9K bytes in 
21 lines about:
: I remember these tests. I can't seem to find a copy of the applets you
: used. Are you willing to publish them? Or point me in the right
: direction should I want to try implementing them?

http://exitthematrix.dod.net/matrixmirror/ar01s05.html  Jump down to the
"Web bugs" section.  It references
http://exitthematrix.dod.net/matrixmirror/misc/superipbug.java from
http://www.inet-police.com/cgi-bin/env.cgi

There is another more thorough test of a java applet completely ignoring
the jvm proxy configuration.  However, my google-fu is weak.


When I read that example it seems to indicate that the applet reads your 
IP address locally and then submits it back to the originating web site 
through the proxy.  The applet does not seem to ignore proxy settings 
(i.e. it does not seem to open a non-proxied connnection); it just 
submits identifying information through the proxied connection.


Jacob, Steve: I don't want to publish my complete ready-to-run code on 
the list, but here is an excerpt:


/***/

Socket socket_to_originating_host = null;
int tcp_port = 80;
InetSocketAddress originating_host =
  new InetSocketAddress(getCodeBase().getHost(), tcp_port);

try {
  socket_to_originating_host = new Socket(Proxy.NO_PROXY);
  // timeout is in milliseconds
  socket_to_originating_host.connect(originating_host, 1);
  System.out.println(
   "Socket Local Address = " +
   socket_to_originating_host.getLocalAddress().getHostAddress());
}

catch (Exception e) {
  System.out.println("EXCEPTION THROWN:  " + e);
  System.exit(1);

}

//

More details can be found in the paper "Internet Geolocation" on my web 
site.


-James






Re: Reducing java leakage in windows

2007-12-03 Thread phobos
On Sun, Dec 02, 2007 at 11:35:49PM -0800, [EMAIL PROTECTED] wrote 0.9K bytes in 
21 lines about:
: I remember these tests. I can't seem to find a copy of the applets you
: used. Are you willing to publish them? Or point me in the right
: direction should I want to try implementing them?

http://exitthematrix.dod.net/matrixmirror/ar01s05.html  Jump down to the
"Web bugs" section.  It references
http://exitthematrix.dod.net/matrixmirror/misc/superipbug.java from
http://www.inet-police.com/cgi-bin/env.cgi

There is another more thorough test of a java applet completely ignoring
the jvm proxy configuration.  However, my google-fu is weak.

-- 
Andrew


Re: Reducing java leakage in windows

2007-12-02 Thread Jacob Appelbaum
James Muir wrote:
> Arrakis wrote:
>> It appears that Java attacks for causing external IP data to be leaked
>> can be mitigated to some good degree. The upshot is that you can now run
>> Java applets that even when attempting to phone home directly (revealing
>> your IP), they are routed through the socks port and thus Tor or any
>> other socks speaking application. What we are doing is changing the
>> proxy settings of the Java Control Panel in windows.
> 
> Some time ago, I conducted several tests that demonstrated that Java
> Applets have the ability to disregard proxy settings in the Java Control
> and open direct non-proxied connections.  I do not think what you have
> described will work.
> 

I remember these tests. I can't seem to find a copy of the applets you
used. Are you willing to publish them? Or point me in the right
direction should I want to try implementing them?

Regards,
Jacob


Re: Reducing java leakage in windows

2007-12-02 Thread Arrakis
James,

  Do you have a copy of these tests? I'm definitely interested in seeing
it. However, I am NOT posing this as a solution to java issues, just
another defense layer. This effectively keeps non-malicious applets from
surreptitious leakage. I highly doubt a determined application would be
cornered in, but most seem to be. Regarding DNS, well that is again
another issue to be looked at, unfortunately.

Steve

James Muir wrote:
> Arrakis wrote:
>> It appears that Java attacks for causing external IP data to be leaked
>> can be mitigated to some good degree. The upshot is that you can now run
>> Java applets that even when attempting to phone home directly (revealing
>> your IP), they are routed through the socks port and thus Tor or any
>> other socks speaking application. What we are doing is changing the
>> proxy settings of the Java Control Panel in windows.
> 
> Some time ago, I conducted several tests that demonstrated that Java
> Applets have the ability to disregard proxy settings in the Java Control
> and open direct non-proxied connections.  I do not think what you have
> described will work.
> 
> -James
> 


Re: Reducing java leakage in windows

2007-12-02 Thread James Muir

Arrakis wrote:

It appears that Java attacks for causing external IP data to be leaked
can be mitigated to some good degree. The upshot is that you can now run
Java applets that even when attempting to phone home directly (revealing
your IP), they are routed through the socks port and thus Tor or any
other socks speaking application. What we are doing is changing the
proxy settings of the Java Control Panel in windows.


Some time ago, I conducted several tests that demonstrated that Java 
Applets have the ability to disregard proxy settings in the Java Control 
and open direct non-proxied connections.  I do not think what you have 
described will work.


-James


Re: Reducing java leakage in windows

2007-12-02 Thread coderman
On Dec 2, 2007 11:02 AM, Arrakis <[EMAIL PROTECTED]> wrote:
> It appears that Java attacks for causing external IP data to be leaked
> can be mitigated to some good degree. The upshot is that you can now run
> Java applets that even when attempting to phone home directly (revealing
> your IP), they are routed through the socks port
> ... [ discussion of deployment.properties for socks setup ]

the last time i looked into this (over a year ago) the socks proxy
settings, either 4 or 5, still did name lookup external to the proxy
(not 4a nor 5 with names).  this means the same DNS resolution tricks
to leak your IP will work, even if the simpler "open a TCP sock to
eve" does not.

i think HD Moore's revealer used this as one of the tricks, so it
might be worth checking against that with an updated
deployment.properties to confirm.

if you really want to use java you should use it behind a transparent Tor proxy.

best regards,


Reducing java leakage in windows

2007-12-02 Thread Arrakis
It appears that Java attacks for causing external IP data to be leaked
can be mitigated to some good degree. The upshot is that you can now run
Java applets that even when attempting to phone home directly (revealing
your IP), they are routed through the socks port and thus Tor or any
other socks speaking application. What we are doing is changing the
proxy settings of the Java Control Panel in windows. The following will
shortly be applied to xB Browser after testing, and I highly suggest it
for other proxy programs. Needs lots of testing of course, and I would
also like to know if Java applets can acquire the authority to modify
that file as well. May require administrative access, but I imagine
Vista will popup a priv escalation window. There are probably variations
in the directories and syntax if you are running JRE <1.4. A good
indicator of old versioning is to see if your shoes employ the use of
velcro, you have a pair of 'jams' in your closet, or you've found
yourself to be too legitimate to quit.

Regards,
Steve Topletz


-


1. Look for $APPDATA\Sun\Java\Deployment\deployment.properties
If there is no deployment.properties file there, try all administrative
usernames we can enumerate until we find the file. This is not a certianty.

2. Back up deployment.properties to a new file name.
3. Open it up
4. Read and store all lines beginning with "deployment.version"
5. Read and store all lines beginning with "deployment.javapi"
6. Close the file
7. Create a new file deployment.properties where the old one was.
8. Open the file
9. Insert the following lines

 #deployment.properties
 deployment.system.tray.icon=false
 deployment.browser.vm.iexplorer=false
 deployment.proxy.socks.host=localhost
 deployment.proxy.type=1
 deployment.proxy.same=true
 deployment.browser.vm.mozilla=false
 deployment.capture.mime.types=true
 deployment.proxy.socks.port=8080

(where port 8080 is your socks port. in Tor, use 9050 by default)

10. Write all previously stored lines from old opened file.
11. Close the new deployment.properties

Continue starting your proxy program
On program exit...

12. Delete the deployment.properties file we created.
13. Restore the deployment.properties file we backed up.