diff options
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/ServiceDetector.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/ServiceDetector.java | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/ServiceDetector.java b/src/main/java/com/it_jaros/jscanner/ServiceDetector.java deleted file mode 100644 index 4d4f76e..0000000 --- a/src/main/java/com/it_jaros/jscanner/ServiceDetector.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.it_jaros.jscanner; - -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.regex.Pattern; - -public class ServiceDetector { - private static final List<ServicePattern> patterns = List.of( - new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bDNS\\b")), - new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bBIND\\b")), - new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bNSD\\b")), - new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bPowerDNS\\b")), - new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bUnbound\\b")), - new ServicePattern(ServiceType.FTP, Pattern.compile("(?i)^220.*\\bFTP\\b")), - new ServicePattern(ServiceType.HTTP, Pattern.compile("(?i)\\bServer:\\s*")), - new ServicePattern(ServiceType.HTTP, Pattern.compile("(?i)^HTTP/")), - new ServicePattern(ServiceType.IMAP, Pattern.compile("(?i)^\\* OK.*\\bIMAP\\b")), - new ServicePattern(ServiceType.POP3, Pattern.compile("(?i)^\\+OK.*\\bPOP3\\b")), - new ServicePattern(ServiceType.SMTP, Pattern.compile("(?i)^220.*\\bESMTP\\b")), - new ServicePattern(ServiceType.SMTP, Pattern.compile("(?i)^220.*\\bSMTP\\b")), - new ServicePattern(ServiceType.SSH, Pattern.compile("(?i)^SSH-")) - ); - - public static ServiceType detect(byte[] banner) { - if (banner == null || banner.length == 0) { - return ServiceType.UNKNOWN; - } - - String bannerString = new String(banner, StandardCharsets.UTF_8); - for (ServicePattern servicePattern : patterns) { - if (servicePattern.matches(bannerString)) { - return servicePattern.serviceType(); - } - } - - return ServiceType.UNKNOWN; - } - - private record ServicePattern( - ServiceType serviceType, - Pattern pattern - ) { - boolean matches(String banner) { - return pattern.matcher(banner).find(); - } - } -}
\ No newline at end of file |
