|
|
Log in / Subscribe / Register

Security

Tracing behind the firewall

January 10, 2007

This article was contributed by Jake Edge.

A new tool, 0trace, that can sometimes peek through a firewall and provide information about the hosts and addresses living behind it was recently released. The tool itself is in a rough, proof-of-concept form, but it can provide interesting results that are likely unexpected by the network administrator. A bit of a look at how 0trace accomplishes this feat requires a bit of firewall background as well.

Many firewalls use Network Address Translation (NAT) to multiplex multiple internal computers over one external, routable, IP address. When an internal host makes a connection to the outside world, the NAT device rewrites the addresses in the packets so that the external host believes it is talking to the firewall itself rather than the actual host (which is typically in the private, unroutable IP space). In order to do that, the NAT device records information about the connection: the IP addresses for the internal and external hosts as well as port information. It is this established connection table that 0trace exploits in order to do its work.

The basic scheme is much the same as traceroute in that 0trace sends packets with increasing time-to-live (TTL) values and listens to the ICMP "time exceeded" responses to determine the hosts that the packet has traversed. The difference is that 0trace uses an established connection to piggyback its probes on. Because many NAT implementations do not closely examine packets that are associated with an established connection, those responses, even from internal hosts, are forwarded along.

Users of traceroute are familiar with the '*' character that gets printed when there is no response from one of the hops; tracing a route these days typically ends in a series of hops without a response resulting in several rows of '* * *'. These are often systems that are behind firewalls which filter out the probe packets that traceroute sends because they are not associated with a connection that it knows about. The example in the announcement shows 0trace output from a scan of www.ebay.com with several internal IP addresses past the point where the traceroute output stops.

In order to run 0trace, one must first establish a connection with the host of interest. Using telnet to port 80 is one way to go about that; once the connection is established, the 0trace shell script is run. That script sets up a tcpdump to grab the traffic to and from the supplied IP address and then waits. The user must generate some traffic at this point and typing 'GET / HTTP/1.0' (followed by one return) is a good way to do that. 0trace analyzes the TCP packet dump to retrieve the sequence and ack numbers from the conversation; the shell script then passes those off to the 0trace C program (sendprobe). Using proper sequence/ack numbers from the established connection further disguises the 0trace traffic as a legitimate part of the conversation.

This technique is not new and the author, Michal Zalewski, credits a number of other people in the announcement and ensuing thread, but this is likely the first public implementation. The implementation is very dependent on the exact format of tcpdump output and is rather fragile because of that, but it is an interesting proof-of-concept. Zalewski invites interested people to improve upon it. Using it against hosts without their permission might be considered illegal in some jurisdictions; one should exercise care before using it. It does show a weakness in current NAT implementations that will likely need to be addressed.

Comments (8 posted)

New vulnerabilities

avahi: denial of service

Package(s):avahi CVE #(s):CVE-2006-6870
Created:January 5, 2007 Updated:January 15, 2007
Description: A flaw was discovered in Avahi's handling of compressed DNS packets. If a specially crafted reply were received over the network, the Avahi daemon would go into an infinite loop, causing a denial of service.
Alerts:
Fedora FEDORA-2007-019 avahi 2007-01-15
Mandriva MDKSA-2007:003 avahi 2007-01-08
Ubuntu USN-402-1 avahi 2007-01-05

Comments (none posted)

drupal: code injection

Package(s):drupal CVE #(s):
Created:January 10, 2007 Updated:January 10, 2007
Description: A failure to properly sanitize arguments allows an attacker to inject code into a Drupal system (advisory). There is also a denial of service vulnerability exploitable by users with the ability to post content on the site (advisory).
Alerts:
OpenPKG OpenPKG-SA-2007.003 drupal 2007-01-08

Comments (none posted)

fetchmail: password disclosure and DOS

Package(s):fetchmail CVE #(s):CVE-2006-5867 CVE-2006-5974
Created:January 10, 2007 Updated:March 16, 2007
Description: Fetchmail suffers from a password disclosure vulnerability due to a failure to use secure protocols (advisory) and a denial of service vulnerability (advisory).
Alerts:
SuSE SUSE-SR:2007:004 fetchmail, capi4hylafax, squirrelmail, rubygems, ruby, clamav 2007-03-16
Debian DSA-1259-1 fetchmail 2007-02-14
Red Hat RHSA-2007:0018-01 fetchmail 2007-01-31
Slackware SSA:2007-024-01 fetchmail 2007-01-25
Gentoo 200701-13 fetchmail 2007-01-22
Fedora FEDORA-2007-042 fetchmail 2007-01-16
Fedora FEDORA-2007-041 fetchmail 2007-01-16
Mandriva MDKSA-2007:016 fetchmail 2006-01-15
Ubuntu USN-405-1 fetchmail 2007-01-11
rPath rPSA-2007-0003-1 fetchmail 2007-01-09
OpenPKG OpenPKG-SA-2007.004 fetchmail 2007-01-08

Comments (none posted)

geoip: path traversal

Package(s):geoip CVE #(s):CVE-2007-0159
Created:January 10, 2007 Updated:January 24, 2007
Description: Geoip fails to do sanity checking on returned filenames, opening up a path traversal vulnerability.
Alerts:
Ubuntu USN-412-1 geoip 2007-01-23
Mandriva MDKSA-2007:004 geoip 2007-01-08

Comments (none posted)

kernel: multiple vulnerabilities

Package(s):kernel CVE #(s):CVE-2006-5749 CVE-2006-4814 CVE-2006-6106
Created:January 5, 2007 Updated:January 8, 2009
Description: A security issue has been reported in Linux kernel due to an error in drivers/isdn/i4l/isdn_ppp.c as the "isdn_ppp_ccp_reset_alloc_state()" function never initializes an event timer before scheduling it with the "add_timer()" function.

