Skip to content

Commit eb7e37b

Browse files
Merge branch 'master' into socks5
2 parents cf2fdfe + 00852fd commit eb7e37b

File tree

14 files changed

+583
-11
lines changed

14 files changed

+583
-11
lines changed

integration_tests/mqtt/cleanup.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env bash
2+
3+
set +e
4+
5+
echo "mqtt/cleanup: Tests cleanup for mqtt"
6+
7+
CONTAINER_NAME=zgrab_mqtt
8+
9+
docker stop $CONTAINER_NAME
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
listener 1883 0.0.0.0
2+
3+
listener 8883 0.0.0.0
4+
protocol mqtt
5+
certfile /mosquitto/server.pem
6+
keyfile /mosquitto/server.key
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[mqtt]
2+
name="mqtt-tls"
3+
trigger="mqtt-tls"
4+
port=8883
5+
tls=true
6+
7+
[mqtt]
8+
name="mqtt-tls-v5"
9+
trigger="mqtt-tls-v5"
10+
port=8883
11+
tls=true
12+
v5=true
13+
14+
[mqtt]
15+
name="mqtt"
16+
trigger="mqtt"
17+
port=1883
18+
19+
[mqtt]
20+
name="mqtt-v5"
21+
trigger="mqtt-v5"
22+
port=1883
23+
v5=true

integration_tests/mqtt/server.crt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDOzCCAiOgAwIBAgIUS+JTI5jiO1C0AgqSuFgB1P9wS8swDQYJKoZIhvcNAQEL
3+
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
4+
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yNDA5MjUwMzIwNTNaGA8yMDUy
5+
MDIxMDAzMjA1M1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
6+
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
7+
AQEBBQADggEPADCCAQoCggEBAKO/vB4nZjhbXcSMuIpl65aCK6zI6EtX2m5CrnJh
8+
fRChp9MJV3OesPV93rcM2Vd+grf8qTw77TLcglYcSuHvBHfVbHaCnBx0z5ogYozR
9+
EiuNV/hxTgfJdhQVN5WwGvRJe0pb7RaLtz4PF8rHJlTitQw37uGmOsW4bBZU1F6B
10+
Nz/Os9BPLBBBnQvHUQmmp/aGJBga0mRRW3VFFOt7XgLJR2PR9jCTQZstleudSddj
11+
SRemVvfm0zcsIO4IPsCKdkUMh4+eW3H0cc2oFggIDz72+uUYnyxtOx1vv7RzVETJ
12+
BwMG/VDnfNZ5lozTKhlKZhVyVijy3ObMax8pLXixJcKrqc0CAwEAAaMhMB8wHQYD
13+
VR0OBBYEFP6DHoFBdNVmHwc6LZnLwcDcKnvzMA0GCSqGSIb3DQEBCwUAA4IBAQA9
14+
VRDbEAFWmqKq+LPRqGmjiqGE0rTOsoKSDWn0Zsre31H2vsXy8BUW69rjhwMXEONl
15+
5ybZCHnU8GLawFzrVQJnuV77XhIDuJhIz81guy0K872YcrNuhlIS7ahxXJszwgPe
16+
Tp313rJKUA44DIuF18WjWjwQL8bU80xiJJcyuR2mViOFgcfIABmSzvvMx8nHxp7W
17+
C9woea6TMamq7GQmIky9ZVy7OcfOSCygK0TU6Y2qNcIuKl4xtvY07msGFLifXp6s
18+
A9A4aS610tqPNInh5zokI2m/y7nvCq7BA9n+5HvMKJcxW2G+AU7R7IFJctsPL07g
19+
1MDuvzVplpxKk3tkj8Ou
20+
-----END CERTIFICATE-----

