aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/protocols/kerberos.c9
-rw-r--r--tests/pcap/kerberos-error.pcapbin0 -> 537 bytes
-rw-r--r--tests/result/kerberos-error.pcap.out8
-rw-r--r--tests/result/kerberos.pcap.out2
4 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/protocols/kerberos.c b/src/lib/protocols/kerberos.c
index 9d2969e51..176bb2eab 100644
--- a/src/lib/protocols/kerberos.c
+++ b/src/lib/protocols/kerberos.c
@@ -424,7 +424,7 @@ void ndpi_search_kerberos(struct ndpi_detection_module_struct *ndpi_struct,
return;
} else if(kerberos_len == expected_len) {
- if(packet->payload_packet_len > 128) {
+ if(packet->payload_packet_len > 64) {
u_int16_t koffset, i;
for(i=8; i<16; i++)
@@ -444,6 +444,7 @@ void ndpi_search_kerberos(struct ndpi_detection_module_struct *ndpi_struct,
if(((packet->payload[koffset] == 0x0A)
|| (packet->payload[koffset] == 0x0C)
+ || (packet->payload[koffset] == 0x1E)
|| (packet->payload[koffset] == 0x0D)
|| (packet->payload[koffset] == 0x0E))) {
u_int16_t koffsetp, body_offset = 0, pad_len;
@@ -679,6 +680,12 @@ void ndpi_search_kerberos(struct ndpi_detection_module_struct *ndpi_struct,
sport, dport, flow->protos.kerberos.hostname, flow->protos.kerberos.domain,
flow->protos.kerberos.username);
flow->extra_packets_func = NULL;
+ } else if(msg_type == 0x1e) /* Error */ {
+#ifdef KERBEROS_DEBUG
+ printf("[Kerberos] Processing KRB-Error\n");
+#endif
+ /* Nothing specific to do; stop dissecting this flow */
+ flow->extra_packets_func = NULL;
}
return;
diff --git a/tests/pcap/kerberos-error.pcap b/tests/pcap/kerberos-error.pcap
new file mode 100644
index 000000000..249e23454
--- /dev/null
+++ b/tests/pcap/kerberos-error.pcap
Binary files differ
diff --git a/tests/result/kerberos-error.pcap.out b/tests/result/kerberos-error.pcap.out
new file mode 100644
index 000000000..79692fd81
--- /dev/null
+++ b/tests/result/kerberos-error.pcap.out
@@ -0,0 +1,8 @@
+Guessed flow protos: 0
+
+DPI Packets (UDP): 2 (2.00 pkts/flow)
+Confidence DPI : 1 (flows)
+
+Kerberos 2 481 1
+
+ 1 UDP 148.151.79.183:34473 <-> 144.199.10.233:88 [VLAN: 2008][proto: 111/Kerberos][ClearText][Confidence: DPI][cat: Network/14][1 pkts/333 bytes <-> 1 pkts/148 bytes][Goodput ratio: 86/68][0.36 sec][linux.shell.com\mus-n-cj0709][PLAIN TEXT (LINUX.SHELL.COM)][Plen Bins: 0,0,0,50,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
diff --git a/tests/result/kerberos.pcap.out b/tests/result/kerberos.pcap.out
index 27377c786..af04f6d53 100644
--- a/tests/result/kerberos.pcap.out
+++ b/tests/result/kerberos.pcap.out
@@ -1,4 +1,4 @@
-Guessed flow protos: 33
+Guessed flow protos: 29
DPI Packets (TCP): 77 (2.14 pkts/flow)
Confidence Unknown : 2 (flows)