Source code for tests.default_imap

from .test import *

from honeypots.honeypot import ScanFailure


[docs]class DefaultIMAPBannerTest(Test): name = "Default IMAP Banner Test" description = "Tests usage of default IMAP banners" karma_value = 90 doc_file = "default_banner.html"
[docs] def run(self): """Check if content matches any known content""" known_banners = { b'a200 Lotus Domino 6.5.4 7.0.2 IMAP4\r\n': "amun" } target_ports = self.target_honeypot.get_service_ports('imap', 'tcp') if not target_ports: self.set_result(TestResult.NOT_APPLICABLE, "No open ports found!") return for port in target_ports: try: banner = self.target_honeypot.get_banner(port, protocol='tcp') except ScanFailure as e: self.set_result(TestResult.UNKNOWN, e) continue if banner in known_banners: self.set_result(TestResult.WARNING, "Default", known_banners[banner], "banner used") return else: self.set_result(TestResult.OK, "No default banners")