integration_tests/mqtt/server.csr

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-----BEGIN CERTIFICATE REQUEST-----
2+
MIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
3+
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
4+
AQEBBQADggEPADCCAQoCggEBAKO/vB4nZjhbXcSMuIpl65aCK6zI6EtX2m5CrnJh
5+
fRChp9MJV3OesPV93rcM2Vd+grf8qTw77TLcglYcSuHvBHfVbHaCnBx0z5ogYozR
6+
EiuNV/hxTgfJdhQVN5WwGvRJe0pb7RaLtz4PF8rHJlTitQw37uGmOsW4bBZU1F6B
7+
Nz/Os9BPLBBBnQvHUQmmp/aGJBga0mRRW3VFFOt7XgLJR2PR9jCTQZstleudSddj
8+
SRemVvfm0zcsIO4IPsCKdkUMh4+eW3H0cc2oFggIDz72+uUYnyxtOx1vv7RzVETJ
9+
BwMG/VDnfNZ5lozTKhlKZhVyVijy3ObMax8pLXixJcKrqc0CAwEAAaAAMA0GCSqG
10+
SIb3DQEBCwUAA4IBAQCPropLZOaRaCD+iSGS304DRO6ysO8D2UW9T8CKqcbI6mOp
11+
b8Wx2ENXXxuhSIpF3xe+yqpPOQmxph+lYnlewqVFWKRY91xIX07iMQ4bQHXKiWTs
12+
IUQYRDbiLPq4sLgKdUdD41SoLhRBLGySX0/27hBlMQ0dZz92jTLOAYL06oqdtcJE
13+
q/v3HVKlGiPkPiuFljbxBwI142ceFAWCctTb7N+6a0W/HioZPhKXLfGMcEHyNCQ7
14+
XwMQW5DSp4S7J4FseDkxLIxcbYYCxpi3jHFx+eYPerZ5TobE6QZHQeWLj8mcrNwu
15+
mrL6CFlKde7F+xmb3e/tPfUTE+NxNdWzPGTjov2h
16+
-----END CERTIFICATE REQUEST-----

integration_tests/mqtt/server.key

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjv7weJ2Y4W13E
3+
jLiKZeuWgiusyOhLV9puQq5yYX0QoafTCVdznrD1fd63DNlXfoK3/Kk8O+0y3IJW
4+
HErh7wR31Wx2gpwcdM+aIGKM0RIrjVf4cU4HyXYUFTeVsBr0SXtKW+0Wi7c+DxfK
5+
xyZU4rUMN+7hpjrFuGwWVNRegTc/zrPQTywQQZ0Lx1EJpqf2hiQYGtJkUVt1RRTr
6+
e14CyUdj0fYwk0GbLZXrnUnXY0kXplb35tM3LCDuCD7AinZFDIePnltx9HHNqBYI
7+
CA8+9vrlGJ8sbTsdb7+0c1REyQcDBv1Q53zWeZaM0yoZSmYVclYo8tzmzGsfKS14
8+
sSXCq6nNAgMBAAECggEABtiZUNls2KZZQUJw5LhmJSDEGrE7pQrDQyDekkGpLOzV
9+
S2l0kozr8ReWHCkZXSMY7ABQQwhuXlYBzP/Z0aBgm3H82ueTB02K8HKyLBkBnXiH
10+
WQfDr2eo3CYW8NcwCU6ZLP6y5uJogtu2ru+slpfz4dLk1eJRSrrvKe/aASl92dkF
11+
Y8UHh2Fw1Vctf/yND/hNiUefKhfwqVhbwOHZnDZ96ww878bHFumxrhBS6+DNFyIN
12+
NrGsHWZ+NUS5/jpRu9kw/TRTtvXQzt18jIfHt9t1awyoxUX0fqtKlWKn2JvjZcP/
13+
5udjY5LT1Jyx80e1LFotCFNYo3SKLNS4ci7047S8gQKBgQDRJ6WSr9DrEjTkRvK4
14+
yUZj+0JEQbNCiZm7cOxNUMLw8OB2lMd5/qNYGKsa1kq0vCpkkLrLN8MVZOIanXIW
15+
ENnZdtvb7/Io4MkS0yIkIIPfhP4YyQRGmkKVn/vBY9meqDj9KVtUiSHl0VebnR3N
16+
4QKjvFK+sOIkOXwG/baKp7SCaQKBgQDIbKQPD6AjU6NZx16gpXXMq9+dTC830cmE
17+
tvO8ye73wNmU6M8/ys7zedAVMtO5XK98/ASHJmhVjhtfSHA0RpxdhcOIizWBquGu
18+
7jvZ9iocos5NZuR9++in9hRsFIiiII9u4PrwVznZJZIdP9mV9Pba7SaRbd0LWOLY
19+
2TZ89XD3xQKBgHukKlb6pFAyZR4Favsd0QTNxbC//g55dW2/JZHXCkaQvsCa1wkh
20+
JMKxYoTs5SDOk2j7vdDgV+zPxHHjXUv6Di5l+zabM9ZCe9srAOXGau65mdRhEKwE
21+
CRSWjKcYNc96tqXBywHAR0+qX1XYnYPVXlAYxfmAa07qxI0FcuGonibxAoGBAILv
22+
rtKEE8tgdcROYnyy+92Fn6YEwohGDtAcMenxRqQnIj6NRfBYD5Gy0AU5WmarrZ4K
23+
iu68Ycca+rjp+xu70aWroM2QnJkkySHeU82Wa3afygV5JedEbn9kXX0qgQTiHrKC
24+
Wo4vfgRl7iobr4uvKKJn8h1qV9F09WZTqaxDMNU9AoGACTw9ZiKtrW+5jS1ucLdl
25+
49gE6QPH3+JnQPqazguLF9OoCOyw69lHdzu/S77Yag4W5M+N8dBCRNF/lOfCbtJc
26+
eIeSFMdJOq97GlsK6QompySHlKlq13u17Jot0x82VPJt1vUuGTrS8qrM5QDKWxZw
27+
skYVITHcfYVzVgxC9JIIKGg=
28+
-----END PRIVATE KEY-----

integration_tests/mqtt/server.pem

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjv7weJ2Y4W13E
3+
jLiKZeuWgiusyOhLV9puQq5yYX0QoafTCVdznrD1fd63DNlXfoK3/Kk8O+0y3IJW
4+
HErh7wR31Wx2gpwcdM+aIGKM0RIrjVf4cU4HyXYUFTeVsBr0SXtKW+0Wi7c+DxfK
5+
xyZU4rUMN+7hpjrFuGwWVNRegTc/zrPQTywQQZ0Lx1EJpqf2hiQYGtJkUVt1RRTr
6+
e14CyUdj0fYwk0GbLZXrnUnXY0kXplb35tM3LCDuCD7AinZFDIePnltx9HHNqBYI
7+
CA8+9vrlGJ8sbTsdb7+0c1REyQcDBv1Q53zWeZaM0yoZSmYVclYo8tzmzGsfKS14
8+
sSXCq6nNAgMBAAECggEABtiZUNls2KZZQUJw5LhmJSDEGrE7pQrDQyDekkGpLOzV
9+
S2l0kozr8ReWHCkZXSMY7ABQQwhuXlYBzP/Z0aBgm3H82ueTB02K8HKyLBkBnXiH
10+
WQfDr2eo3CYW8NcwCU6ZLP6y5uJogtu2ru+slpfz4dLk1eJRSrrvKe/aASl92dkF
11+
Y8UHh2Fw1Vctf/yND/hNiUefKhfwqVhbwOHZnDZ96ww878bHFumxrhBS6+DNFyIN
12+
NrGsHWZ+NUS5/jpRu9kw/TRTtvXQzt18jIfHt9t1awyoxUX0fqtKlWKn2JvjZcP/
13+
5udjY5LT1Jyx80e1LFotCFNYo3SKLNS4ci7047S8gQKBgQDRJ6WSr9DrEjTkRvK4
14+
yUZj+0JEQbNCiZm7cOxNUMLw8OB2lMd5/qNYGKsa1kq0vCpkkLrLN8MVZOIanXIW
15+
ENnZdtvb7/Io4MkS0yIkIIPfhP4YyQRGmkKVn/vBY9meqDj9KVtUiSHl0VebnR3N
16+
4QKjvFK+sOIkOXwG/baKp7SCaQKBgQDIbKQPD6AjU6NZx16gpXXMq9+dTC830cmE
17+
tvO8ye73wNmU6M8/ys7zedAVMtO5XK98/ASHJmhVjhtfSHA0RpxdhcOIizWBquGu
18+
7jvZ9iocos5NZuR9++in9hRsFIiiII9u4PrwVznZJZIdP9mV9Pba7SaRbd0LWOLY
19+
2TZ89XD3xQKBgHukKlb6pFAyZR4Favsd0QTNxbC//g55dW2/JZHXCkaQvsCa1wkh
20+
JMKxYoTs5SDOk2j7vdDgV+zPxHHjXUv6Di5l+zabM9ZCe9srAOXGau65mdRhEKwE
21+
CRSWjKcYNc96tqXBywHAR0+qX1XYnYPVXlAYxfmAa07qxI0FcuGonibxAoGBAILv
22+
rtKEE8tgdcROYnyy+92Fn6YEwohGDtAcMenxRqQnIj6NRfBYD5Gy0AU5WmarrZ4K
23+
iu68Ycca+rjp+xu70aWroM2QnJkkySHeU82Wa3afygV5JedEbn9kXX0qgQTiHrKC
24+
Wo4vfgRl7iobr4uvKKJn8h1qV9F09WZTqaxDMNU9AoGACTw9ZiKtrW+5jS1ucLdl
25+
49gE6QPH3+JnQPqazguLF9OoCOyw69lHdzu/S77Yag4W5M+N8dBCRNF/lOfCbtJc
26+
eIeSFMdJOq97GlsK6QompySHlKlq13u17Jot0x82VPJt1vUuGTrS8qrM5QDKWxZw
27+
skYVITHcfYVzVgxC9JIIKGg=
28+
-----END PRIVATE KEY-----
29+
-----BEGIN CERTIFICATE-----
30+
MIIDOzCCAiOgAwIBAgIUS+JTI5jiO1C0AgqSuFgB1P9wS8swDQYJKoZIhvcNAQEL
31+
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
32+
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yNDA5MjUwMzIwNTNaGA8yMDUy
33+
MDIxMDAzMjA1M1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
34+
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
35+
AQEBBQADggEPADCCAQoCggEBAKO/vB4nZjhbXcSMuIpl65aCK6zI6EtX2m5CrnJh
36+
fRChp9MJV3OesPV93rcM2Vd+grf8qTw77TLcglYcSuHvBHfVbHaCnBx0z5ogYozR
37+
EiuNV/hxTgfJdhQVN5WwGvRJe0pb7RaLtz4PF8rHJlTitQw37uGmOsW4bBZU1F6B
38+
Nz/Os9BPLBBBnQvHUQmmp/aGJBga0mRRW3VFFOt7XgLJR2PR9jCTQZstleudSddj
39+
SRemVvfm0zcsIO4IPsCKdkUMh4+eW3H0cc2oFggIDz72+uUYnyxtOx1vv7RzVETJ
40+
BwMG/VDnfNZ5lozTKhlKZhVyVijy3ObMax8pLXixJcKrqc0CAwEAAaMhMB8wHQYD
41+
VR0OBBYEFP6DHoFBdNVmHwc6LZnLwcDcKnvzMA0GCSqGSIb3DQEBCwUAA4IBAQA9
42+
VRDbEAFWmqKq+LPRqGmjiqGE0rTOsoKSDWn0Zsre31H2vsXy8BUW69rjhwMXEONl
43+
5ybZCHnU8GLawFzrVQJnuV77XhIDuJhIz81guy0K872YcrNuhlIS7ahxXJszwgPe
44+
Tp313rJKUA44DIuF18WjWjwQL8bU80xiJJcyuR2mViOFgcfIABmSzvvMx8nHxp7W
45+
C9woea6TMamq7GQmIky9ZVy7OcfOSCygK0TU6Y2qNcIuKl4xtvY07msGFLifXp6s
46+
A9A4aS610tqPNInh5zokI2m/y7nvCq7BA9n+5HvMKJcxW2G+AU7R7IFJctsPL07g
47+
1MDuvzVplpxKk3tkj8Ou
48+
-----END CERTIFICATE-----

integration_tests/mqtt/setup.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env bash
2+
3+
echo "mqtt/setup: Tests setup for mqtt"
4+
5+
CONTAINER_TAG="eclipse-mosquitto"
6+
CONTAINER_NAME="zgrab_mqtt"
7+
8+
# If the container is already running, use it.
9+
if docker ps --filter "name=$CONTAINER_NAME" | grep -q $CONTAINER_NAME; then
10+
echo "mqtt/setup: Container $CONTAINER_NAME already running -- nothing to setup"
11+
exit 0
12+
fi
13+
14+
DOCKER_RUN_FLAGS="--rm --name $CONTAINER_NAME -td -v ./mosquitto.conf:/mosquitto/config/mosquitto.conf -v ./server.pem:/mosquitto/server.pem -v ./server.key:/mosquitto/server.key"
15+
16+
# If it is not running, try launching it -- on success, use that.
17+
echo "mqtt/setup: Trying to launch $CONTAINER_NAME..."
18+
if ! docker run $DOCKER_RUN_FLAGS $CONTAINER_TAG; then
19+
echo "eclipse-mosquitto launch fail"
20+
21+
#echo "mqtt/setup: Building docker image $CONTAINER_TAG..."
22+
# If it fails, build it from ./container/Dockerfile
23+
#docker build -t $CONTAINER_TAG ./container
24+
# Try again
25+
#echo "mqtt/setup: Launching $CONTAINER_NAME..."
26+
#docker run $DOCKER_RUN_FLAGS $CONTAINER_TAG
27+
fi

