Advertisement
Lulz-Tigre

CUPP

Jul 12th, 2016
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 55.03 KB | None | 0 0
  1. #!/usr/bin/python
  2. #
  3. #  [Program]
  4. #
  5. #  CUPP 3.1.0-alpha
  6. #  Common User Passwords Profiler
  7. #
  8. #
  9. #
  10. #  [Author]
  11. #
  12. #  Muris Kurgas aka j0rgan
  13. #  j0rgan [at] remote-exploit [dot] org
  14. #  http://www.remote-exploit.org
  15. #  http://www.azuzi.me
  16. #
  17. #
  18. #
  19. #  [License]
  20. #
  21. #  This program is free software; you can redistribute it and/or modify
  22. #  it under the terms of the GNU General Public License as published by
  23. #  the Free Software Foundation; either version 3 of the License, or
  24. #  any later version.
  25. #
  26. #  This program is distributed in the hope that it will be useful,
  27. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  28. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  29. #  GNU General Public License for more details.
  30. #
  31. #  You should have received a copy of the GNU General Public License
  32. #  along with this program; if not, write to the Free Software
  33. #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  34. #
  35. #  See 'docs/LICENSE' for more information.
  36.  
  37. import sys
  38. import os
  39. import ftplib
  40. import ConfigParser
  41. import urllib
  42. import gzip
  43. import csv
  44.  
  45.  
  46. # Reading configuration file...
  47. config = ConfigParser.ConfigParser()
  48. config.read('cupp.cfg')
  49.  
  50. years = config.get('years', 'years').split(',')
  51. chars = config.get('specialchars', 'chars').split(',')
  52.  
  53. numfrom = config.getint('nums','from')
  54. numto = config.getint('nums','to')
  55.  
  56. wcfrom = config.getint('nums','wcfrom')
  57. wcto = config.getint('nums','wcto')
  58.  
  59. threshold = config.getint('nums','threshold')
  60.  
  61. # 1337 mode configs, well you can add more lines if you add it to config file too.
  62. # You will need to add more lines in two places in cupp.py code as well...
  63. a = config.get('leet','a')
  64. i = config.get('leet','i')
  65. e = config.get('leet','e')
  66. t = config.get('leet','t')
  67. o = config.get('leet','o')
  68. s = config.get('leet','s')
  69. g = config.get('leet','g')
  70. z = config.get('leet','z')
  71.  
  72.  
  73. # for concatenations...
  74.  
  75. def concats(seq, start, stop):
  76.     for mystr in seq:
  77.         for num in xrange(start, stop):
  78.             yield mystr + str(num)
  79.  
  80.  
  81. # for sorting and making combinations...
  82.  
  83. def komb(seq, start, special = ""):
  84.     for mystr in seq:
  85.         for mystr1 in start:
  86.             yield mystr + special + mystr1
  87.  
  88. # print list to file counting words
  89.  
  90. def print_to_file(filename, unique_list_finished):
  91.     f = open ( filename, 'w' )
  92.     unique_list_finished.sort()
  93.     f.write (os.linesep.join(unique_list_finished))
  94.     f = open ( filename, 'r' )
  95.     lines = 0
  96.     for line in f:
  97.         lines += 1
  98.     f.close()
  99.     print "[+] Saving dictionary to \033[1;31m"+filename+"\033[1;m, counting \033[1;31m"+str(lines)+" words.\033[1;m"
  100.     print "[+] Now load your pistolero with \033[1;31m"+filename+"\033[1;m and shoot! Good luck!"
  101.  
  102. if len(sys.argv) < 2 or sys.argv[1] == '-h':
  103.     print " ___________ "
  104.     print " \033[07m  cupp.py! \033[27m                # Common"
  105.     print "      \                    # User"
  106.     print "       \  \033[1;31m,__,\033[1;m             # Passwords"
  107.     print "        \ \033[1;31m(\033[1;moo\033[1;31m)____\033[1;m         # Profiler"
  108.     print "           \033[1;31m(__)    )\ \033[1;m  "
  109.     print "           \033[1;31m   ||--|| \033[1;m\033[05m*\033[25m\033[1;m      [ Muris Kurgas | j0rgan@remote-exploit.org ]\r\n\r\n"
  110.  
  111.     print " [ Options ]\r\n"
  112.     print " -h  You are looking at it baby! :)"
  113.     print "          For more help take a look in docs/README"
  114.     print "      Global configuration file is cupp.cfg\n"
  115.  
  116.     print " -i  Interactive questions for user password profiling\r\n"
  117.  
  118.     print " -w  Use this option to improve existing dictionary,"
  119.     print "      or WyD.pl output to make some pwnsauce\r\n"
  120.  
  121.     print " -l  Download huge wordlists from repository\r\n"
  122.     print " -a  Parse default usernames and passwords directly from Alecto DB."
  123.     print "      Project Alecto uses purified databases of Phenoelit and CIRT"
  124.     print "      which where merged and enhanced.\r\n"
  125.     print " -v  Version of the program\r\n"
  126.     exit()
  127.  
  128. elif sys.argv[1] == '-v':
  129.     print "\r\n \033[1;31m[ cupp.py ]  v3.1.0-alpha\033[1;m\r\n"
  130.     print " * Hacked up by j0rgan - j0rgan@remote-exploit.org"
  131.     print " * http://www.remote-exploit.og\r\n"
  132.     print " Take a look ./README.md file for more info about the program\r\n"
  133.     exit()
  134.  
  135.  
  136. elif sys.argv[1] == '-w':
  137.     if len(sys.argv) < 3:
  138.         print "\r\n[Usage]: "+sys.argv[0]+"  -w  [FILENAME]\r\n"
  139.         exit()
  140.     fajl = open(sys.argv[2], "r")
  141.     listic = fajl.readlines()
  142.     linije = 0
  143.     for line in listic:
  144.         linije += 1
  145.  
  146.     listica = []
  147.     for x in listic:
  148.         listica += x.split()
  149.  
  150.     print "\r\n      *************************************************"
  151.     print "      *                    \033[1;31mWARNING!!!\033[1;m                 *"
  152.     print "      *         Using large wordlists in some         *"
  153.     print "      *       options bellow is NOT recommended!      *"
  154.     print "      *************************************************\r\n"
  155.  
  156.     conts = raw_input("> Do you want to concatenate all words from wordlist? Y/[N]: ").lower()
  157.  
  158.  
  159.  
  160.     if conts == "y" and linije > threshold:
  161.         print "\r\n[-] Maximum number of words for concatenation is "+str(threshold)
  162.         print "[-] Check configuration file for increasing this number.\r\n"
  163.         conts = raw_input("> Do you want to concatenate all words from wordlist? Y/[N]: ").lower()
  164.     conts = conts
  165.     cont = ['']
  166.     if conts == "y":
  167.         for cont1 in listica:
  168.             for cont2 in listica:
  169.                 if listica.index(cont1) != listica.index(cont2):
  170.                     cont.append(cont1+cont2)
  171.  
  172.     spechars = ['']
  173.     spechars1 = raw_input("> Do you want to add special chars at the end of words? Y/[N]: ").lower()
  174.     if spechars1 == "y":
  175.         for spec1 in chars:
  176.             spechars.append(spec1)
  177.             for spec2 in chars:
  178.                 spechars.append(spec1+spec2)
  179.                 for spec3 in chars:
  180.                     spechars.append(spec1+spec2+spec3)
  181.  
  182.     randnum = raw_input("> Do you want to add some random numbers at the end of words? Y/[N]:").lower()
  183.     leetmode = raw_input("> Leet mode? (i.e. leet = 1337) Y/[N]: ").lower()
  184.  
  185.  
  186.     kombinacija1 = list(komb(listica, years))
  187.     kombinacija2 = ['']
  188.     if conts == "y":
  189.         kombinacija2 = list(komb(cont, years))
  190.     kombinacija3 = ['']
  191.     kombinacija4 = ['']
  192.     if spechars1 == "y":
  193.         kombinacija3 = list(komb(listica, spechars))
  194.         if conts == "y":
  195.             kombinacija4 = list(komb(cont, spechars))
  196.     kombinacija5 = ['']
  197.     kombinacija6 = ['']
  198.     if randnum == "y":
  199.         kombinacija5 = list(concats(listica, numfrom, numto))
  200.         if conts == "y":
  201.             kombinacija6 = list(concats(cont, numfrom, numto))
  202.  
  203.     print "\r\n[+] Now making a dictionary..."
  204.  
  205.     print "[+] Sorting list and removing duplicates..."
  206.  
  207.     komb_unique1 = dict.fromkeys(kombinacija1).keys()
  208.     komb_unique2 = dict.fromkeys(kombinacija2).keys()
  209.     komb_unique3 = dict.fromkeys(kombinacija3).keys()
  210.     komb_unique4 = dict.fromkeys(kombinacija4).keys()
  211.     komb_unique5 = dict.fromkeys(kombinacija5).keys()
  212.     komb_unique6 = dict.fromkeys(kombinacija6).keys()
  213.     komb_unique7 = dict.fromkeys(listica).keys()
  214.     komb_unique8 = dict.fromkeys(cont).keys()
  215.  
  216.     uniqlist = komb_unique1+komb_unique2+komb_unique3+komb_unique4+komb_unique5+komb_unique6+komb_unique7+komb_unique8
  217.  
  218.     unique_lista = dict.fromkeys(uniqlist).keys()
  219.     unique_leet = []
  220.     if leetmode == "y":
  221.         for x in unique_lista: # if you want to add more leet chars, you will need to add more lines in cupp.cfg too...
  222.             x = x.replace('a',a)
  223.             x = x.replace('i',i)
  224.             x = x.replace('e',e)
  225.             x = x.replace('t',t)
  226.             x = x.replace('o',o)
  227.             x = x.replace('s',s)
  228.             x = x.replace('g',g)
  229.             x = x.replace('z',z)
  230.             unique_leet.append(x)
  231.  
  232.     unique_list = unique_lista + unique_leet
  233.  
  234.     unique_list_finished = []
  235.  
  236.     unique_list_finished = [x for x in unique_list if len(x) > wcfrom and len(x) < wcto]
  237.  
  238.     print_to_file(sys.argv[2]+'.cupp.txt', unique_list_finished)
  239.  
  240.     fajl.close()
  241.     exit()
  242.  
  243.  
  244.  
  245. elif sys.argv[1] == '-i':
  246.     print "\r\n[+] Insert the informations about the victim to make a dictionary"
  247.     print "[+] If you don't know all the info, just hit enter when asked! ;)\r\n"
  248.  
  249. # We need some informations first!
  250.  
  251.     name = raw_input("> First Name: ").lower()
  252.     while len(name) == 0 or name == " " or name == "  " or name == "   ":
  253.         print "\r\n[-] You must enter a name at least!"
  254.         name = raw_input("> Name: ").lower()
  255.     name = str(name)
  256.  
  257.     surname = raw_input("> Surname: ").lower()
  258.     nick = raw_input("> Nickname: ").lower()
  259.     birthdate = raw_input("> Birthdate (DDMMYYYY): ")
  260.     while len(birthdate) != 0 and len(birthdate) != 8:
  261.         print "\r\n[-] You must enter 8 digits for birthday!"
  262.         birthdate = raw_input("> Birthdate (DDMMYYYY): ")
  263.     birthdate = str(birthdate)
  264.  
  265.     print "\r\n"
  266.  
  267.     wife = raw_input("> Partners) name: ").lower()
  268.     wifen = raw_input("> Partners) nickname: ").lower()
  269.     wifeb = raw_input("> Partners) birthdate (DDMMYYYY): ")
  270.     while len(wifeb) != 0 and len(wifeb) != 8:
  271.         print "\r\n[-] You must enter 8 digits for birthday!"
  272.         wifeb = raw_input("> Partners birthdate (DDMMYYYY): ")
  273.     wifeb = str(wifeb)
  274.     print "\r\n"
  275.  
  276.     kid = raw_input("> Child's name: ").lower()
  277.     kidn = raw_input("> Child's nickname: ").lower()
  278.     kidb = raw_input("> Child's birthdate (DDMMYYYY): ")
  279.     while len(kidb) != 0 and len(kidb) != 8:
  280.         print "\r\n[-] You must enter 8 digits for birthday!"
  281.         kidb = raw_input("> Child's birthdate (DDMMYYYY): ")
  282.     kidb = str(kidb)
  283.     print "\r\n"
  284.  
  285.     pet = raw_input("> Pet's name: ").lower()
  286.     company = raw_input("> Company name: ").lower()
  287.     print "\r\n"
  288.  
  289.     words = ['']
  290.     words1 = raw_input("> Do you want to add some key words about the victim? Y/[N]: ").lower()
  291.     words2 = ""
  292.     if words1 == "y":
  293.         words2 = raw_input("> Please enter the words, separated by comma. [i.e. hacker,juice,black], spaces will be removed: ").replace(" ","")
  294.     words = words2.split(",")
  295.  
  296.     spechars = ['']
  297.     spechars1 = raw_input("> Do you want to add special chars at the end of words? Y/[N]: ").lower()
  298.     if spechars1 == "y":
  299.         for spec1 in chars:
  300.             spechars.append(spec1)
  301.             for spec2 in chars:
  302.                 spechars.append(spec1+spec2)
  303.                 for spec3 in chars:
  304.                     spechars.append(spec1+spec2+spec3)
  305.  
  306.     randnum = raw_input("> Do you want to add some random numbers at the end of words? Y/[N]:").lower()
  307.     leetmode = raw_input("> Leet mode? (i.e. leet = 1337) Y/[N]: ").lower()
  308.  
  309.  
  310.     print "\r\n[+] Now making a dictionary..."
  311.  
  312.  
  313. # Now me must do some string modifications...
  314.  
  315. # Birthdays first
  316.  
  317.     birthdate_yy = birthdate[-2:]
  318.     birthdate_yyy = birthdate[-3:]
  319.     birthdate_yyyy = birthdate[-4:]
  320.     birthdate_xd = birthdate[1:2]
  321.     birthdate_xm = birthdate[3:4]
  322.     birthdate_dd = birthdate[:2]
  323.     birthdate_mm = birthdate[2:4]
  324.  
  325.     wifeb_yy = wifeb[-2:]
  326.     wifeb_yyy = wifeb[-3:]
  327.     wifeb_yyyy = wifeb[-4:]
  328.     wifeb_xd = wifeb[1:2]
  329.     wifeb_xm = wifeb[3:4]
  330.     wifeb_dd = wifeb[:2]
  331.     wifeb_mm = wifeb[2:4]
  332.  
  333.     kidb_yy = kidb[-2:]
  334.     kidb_yyy = kidb[-3:]
  335.     kidb_yyyy = kidb[-4:]
  336.     kidb_xd = kidb[1:2]
  337.     kidb_xm = kidb[3:4]
  338.     kidb_dd = kidb[:2]
  339.     kidb_mm = kidb[2:4]
  340.  
  341.  
  342.     # Convert first letters to uppercase...
  343.  
  344.     nameup = name.title()
  345.     surnameup = surname.title()
  346.     nickup = nick.title()
  347.     wifeup = wife.title()
  348.     wifenup = wifen.title()
  349.     kidup = kid.title()
  350.     kidnup = kidn.title()
  351.     petup = pet.title()
  352.     companyup = company.title()
  353.  
  354.     wordsup = []
  355.     wordsup = map(str.title, words)
  356.  
  357.     word = words+wordsup
  358.  
  359.     # reverse a name
  360.  
  361.     rev_name = name[::-1]
  362.     rev_nameup = nameup[::-1]
  363.     rev_nick = nick[::-1]
  364.     rev_nickup = nickup[::-1]
  365.     rev_wife = wife[::-1]
  366.     rev_wifeup = wifeup[::-1]
  367.     rev_kid = kid[::-1]
  368.     rev_kidup = kidup[::-1]
  369.  
  370.     reverse = [rev_name, rev_nameup, rev_nick, rev_nickup, rev_wife, rev_wifeup, rev_kid, rev_kidup]
  371.     rev_n = [rev_name, rev_nameup, rev_nick, rev_nickup]
  372.     rev_w = [rev_wife, rev_wifeup]
  373.     rev_k = [rev_kid, rev_kidup]
  374.     # Let's do some serious work! This will be a mess of code, but... who cares? :)
  375.  
  376.     # Birthdays combinations
  377.  
  378.     bds = [birthdate_yy, birthdate_yyy, birthdate_yyyy, birthdate_xd, birthdate_xm, birthdate_dd, birthdate_mm]
  379.  
  380.     bdss = []
  381.  
  382.     for bds1 in bds:
  383.         bdss.append(bds1)
  384.         for bds2 in bds:
  385.             if bds.index(bds1) != bds.index(bds2):
  386.                 bdss.append(bds1+bds2)
  387.                 for bds3 in bds:
  388.                     if bds.index(bds1) != bds.index(bds2) and bds.index(bds2) != bds.index(bds3) and bds.index(bds1) != bds.index(bds3):
  389.                         bdss.append(bds1+bds2+bds3)
  390.  
  391.  
  392.  
  393.     # For a woman...
  394.     wbds = [wifeb_yy, wifeb_yyy, wifeb_yyyy, wifeb_xd, wifeb_xm, wifeb_dd, wifeb_mm]
  395.  
  396.     wbdss = []
  397.  
  398.     for wbds1 in wbds:
  399.         wbdss.append(wbds1)
  400.         for wbds2 in wbds:
  401.             if wbds.index(wbds1) != wbds.index(wbds2):
  402.                 wbdss.append(wbds1+wbds2)
  403.                 for wbds3 in wbds:
  404.                     if wbds.index(wbds1) != wbds.index(wbds2) and wbds.index(wbds2) != wbds.index(wbds3) and wbds.index(wbds1) != wbds.index(wbds3):
  405.                         wbdss.append(wbds1+wbds2+wbds3)
  406.  
  407.  
  408.  
  409.     # and a child...
  410.     kbds = [kidb_yy, kidb_yyy, kidb_yyyy, kidb_xd, kidb_xm, kidb_dd, kidb_mm]
  411.  
  412.     kbdss = []
  413.  
  414.     for kbds1 in kbds:
  415.         kbdss.append(kbds1)
  416.         for kbds2 in kbds:
  417.             if kbds.index(kbds1) != kbds.index(kbds2):
  418.                 kbdss.append(kbds1+kbds2)
  419.                 for kbds3 in kbds:
  420.                     if kbds.index(kbds1) != kbds.index(kbds2) and kbds.index(kbds2) != kbds.index(kbds3) and kbds.index(kbds1) != kbds.index(kbds3):
  421.                         kbdss.append(kbds1+kbds2+kbds3)
  422.  
  423.     # string combinations....
  424.  
  425.     kombinaac = [pet, petup, company, companyup]
  426.  
  427.     kombina = [name, surname, nick, nameup, surnameup, nickup]
  428.  
  429.     kombinaw = [wife, wifen, wifeup, wifenup, surname, surnameup]
  430.  
  431.     kombinak = [kid, kidn, kidup, kidnup, surname, surnameup]
  432.  
  433.     kombinaa = []
  434.     for kombina1 in kombina:
  435.         kombinaa.append(kombina1)
  436.         for kombina2 in kombina:
  437.             if kombina.index(kombina1) != kombina.index(kombina2) and kombina.index(kombina1.title()) != kombina.index(kombina2.title()):
  438.                 kombinaa.append(kombina1+kombina2)
  439.  
  440.     kombinaaw = []
  441.     for kombina1 in kombinaw:
  442.         kombinaaw.append(kombina1)
  443.         for kombina2 in kombinaw:
  444.             if kombinaw.index(kombina1) != kombinaw.index(kombina2) and kombinaw.index(kombina1.title()) != kombinaw.index(kombina2.title()):
  445.                 kombinaaw.append(kombina1+kombina2)
  446.  
  447.     kombinaak = []
  448.     for kombina1 in kombinak:
  449.         kombinaak.append(kombina1)
  450.         for kombina2 in kombinak:
  451.             if kombinak.index(kombina1) != kombinak.index(kombina2) and kombinak.index(kombina1.title()) != kombinak.index(kombina2.title()):
  452.                 kombinaak.append(kombina1+kombina2)
  453.  
  454.  
  455.  
  456.     komb1 = list(komb(kombinaa, bdss))
  457.     komb1 += list(komb(kombinaa, bdss, "_"))
  458.     komb2 = list(komb(kombinaaw, wbdss))
  459.     komb2 += list(komb(kombinaaw, wbdss, "_"))
  460.     komb3 = list(komb(kombinaak, kbdss))
  461.     komb3 += list(komb(kombinaak, kbdss, "_"))
  462.     komb4 = list(komb(kombinaa, years))
  463.     komb4 += list(komb(kombinaa, years, "_"))
  464.     komb5 = list(komb(kombinaac, years))
  465.     komb5 += list(komb(kombinaac, years, "_"))
  466.     komb6 = list(komb(kombinaaw, years))
  467.     komb6 += list(komb(kombinaaw, years, "_"))
  468.     komb7 = list(komb(kombinaak, years))
  469.     komb7 += list(komb(kombinaak, years, "_"))
  470.     komb8 = list(komb(word, bdss))
  471.     komb8 += list(komb(word, bdss, "_"))
  472.     komb9 = list(komb(word, wbdss))
  473.     komb9 += list(komb(word, wbdss, "_"))
  474.     komb10 = list(komb(word, kbdss))
  475.     komb10 += list(komb(word, kbdss, "_"))
  476.     komb11 = list(komb(word, years))
  477.     komb11 += list(komb(word, years, "_"))
  478.     komb12 = ['']
  479.     komb13 = ['']
  480.     komb14 = ['']
  481.     komb15 = ['']
  482.     komb16 = ['']
  483.     komb21 = ['']
  484.     if randnum == "y":
  485.         komb12 = list(concats(word, numfrom, numto))
  486.         komb13 = list(concats(kombinaa, numfrom, numto))
  487.         komb14 = list(concats(kombinaac, numfrom, numto))
  488.         komb15 = list(concats(kombinaaw, numfrom, numto))
  489.         komb16 = list(concats(kombinaak, numfrom, numto))
  490.         komb21 = list(concats(reverse, numfrom, numto))
  491.     komb17 = list(komb(reverse, years))
  492.     komb17 += list(komb(reverse, years, "_"))
  493.     komb18 = list(komb(rev_w, wbdss))
  494.     komb18 += list(komb(rev_w, wbdss, "_"))
  495.     komb19 = list(komb(rev_k, kbdss))
  496.     komb19 += list(komb(rev_k, kbdss, "_"))
  497.     komb20 = list(komb(rev_n, bdss))
  498.     komb20 += list(komb(rev_n, bdss, "_"))
  499.     komb001 = ['']
  500.     komb002 = ['']
  501.     komb003 = ['']
  502.     komb004 = ['']
  503.     komb005 = ['']
  504.     komb006 = ['']
  505.     if spechars1 == "y":
  506.         komb001 = list(komb(kombinaa, spechars))
  507.         komb002 = list(komb(kombinaac, spechars))
  508.         komb003 = list(komb(kombinaaw , spechars))
  509.         komb004 = list(komb(kombinaak , spechars))
  510.         komb005 = list(komb(word, spechars))
  511.         komb006 = list(komb(reverse, spechars))
  512.  
  513.     print "[+] Sorting list and removing duplicates..."
  514.  
  515.     komb_unique1 = dict.fromkeys(komb1).keys()
  516.     komb_unique2 = dict.fromkeys(komb2).keys()
  517.     komb_unique3 = dict.fromkeys(komb3).keys()
  518.     komb_unique4 = dict.fromkeys(komb4).keys()
  519.     komb_unique5 = dict.fromkeys(komb5).keys()
  520.     komb_unique6 = dict.fromkeys(komb6).keys()
  521.     komb_unique7 = dict.fromkeys(komb7).keys()
  522.     komb_unique8 = dict.fromkeys(komb8).keys()
  523.     komb_unique9 = dict.fromkeys(komb9).keys()
  524.     komb_unique10 = dict.fromkeys(komb10).keys()
  525.     komb_unique11 = dict.fromkeys(komb11).keys()
  526.     komb_unique12 = dict.fromkeys(komb12).keys()
  527.     komb_unique13 = dict.fromkeys(komb13).keys()
  528.     komb_unique14 = dict.fromkeys(komb14).keys()
  529.     komb_unique15 = dict.fromkeys(komb15).keys()
  530.     komb_unique16 = dict.fromkeys(komb16).keys()
  531.     komb_unique17 = dict.fromkeys(komb17).keys()
  532.     komb_unique18 = dict.fromkeys(komb18).keys()
  533.     komb_unique19 = dict.fromkeys(komb19).keys()
  534.     komb_unique20 = dict.fromkeys(komb20).keys()
  535.     komb_unique21 = dict.fromkeys(komb21).keys()
  536.     komb_unique01 = dict.fromkeys(kombinaa).keys()
  537.     komb_unique02 = dict.fromkeys(kombinaac).keys()
  538.     komb_unique03 = dict.fromkeys(kombinaaw).keys()
  539.     komb_unique04 = dict.fromkeys(kombinaak).keys()
  540.     komb_unique05 = dict.fromkeys(word).keys()
  541.     komb_unique07 = dict.fromkeys(komb001).keys()
  542.     komb_unique08 = dict.fromkeys(komb002).keys()
  543.     komb_unique09 = dict.fromkeys(komb003).keys()
  544.     komb_unique010 = dict.fromkeys(komb004).keys()
  545.     komb_unique011 = dict.fromkeys(komb005).keys()
  546.     komb_unique012 = dict.fromkeys(komb006).keys()
  547.  
  548.     uniqlist = bdss+wbdss+kbdss+reverse+komb_unique01+komb_unique02+komb_unique03+komb_unique04+komb_unique05+komb_unique1+komb_unique2+komb_unique3+komb_unique4+komb_unique5+komb_unique6+komb_unique7+komb_unique8+komb_unique9+komb_unique10+komb_unique11+komb_unique12+komb_unique13+komb_unique14+komb_unique15+komb_unique16+komb_unique17+komb_unique18+komb_unique19+komb_unique20+komb_unique21+komb_unique07+komb_unique08+komb_unique09+komb_unique010+komb_unique011+komb_unique012
  549.  
  550.     unique_lista = dict.fromkeys(uniqlist).keys()
  551.     unique_leet = []
  552.     if leetmode == "y":
  553.         for x in unique_lista: # if you want to add more leet chars, you will need to add more lines in cupp.cfg too...
  554.             x = x.replace('a',a)
  555.             x = x.replace('i',i)
  556.             x = x.replace('e',e)
  557.             x = x.replace('t',t)
  558.             x = x.replace('o',o)
  559.             x = x.replace('s',s)
  560.             x = x.replace('g',g)
  561.             x = x.replace('z',z)
  562.             unique_leet.append(x)
  563.  
  564.     unique_list = unique_lista + unique_leet
  565.  
  566.     unique_list_finished = []
  567.     unique_list_finished = [x for x in unique_list if len(x) < wcto and len(x) > wcfrom]
  568.  
  569.     print_to_file(name+'.txt', unique_list_finished)
  570.     exit()
  571.  
  572.  
  573. elif sys.argv[1] == '-a':
  574.     url = config.get('alecto','alectourl')
  575.  
  576.     print "\r\n[+] Checking if alectodb is not present..."
  577.     if os.path.isfile('alectodb.csv.gz') == 0:
  578.         print "[+] Downloading alectodb.csv.gz..."
  579.         webFile = urllib.urlopen(url)
  580.         localFile = open(url.split('/')[-1], 'w')
  581.         localFile.write(webFile.read())
  582.         webFile.close()
  583.         localFile.close()
  584.  
  585.  
  586.     f = gzip.open('alectodb.csv.gz', 'rb')
  587.  
  588.     data = csv.reader(f)
  589.  
  590.     usernames = []
  591.     passwords = []
  592.     for row in data:
  593.         usernames.append(row[5])
  594.         passwords.append(row[6])
  595.     gus = list(set(usernames))
  596.     gpa = list(set(passwords))
  597.     gus.sort()
  598.     gpa.sort()
  599.  
  600.     print "\r\n[+] Exporting to alectodb-usernames.txt and alectodb-passwords.txt\r\n[+] Done."
  601.     f = open ( 'alectodb-usernames.txt', 'w' )
  602.     f.write (os.linesep.join(gus))
  603.     f.close()
  604.  
  605.     f = open ( 'alectodb-passwords.txt', 'w' )
  606.     f.write (os.linesep.join(gpa))
  607.     f.close()
  608.  
  609.  
  610.     f.close()
  611.     sys.exit()
  612.  
  613.  
  614.  
  615. elif sys.argv[1] == '-l':
  616.  
  617.     ftpname = config.get('downloader','ftpname')
  618.     ftpurl = config.get('downloader','ftpurl')
  619.     ftppath = config.get('downloader','ftppath')
  620.     ftpuser = config.get('downloader','ftpuser')
  621.     ftppass = config.get('downloader','ftppass')
  622.  
  623.  
  624.     if os.path.isdir('dictionaries') == 0:
  625.         os.mkdir('dictionaries')
  626.  
  627.     print " \r\n    Choose the section you want to download:\r\n"
  628.  
  629.     print "     1   Moby            14      french          27      places"
  630.     print "     2   afrikaans       15      german          28      polish"
  631.     print "     3   american        16      hindi           39      random"
  632.     print "     4   aussie          17      hungarian       30      religion"
  633.     print "   5   chinese         18      italian         31      russian"
  634.     print "     6   computer        19      japanese        32      science"
  635.     print "     7   croatian        20      latin           33      spanish"
  636.     print "     8   czech           21      literature      34      swahili"
  637.     print "     9   danish          22      movieTV         35      swedish"
  638.     print "    10   databases       23      music           36      turkish"
  639.     print "    11   dictionaries    24      names           37      yiddish"
  640.     print "    12   dutch           25      net             38      exit program"
  641.     print "    13   finnish         26      norwegian       \r\n"
  642.     print " \r\n    Files will be downloaded from "+ftpname+" repository"
  643.     print " \r\n    Tip: After downloading wordlist, you can improve it with -w option\r\n"
  644.  
  645.     filedown = raw_input("> Enter number: ")
  646.     filedown.isdigit()
  647.     while filedown.isdigit() == 0:
  648.         print "\r\n[-] Wrong choice. "
  649.         filedown = raw_input("> Enter number: ")
  650.     filedown = str(filedown)
  651.     while int(filedown) > 38:
  652.         print "\r\n[-] Wrong choice. "
  653.         filedown = raw_input("> Enter number: ")
  654.     filedown = str(filedown)
  655.  
  656.  
  657.     def handleDownload(block):
  658.         file.write(block)
  659.         print ".",
  660.  
  661.     def downloader():
  662.         ftp.login(ftpuser, ftppass)
  663.         ftp.cwd(ftppath)
  664.  
  665.     def filequitter():
  666.         file.close()
  667.         print ' done.'
  668.  
  669.  
  670.     if filedown == "1":
  671.         print "\r\n[+] connecting...\r\n"
  672.         ftp = ftplib.FTP(ftpurl)
  673.         downloader()
  674.         ftp.cwd('Moby')
  675.         if os.path.isdir('dictionaries/Moby/') == 0:
  676.             os.mkdir('dictionaries/Moby/')
  677.         dire = 'dictionaries/Moby/'
  678.         file = open(dire+'mhyph.tar.gz', 'wb')
  679.         print "\r\n[+] downloading mhyph.tar.gz..."
  680.         ftp.retrbinary('RETR ' + 'mhyph.tar.gz', handleDownload)
  681.         filequitter()
  682.  
  683.         file = open(dire+'mlang.tar.gz', 'wb')
  684.         print "\r\n[+] downloading mlang.tar.gz..."
  685.         ftp.retrbinary('RETR ' + 'mlang.tar.gz', handleDownload)
  686.         filequitter()
  687.  
  688.         file = open(dire+'moby.tar.gz', 'wb')
  689.         print "\r\n[+] downloading moby.tar.gz..."
  690.         ftp.retrbinary('RETR ' + 'moby.tar.gz', handleDownload)
  691.         filequitter()
  692.  
  693.         file = open(dire+'mpos.tar.gz', 'wb')
  694.         print "\r\n[+] downloading mpos.tar.gz..."
  695.         ftp.retrbinary('RETR ' + 'mpos.tar.gz', handleDownload)
  696.         filequitter()
  697.  
  698.         file = open(dire+'mpron.tar.gz', 'wb')
  699.         print "\r\n[+] downloading mpron.tar.gz..."
  700.         ftp.retrbinary('RETR ' + 'mpron.tar.gz', handleDownload)
  701.         filequitter()
  702.  
  703.         file = open(dire+'mthes.tar.gz', 'wb')
  704.         print "\r\n[+] downloading mthes.tar.gz..."
  705.         ftp.retrbinary('RETR ' + 'mthes.tar.gz', handleDownload)
  706.         filequitter()
  707.  
  708.         file = open(dire+'mwords.tar.gz', 'wb')
  709.         print "\r\n[+] downloading mwords.tar.gz..."
  710.         ftp.retrbinary('RETR ' + 'mwords.tar.gz', handleDownload)
  711.         filequitter()
  712.  
  713.         print '[+] files saved to '+ dire
  714.         ftp.quit()
  715.         exit()
  716.  
  717.     if filedown == "2":
  718.         print "[+] connecting..."
  719.         ftp = ftplib.FTP(ftpurl)
  720.         downloader()
  721.         ftp.cwd('afrikaans')
  722.         if os.path.isdir('dictionaries/afrikaans/') == 0:
  723.             os.mkdir('dictionaries/afrikaans/')
  724.         dire = 'dictionaries/afrikaans/'
  725.  
  726.         file = open(dire+'afr_dbf.zip', 'wb')
  727.         print "\r\n[+] downloading afr_dbf.zip..."
  728.         ftp.retrbinary('RETR ' + 'afr_dbf.zip', handleDownload)
  729.         filequitter()
  730.  
  731.         print '[+] file saved to '+ dire
  732.         ftp.quit()
  733.         exit()
  734.  
  735.     if filedown == "3":
  736.         print "[+] connecting..."
  737.         ftp = ftplib.FTP(ftpurl)
  738.         downloader()
  739.         ftp.cwd('american')
  740.         if os.path.isdir('dictionaries/american/') == 0:
  741.             os.mkdir('dictionaries/american/')
  742.         dire = 'dictionaries/american/'
  743.  
  744.         file = open(dire+'dic-0294.tar.gz', 'wb')
  745.         print "\r\n[+] downloading dic-0294.tar.gz..."
  746.         ftp.retrbinary('RETR ' + 'dic-0294.tar.gz', handleDownload)
  747.         filequitter()
  748.  
  749.         print '[+] file saved to '+ dire
  750.         ftp.quit()
  751.         exit()
  752.  
  753.     if filedown == "4":
  754.         print "[+] connecting..."
  755.         ftp = ftplib.FTP(ftpurl)
  756.         downloader()
  757.         ftp.cwd('aussie')
  758.         if os.path.isdir('dictionaries/aussie/') == 0:
  759.             os.mkdir('dictionaries/aussie/')
  760.         dire = 'dictionaries/aussie/'
  761.  
  762.         file = open(dire+'oz.gz', 'wb')
  763.         print "\r\n[+] downloading oz.gz..."
  764.         ftp.retrbinary('RETR ' + 'oz.gz', 'wb')
  765.         print "\r\n[+] downloading oz.gz..."
  766.         ftp.retrbinary('RETR ' + 'oz.gz', handleDownload)
  767.         filequitter()
  768.  
  769.         print '[+] file saved to '+ dire
  770.         ftp.quit()
  771.         exit()
  772.  
  773.  
  774.     if filedown == "5":
  775.         print "[+] connecting..."
  776.         ftp = ftplib.FTP(ftpurl)
  777.         downloader()
  778.         ftp.cwd('chinese')
  779.         if os.path.isdir('dictionaries/chinese/') == 0:
  780.             os.mkdir('dictionaries/chinese/')
  781.         dire = 'dictionaries/chinese/'
  782.  
  783.         file = open(dire+'chinese.gz', 'wb')
  784.         print "\r\n[+] downloading chinese.gz..."
  785.         ftp.retrbinary('RETR ' + 'chinese.gz', handleDownload)
  786.         filequitter()
  787.  
  788.         print '[+] file saved to '+ dire
  789.         ftp.quit()
  790.         exit()
  791.  
  792.     if filedown == "6":
  793.         print "[+] connecting..."
  794.         ftp = ftplib.FTP(ftpurl)
  795.         downloader()
  796.         ftp.cwd('computer')
  797.         if os.path.isdir('dictionaries/computer/') == 0:
  798.             os.mkdir('dictionaries/computer/')
  799.         dire = 'dictionaries/computer/'
  800.  
  801.         file = open(dire+'Domains.gz', 'wb')
  802.         print "\r\n[+] downloading Domains.gz..."
  803.         ftp.retrbinary('RETR ' + 'Domains.gz', handleDownload)
  804.         filequitter()
  805.  
  806.         file = open(dire+'Dosref.gz', 'wb')
  807.         print "\r\n[+] downloading Dosref.gz..."
  808.         ftp.retrbinary('RETR ' + 'Dosref.gz', handleDownload)
  809.         filequitter()
  810.  
  811.         file = open(dire+'Ftpsites.gz', 'wb')
  812.         print "\r\n[+] downloading Ftpsites.gz..."
  813.         ftp.retrbinary('RETR ' + 'Ftpsites.gz', handleDownload)
  814.         filequitter()
  815.  
  816.         file = open(dire+'Jargon.gz', 'wb')
  817.         print "\r\n[+] downloading Jargon.gz..."
  818.         ftp.retrbinary('RETR ' + 'Jargon.gz', handleDownload)
  819.         filequitter()
  820.  
  821.         file = open(dire+'common-passwords.txt.gz', 'wb')
  822.         print "\r\n[+] downloading common-passwords.txt.gz..."
  823.         ftp.retrbinary('RETR ' + 'common-passwords.txt.gz', handleDownload)
  824.         filequitter()
  825.  
  826.         file = open(dire+'etc-hosts.gz', 'wb')
  827.         print "\r\n[+] downloading etc-hosts.gz..."
  828.         ftp.retrbinary('RETR ' + 'etc-hosts.gz', handleDownload)
  829.         filequitter()
  830.  
  831.         file = open(dire+'foldoc.gz', 'wb')
  832.         print "\r\n[+] downloading foldoc.gz..."
  833.         ftp.retrbinary('RETR ' + 'foldoc.gz', handleDownload)
  834.         filequitter()
  835.  
  836.         file = open(dire+'language-list.gz', 'wb')
  837.         print "\r\n[+] downloading language-list.gz..."
  838.         ftp.retrbinary('RETR ' + 'language-list.gz', handleDownload)
  839.         filequitter()
  840.  
  841.         file = open(dire+'unix.gz', 'wb')
  842.         print "\r\n[+] downloading unix.gz..."
  843.         ftp.retrbinary('RETR ' + 'unix.gz', handleDownload)
  844.         filequitter()
  845.  
  846.         print '[+] files saved to '+ dire
  847.         ftp.quit()
  848.         exit()
  849.  
  850.     if filedown == "7":
  851.         print "[+] connecting..."
  852.         ftp = ftplib.FTP(ftpurl)
  853.         downloader()
  854.         ftp.cwd('croatian')
  855.         if os.path.isdir('dictionaries/croatian/') == 0:
  856.             os.mkdir('dictionaries/croatian/')
  857.         dire = 'dictionaries/croatian/'
  858.  
  859.         file = open(dire+'croatian.gz', 'wb')
  860.         print "\r\n[+] downloading croatian.gz..."
  861.         ftp.retrbinary('RETR ' + 'croatian.gz', handleDownload)
  862.         filequitter()
  863.  
  864.         print '[+] file saved to '+ dire
  865.         ftp.quit()
  866.         exit()
  867.  
  868.     if filedown == "8":
  869.         print "[+] connecting..."
  870.         ftp = ftplib.FTP(ftpurl)
  871.         downloader()
  872.         ftp.cwd('czech')
  873.         if os.path.isdir('dictionaries/czech/') == 0:
  874.             os.mkdir('dictionaries/czech/')
  875.         dire = 'dictionaries/czech/'
  876.  
  877.         file = open(dire+'czech-wordlist-ascii-cstug-novak.gz', 'wb')
  878.         print "\r\n[+] downloading czech-wordlist-ascii-cstug-novak.gz..."
  879.         ftp.retrbinary('RETR ' + 'czech-wordlist-ascii-cstug-novak.gz', handleDownload)
  880.         filequitter()
  881.  
  882.         print '[+] file saved to '+ dire
  883.         ftp.quit()
  884.         exit()
  885.  
  886. if filedown == "9":
  887.         print "[+] connecting..."
  888.         ftp = ftplib.FTP(ftpurl)
  889.         downloader()
  890.         ftp.cwd('danish')
  891.         if os.path.isdir('dictionaries/danish/') == 0:
  892.             os.mkdir('dictionaries/danish/')
  893.         dire = 'dictionaries/danish/'
  894.  
  895.         file = open(dire+'danish.words.gz', 'wb')
  896.         print "\r\n[+] downloading danish.words.gz..."
  897.         ftp.retrbinary('RETR ' + 'danish.words.gz', handleDownload)
  898.         filequitter()
  899.  
  900.         file = open(dire+'dansk.zip', 'wb')
  901.         print "\r\n[+] downloading dansk.zip..."
  902.         ftp.retrbinary('RETR ' + 'dansk.zip', handleDownload)
  903.         filequitter()
  904.  
  905.         print '[+] files saved to '+ dire
  906.         ftp.quit()
  907.         exit()
  908.  
  909.     if filedown == "10":
  910.         print "[+] connecting..."
  911.         ftp = ftplib.FTP(ftpurl)
  912.         downloader()
  913.         ftp.cwd('databases')
  914.         if os.path.isdir('dictionaries/databases/') == 0:
  915.             os.mkdir('dictionaries/databases/')
  916.         dire = 'dictionaries/databases/'
  917.  
  918.         file = open(dire+'acronyms.gz', 'wb')
  919.         print "\r\n[+] downloading acronyms.gz..."
  920.         ftp.retrbinary('RETR ' + 'acronyms.gz', handleDownload)
  921.         filequitter()
  922.  
  923.         file = open(dire+'att800.gz', 'wb')
  924.         print "\r\n[+] downloading att800.gz..."
  925.         ftp.retrbinary('RETR ' + 'att800.gz', handleDownload)
  926.         filequitter()
  927.  
  928.         file = open(dire+'computer-companies.gz', 'wb')
  929.         print "\r\n[+] downloading computer-companies.gz..."
  930.         ftp.retrbinary('RETR ' + 'computer-companies.gz', handleDownload)
  931.         filequitter()
  932.  
  933.         file = open(dire+'world_heritage.gz', 'wb')
  934.         print "\r\n[+] downloading world_heritage.gz..."
  935.         ftp.retrbinary('RETR ' + 'world_heritage.gz', handleDownload)
  936.         filequitter()
  937.  
  938.         print '[+] files saved to '+ dire
  939.         ftp.quit()
  940.         exit()
  941.  
  942.     if filedown == "11":
  943.         print "[+] connecting..."
  944.         ftp = ftplib.FTP(ftpurl)
  945.         downloader()
  946.         ftp.cwd('dictionaries')
  947.         if os.path.isdir('dictionaries/dictionaries/') == 0:
  948.             os.mkdir('dictionaries/dictionaries/')
  949.         dire = 'dictionaries/dictionaries/'
  950.  
  951.         file = open(dire+'Antworth.gz', 'wb')
  952.         print "\r\n[+] downloading Antworth.gz..."
  953.         ftp.retrbinary('RETR ' + 'Antworth.gz', handleDownload)
  954.         filequitter()
  955.  
  956.         file = open(dire+'CRL.words.gz', 'wb')
  957.         print "\r\n[+] downloading CRL.words.gz..."
  958.         ftp.retrbinary('RETR ' + 'CRL.words.gz', handleDownload)
  959.         filequitter()
  960.  
  961.         file = open(dire+'Roget.words.gz', 'wb')
  962.         print "\r\n[+] downloading Roget.words.gz..."
  963.         ftp.retrbinary('RETR ' + 'Roget.words.gz', handleDownload)
  964.         filequitter()
  965.  
  966.         file = open(dire+'Unabr.dict.gz', 'wb')
  967.         print "\r\n[+] downloading Unabr.dict.gz..."
  968.         ftp.retrbinary('RETR ' + 'Unabr.dict.gz', handleDownload)
  969.         filequitter()
  970.  
  971.         file = open(dire+'Unix.dict.gz', 'wb')
  972.         print "\r\n[+] downloading Unix.dict.gz..."
  973.         ftp.retrbinary('RETR ' + 'Unix.dict.gz', handleDownload)
  974.         filequitter()
  975.  
  976.         file = open(dire+'englex-dict.gz', 'wb')
  977.         print "\r\n[+] downloading englex-dict.gz..."
  978.         ftp.retrbinary('RETR ' + 'englex-dict.gz', handleDownload)
  979.         filequitter()
  980.  
  981.         file = open(dire+'knuth_britsh.gz', 'wb')
  982.         print "\r\n[+] downloading knuth_britsh.gz..."
  983.         ftp.retrbinary('RETR ' + 'knuth_britsh.gz', handleDownload)
  984.         filequitter()
  985.  
  986.         file = open(dire+'knuth_words.gz', 'wb')
  987.         print "\r\n[+] downloading knuth_words.gz..."
  988.         ftp.retrbinary('RETR ' + 'knuth_words.gz', handleDownload)
  989.         filequitter()
  990.  
  991.         file = open(dire+'pocket-dic.gz', 'wb')
  992.         print "\r\n[+] downloading pocket-dic.gz..."
  993.         ftp.retrbinary('RETR ' + 'pocket-dic.gz', handleDownload)
  994.         filequitter()
  995.  
  996.         file = open(dire+'shakesp-glossary.gz', 'wb')
  997.         print "\r\n[+] downloading shakesp-glossary.gz..."
  998.         ftp.retrbinary('RETR ' + 'shakesp-glossary.gz', handleDownload)
  999.         filequitter()
  1000.  
  1001.         file = open(dire+'special.eng.gz', 'wb')
  1002.         print "\r\n[+] downloading special.eng.gz..."
  1003.         ftp.retrbinary('RETR ' + 'special.eng.gz', handleDownload)
  1004.         filequitter()
  1005.  
  1006.         file = open(dire+'words-english.gz', 'wb')
  1007.         print "\r\n[+] downloading words-english.gz..."
  1008.         ftp.retrbinary('RETR ' + 'words-english.gz', handleDownload)
  1009.         filequitter()
  1010.  
  1011.         print '[+] files saved to '+ dire
  1012.         ftp.quit()
  1013.         exit()
  1014.  
  1015.     if filedown == "12":
  1016.         print "[+] connecting..."
  1017.         ftp = ftplib.FTP(ftpurl)
  1018.         downloader()
  1019.         ftp.cwd('dutch')
  1020.         if os.path.isdir('dictionaries/dutch/') == 0:
  1021.             os.mkdir('dictionaries/dutch/')
  1022.         dire = 'dictionaries/dutch/'
  1023.  
  1024.         file = open(dire+'words.dutch.gz', 'wb')
  1025.         print "\r\n[+] downloading words.dutch.gz..."
  1026.         ftp.retrbinary('RETR ' + 'words.dutch.gz', handleDownload)
  1027.         filequitter()
  1028.  
  1029.         print '[+] file saved to '+ dire
  1030.         ftp.quit()
  1031.         exit()
  1032.  
  1033.     if filedown == "13":
  1034.         print "[+] connecting..."
  1035.         ftp = ftplib.FTP(ftpurl)
  1036.         downloader()
  1037.         ftp.cwd('finnish')
  1038.         if os.path.isdir('dictionaries/finnish/') == 0:
  1039.             os.mkdir('dictionaries/finnish/')
  1040.         dire = 'dictionaries/finnish/'
  1041.  
  1042.         file = open(dire+'finnish.gz', 'wb')
  1043.         print "\r\n[+] downloading finnish.gz..."
  1044.         ftp.retrbinary('RETR ' + 'finnish.gz', handleDownload)
  1045.         filequitter()
  1046.  
  1047.         file = open(dire+'firstnames.finnish.gz', 'wb')
  1048.         print "\r\n[+] downloading firstnames.finnish.gz..."
  1049.         ftp.retrbinary('RETR ' + 'firstnames.finnish.gz', handleDownload)
  1050.         filequitter()
  1051.  
  1052.         file = open(dire+'words.finnish.FAQ.gz', 'wb')
  1053.         print "\r\n[+] downloading words.finnish.FAQ.gz..."
  1054.         ftp.retrbinary('RETR ' + 'words.finnish.FAQ.gz', handleDownload)
  1055.         filequitter()
  1056.  
  1057.         print '[+] files saved to '+ dire
  1058.         ftp.quit()
  1059.         exit()
  1060.  
  1061.     if filedown == "14":
  1062.         print "[+] connecting..."
  1063.         ftp = ftplib.FTP(ftpurl)
  1064.         downloader()
  1065.         ftp.cwd('french')
  1066.         if os.path.isdir('dictionaries/french/') == 0:
  1067.             os.mkdir('dictionaries/french/')
  1068.         dire = 'dictionaries/french/'
  1069.  
  1070.         file = open(dire+'dico.gz', 'wb')
  1071.         print "\r\n[+] downloading dico.gz..."
  1072.         ftp.retrbinary('RETR ' + 'dico.gz', handleDownload)
  1073.         filequitter()
  1074.  
  1075.         print '[+] file saved to '+ dire
  1076.         ftp.quit()
  1077.         exit()
  1078.  
  1079.     if filedown == "15":
  1080.         print "[+] connecting..."
  1081.         ftp = ftplib.FTP(ftpurl)
  1082.         downloader()
  1083.         ftp.cwd('german')
  1084.         if os.path.isdir('dictionaries/german/') == 0:
  1085.             os.mkdir('dictionaries/german/')
  1086.         dire = 'dictionaries/german/'
  1087.  
  1088.         file = open(dire+'deutsch.dic.gz', 'wb')
  1089.         print "\r\n[+] downloading deutsch.dic.gz..."
  1090.         ftp.retrbinary('RETR ' + 'deutsch.dic.gz', handleDownload)
  1091.         filequitter()
  1092.  
  1093.         file = open(dire+'germanl.gz', 'wb')
  1094.         print "\r\n[+] downloading germanl.gz..."
  1095.         ftp.retrbinary('RETR ' + 'germanl.gz', handleDownload)
  1096.         filequitter()
  1097.  
  1098.         file = open(dire+'words.german.gz', 'wb')
  1099.         print "\r\n[+] downloading words.german.gz..."
  1100.         ftp.retrbinary('RETR ' + 'words.german.gz', handleDownload)
  1101.         filequitter()
  1102.  
  1103.         print '[+] files saved to '+ dire
  1104.         ftp.quit()
  1105.         exit()
  1106.  
  1107.     if filedown == "16":
  1108.         print "[+] connecting..."
  1109.         ftp = ftplib.FTP(ftpurl)
  1110.         downloader()
  1111.         ftp.cwd('hindi')
  1112.         if os.path.isdir('dictionaries/hindi/') == 0:
  1113.             os.mkdir('dictionaries/hindi/')
  1114.         dire = 'dictionaries/hindi/'
  1115.  
  1116.         file = open(dire+'hindu-names.gz', 'wb')
  1117.         print "\r\n[+] downloading hindu-names.gz..."
  1118.         ftp.retrbinary('RETR ' + 'hindu-names.gz', handleDownload)
  1119.         filequitter()
  1120.  
  1121.         print '[+] file saved to '+ dire
  1122.         ftp.quit()
  1123.         exit()
  1124.  
  1125.     if filedown == "17":
  1126.         print "[+] connecting..."
  1127.         ftp = ftplib.FTP(ftpurl)
  1128.         downloader()
  1129.         ftp.cwd('hungarian')
  1130.         if os.path.isdir('dictionaries/hungarian/') == 0:
  1131.             os.mkdir('dictionaries/hungarian/')
  1132.         dire = 'dictionaries/hungarian/'
  1133.  
  1134.         file = open(dire+'hungarian.gz', 'wb')
  1135.         print "\r\n[+] downloading hungarian.gz..."
  1136.         ftp.retrbinary('RETR ' + 'hungarian.gz', handleDownload)
  1137.         filequitter()
  1138.  
  1139.         print '[+] file saved to '+ dire
  1140.         ftp.quit()
  1141.         exit()
  1142.  
  1143.         print "[+] connecting..."
  1144.         ftp = ftplib.FTP(ftpurl)
  1145.         downloader()
  1146.         ftp.cwd('italian')
  1147.         if os.path.isdir('dictionaries/italian/') == 0:
  1148.             os.mkdir('dictionaries/italian/')
  1149.         dire = 'dictionaries/italian/'
  1150.  
  1151.         file = open(dire+'words.italian.gz', 'wb')
  1152.         print "\r\n[+] downloading words.italian.gz..."
  1153.         ftp.retrbinary('RETR ' + 'words.italian.gz', handleDownload)
  1154.         filequitter()
  1155.  
  1156.         print '[+] file saved to '+ dire
  1157.         ftp.quit()
  1158.         exit()
  1159.  
  1160.     if filedown == "19":
  1161.         print "[+] connecting..."
  1162.         ftp = ftplib.FTP(ftpurl)
  1163.         downloader()
  1164.         ftp.cwd('japanese')
  1165.         if os.path.isdir('dictionaries/japanese/') == 0:
  1166.             os.mkdir('dictionaries/japanese/')
  1167.         dire = 'dictionaries/japanese/'
  1168.  
  1169.         file = open(dire+'words.japanese.gz', 'wb')
  1170.         print "\r\n[+] downloading words.japanese.gz..."
  1171.         ftp.retrbinary('RETR ' + 'words.japanese.gz', handleDownload)
  1172.         filequitter()
  1173.  
  1174.         print '[+] file saved to '+ dire
  1175.         ftp.quit()
  1176.         exit()
  1177.  
  1178.     if filedown == "20":
  1179.         print "[+] connecting..."
  1180.         ftp = ftplib.FTP(ftpurl)
  1181.         downloader()
  1182.         ftp.cwd('latin')
  1183.         if os.path.isdir('dictionaries/latin/') == 0:
  1184.             os.mkdir('dictionaries/latin/')
  1185.         dire = 'dictionaries/latin/'
  1186.  
  1187.         file = open(dire+'wordlist.aug.gz', 'wb')
  1188.         print "\r\n[+] downloading wordlist.aug.gz..."
  1189.         ftp.retrbinary('RETR ' + 'wordlist.aug.gz', handleDownload)
  1190.         filequitter()
  1191.  
  1192.         print '[+] file saved to '+ dire
  1193.         ftp.quit()
  1194.         exit()
  1195.  
  1196.     if filedown == "21":
  1197.         print "[+] connecting..."
  1198.         ftp = ftplib.FTP(ftpurl)
  1199.         downloader()
  1200.         ftp.cwd('literature')
  1201.         if os.path.isdir('dictionaries/literature/') == 0:
  1202.             os.mkdir('dictionaries/literature/')
  1203.         dire = 'dictionaries/literature/'
  1204.  
  1205.         file = open(dire+'LCarrol.gz', 'wb')
  1206.         print "\r\n[+] downloading LCarrol.gz..."
  1207.         ftp.retrbinary('RETR ' + 'LCarrol.gz', handleDownload)
  1208.         filequitter()
  1209.  
  1210.         file = open(dire+'Paradise.Lost.gz', 'wb')
  1211.         print "\r\n[+] downloading Paradise.Lost.gz..."
  1212.         ftp.retrbinary('RETR ' + 'Paradise.Lost.gz', handleDownload)
  1213.         filequitter()
  1214.  
  1215.         file = open(dire+'aeneid.gz', 'wb')
  1216.         print "\r\n[+] downloading aeneid.gz..."
  1217.         ftp.retrbinary('RETR ' + 'aeneid.gz', handleDownload)
  1218.         filequitter()
  1219.  
  1220.         file = open(dire+'arthur.gz', 'wb')
  1221.         print "\r\n[+] downloading arthur.gz..."
  1222.         ftp.retrbinary('RETR ' + 'arthur.gz', handleDownload)
  1223.         filequitter()
  1224.  
  1225.         file = open(dire+'cartoon.gz', 'wb')
  1226.         print "\r\n[+] downloading cartoon.gz..."
  1227.         ftp.retrbinary('RETR ' + 'cartoon.gz', handleDownload)
  1228.         filequitter()
  1229.  
  1230.         file = open(dire+'cartoons-olivier.gz', 'wb')
  1231.         print "\r\n[+] downloading cartoons-olivier.gz..."
  1232.         ftp.retrbinary('RETR ' + 'cartoons-olivier.gz', handleDownload)
  1233.         filequitter()
  1234.  
  1235.         file = open(dire+'charlemagne.gz', 'wb')
  1236.         print "\r\n[+] downloading charlemagne.gz..."
  1237.         ftp.retrbinary('RETR ' + 'charlemagne.gz', handleDownload)
  1238.         filequitter()
  1239.  
  1240.         file = open(dire+'fable.gz', 'wb')
  1241.         print "\r\n[+] downloading fable.gz..."
  1242.         ftp.retrbinary('RETR ' + 'fable.gz', handleDownload)
  1243.         filequitter()
  1244.  
  1245.         file = open(dire+'iliad.gz', 'wb')
  1246.         print "\r\n[+] downloading iliad.gz..."
  1247.         ftp.retrbinary('RETR ' + 'iliad.gz', handleDownload)
  1248.         filequitter()
  1249. file = open(dire+'myths-legends.gz', 'wb')
  1250.         print "\r\n[+] downloading myths-legends.gz..."
  1251.         ftp.retrbinary('RETR ' + 'myths-legends.gz', handleDownload)
  1252.         filequitter()
  1253.  
  1254.         file = open(dire+'odyssey.gz', 'wb')
  1255.         print "\r\n[+] downloading odyssey.gz..."
  1256.         ftp.retrbinary('RETR ' + 'odyssey.gz', handleDownload)
  1257.         filequitter()
  1258.  
  1259.         file = open(dire+'sf.gz', 'wb')
  1260.         print "\r\n[+] downloading sf.gz..."
  1261.         ftp.retrbinary('RETR ' + 'sf.gz', handleDownload)
  1262.         filequitter()
  1263.  
  1264.         file = open(dire+'shakespeare.gz', 'wb')
  1265.         print "\r\n[+] downloading shakespeare.gz..."
  1266.         ftp.retrbinary('RETR ' + 'shakespeare.gz', handleDownload)
  1267.         filequitter()
  1268.  
  1269.         file = open(dire+'tolkien.words.gz', 'wb')
  1270.         print "\r\n[+] downloading tolkien.words.gz..."
  1271.         ftp.retrbinary('RETR ' + 'tolkien.words.gz', handleDownload)
  1272.         filequitter()
  1273.  
  1274.         print '[+] files saved to '+ dire
  1275.         ftp.quit()
  1276.         exit()
  1277.  
  1278.     if filedown == "22":
  1279.         print "[+] connecting..."
  1280.         ftp = ftplib.FTP(ftpurl)
  1281.         downloader()
  1282.         ftp.cwd('movieTV')
  1283.         if os.path.isdir('dictionaries/movieTV/') == 0:
  1284.             os.mkdir('dictionaries/movieTV/')
  1285.         dire = 'dictionaries/movieTV/'
  1286.  
  1287.         file = open(dire+'Movies.gz', 'wb')
  1288.         print "\r\n[+] downloading Movies.gz..."
  1289.         ftp.retrbinary('RETR ' + 'Movies.gz', handleDownload)
  1290.         filequitter()
  1291.  
  1292.         file = open(dire+'Python.gz', 'wb')
  1293.         print "\r\n[+] downloading Python.gz..."
  1294.         ftp.retrbinary('RETR ' + 'Python.gz', handleDownload)
  1295.         filequitter()
  1296.  
  1297.         file = open(dire+'Trek.gz', 'wb')
  1298.         print "\r\n[+] downloading Trek.gz..."
  1299.         ftp.retrbinary('RETR ' + 'Trek.gz', handleDownload)
  1300.         filequitter()
  1301.  
  1302.         print '[+] files saved to '+ dire
  1303.         ftp.quit()
  1304.         exit()
  1305.  
  1306.     if filedown == "23":
  1307.         print "[+] connecting..."
  1308.         ftp = ftplib.FTP(ftpurl)
  1309.         downloader()
  1310.         ftp.cwd('music')
  1311.         if os.path.isdir('dictionaries/music/') == 0:
  1312.             os.mkdir('dictionaries/music/')
  1313.         dire = 'dictionaries/music/'
  1314.  
  1315.         file = open(dire+'music-classical.gz', 'wb')
  1316.         print "\r\n[+] downloading music-classical.gz..."
  1317.         ftp.retrbinary('RETR ' + 'music-classical.gz', handleDownload)
  1318.         filequitter()
  1319.  
  1320.         file = open(dire+'music-country.gz', 'wb')
  1321.         print "\r\n[+] downloading music-country.gz..."
  1322.         ftp.retrbinary('RETR ' + 'music-country.gz', handleDownload)
  1323.         filequitter()
  1324.  
  1325.         file = open(dire+'music-jazz.gz', 'wb')
  1326.         print "\r\n[+] downloading music-jazz.gz..."
  1327.         ftp.retrbinary('RETR ' + 'music-jazz.gz', handleDownload)
  1328.         filequitter()
  1329.  
  1330.         file = open(dire+'music-other.gz', 'wb')
  1331.         print "\r\n[+] downloading music-other.gz..."
  1332.         ftp.retrbinary('RETR ' + 'music-other.gz', handleDownload)
  1333.         filequitter()
  1334.  
  1335.         file = open(dire+'music-rock.gz', 'wb')
  1336.         print "\r\n[+] downloading music-rock.gz..."
  1337.         ftp.retrbinary('RETR ' + 'music-rock.gz', handleDownload)
  1338.         filequitter()
  1339.  
  1340.         file = open(dire+'music-shows.gz', 'wb')
  1341.         print "\r\n[+] downloading music-shows.gz..."
  1342.         ftp.retrbinary('RETR ' + 'music-shows.gz', handleDownload)
  1343.         filequitter()
  1344.  
  1345.         file = open(dire+'rock-groups.gz', 'wb')
  1346.         print "\r\n[+] downloading rock-groups.gz..."
  1347.         ftp.retrbinary('RETR ' + 'rock-groups.gz', handleDownload)
  1348.         filequitter()
  1349.  
  1350.         print '[+] files saved to '+ dire
  1351.         ftp.quit()
  1352.         exit()
  1353.  
  1354.     if filedown == "24":
  1355.         print "[+] connecting..."
  1356.         ftp = ftplib.FTP(ftpurl)
  1357.         downloader()
  1358.         ftp.cwd('names')
  1359.         if os.path.isdir('dictionaries/names/') == 0:
  1360.             os.mkdir('dictionaries/names/')
  1361.         dire = 'dictionaries/names/'
  1362.  
  1363.         file = open(dire+'ASSurnames.gz', 'wb')
  1364.         print "\r\n[+] downloading ASSurnames.gz..."
  1365.         ftp.retrbinary('RETR ' + 'ASSurnames.gz', handleDownload)
  1366.         filequitter()
  1367.  
  1368.         file = open(dire+'Congress.gz', 'wb')
  1369.         print "\r\n[+] downloading Congress.gz..."
  1370.         ftp.retrbinary('RETR ' + 'Congress.gz', handleDownload)
  1371.         filequitter()
  1372.  
  1373.         file = open(dire+'Family-Names.gz', 'wb')
  1374.         print "\r\n[+] downloading Family-Names.gz..."
  1375.         ftp.retrbinary('RETR ' + 'Family-Names.gz', handleDownload)
  1376.         filequitter()
  1377.  
  1378.         file = open(dire+'Given-Names.gz', 'wb')
  1379.         print "\r\n[+] downloading Given-Names.gz..."
  1380.         ftp.retrbinary('RETR ' + 'Given-Names.gz', handleDownload)
  1381.         filequitter()
  1382.  
  1383.         file = open(dire+'female-names.gz', 'wb')
  1384.         print "\r\n[+] downloading female-names.gz..."
  1385.         ftp.retrbinary('RETR ' + 'female-names.gz', handleDownload)
  1386.         filequitter()
  1387.  
  1388.         file = open(dire+'givennames-ol.gz', 'wb')
  1389.         print "\r\n[+] downloading givennames-ol.gz..."
  1390.         ftp.retrbinary('RETR ' + 'givennames-ol.gz', handleDownload)
  1391.         filequitter()
  1392.  
  1393.         file = open(dire+'male-names-kantr.gz', 'wb')
  1394.         print "\r\n[+] downloading male-names-kantr.gz..."
  1395.         ftp.retrbinary('RETR ' + 'male-names-kantr.gz', handleDownload)
  1396.         filequitter()
  1397.  
  1398.         file = open(dire+'male-names.gz', 'wb')
  1399.         print "\r\n[+] downloading male-names.gz..."
  1400.         ftp.retrbinary('RETR ' + 'male-names.gz', handleDownload)
  1401.         filequitter()
  1402.  
  1403.         file = open(dire+'movie-characters.gz', 'wb')
  1404.         print "\r\n[+] downloading movie-characters.gz..."
  1405.         ftp.retrbinary('RETR ' + 'movie-characters.gz', handleDownload)
  1406.         filequitter()
  1407.  
  1408.         file = open(dire+'names.french.gz', 'wb')
  1409.         print "\r\n[+] downloading names.french.gz..."
  1410.         ftp.retrbinary('RETR ' + 'names.french.gz', handleDownload)
  1411.         filequitter()
  1412.  
  1413.         file = open(dire+'names.hp.gz', 'wb')
  1414.         print "\r\n[+] downloading names.hp.gz..."
  1415.         ftp.retrbinary('RETR ' + 'names.hp.gz', handleDownload)
  1416.         filequitter()
  1417.  
  1418.         file = open(dire+'other-names.gz', 'wb')
  1419.         print "\r\n[+] downloading other-names.gz..."
  1420.         ftp.retrbinary('RETR ' + 'other-names.gz', handleDownload)
  1421.         filequitter()
  1422.  
  1423.         file = open(dire+'shakesp-names.gz', 'wb')
  1424.         print "\r\n[+] downloading shakesp-names.gz..."
  1425.         ftp.retrbinary('RETR ' + 'shakesp-names.gz', handleDownload)
  1426.         filequitter()
  1427.  
  1428.         file = open(dire+'surnames-ol.gz', 'wb')
  1429.         print "\r\n[+] downloading surnames-ol.gz..."
  1430.         ftp.retrbinary('RETR ' + 'surnames-ol.gz', handleDownload)
  1431.         filequitter()
  1432.  
  1433.         file = open(dire+'surnames.finnish.gz', 'wb')
  1434.         print "\r\n[+] downloading surnames.finnish.gz..."
  1435.         ftp.retrbinary('RETR ' + 'surnames.finnish.gz', handleDownload)
  1436.         filequitter()
  1437.  
  1438.         file = open(dire+'usenet-names.gz', 'wb')
  1439.         print "\r\n[+] downloading usenet-names.gz..."
  1440.         ftp.retrbinary('RETR ' + 'usenet-names.gz', handleDownload)
  1441.         filequitter()
  1442.  
  1443.         print '[+] files saved to '+ dire
  1444.         ftp.quit()
  1445.         exit()
  1446.  
  1447.  
  1448.     if filedown == "25":
  1449.         print "[+] connecting..."
  1450.         ftp = ftplib.FTP(ftpurl)
  1451.         downloader()
  1452.         ftp.cwd('net')
  1453.         if os.path.isdir('dictionaries/net/') == 0:
  1454.             os.mkdir('dictionaries/net/')
  1455.         dire = 'dictionaries/net/'
  1456.  
  1457.         file = open(dire+'hosts-txt.gz', 'wb')
  1458.         print "\r\n[+] downloading hosts-txt.gz..."
  1459.         ftp.retrbinary('RETR ' + 'hosts-txt.gz', handleDownload)
  1460.         filequitter()
  1461.  
  1462.         file = open(dire+'inet-machines.gz', 'wb')
  1463.         print "\r\n[+] downloading inet-machines.gz..."
  1464.         ftp.retrbinary('RETR ' + 'inet-machines.gz', handleDownload)
  1465.         filequitter()
  1466.  
  1467.         file = open(dire+'usenet-loginids.gz', 'wb')
  1468.         print "\r\n[+] downloading usenet-loginids.gz..."
  1469.         ftp.retrbinary('RETR ' + 'usenet-loginids.gz', handleDownload)
  1470.         filequitter()
  1471.  
  1472.         file = open(dire+'usenet-machines.gz', 'wb')
  1473.         print "\r\n[+] downloading usenet-machines.gz..."
  1474.         ftp.retrbinary('RETR ' + 'usenet-machines.gz', handleDownload)
  1475.         filequitter()
  1476.  
  1477.         file = open(dire+'uunet-sites.gz', 'wb')
  1478.         print "\r\n[+] downloading uunet-sites.gz..."
  1479.         ftp.retrbinary('RETR ' + 'uunet-sites.gz', handleDownload)
  1480.         filequitter()
  1481.  
  1482.         print '[+] files saved to '+ dire
  1483.         ftp.quit()
  1484.         exit()
  1485.  
  1486.     if filedown == "26":
  1487.         print "[+] connecting..."
  1488.         ftp = ftplib.FTP(ftpurl)
  1489.         downloader()
  1490.         ftp.cwd('norwegian')
  1491.         if os.path.isdir('dictionaries/norwegian/') == 0:
  1492.             os.mkdir('dictionaries/norwegian/')
  1493.         dire = 'dictionaries/norwegian/'
  1494.  
  1495.         file = open(dire+'words.norwegian.gz', 'wb')
  1496.         print "\r\n[+] downloading words.norwegian.gz..."
  1497.         ftp.retrbinary('RETR ' + 'words.norwegian.gz', handleDownload)
  1498.         filequitter()
  1499.  
  1500.         print '[+] file saved to '+ dire
  1501.         ftp.quit()
  1502.         exit()
  1503.  
  1504.     if filedown == "27":
  1505.         print "[+] connecting..."
  1506.         ftp = ftplib.FTP(ftpurl)
  1507.         downloader()
  1508.         ftp.cwd('places')
  1509.         if os.path.isdir('dictionaries/places/') == 0:
  1510.             os.mkdir('dictionaries/places/')
  1511.         dire = 'dictionaries/places/'
  1512.  
  1513.         file = open(dire+'Colleges.gz', 'wb')
  1514.         print "\r\n[+] downloading Colleges.gz..."
  1515.         ftp.retrbinary('RETR ' + 'Colleges.gz', handleDownload)
  1516.         filequitter()
  1517.  
  1518.         file = open(dire+'US-counties.gz', 'wb')
  1519.         print "\r\n[+] downloading US-counties.gz..."
  1520.         ftp.retrbinary('RETR ' + 'US-counties.gz', handleDownload)
  1521.         filequitter()
  1522.  
  1523.         file = open(dire+'World.factbook.gz', 'wb')
  1524.         print "\r\n[+] downloading World.factbook.gz..."
  1525.         ftp.retrbinary('RETR ' + 'World.factbook.gz', handleDownload)
  1526.         filequitter()
  1527.  
  1528.         file = open(dire+'Zipcodes.gz', 'wb')
  1529.         print "\r\n[+] downloading Zipcodes.gz..."
  1530.         ftp.retrbinary('RETR ' + 'Zipcodes.gz', handleDownload)
  1531.         filequitter()
  1532.  
  1533.         file = open(dire+'places.gz', 'wb')
  1534.         print "\r\n[+] downloading places.gz..."
  1535.         ftp.retrbinary('RETR ' + 'places.gz', handleDownload)
  1536.         filequitter()
  1537.  
  1538.         print '[+] files saved to '+ dire
  1539.         ftp.quit()
  1540.         exit()
  1541.  
  1542.     if filedown == "28":
  1543.         print "[+] connecting..."
  1544.         ftp = ftplib.FTP(ftpurl)
  1545.         downloader()
  1546.         ftp.cwd('polish')
  1547.         if os.path.isdir('dictionaries/polish/') == 0:
  1548.             os.mkdir('dictionaries/polish/')
  1549.         dire = 'dictionaries/polish/'
  1550.  
  1551.         file = open(dire+'words.polish.gz', 'wb')
  1552.         print "\r\n[+] downloading words.polish.gz..."
  1553.         ftp.retrbinary('RETR ' + 'words.polish.gz', handleDownload)
  1554.         filequitter()
  1555.  
  1556.         print '[+] file saved to '+ dire
  1557.         ftp.quit()
  1558.         exit()
  1559.  
  1560.     if filedown == "29":
  1561.         print "[+] connecting..."
  1562.         ftp = ftplib.FTP(ftpurl)
  1563.         downloader()
  1564.         ftp.cwd('random')
  1565.         if os.path.isdir('dictionaries/random/') == 0:
  1566.             os.mkdir('dictionaries/random/')
  1567.         dire = 'dictionaries/random/'
  1568.  
  1569.         file = open(dire+'Ethnologue.gz', 'wb')
  1570.         print "\r\n[+] downloading Ethnologue.gz..."
  1571.         ftp.retrbinary('RETR ' + 'Ethnologue.gz', handleDownload)
  1572.         filequitter()
  1573.  
  1574.         file = open(dire+'abbr.gz', 'wb')
  1575.         print "\r\n[+] downloading abbr.gz..."
  1576.         ftp.retrbinary('RETR ' + 'abbr.gz', handleDownload)
  1577.         filequitter()
  1578.  
  1579.         file = open(dire+'chars.gz', 'wb')
  1580.         print "\r\n[+] downloading chars.gz..."
  1581.         ftp.retrbinary('RETR ' + 'chars.gz', handleDownload)
  1582.         filequitter()
  1583.  
  1584.         file = open(dire+'dogs.gz', 'wb')
  1585.         print "\r\n[+] downloading dogs.gz..."
  1586.         ftp.retrbinary('RETR ' + 'dogs.gz', handleDownload)
  1587.         filequitter()
  1588.  
  1589.         file = open(dire+'drugs.gz', 'wb')
  1590.         print "\r\n[+] downloading drugs.gz..."
  1591.         ftp.retrbinary('RETR ' + 'drugs.gz', handleDownload)
  1592.         filequitter()
  1593.  
  1594.         file = open(dire+'junk.gz', 'wb')
  1595.         print "\r\n[+] downloading junk.gz..."
  1596.         ftp.retrbinary('RETR ' + 'junk.gz', handleDownload)
  1597.         filequitter()
  1598.  
  1599.         file = open(dire+'numbers.gz', 'wb')
  1600.         print "\r\n[+] downloading numbers.gz..."
  1601.         ftp.retrbinary('RETR ' + 'numbers.gz', handleDownload)
  1602.         filequitter()
  1603.  
  1604.         file = open(dire+'phrases.gz', 'wb')
  1605.         print "\r\n[+] downloading phrases.gz..."
  1606.         ftp.retrbinary('RETR ' + 'phrases.gz', handleDownload)
  1607.         filequitter()
  1608.  
  1609.         file = open(dire+'sports.gz', 'wb')
  1610.         print "\r\n[+] downloading sports.gz..."
  1611.         ftp.retrbinary('RETR ' + 'sports.gz', handleDownload)
  1612.         filequitter()
  1613.  
  1614.         file = open(dire+'statistics.gz', 'wb')
  1615.         print "\r\n[+] downloading statistics.gz..."
  1616.         ftp.retrbinary('RETR ' + 'statistics.gz', handleDownload)
  1617.         filequitter()
  1618. print '[+] files saved to '+ dire
  1619.         ftp.quit()
  1620.         exit()
  1621.  
  1622.     if filedown == "30":
  1623.         print "[+] connecting..."
  1624.         ftp = ftplib.FTP(ftpurl)
  1625.         downloader()
  1626.         ftp.cwd('religion')
  1627.         if os.path.isdir('dictionaries/religion/') == 0:
  1628.             os.mkdir('dictionaries/religion/')
  1629.         dire = 'dictionaries/religion/'
  1630.  
  1631.         file = open(dire+'Koran.gz', 'wb')
  1632.         print "\r\n[+] downloading Koran.gz..."
  1633.         ftp.retrbinary('RETR ' + 'Koran.gz', handleDownload)
  1634.         filequitter()
  1635.  
  1636.         file = open(dire+'kjbible.gz', 'wb')
  1637.         print "\r\n[+] downloading kjbible.gz..."
  1638.         ftp.retrbinary('RETR ' + 'kjbible.gz', handleDownload)
  1639.         filequitter()
  1640.  
  1641.         file = open(dire+'norse.gz', 'wb')
  1642.         print "\r\n[+] downloading norse.gz..."
  1643.         ftp.retrbinary('RETR ' + 'norse.gz', handleDownload)
  1644.         filequitter()
  1645.  
  1646.         print '[+] files saved to '+ dire
  1647.         ftp.quit()
  1648.         exit()
  1649.  
  1650.     if filedown == "31":
  1651.         print "[+] connecting..."
  1652.         ftp = ftplib.FTP(ftpurl)
  1653.         downloader()
  1654.         ftp.cwd('russian')
  1655.         if os.path.isdir('dictionaries/russian/') == 0:
  1656.             os.mkdir('dictionaries/russian/')
  1657.         dire = 'dictionaries/russian/'
  1658.  
  1659.         file = open(dire+'russian.lst.gz', 'wb')
  1660.         print "\r\n[+] downloading russian.lst.gz..."
  1661.         ftp.retrbinary('RETR ' + 'russian.lst.gz', handleDownload)
  1662.         filequitter()
  1663.  
  1664.         file = open(dire+'russian_words.koi8.gz', 'wb')
  1665.         print "\r\n[+] downloading russian_words.koi8.gz..."
  1666.         ftp.retrbinary('RETR ' + 'russian_words.koi8.gz', handleDownload)
  1667.         filequitter()
  1668.  
  1669.         print '[+] files saved to '+ dire
  1670.         ftp.quit()
  1671.         exit()
  1672.  
  1673.     if filedown == "32":
  1674.         print "[+] connecting..."
  1675.         ftp = ftplib.FTP(ftpurl)
  1676.         downloader()
  1677.         ftp.cwd('science')
  1678.         if os.path.isdir('dictionaries/science/') == 0:
  1679.             os.mkdir('dictionaries/science/')
  1680.         dire = 'dictionaries/science/'
  1681.  
  1682.         file = open(dire+'Acr-diagnosis.gz', 'wb')
  1683.         print "\r\n[+] downloading Acr-diagnosis.gz..."
  1684.         ftp.retrbinary('RETR ' + 'Acr-diagnosis.gz', handleDownload)
  1685.         filequitter()
  1686.  
  1687.         file = open(dire+'Algae.gz', 'wb')
  1688.         print "\r\n[+] downloading Algae.gz..."
  1689.         ftp.retrbinary('RETR ' + 'Algae.gz', handleDownload)
  1690.         filequitter()
  1691.  
  1692.         file = open(dire+'Bacteria.gz', 'wb')
  1693.         print "\r\n[+] downloading Bacteria.gz..."
  1694.         ftp.retrbinary('RETR ' + 'Bacteria.gz', handleDownload)
  1695.         filequitter()
  1696.  
  1697.         file = open(dire+'Fungi.gz', 'wb')
  1698.         print "\r\n[+] downloading Fungi.gz..."
  1699.         ftp.retrbinary('RETR ' + 'Fungi.gz', handleDownload)
  1700.         filequitter()
  1701.  
  1702.         file = open(dire+'Microalgae.gz', 'wb')
  1703.         print "\r\n[+] downloading Microalgae.gz..."
  1704.         ftp.retrbinary('RETR ' + 'Microalgae.gz', handleDownload)
  1705.         filequitter()
  1706.  
  1707.         file = open(dire+'Viruses.gz', 'wb')
  1708.         print "\r\n[+] downloading Viruses.gz..."
  1709.         ftp.retrbinary('RETR ' + 'Viruses.gz', handleDownload)
  1710.         filequitter()
  1711.  
  1712.         file = open(dire+'asteroids.gz', 'wb')
  1713.         print "\r\n[+] downloading asteroids.gz..."
  1714.         ftp.retrbinary('RETR ' + 'asteroids.gz', handleDownload)
  1715.         filequitter()
  1716.  
  1717.         file = open(dire+'biology.gz', 'wb')
  1718.         print "\r\n[+] downloading biology.gz..."
  1719.         ftp.retrbinary('RETR ' + 'biology.gz', handleDownload)
  1720.         filequitter()
  1721.  
  1722.         file = open(dire+'tech.gz', 'wb')
  1723.         print "\r\n[+] downloading tech.gz..."
  1724.         ftp.retrbinary('RETR ' + 'tech.gz', handleDownload)
  1725.         filequitter()
  1726.  
  1727.         print '[+] files saved to '+ dire
  1728.         ftp.quit()
  1729.         exit()
  1730.  
  1731.     if filedown == "33":
  1732.         print "[+] connecting..."
  1733.         ftp = ftplib.FTP(ftpurl)
  1734.         downloader()
  1735.         ftp.cwd('spanish')
  1736.         if os.path.isdir('dictionaries/spanish/') == 0:
  1737.             os.mkdir('dictionaries/spanish/')
  1738.         dire = 'dictionaries/spanish/'
  1739.  
  1740.         file = open(dire+'words.spanish.gz', 'wb')
  1741.         print "\r\n[+] downloading words.spanish.gz..."
  1742.         ftp.retrbinary('RETR ' + 'words.spanish.gz', handleDownload)
  1743.         filequitter()
  1744.  
  1745.         print '[+] file saved to '+ dire
  1746.         ftp.quit()
  1747.         exit()
  1748.  
  1749.     if filedown == "34":
  1750.         print "[+] connecting..."
  1751.         ftp = ftplib.FTP(ftpurl)
  1752.         downloader()
  1753.         ftp.cwd('swahili')
  1754.         if os.path.isdir('dictionaries/swahili/') == 0:
  1755.             os.mkdir('dictionaries/swahili/')
  1756.         dire = 'dictionaries/swahili/'
  1757.  
  1758.         file = open(dire+'swahili.gz', 'wb')
  1759.         print "\r\n[+] downloading swahili.gz..."
  1760.         ftp.retrbinary('RETR ' + 'swwahili.gz', handleDownload)
  1761.         filequitter()
  1762.  
  1763.         print '[+] file saved to '+ dire
  1764.         ftp.quit()
  1765.         exit()
  1766.  
  1767.     if filedown == "35":
  1768.         print "[+] connecting..."
  1769.         ftp = ftplib.FTP(ftpurl)
  1770.         downloader()
  1771.         ftp.cwd('swedish')
  1772.         if os.path.isdir('dictionaries/swedish/') == 0:
  1773.             os.mkdir('dictionaries/swedish/')
  1774.         dire = 'dictionaries/swedish/'
  1775.  
  1776.         file = open(dire+'words.swedish.gz', 'wb')
  1777.         print "\r\n[+] downloading words.swedish.gz..."
  1778.         ftp.retrbinary('RETR ' + 'words.swedish.gz', handleDownload)
  1779.         filequitter()
  1780.  
  1781.         print '[+] file saved to '+ dire
  1782.         ftp.quit()
  1783.         exit()
  1784.  
  1785.     if filedown == "36":
  1786.         print "[+] connecting..."
  1787.         ftp = ftplib.FTP(ftpurl)
  1788.         downloader()
  1789.         ftp.cwd('turkish')
  1790.         if os.path.isdir('dictionaries/turkish/') == 0:
  1791.             os.mkdir('dictionaries/turkish/')
  1792.         dire = 'dictionaries/turkish/'
  1793.  
  1794.         file = open(dire+'turkish.dict.gz', 'wb')
  1795.         print "\r\n[+] downloading turkish.dict.gz..."
  1796.         ftp.retrbinary('RETR ' + 'turkish.dict.gz', handleDownload)
  1797.         filequitter()
  1798.  
  1799.         print '[+] file saved to '+ dire
  1800.         ftp.quit()
  1801.         exit()
  1802.  
  1803.     if filedown == "37":
  1804.         print "[+] connecting..."
  1805.         ftp = ftplib.FTP(ftpurl)
  1806.         downloader()
  1807.         ftp.cwd('yiddish')
  1808.         if os.path.isdir('dictionaries/yiddish/') == 0:
  1809.             os.mkdir('dictionaries/yiddish/')
  1810.         dire = 'dictionaries/yiddish/'
  1811.  
  1812.         file = open(dire+'yiddish.gz', 'wb')
  1813.         print "\r\n[+] downloading yiddish.gz..."
  1814.         ftp.retrbinary('RETR ' + 'yiddish.gz', handleDownload)
  1815.         filequitter()
  1816.  
  1817.         print '[+] file saved to '+ dire
  1818.         ftp.quit()
  1819.         exit()
  1820.  
  1821.  
  1822.  
  1823.     else:
  1824.         print '[-] leaving.'
  1825.         exit()
  1826.  
  1827.  
  1828. else:
  1829.     print "\r\n[Usage]: "+sys.argv[0] +"  [OPTIONS] \r\n"
  1830.     print "[Help]:      "+sys.argv[0] +"  -h\r\n"
  1831.     exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement