Source code for tests.default_ftp

from .test import *

from honeypots.honeypot import ScanFailure


[docs]class DefaultFTPBannerTest(Test): name = "Default FTP Banner Test" description = "Tests usage of default service banners" karma_value = 100 doc_file = "default_banner.html"
[docs] def run(self): """Check if banner matches any known banner""" known_banners = { b'220 DiskStation FTP server ready.\r\n': "dionaea", b'220 Welcome to my FTP Server\r\n': "amun", b'220 BearTrap-ftpd Service ready\r\n': "beartrap" } target_ports = self.target_honeypot.get_service_ports('ftp', '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")