socks/dpd: Fix socks5_server side signature

The server replies with \x05 and identifier for the chosen method.
Not quite sure what the previous signature meant capture.

See also: https://datatracker.ietf.org/doc/html/rfc1928#section-3

Closes #3099.
This commit is contained in:
Arne Welzel 2023-06-05 13:34:42 +02:00
parent a18d6c9400
commit d6ca1ec4f6
5 changed files with 19 additions and 3 deletions

View file

@ -40,9 +40,7 @@ signature dpd_socks5_server {
requires-reverse-signature dpd_socks5_client requires-reverse-signature dpd_socks5_client
# Watch for a single authentication method to be chosen by the server or # Watch for a single authentication method to be chosen by the server or
# the server to indicate the no authentication is required. # the server to indicate the no authentication is required.
payload /^\x05(\x00|\x01[\x00\x01\x02])/ payload /^\x05[\x00\x01\x02\xff]/
tcp-state responder tcp-state responder
enable "socks" enable "socks"
} }

View file

@ -0,0 +1,4 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
id.orig_h id.orig_p id.resp_h id.resp_p service history
192.168.0.2 55951 192.168.0.1 10080 socks ShADad
192.168.0.1 55951 192.168.0.2 22 - ShA

View file

@ -0,0 +1,3 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
id.orig_h id.orig_p id.resp_h id.resp_p version status bound.host bound.name bound_p
192.168.0.2 55951 192.168.0.1 10080 5 succeeded 192.168.0.1 - 55951

Binary file not shown.

View file

@ -0,0 +1,11 @@
# @TEST-DOC: Socks V5 over a non-standard port.
# @TEST-EXEC: zeek -r $TRACES/socks-auth-10080.pcap %INPUT
# @TEST-EXEC: zeek-cut -m id.orig_h id.orig_p id.resp_h id.resp_p service history < conn.log > conn.log.cut
# @TEST-EXEC: zeek-cut -m id.orig_h id.orig_p id.resp_h id.resp_p version status bound.host bound.name bound_p < socks.log > socks.log.cut
# @TEST-EXEC: btest-diff conn.log.cut
# @TEST-EXEC: btest-diff socks.log.cut
@load base/protocols/socks
redef SOCKS::default_capture_password = T;