The mincore function in the kernel does not properly lock access to user space, which has unspecified impact and attack vectors, possibly related to a deadlock.

Another vulnerability has been reported in Linux kernel caused by a boundary error within the handling of incoming CAPI messages in net/bluetooth/cmtp/capi.c. This can be exploited to overwrite certain Kernel data structures.

Alerts:
Red Hat RHSA-2008:0787-01 kernel 2009-01-05
Red Hat RHSA-2009:0001-01 kernel 2009-01-08
CentOS CESA-2008:0211 kernel 2008-05-07
Red Hat RHSA-2008:0211-01 kernel 2008-05-07
Debian DSA-1503 kernel-source-2.4.27 2008-02-22
Debian DSA-1503-2 kernel-source-2.4.27 2008-03-06
SuSE SUSE-SA:2007:035 kernel 2007-06-14
SuSE SUSE-SA:2007:053 kernel 2007-10-12
Ubuntu USN-416-2 linux-restricted-modules-2.6.17 2007-03-01
Ubuntu USN-416-1 linux-source-2.6.12/2.6.15/2.6.17 2007-02-01
rPath rPSA-2007-0031-1 kernel 2007-02-09
Mandriva MDKSA-2007:040 kernel 2007-02-07
Red Hat RHSA-2007:0014-01 kernel 2007-01-30
Mandriva MDKSA-2007:025 kernel 2007-01-23
Fedora FEDORA-2007-058 kernel 2007-01-18
Mandriva MDKSA-2007:012 kernel 2006-01-12
Trustix TSLSA-2007-0002 kernel 2007-01-05

Comments (none posted)

krb5: uninitialized pointers

Package(s):krb5 CVE #(s):CVE-2006-6143 CVE-2006-3084
Created:January 10, 2007 Updated:July 7, 2010
Description: The kdamind daemon can, in some situations, perform operations on uninitialized pointers. This bug could conceivably open up the system to a code execution attack by an unauthenticated remote attacker, but it appears to be difficult to exploit. See this advisory for details.
Alerts:
Mandriva MDVSA-2010:129 heimdal 2010-07-07
Gentoo 200701-21 mit-krb5 2007-01-24
Ubuntu USN-408-1 krb5 2007-01-15
rPath rPSA-2007-0006-1 krb5 2007-01-11
Mandriva MDKSA-2007:008 krb5 2006-01-10
SuSE SUSE-SA:2007:004 krb5 2007-01-10
OpenPKG OpenPKG-SA-2007.006 kerberos 2007-01-10
Fedora FEDORA-2007-033 krb5 2007-01-09
Fedora FEDORA-2007-034 krb5 2007-01-09

Comments (1 posted)

openoffice.org: integer overflows

Package(s):openoffice.org CVE #(s):CVE-2006-5870
Created:January 4, 2007 Updated:January 13, 2007
Description: The OpenOffice.org WMF file processor has several integer overflow bugs. Maliciously crafted WMF files can be used to cause OpenOffice.org to execute arbitrary code when the files are opened by a user.
Alerts:
Gentoo 200701-07 openoffice-bin 2007-01-12
Ubuntu USN-406-1 openoffice.org/-amd64, openoffice.org2/-amd64 2007-01-12
Mandriva MDKSA-2007:006 openoffice.org 2007-01-10
rPath rPSA-2007-0001-1 openoffice.org 2007-01-08
Debian DSA-1246-1 openoffice.org 2007-01-08
SuSE SUSE-SA:2007:001 OpenOffice_org 2007-01-04
Red Hat RHSA-2007:0001-01 openoffice.org 2007-01-03

Comments (none posted)

proftpd: denial of service

Package(s):proftpd CVE #(s):CVE-2005-4816
Created:January 10, 2007 Updated:January 10, 2007
Description: The proftpd FTP server is vulnerable to a denial of service attack when Radius authentication is in use.
Alerts:
Debian DSA-1245-1 proftpd 2006-01-07

Comments (none posted)

wordpress: SQL injection

Package(s):wordpress CVE #(s):
Created:January 10, 2007 Updated:January 10, 2007
Description: Stefan Esser discovered an SQL injection vulnerability in wordpress exploitable through the use of different character sets.
Alerts:
OpenPKG OpenPKG-SA-2007.005 wordpress 2007-01-08

Comments (none posted)

X.org: integer overflows

Package(s):xorg, xorg-server CVE #(s):CVE-2006-6101 CVE-2006-6102 CVE-2006-6103
Created:January 10, 2007 Updated:March 8, 2007
Description: A number of integer overflows have turned up in the X.org server. Some of these overflows involve calls to alloca(), and thus make corruption of the stack relatively easy. This vulnerability is exploitable by anybody who can make a connection to the server, meaning that it is a local root exploit in most settings. See this advisory for details.
Alerts:
Slackware SSA:2007-066-02 x11 2007-03-08
Gentoo 200701-25 xorg-server 2007-01-27
Debian DSA-1249-1 xfree86 2007-01-15
SuSE SUSE-SA:2007:008 XFree86-server,xorg-x11-server,xloader 2007-01-12
rPath rPSA-2007-0005-1 x11 2007-01-09
Red Hat RHSA-2007:0002-01 XFree86 2007-01-10
Red Hat RHSA-2007:0003-01 X.org 2007-01-10
Mandriva MDKSA-2007-005 xorg-x11 2007-01-09
Fedora FEDORA-2007-035 xorg-x11-server 2007-01-09
Fedora FEDORA-2007-036 xorg-x11-server 2007-01-09
Ubuntu USN-403-1 xorg, xorg-server 2007-01-09

Comments (none posted)

Page editor: Jonathan Corbet
Next page: Kernel development>>


Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds