45 lines
1.8 KiB
Bash
Executable File
45 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
MODULE_DIR=$(dirname $0)
|
|
ZGRAB_ROOT=$MODULE_DIR/../..
|
|
ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output
|
|
|
|
mkdir -p $ZGRAB_OUTPUT/smtp
|
|
|
|
CONTAINER_NAME=zgrab_smtp
|
|
|
|
OUTPUT_ROOT="$ZGRAB_OUTPUT/smtp"
|
|
|
|
echo "smtp/test: Tests runner for smtp"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp > "$OUTPUT_ROOT/00.json"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-helo > "$OUTPUT_ROOT/helo.01.json"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-helo --helo-domain localhost > "$OUTPUT_ROOT/helo.02.json"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-ehlo > "$OUTPUT_ROOT/ehlo.03.json"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --ehlo-domain localhost > "$OUTPUT_ROOT/ehlo.04.json"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-ehlo --ehlo-domain localhost --send-quit > "$OUTPUT_ROOT/ehlo.quit.05.json"
|
|
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-help --send-quit > "$OUTPUT_ROOT/help.quit.06.json"
|
|
# TODO: the qpsmtpd container does not support STARTTLS.
|
|
|
|
FIELDS="help quit helo ehlo"
|
|
status=0
|
|
for field in $FIELDS; do
|
|
for file in $(find $OUTPUT_ROOT -iname "*$field*.json"); do
|
|
echo "check $file for $field"
|
|
RESULT=$(jp data.smtp.result.$field < $file)
|
|
if [ "$RESULT" = "null" ]; then
|
|
echo "Did not find $field in $file [["
|
|
cat $file
|
|
echo "]]"
|
|
status=1
|
|
fi
|
|
done
|
|
done
|
|
|
|
# Dump the docker logs
|
|
echo "smtp/test: BEGIN docker logs from $CONTAINER_NAME [{("
|
|
docker logs --tail all $CONTAINER_NAME
|
|
echo ")}] END docker logs from $CONTAINER_NAME"
|
|
|
|
exit $status
|