{"id":2838,"date":"2018-09-28T07:33:55","date_gmt":"2018-09-28T02:03:55","guid":{"rendered":"http:\/\/kalilinuxtutorials.com\/?p=2838"},"modified":"2018-09-28T07:33:55","modified_gmt":"2018-09-28T02:03:55","slug":"mail-security-testing","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/","title":{"rendered":"Mail Security Testing &#8211; Framework For Mail Security &#038; Filtering Solutions"},"content":{"rendered":"<p>Mail Security Testing Framework is a testing framework for mail security and filtering solutions.<\/p>\n<h2><strong>Mail Security Testing Installation<\/strong><\/h2>\n<p>The mail security testing framework works with with Python &gt;=3.5. Just pull this repository and go ahead. No further dependencies are required.<\/p>\n<h2><strong>Usage<\/strong><\/h2>\n<p>The script <em>mail-tester.py<\/em> runs the tests. Read the help message with <code><span style=\"color: #008000;\"><strong>.\/mail-tester.py --help<\/strong><\/span><\/code> and check the list of test and evasion modules with <code><strong><span style=\"color: #008000;\">.\/mail-tester.py -l<\/span><\/strong><\/code> to get an overview about the capabilities and the usage of the script. Some hints:<\/p>\n<ul>\n<li>At least the parameters <code><strong><span style=\"color: #008000;\">--smtp-server<\/span><\/strong><\/code> and <code><strong><span style=\"color: #008000;\">--to<\/span><\/strong><\/code> should be given for a minimal test run.<\/li>\n<li>All parameters can also be stored in configuration files without the prefix <code>--<\/code>. These configuration files can be used by invoking <code><strong><span style=\"color: #008000;\">.\/mail-tester.py @tester.conf<\/span><\/strong><\/code> (configuration contained in <em>tester.conf<\/em>).<\/li>\n<li>Multiple recipients can be configured with <code><strong><span style=\"color: #008000;\">--to<\/span><\/strong><\/code> for testing of different filter configurations.<\/li>\n<li>Some mail filtering solutions may reject messages after a while. Use <strong><span style=\"color: #008000;\"><code>--auto-delay<\/code><\/span><\/strong> for automatic throttling of the mails. This can be fine-tuned with <code><strong><span style=\"color: #008000;\">--delay-step<\/span><\/strong><\/code><strong><span style=\"color: #008000;\">, <code><span style=\"color: #008000;\">--delay-max<\/span><\/code><\/span><\/strong> and <code><strong><span style=\"color: #008000;\">--delay<\/span><\/strong><\/code>.<\/li>\n<li>Some tests (Spam and Malware) require samples. Put these in directories and configure these directories with <code><strong><span style=\"color: #008000;\">--spam-folder<\/span><\/strong><\/code> and <code><strong><span style=\"color: #008000;\">--malware-folder<\/span><\/strong><\/code> parameters. The samples are not included in this repository (and will not be). Good places to get malware are theZoo, Das Malwerk or other collections. Spam can be exported straight from yout Spam folder, but must be in EML format.<\/li>\n<li>Blacklists can be supplied with the <code><strong><span style=\"color: #008000;\">--blacklist<\/span><\/strong><\/code> parameter and are used as sender addresses.<\/li>\n<li>The Shellshock and subject XSS test cases should have a valid backconnect domain, where you are able to see any backconnects (especially DNS requests). The free Canary Tokens service can be used for this purpose. Thanks to Thinkst for providing this awesome service!<\/li>\n<li>Some neat attachment recognition evasion tricks can be enabled with <code><span style=\"color: #008000;\"><strong>--evasion content-disposition<\/strong><\/span><\/code>. These were used in the past to confuse AV\/sandboxing solutions and let them pass malicious mails.<\/li>\n<li>Don&#8217;t forget to log the test results with <code><strong><span style=\"color: #008000;\">--log<\/span><\/strong><\/code>. Mail filtering providers often reject mails in the SMTP dialog, which is reflected in the generated log.<\/li>\n<li>Test cases can be dumped with <strong><span style=\"color: #008000;\"><code>--output<\/code><\/span><\/strong> as plain files in a directory, in MBox <strong><span style=\"color: #008000;\">(<code><span style=\"color: #008000;\">--mbox<\/span><\/code>)<\/span><\/strong> or MailDir (<code><strong><span style=\"color: #008000;\">--maildir<\/span><\/strong><\/code>) format. This is useful to test mail user agents without sending any mails, to document or review generated test cases.<\/li>\n<\/ul>\n<p><strong><span class=\"td_btn td_btn_sm td_3D_btn\">Also Read<\/span><a href=\"https:\/\/kalilinuxtutorials.com\/socialbox-bruteforce-attack\/\" target=\"_blank\" rel=\"noopener\">SocialBox \u2013 A Bruteforce Attack Framework[ Facebook , Gmail , Instagram ,Twitter]<\/a><\/strong><\/p>\n<h2><strong>Development\u00a0 &amp; Extension For Mail Security Testing<br \/>\n<\/strong><\/h2>\n<h3 style=\"text-align: center;\"><strong>Tests<\/strong><\/h3>\n<p>Own tests can be implemented with a class in one of the iexisting or newly created Python files in the <code><span style=\"color: #008000;\"><strong>tests\/<\/strong><\/span><\/code> directory. The class must be a subclass of <strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">MailTestBase<\/span><\/code><\/span><\/strong> located in the module <code><strong><span style=\"color: #008000;\">tests.base<\/span><\/strong><\/code> of this project. Newly implemented tests are discovered automatically when the class variable <strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">active<\/span><\/code><\/span><\/strong> is set to <code><strong><span style=\"color: #008000;\">True<\/span><\/strong><\/code>. Further (if you plan to contribute tests back to the main repository), the class variables <em>identifier<\/em>, <em>name<\/em> and <em>description<\/em> should be set appropriately.<\/p>\n<p>The following base classes exist with methods or class variables intended for overriding:<\/p>\n<ul>\n<li><code><strong><span style=\"color: #008000;\">MailTestBase<\/span><\/strong><\/code>: Test class for generic tests.\n<ul>\n<li><code><strong><span style=\"color: #008000;\">generateTestCases()<\/span><\/strong><\/code>: Yields test messages. These should be generated with the <strong><code><span style=\"color: #008000;\">MIME*<\/span><\/code><\/strong> classes from the Python <code><strong><span style=\"color: #008000;\">email.mime.*<\/span><\/strong><\/code> packages or with the <code><strong><span style=\"color: #008000;\">Message<\/span><\/strong><\/code> class from <code><strong><span style=\"color: #008000;\">email.message<\/span><\/strong><\/code> to ensure valid mail messages.<\/li>\n<li><code><strong><span style=\"color: #008000;\">active<\/span><\/strong><\/code>: Boolean value if test should be active.<\/li>\n<li><strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">identifier<\/span><\/code><\/span><\/strong>: Short identifier of the test. This one is used to enable or disable tests in parameters.<\/li>\n<li><code><strong><span style=\"color: #008000;\">name<\/span><\/strong><\/code>: Short test title.<\/li>\n<li><code><strong><span style=\"color: #008000;\">description<\/span><\/strong><\/code>: Longer test description, should fit within approximately 100 characters.<\/li>\n<li><code><strong><span style=\"color: #008000;\">delivery_sender<\/span><\/strong><\/code> and <strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">delivery_recipient<\/span><\/code><\/span><\/strong>: Boolean values, <em>False<\/em> by default. Normally, the sender and recipients are set in the message and the Python SMTP module takes them over from there. Sometimes it is desirable to set them explicitely in the SMTP library, which can be configured by setting this values to <em>True<\/em>.<\/li>\n<li><code><strong><span style=\"color: #008000;\">finalizeMessage(msg)<\/span><\/strong><\/code>: By default, the base test class sets the <em>From<\/em> and <em>To<\/em> headers accordingly. This behaviour can be overridden if required for the test case.<\/li>\n<\/ul>\n<\/li>\n<li><code><strong><span style=\"color: #008000;\">MailAttachmentTestBase<\/span><\/strong><\/code>: Test class for attachment test cases. This generates a complete valid mail with a Subject and a text part and attaches the test case to it. Derived from <code><strong><span style=\"color: #008000;\">MailTestBase<\/span><\/strong><\/code>, therefore the methods\/variables from it can be overridden here, too.\n<ul>\n<li><code><strong><span style=\"color: #008000;\">generateAttachments()<\/span><\/strong><\/code>: Yields test cases as (description, attachment) tuples.<\/li>\n<li><strong><span style=\"color: #008000;\"><code>subject<\/code><\/span><\/strong>: Sets the subject. The place holder <code>{}<\/code> is replaced by the description yielded by <code><strong><span style=\"color: #008000;\">generateAttachments()<\/span><\/strong><\/code>.<\/li>\n<li><code><strong><span style=\"color: #008000;\">generateTestCases()<\/span><\/strong><\/code>: is already overridden with an implementation of the message generation described above, but may be further adapted if required.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Setting the subjects of generated messages is highly recommended to be able to recongize the tests in the receiving inbox.<\/p>\n<h3 style=\"text-align: center;\"><strong>Evasions<\/strong><\/h3>\n<p>Evasion classes implement techniques for evading recognition of particular mail properties by mail security solutions. Currently, a evasion technique that tries to hide attachments from such solutions by intentionally broken <em>Content-Disposition<\/em> headers is implemented.<\/p>\n<h4 style=\"text-align: center;\"><strong>Implement New Evasions<\/strong><\/h4>\n<p>Evasions are implemented by a factory class pattern. The <strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">DeliveryBase<\/span><\/code><\/span><\/strong> class instantiaties a factory class derived from the <code><span style=\"color: #008000;\">BaseEvasionFactory<\/span><\/code> class. The factory constructor receives a flag that indicates if the evasion is activated. The evasion factory instance is then passed to the test class and stored in its <code>evasions<\/code> attribute that contains a dict with the evasion identifiers as keys. Inside the test, a evasion class (based on <code><strong><span style=\"color: #008000;\">EvasionBase<\/span><\/strong><\/code>) is instantiated with <strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">getEvasionGenerator()<\/span><\/code><\/span><\/strong>. The constructor parameter are defined individually per evasion technique.<\/p>\n<p>The following base classes are used to implement evasions:<\/p>\n<ul>\n<li><code><strong><span style=\"color: #008000;\">BaseEvasionFactory<\/span><\/strong><\/code>: Evasion factories must be based on this class. Usually, only the following class variables should be set:\n<ul>\n<li><strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">active<\/span><\/code><\/span><\/strong>: Set to <em>True<\/em> if the evasion should be active.<\/li>\n<li><code><strong><span style=\"color: #008000;\">identifier<\/span><\/strong><\/code>: Short identifier of the evasion module used for enabling it in the test configuration.<\/li>\n<li><strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">name<\/span><\/code><\/span><\/strong>: Short title of the evasion technique.<\/li>\n<li><code><strong><span style=\"color: #008000;\">description<\/span><\/strong><\/code>: Longer description of the evasion technique. Should fit in approximately 100 characters.<\/li>\n<li><strong><span style=\"color: #008000;\"><code><span style=\"color: #008000;\">generator_evasion<\/span><\/code><\/span><\/strong>: Evasion class that is instantiated if the evasion is enabled.<\/li>\n<li><code><span style=\"color: #008000;\"><strong>generator_default<\/strong><\/span><\/code>: Evasion class that is instantiated if the evasion is disabled.<\/li>\n<\/ul>\n<\/li>\n<li><code><strong><span style=\"color: #008000;\">BaseEvasion<\/span><\/strong><\/code>: Implementation of evasions must be a subclass of this base class. The following method must be overridden:\n<ul>\n<li><code><strong><span style=\"color: #008000;\">__init__()<\/span><\/strong><\/code>: Should instantiate the class with the base message or attachment that should be manipulated with evasion techniques.<\/li>\n<li><code><strong><span style=\"color: #008000;\">generate()<\/span><\/strong><\/code>: Apply the evasion technique to the object passed to the constructor and yield it to the caller as (description, object with evasion applied) tuple.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Generally, the evasion class should yield all evasion variants and pass the default as dedicated test case, while the default evasion classes only pass the given object or create the required data structures, like headers.<\/p>\n<h4 style=\"text-align: center;\"><strong>Using Evasion Techniques in Test Cases<\/strong><\/h4>\n<p>Evasion techniques are used in test cases where they are applicable. E.g. if an evasion technique manipulates the header of a mail or attachment, the following steps have to be implemented:<\/p>\n<ol>\n<li>Generate the base object (mail or attachment) without consideration of the evasion.<\/li>\n<li>Instantiate the appropriate evasion class by utilization of the evasion factory instance from <code><strong><span style=\"color: #008000;\">self.evasions<\/span><\/strong><\/code><strong><span style=\"color: #008000;\">, e.g.: <code><span style=\"color: #008000;\">evasion_items = self.evasions[\"evasion_identifier\"].getEvasionGenerator(message)<\/span><\/code><\/span><\/strong><\/li>\n<li>Iterate over the generator and yield the test cases:<\/li>\n<\/ol>\n<pre><code><strong><span style=\"color: #008000;\">for evasion_item in evasion_items:\n    yield evasion_item\n<\/span><\/strong><\/code><\/pre>\n<h4 style=\"text-align: center;\"><strong>Usage of the Content Disposition Evasion Technique<\/strong><\/h4>\n<p>The content disposition evasion technique is already implemented in the framework and should be used for all test cases that target on the recognition of malicious attachments. The constructor receives an attachment and the intended file name. The evasion class then yields (evasion name, attachment with applied evasion technique) tuples that can directly be yielded by the tests <code><strong><span style=\"color: #008000;\">generateAttachments()<\/span><\/strong><\/code> method.<\/p>\n<h2><strong>Disclaimer<\/strong><\/h2>\n<p>Don&#8217;t do anything evil with this! Tests of cloud or otherwise hosted solutions should always be approved by the tested provider. Only use your own test accounts and don&#8217;t annoy anyone with a load of test mails.<\/p>\n<p><a href=\"https:\/\/github.com\/TKCERT\/mail-security-tester\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-999\" src=\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png\" alt=\"\" width=\"141\" height=\"40\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mail Security Testing Framework is a testing framework for mail security and filtering solutions. Mail Security Testing Installation The mail security testing framework works with with Python &gt;=3.5. Just pull this repository and go ahead. No further dependencies are required. Usage The script mail-tester.py runs the tests. Read the help message with .\/mail-tester.py &#8211;help and [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28],"tags":[1185,1975,1976],"class_list":["post-2838","post","type-post","status-publish","format-standard","hentry","category-kali","tag-filtering-solutions","tag-mail-security","tag-mail-security-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mail Security Testing - Framework For Mail Security &amp; Filtering Solutions<\/title>\n<meta name=\"description\" content=\"Mail Security Testing Framework is a testing framework for mail security and filtering solutions. The mail security testing framework works with with Python\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mail Security Testing - Framework For Mail Security &amp; Filtering Solutions\" \/>\n<meta property=\"og:description\" content=\"Mail Security Testing Framework is a testing framework for mail security and filtering solutions. The mail security testing framework works with with Python\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-28T02:03:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png\" \/>\n<meta name=\"author\" content=\"R K\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:site\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R K\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\"},\"author\":{\"name\":\"R K\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\"},\"headline\":\"Mail Security Testing &#8211; Framework For Mail Security &#038; Filtering Solutions\",\"datePublished\":\"2018-09-28T02:03:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\"},\"wordCount\":1173,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png\",\"keywords\":[\"Filtering Solutions\",\"Mail Security\",\"Mail Security Testing\"],\"articleSection\":[\"Kali Linux\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\",\"name\":\"Mail Security Testing - Framework For Mail Security & Filtering Solutions\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png\",\"datePublished\":\"2018-09-28T02:03:55+00:00\",\"description\":\"Mail Security Testing Framework is a testing framework for mail security and filtering solutions. The mail security testing framework works with with Python\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"name\":\"Kali Linux Tutorials\",\"description\":\"Kali Linux Tutorials\",\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\",\"name\":\"Kali Linux Tutorials\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"width\":272,\"height\":90,\"caption\":\"Kali Linux Tutorials\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CyberEdition\",\"https:\/\/www.threads.com\/@cybersecurityedition\",\"https:\/\/www.linkedin.com\/company\/cyberedition\",\"https:\/\/www.instagram.com\/cybersecurityedition\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\",\"name\":\"R K\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"caption\":\"R K\"},\"url\":\"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mail Security Testing - Framework For Mail Security & Filtering Solutions","description":"Mail Security Testing Framework is a testing framework for mail security and filtering solutions. The mail security testing framework works with with Python","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/","og_locale":"en_US","og_type":"article","og_title":"Mail Security Testing - Framework For Mail Security & Filtering Solutions","og_description":"Mail Security Testing Framework is a testing framework for mail security and filtering solutions. The mail security testing framework works with with Python","og_url":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2018-09-28T02:03:55+00:00","og_image":[{"url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png","type":"","width":"","height":""}],"author":"R K","twitter_card":"summary_large_image","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"R K","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/"},"author":{"name":"R K","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad"},"headline":"Mail Security Testing &#8211; Framework For Mail Security &#038; Filtering Solutions","datePublished":"2018-09-28T02:03:55+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/"},"wordCount":1173,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png","keywords":["Filtering Solutions","Mail Security","Mail Security Testing"],"articleSection":["Kali Linux"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/","url":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/","name":"Mail Security Testing - Framework For Mail Security & Filtering Solutions","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png","datePublished":"2018-09-28T02:03:55+00:00","description":"Mail Security Testing Framework is a testing framework for mail security and filtering solutions. The mail security testing framework works with with Python","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/mail-security-testing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/mail-security-testing\/#primaryimage","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png"},{"@type":"WebSite","@id":"https:\/\/kalilinuxtutorials.com\/#website","url":"https:\/\/kalilinuxtutorials.com\/","name":"Kali Linux Tutorials","description":"Kali Linux Tutorials","publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kalilinuxtutorials.com\/#organization","name":"Kali Linux Tutorials","url":"https:\/\/kalilinuxtutorials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","width":272,"height":90,"caption":"Kali Linux Tutorials"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CyberEdition","https:\/\/www.threads.com\/@cybersecurityedition","https:\/\/www.linkedin.com\/company\/cyberedition","https:\/\/www.instagram.com\/cybersecurityedition\/"]},{"@type":"Person","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad","name":"R K","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","caption":"R K"},"url":"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":11045,"url":"https:\/\/kalilinuxtutorials.com\/keylogger\/","url_meta":{"origin":2838,"position":0},"title":"Keylogger : Get Keyboard, Mouse, ScreenShot, Microphone Inputs &#038; Send To Your Mail","author":"R K","date":"July 27, 2020","format":false,"excerpt":"Keylogger Get Keyboard,Mouse,ScreenShot,Microphone Inputs and Send to your Mail. Purpose of the project is testing the security of information systems. Installation pip install pynput Usage Set your own MAIL and PASSWORD on \"keylogger.py\".Run keylogger.py on Target ComputerEvery 10 seconds,You Get the Data from the Target Computer\\If Target finds the Code\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2082,"url":"https:\/\/kalilinuxtutorials.com\/ip-biter-hacker-e-mail-tracking\/","url_meta":{"origin":2838,"position":1},"title":"IP-Biter : The Hacker-friendly E-Mail Tracking Framework","author":"R K","date":"July 28, 2018","format":false,"excerpt":"IP-Biter is an open source, easy to deploy, tracking framework that generate high configurable and unique tracking images and links to embed in e-mails, sites or chat systems and visualize, in an hacker-friendly dashboard, high detailed reports of the tracked users who visualize the image or open the links. IP-Biter\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/123-1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/123-1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/123-1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/123-1.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/123-1.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":36542,"url":"https:\/\/kalilinuxtutorials.com\/mail-servers\/","url_meta":{"origin":2838,"position":2},"title":"Mail Servers : Ensuring Efficient And Secure Email Communication","author":"Varshini","date":"February 19, 2025","format":false,"excerpt":"A mail server is a critical component in the communication infrastructure, responsible for sending, receiving, and storing emails. It operates behind the scenes to ensure seamless email delivery across networks. This article explores the key functions and tools associated with mail servers. Core Functions Of A Mail Server Email Sending\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/Mail-Servers.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/Mail-Servers.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/Mail-Servers.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/Mail-Servers.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/Mail-Servers.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/Mail-Servers.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":35842,"url":"https:\/\/kalilinuxtutorials.com\/stalwart-mail-server\/","url_meta":{"origin":2838,"position":3},"title":"Stalwart Mail Server : Revolutionizing Email Security And Scalability","author":"Varshini","date":"January 29, 2025","format":false,"excerpt":"Stalwart Mail Server is an open-source mail server solution with JMAP, IMAP4, POP3, and SMTP support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable. Key features: JMAP, IMAP4, POP3 and ManageSieve server: JMAP server with Sieve Scripts,\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/01\/Stalwart-.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/01\/Stalwart-.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/01\/Stalwart-.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/01\/Stalwart-.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/01\/Stalwart-.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/01\/Stalwart-.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":2113,"url":"https:\/\/kalilinuxtutorials.com\/goldeneye-dos-test-tool\/","url_meta":{"origin":2838,"position":4},"title":"GoldenEye &#8211; GoldenEye Layer 7 DoS Test Tool","author":"R K","date":"August 1, 2018","format":false,"excerpt":"GoldenEye is an python app for SECURITY TESTING PURPOSES ONLY. GoldenEye is a HTTP DoS Test Tool. Attack Vector exploited: HTTP Keep Alive + NoCache. GoldenEye Usage USAGE: .\/goldeneye.py <url> [OPTIONS] OPTIONS: Flag Description Default -u, --useragents File with user-agents to use (default: randomly generated) -w, --workers Number of concurrent\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"https:\/\/github.com\/jseidl\/GoldenEye","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":5724,"url":"https:\/\/kalilinuxtutorials.com\/echidna-fuzz-testing-framework\/","url_meta":{"origin":2838,"position":5},"title":"Echidna : Ethereum Fuzz Testing Framework","author":"R K","date":"July 14, 2019","format":false,"excerpt":"Echidna is a weird creature that eats bugs and is highly electrosensitive (with apologies to Jacob Stanley) More seriously, Echidna is a Haskell library designed for fuzzing\/property-based testing of EVM code. It supports relatively sophisticated grammar-based fuzzing campaigns to falsify a variety of predicates. Features Generates inputs tailored to your\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/2838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/comments?post=2838"}],"version-history":[{"count":0,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/2838\/revisions"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=2838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=2838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=2838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}