Source code for tests.default_smtp
from .test import *
from honeypots.honeypot import ScanFailure
[docs]class DefaultSMTPBannerTest(Test):
name = "Default SMTP Banner Test"
description = "Tests usage of default SMTP banners"
karma_value = 100
doc_file = "default_banner.html"
[docs] def run(self):
"""Check if content matches any known content"""
known_banners = {
b'220 mail.example.com SMTP Mailserver\r\n': "amun",
}
target_ports = self.target_honeypot.get_service_ports('smtp', '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")