Linux - Port Scan Command
Yesterday I was tasked to get open and closed ports on a specific IP address.I found a website that I started from http://www.catonmat.net/blog/tcp-port-scanner-in-bash/
Once I was there I modified his one procedure and came up with mine.
scan() {
if [[ -z $1 || -z $2 ]]; then
echo "Usage: $0 <host> <port, ports, or port-range>"
return
fi
local host=$1
local ports=()
local endS=0
local exS=''
case $2 in
*-*)
IFS=- read start end <<< "$2"
if ((end - start > 10)); then
endS=$start
while [ $endS -lt $(($end-10)) ]; do
endS=$(($endS+10));
(scan $host $(($endS-10))-$endS) &
done
wait
echo "done $(date -d "today" +"%Y%m%d%H%M")"
return
fi
for ((port=start; port <= end; port++)); do
ports+=($port)
done
;;
*,*)
IFS=, read -ra ports <<< "$2"
;;
*)
ports+=($2)
;;
esac
for port in "${ports[@]}"; do
timeout 1 bash -c "echo >/dev/tcp/$host/$port" &&
echo -e "<$(date -d "today" +"%Y%m%d%H%M")>\t<$host>\tport $port is open" >> ~/Documents/@hack/log-$host.log ||
echo -e "<$(date -d "today" +"%Y%m%d%H%M")>\t<$host>\tport $port NOT open" >> ~/Documents/@hack/log-$host.log
done
}
Example use:
scan www.bjorn.co.za 80
#bearMan
No comments:
Post a Comment