integration_tests/mqtt/test.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
MODULE_DIR=$(dirname $0)
5+
ZGRAB_ROOT=$(git rev-parse --show-toplevel)
6+
ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output
7+
8+
mkdir -p $ZGRAB_OUTPUT/mqtt
9+
10+
CONTAINER_NAME=zgrab_mqtt
11+
12+
OUTPUT_FILE=$ZGRAB_OUTPUT/mqtt/mqtt.json
13+
14+
echo "mqtt/test: Tests runner for mqtt"
15+
# TODO FIXME: Add any necessary flags or additional tests
16+
# echo -e ",target,mqtt
17+
# ,target,mqtt-tls
18+
# ,target,mqtt-v5
19+
# ,target,mqtt-tls-v5" | docker run --rm -i -v ./multiple.ini:/multiple.ini --link $CONTAINER_NAME:target zgrab2_runner multiple -c /multiple.ini> $OUTPUT_FILE
20+
#CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh mqtt --v5 >> $OUTPUT_FILE
21+
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh mqtt > $ZGRAB_OUTPUT/mqtt/default.json
22+
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh mqtt --v5 > $ZGRAB_OUTPUT/mqtt/mqtt_v5.json
23+
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh mqtt --tls -p 8883 > $ZGRAB_OUTPUT/mqtt/mqtt_tls.json
24+
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh mqtt --tls --v5 -p 8883 > $ZGRAB_OUTPUT/mqtt/mqtt_tls_v5.json
25+
26+
# Dump the docker logs
27+
echo "mqtt/test: BEGIN docker logs from $CONTAINER_NAME [{("
28+
docker logs --tail all $CONTAINER_NAME
29+
echo ")}] END docker logs from $CONTAINER_NAME"
30+
31+
# TODO: If there are any other relevant log files, dump those to stdout here.

modules/banner/scanner.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"net"
1818
"regexp"
1919
"strconv"
20+
"time"
2021

2122
"github.com/zmap/zgrab2"
2223
)
@@ -26,16 +27,19 @@ type Flags struct {
2627
zgrab2.BaseFlags `group:"Basic Options"`
2728
zgrab2.TLSFlags `group:"TLS Options"`
2829

29-
Probe string `long:"probe" default:"\\n" description:"Probe to send to the server. Use triple slashes to escape, for example \\\\\\n is literal \\n. Mutually exclusive with --probe-file."`
30-
ProbeFile string `long:"probe-file" description:"Read probe from file as byte array (hex). Mutually exclusive with --probe."`
31-
Pattern string `long:"pattern" description:"Pattern to match, must be valid regexp."`
32-
UseTLS bool `long:"tls" description:"Sends probe with TLS connection. Loads TLS module command options."`
33-
MaxTries int `long:"max-tries" default:"1" description:"Number of tries for timeouts and connection errors before giving up. Includes making TLS connection if enabled."`
34-
Hex bool `long:"hex" description:"Store banner value in hex. Mutually exclusive with --base64."`
35-
Base64 bool `long:"base64" description:"Store banner value in base64. Mutually exclusive with --hex."`
36-
MD5 bool `long:"md5" description:"Calculate MD5 hash of banner value."`
37-
SHA1 bool `long:"sha1" description:"Calculate SHA1 hash of banner value."`
38-
SHA256 bool `long:"sha256" description:"Calculate SHA256 hash of banner value."`
30+
ReadTimeout int `long:"read-timeout" default:"10" description:"Read timeout in milliseconds"`
31+
BufferSize int `long:"buffer-size" default:"8209" description:"Read buffer size in bytes"`
32+
MaxReadSize int `long:"max-read-size" default:"512" description:"Maximum amount of data to read in KiB (1024 bytes)"`
33+
Probe string `long:"probe" default:"\\n" description:"Probe to send to the server. Use triple slashes to escape, for example \\\\\\n is literal \\n. Mutually exclusive with --probe-file."`
34+
ProbeFile string `long:"probe-file" description:"Read probe from file as byte array (hex). Mutually exclusive with --probe."`
35+
Pattern string `long:"pattern" description:"Pattern to match, must be valid regexp."`
36+
UseTLS bool `long:"tls" description:"Sends probe with TLS connection. Loads TLS module command options."`
37+
MaxTries int `long:"max-tries" default:"1" description:"Number of tries for timeouts and connection errors before giving up. Includes making TLS connection if enabled."`
38+
Hex bool `long:"hex" description:"Store banner value in hex. Mutually exclusive with --base64."`
39+
Base64 bool `long:"base64" description:"Store banner value in base64. Mutually exclusive with --hex."`
40+
MD5 bool `long:"md5" description:"Calculate MD5 hash of banner value."`
41+
SHA1 bool `long:"sha1" description:"Calculate SHA1 hash of banner value."`
42+
SHA256 bool `long:"sha256" description:"Calculate SHA256 hash of banner value."`
3943
}
4044

4145
// Module is the implementation of the zgrab2.Module interface.
@@ -178,7 +182,11 @@ func (s *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, any, error)
178182

179183
for try := 0; try < s.config.MaxTries; try++ {
180184
_, err = conn.Write(s.probe)
181-
data, readErr = zgrab2.ReadAvailable(conn)
185+
data, readErr = zgrab2.ReadAvailableWithOptions(conn,
186+
s.config.BufferSize,
187+
time.Duration(s.config.ReadTimeout)*time.Millisecond,
188+
0,
189+
s.config.MaxReadSize*1024)
182190
if err != nil {
183191
continue
184192
}

0 commit comments

Comments
 (0)