mirror of
https://github.com/drwetter/testssl.sh.git
synced 2024-12-31 22:09:44 +01:00
Check MX Records (#41)
This commit is contained in:
parent
868c813055
commit
77a59234a2
33
testssl.sh
33
testssl.sh
@ -2575,7 +2575,7 @@ parse_hn_port() {
|
||||
# check if we can connect to port
|
||||
if ! fd_socket; then
|
||||
ignore_no_or_lame "Ignore? "
|
||||
[ $? -ne 0 ] && exit 3
|
||||
[ $? -ne 0 ] && return 3
|
||||
fi
|
||||
close_socket
|
||||
|
||||
@ -2596,6 +2596,7 @@ parse_hn_port() {
|
||||
|
||||
|
||||
get_dns_entries() {
|
||||
IP4=''; IP6=''
|
||||
test4iponly=`printf $NODE | sed -e 's/[0-9]//g' -e 's/\.//g'`
|
||||
if [ "x$test4iponly" == "x" ]; then # only an IPv4 address was supplied
|
||||
IP4=$NODE
|
||||
@ -2678,6 +2679,32 @@ datebanner() {
|
||||
}
|
||||
|
||||
|
||||
mx_allentries() {
|
||||
|
||||
HOST=$1
|
||||
if which dig &> /dev/null; then
|
||||
MXs=$(dig +short -t MX $HOST | grep '\d ')
|
||||
elif which host &> /dev/null; then
|
||||
MXs=$(host -t MX $HOST | grep 'handled by' | sed -e 's/^.*by //' -e 's/\.$//')
|
||||
elif which nslookup &> /dev/null; then
|
||||
MXs=$(nslookup -type=MX $HOST 2> /dev/null | grep 'mail exchanger = ' | awk '$5 ~ /[0-9]+/ {print $5 " " $NF}')
|
||||
else
|
||||
pr_redln 'No dig, host or nslookup'
|
||||
exit -1
|
||||
fi
|
||||
|
||||
MXs=$(echo "$MXs" | sort -n | sed -e 's/^.* //' -e 's/\.$//')
|
||||
|
||||
if [ -n "$MXs" ] ; then
|
||||
for MX in $MXs; do
|
||||
parse_hn_port "$MX:25" 'smtp' && starttls 'smtp'
|
||||
done
|
||||
else
|
||||
pr_magentaln "$HOST has no Mail Server(s)"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
################# main: #################
|
||||
|
||||
@ -2707,6 +2734,10 @@ case "$1" in
|
||||
-b|--banner|-banner|-v|--version|-version)
|
||||
exit 0
|
||||
;;
|
||||
--mx)
|
||||
mx_allentries $2
|
||||
exit $?
|
||||
;;
|
||||
-V|--local)
|
||||
initialize_engine # GOST support
|
||||
prettyprint_local "$2"
|
||||
|
Loading…
Reference in New Issue
Block a user