IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Problème Scapy mail


Sujet :

Réseau/Web Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut Problème Scapy mail
    En ce qui concerne l'apprentissage de Scapy, le livre tente de nous faire capturer des identifiants de mail, identifiant et mot de passe.

    Le code en python pour le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sniff(filter='tcp port 110 or tcp port 25 or tcp port 143', prn=packet_callback, store=0)
    Le filtre indique que seul les paquets avec des ports liés au mail seront capturé, donc SMTP et IMAP.

    La fonction packet_callback affichera normalement les informations.

    Le problème c'est que le livre ne semble pas assez complet, il indique la sortie suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    python mail_sniffer.py
    [*] Destination: 192.168.1.207[*] b'user tim\n'[*] Destination: 192.168.1.207[*] b'PASS 1234567\n'
    Et il indique :

    "Here is some sample output from a dummy email account the authors attempted to connect a mail client to"
    "You can see that our mail client is attempting to login to the server at 192.168.1.207 and send the plaintext credentials over the wire".

    Mais il n'indique pas comment il a fait pour tenter de se login au serveur à 192.168.1.207 avec un mail client.

    J'ai essayé de mon côté d'installer postfix sur le local host, qui écoute sur le port 25, lorsque je tente de connecter un mail client smtplib il est indiqué que le serveur ne supporte pas l'authentification, j'ai essayé de le mettre mais impossible, la doc python est complètement dégueulasse (aucune mise en page) en plus de ne pas fonctionner.

    Le serveur IMAP dovecot on peut bien s'identifier mais ne renvoie aucun paquet.

    J'ai même essayé avec un web mail comme rainloop, le paquet sort mais il est sur le port 80 donc il ne passe pas le filtre.

    J'avoue que j'ai un peu tout essayé, mais je demeure toujours bloqué sur le problème, si vous savez comment je peux faire.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Citation Envoyé par Patrick Hockstetter Voir le message
    J'avoue que j'ai un peu tout essayé, mais je demeure toujours bloqué sur le problème, si vous savez comment je peux faire.
    Vous avez 2 soucis à séparer: le premier est voir les paquets qui passent lors de la connexion à un serveur de messagerie pour expédier un mail. Pour ça vous pouvez utiliser Telnet, essayer de vous connecter "manuellement" à un serveur SMTP (gmail par exemple) et regarder les paquets qui passent avec wireshark (par exemple).

    Une fois que vous êtes au point avec le premier point, il faut remplacer wireshark par Python/Scapy et y retrouver les mêmes informations.

    Citation Envoyé par Patrick Hockstetter Voir le message
    j'ai essayé de le mettre mais impossible, la doc python est complètement dégueulasse (aucune mise en page) en plus de ne pas fonctionner.
    Si vous ne maîtrisez pas le protocole SMTP, la documentation qui explique comment l'utiliser depuis Python sera illisible car vous ne savez pas trop comment y retrouver vos petits.
    note: et connaître SMTP est un pré-requis pour se connecter à un serveur via Telnet.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    Je sais comment utiliser SMTP et telnet.

    Je peux me connecter facilement au serveur SMTP de gmail mais dans le livre il est indiqué que je dois me connecter en local host, pour ça que j'essaie de le faire en installant Postfix sur le local host où en utilisant SMTPD et ensuite créer un client mail avec smtplib, mais que ce soit smtplib ou telnet lorsque je tente de me login le message indique toujours que le serveur ne supporte pas l'authentification et je n'arrive pas à l'activer, que ce soit sur postfix ou les serveurs smtpd ou son remplacent aiostpmd, la documentation s'amuse à donner des codes qui ne vont pas fonctionner, faire importer des modules ou des fonctionnalités/class qui n'existent pas, et pour smtplib il y a bien une méthode auth, mais j'ignore si celle ci ajoute l'authentification à un serveur, et la documentation ne donne pas d'exemple d'utilisation. D'ailleurs je ne suis pas le seul à penser que les documentations de python sont mal foutu, c'est un sujet récurrent sur le net, donc voilà.

    Le problème est donc d'ajouter une authentification

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Citation Envoyé par Patrick Hockstetter Voir le message
    Le problème est donc d'ajouter une authentification
    Je ne vois pas la différence coté messages qui vont passer sur le réseau.

    Si vous voulez faire marcher postfix sur votre PC, c'est pas un sujet Python.

    Quant à un serveur SMTP écrit en Python qui supporte l'authentification: ceux des bibliothèques standards ne le font pas et chercher ce qui existe (côté bibliothèque externe) sur Internet...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    J'ai essayé avec le serveur IMAP Dovecot du coup que j'ai mis sur local host, j'ai mis le client imaplib dessus, j'ai pu me login mais le problème maintenant c'est que strictement aucun packet n'est capturé, que ce soit sur scapy ou wireshark.

    J'ai aussi installé directement un mail client comme Thunderbird, je l'ai configuré pour qu'il gère postfix, dovecot, lorsque je me login dessus il n y a aucun packet de capturé ici aussi, je ne comprends pas pourquoi

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Citation Envoyé par Patrick Hockstetter Voir le message
    j'ai pu me login mais le problème maintenant c'est que strictement aucun packet n'est capturé, que ce soit sur scapy ou wireshark.
    Au moins, c'est cohérent (rien = rien) mais ça n'en fait pas plus un sujet "python".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    Scapy est une bibliothèque python, c'est donc bien un sujet réseau python

    Sinon comment faire pour que les packets apparaissent, c'est quoi qui bloque, je suis bien avancé là...

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Citation Envoyé par Patrick Hockstetter Voir le message
    Sinon comment faire pour que les packets apparaissent, c'est quoi qui bloque, je suis bien avancé là...
    Si vous ne les voyez pas avec wireshark, ce n'est pas encore un soucis scapy.
    Après demander de l'aide c'est bien mais si on ne sait pas reproduire ce que vous faites sur votre machine "facilement", "ça ne marche pas" est un peu court pour faire un diagnostic... et on ne peut que compatir (ce qui ne vous aide pas plus que çà non plus...).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    Je vais mettre les codes au cas où si des personnes veulent reproduire

    Pour le code qui aspire les packets liés au mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    from scapy.all import sniff, TCP, IP 
     
    def packet_callback(packet):
     
        if packet[TCP].payload: 
     
            mypacket = str(packet[TCP].payload)
     
            if 'user' in mypacket.lower() or 'pass' in mypacket.lower():
     
                print(f"[*] Destination: {packet[IP].dst}")
                print(f"[*] {str(packet[TCP].payload)}")
     
    def main():
     
        sniff(filter='tcp port 110 or tcp port 25 or tcp port 143', prn=packet_callback, store=0)
     
    if __name__ == '__main__':
     
        main()
    Le sniffer aspire tous les packets liés aux mail.
    Ici nous voulons aspirer les identifiants, mot de passe et utilisateur.

    Le livre nous indique la sortie suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [*] Destination: 192.168.1.207
    [*] b'USER tim/n'
    [*] Destination: 192.168.1.207
    [*] b'PASS 1234567\n'
    Et il met ceci : "Here is some sample output from a dummy email account the authors attempted to connect a mail client to"
    "You can see that our mail client is attempting to login to the server at 192.168.1.207 and send the plaintext credentials over the wire".

    Mais il n'indique pas comment il a fait pour connecter le mail client au serveur kali linux, il dit juste qu'il l'a fait et nous donne le résultat

    Moi j'ai essayé pleins de chose pour aspirer le mot de passe et l'utilisateur.

    J'ai configuré Dovecot et Postfix.

    Ensuite j'ai utilisé en python le mail client Dovecot IMAP, qui est IMAPLIB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import imaplib
     
    imap = imaplib.IMAP4("192.168.1.207", 143)
     
    imap.login("tim", "1234567")
    Lorsque j'exécute ce code, aucun packet ne semble être aspiré, que l'authentification fonctionne ou pas

    J'ai mis Thunderbird que j'ai aussi configuré sur localhost avec postfix et dovecot, mais même lorsque je m'identifie les packets n'apparaissent pas, comme s'ils étaient bloqué, et je me demande ce qui peut provoquer cela.

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Citation Envoyé par Patrick Hockstetter Voir le message
    J'ai mis Thunderbird que j'ai aussi configuré sur localhost avec postfix et dovecot, mais même lorsque je m'identifie les packets n'apparaissent pas, comme s'ils étaient bloqué, et je me demande ce qui peut provoquer cela.
    Le local host a une interface "spéciale": les paquets restent en mémoire sans passer par l'interface réseau. Ce qui est documenté dans le Wiki de Wireshark (avec des palliatifs).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    En effet, il vaut mieux faire attention à la documentation python qui induit en erreur :

    Mais si aucune interface n'est donnée, le sniffing se produira sur toutes les interfaces. Vous pouvez regarder dans la section Sniffing de la page Web de Scapy

    Malheureusement, la documentation est erronée. Lorsqu'aucune interface n'est donnée, le scapy renifle sur conf.iface


    Sinon merci d'avoir pris le temps de me répondre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Scapy mail
    Par Patrick Hockstetter dans le forum Réseaux
    Réponses: 0
    Dernier message: 09/03/2022, 14h36
  2. [Mail] Problème avec mail()
    Par narber76 dans le forum Langage
    Réponses: 1
    Dernier message: 10/05/2006, 19h34
  3. [Mail] Problème avec mail et image
    Par phpaide dans le forum Langage
    Réponses: 5
    Dernier message: 27/04/2006, 09h06
  4. [Mail] Problème réception mail/pieces jointes
    Par pymouse dans le forum Langage
    Réponses: 1
    Dernier message: 18/04/2006, 17h07
  5. [Mail] problème envoi mail html
    Par biggief dans le forum Langage
    Réponses: 3
    Dernier message: 14/04/2006, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo