Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mail-security-tester — Un framework de test pour les solutions de sécurité et de filtrage des e-mails. | Kitploit
Outils/GitHubGitHub/tkcert/mail-security-tester
Outils de PhishingScanners de VulnérabilitésÉvasion IDS/IPSTests d'IntrusionSécurité des Emails
GitHubtkcert/mail-security-tester

mail-security-tester

Un framework de test pour les solutions de sécurité et de filtrage des e-mails.

Voir le dépôt
2444618il y a 8 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Build Status

Cadre de test de sécurité des courriels

Un cadre de test pour les solutions de sécurité et de filtrage des courriels.

IMPORTANT : Ne faites rien de malveillant avec cela ! Les tests de solutions cloud ou hébergées doivent toujours être approuvés par le fournisseur testé. Utilisez uniquement vos propres comptes de test et n'ennuyez personne avec une multitude de courriels de test.

Installation

Le cadre de test de sécurité des courriels fonctionne avec Python >=3.5. Il suffit de cloner ce dépôt et de commencer. Aucune autre dépendance n'est requise.

Utilisation

Le script mail-tester.py exécute les tests. Lisez le message d'aide avec ./mail-tester.py --help et consultez la liste des modules de test et d'évasion avec ./mail-tester.py -l pour obtenir un aperçu des capacités et de l'utilisation du script. Quelques conseils :

  • Au moins les paramètres --smtp-server et --to doivent être fournis pour une exécution de test minimale.
  • Tous les paramètres peuvent également être stockés dans des fichiers de configuration sans le préfixe --. Ces fichiers de configuration peuvent être utilisés en invoquant ./mail-tester.py @tester.conf (configuration contenue dans tester.conf).
  • Plusieurs destinataires peuvent être configurés avec --to pour tester différentes configurations de filtrage.
  • Certaines solutions de filtrage des courriels peuvent rejeter les messages après un certain temps. Utilisez --auto-delay pour un réglage automatique du débit des courriels. Cela peut être affiné avec --delay-step, --delay-max et --delay.
  • Certains tests (Spam et Malware) nécessitent des échantillons. Placez-les dans des répertoires et configurez ces répertoires avec les paramètres --spam-folder et --malware-folder. Les échantillons ne sont pas inclus dans ce dépôt (et ne le seront pas). De bons endroits pour obtenir des malwares sont theZoo, Das Malwerk ou d'autres collections. Les spams peuvent être exportés directement depuis votre dossier Spam, mais doivent être au format EML.
  • Les listes noires peuvent être fournies avec le paramètre --blacklist et sont utilisées comme adresses d'expéditeur.
  • Les cas de test Shellshock et XSS dans l'objet doivent avoir un domaine de rappel valide, où vous êtes en mesure de voir les rappels (en particulier les requêtes DNS). Le service gratuit Canary Tokens peut être utilisé à cette fin. Merci à Thinkst pour ce service génial !
  • Quelques astuces intéressantes d'évasion de reconnaissance des pièces jointes peuvent être activées avec --evasion content-disposition. Elles étaient utilisées par le passé pour tromper les solutions d'analyse antivirus/sandbox et leur laisser passer des courriels malveillants.
  • N'oubliez pas de journaliser les résultats des tests avec --log. Les fournisseurs de filtrage de courriels rejettent souvent les courriels lors du dialogue SMTP, ce qui est reflété dans le journal généré.
  • Les cas de test peuvent être exportés avec --output sous forme de fichiers simples dans un répertoire, au format MBox (--mbox) ou MailDir (--maildir). Cela est utile pour tester les clients de messagerie sans envoyer de courriels, pour documenter ou examiner les cas de test générés.

Développement et extension

Tests

Les tests personnalisés peuvent être implémentés avec une classe dans l'un des fichiers Python existants ou nouvellement créés dans le répertoire tests/. La classe doit être une sous-classe de MailTestBase située dans le module tests.base de ce projet. Les tests nouvellement implémentés sont découverts automatiquement lorsque la variable de classe active est définie à True. De plus (si vous prévoyez de contribuer des tests au dépôt principal), les variables de classe identifier, name et description doivent être définies de manière appropriée.

Les classes de base suivantes existent avec des méthodes ou des variables de classe destinées à être surchargées :

  • MailTestBase : Classe de test pour les tests génériques.
    • generateTestCases() : Génère des messages de test. Ceux-ci doivent être générés avec les classes MIME* des packages email.mime.* de Python ou avec la classe Message de email.message pour garantir des messages électroniques valides.
    • active : Valeur booléenne indiquant si le test doit être actif.
    • identifier : Identifiant court du test. Celui-ci est utilisé pour activer ou désactiver les tests dans les paramètres.
    • name : Titre court du test.
    • description : Description plus longue du test, doit tenir dans environ 100 caractères.
    • delivery_sender et delivery_recipient : Valeurs booléennes, False par défaut. Normalement, l'expéditeur et les destinataires sont définis dans le message et le module SMTP de Python les reprend à partir de là. Parfois, il est souhaitable de les définir explicitement dans la bibliothèque SMTP, ce qui peut être configuré en définissant ces valeurs sur True.
    • finalizeMessage(msg) : Par défaut, la classe de test de base définit les en-têtes From et To en conséquence. Ce comportement peut être surchargé si nécessaire pour le cas de test.
  • MailAttachmentTestBase : Classe de test pour les cas de test de pièces jointes. Cela génère un courriel complet valide avec un sujet et une partie texte et y attache le cas de test. Dérivé de MailTestBase, donc les méthodes/variables de celui-ci peuvent être surchargées ici aussi.
    • generateAttachments() : Génère des cas de test sous forme de tuples (description, pièce jointe).
    • subject : Définit le sujet. L'espace réservé {} est remplacé par la description générée par generateAttachments().
    • generateTestCases() : est déjà surchargée avec une implémentation de la génération de messages décrite ci-dessus, mais peut être adaptée davantage si nécessaire.

Il est fortement recommandé de définir les sujets des messages générés afin de pouvoir reconnaître les tests dans la boîte de réception destinataire.

Évasions

Les classes d'évasion implémentent des techniques pour éviter la reconnaissance de propriétés particulières des courriels par les solutions de sécurité des courriels. Actuellement, une technique d'évasion qui tente de cacher les pièces jointes à ces solutions en utilisant des en-têtes Content-Disposition intentionnellement cassés est implémentée.

Implémenter de nouvelles évasions

Les évasions sont implémentées par un modèle de classe d'usine. La classe DeliveryBase instancie une classe d'usine dérivée de la classe BaseEvasionFactory. Le constructeur de l'usine reçoit un indicateur qui signale si l'évasion est activée. L'instance de l'usine d'évasion est ensuite passée à la classe de test et stockée dans son attribut evasions qui contient un dict avec les identifiants d'évasion comme clés. À l'intérieur du test, une classe d'évasion (basée sur EvasionBase) est instanciée avec getEvasionGenerator(). Les paramètres du constructeur sont définis individuellement par technique d'évasion.

Les classes de base suivantes sont utilisées pour implémenter les évasions :

Télécharger l’outil