Source code for tests.default_telnet

from .test import *

from honeypots.honeypot import ScanFailure


[docs]class DefaultTelnetBannerTest(Test): name = "Default Telnet Banner Test" description = "Tests usage of default telnet banners" karma_value = 100 doc_file = "default_banner.html"
[docs] def run(self): """Check if content matches any known content""" known_banners = { b'\xff\xfb\x03\xff\xfb\x01\xff\xfd\x1f\xff\xfd\x18\r\nlogin: ': "telnetlogger", b'\xff\xfd\x1flogin: ': "cowrie", b'\xff\xfb\x01\xff\xfb\x03\xff\xfc\'\xff\xfe\x01\xff\xfd\x03\xff\xfe"\xff\xfd\'\xff\xfd\x18\xff\xfe\x1f': "mtpot", b'\xff\xfb\x01\xff\xfb\x03': "mtpot", b'\xff\xfb\x01': "mtpot", b'Debian GNU/Linux 7\r\nLogin: ': "honeypy" } target_ports = self.target_honeypot.get_service_ports('telnet', '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. Found banner: ", banner)