diff --git a/portradar.sh b/portradar.sh index 823fbc6..0cf414e 100755 --- a/portradar.sh +++ b/portradar.sh @@ -1,8 +1,21 @@ #!/bin/bash -# Try multiprocess going through each ip in the for loop # Add /usr/share/nmap-services in the script itself (maybe as a blob?) +help() { + cat </dev/null; echo $?); [[ $ret == 0 ]] && { echo $c >> /tmp/tcp_ports; echo -n "For Nmap service and version enumeration try: "; cg_color bbb "sudo nmap -sCV -p $(allports=($( Scanning $ip" -elif [[ $1 =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$ ]]; then - cidr=$1 -else - cg_color bby "Invalid network address :(" - exit -fi +[[ $# < 1 ]] && help + +# use args +RUN_NMAP=false +while [ "$1" != "" ]; do + case $1 in + -p | --port) + shift + if [[ $1 =~ ^[0-9]+$ && $1 -le 65535 ]]; then + port=$1 + else + help + exit + fi + ;; + --nmap) + RUN_NMAP=true + ;; + *) + if [[ $1 =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + ip=$1 + elif [[ $1 =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$ ]]; then + cidr=$1 + else + help + exit + fi + ;; + esac + shift +done + +[[ ! ($ip||$cidr) ]] && help # Clean up cl # Scan TCP ports -[[ $ip ]] && { pp "TCP ports"; scan_tcp; pt /tmp/tcp_ports tcp; } -[[ $cidr ]] && { cidr_to_ips $cidr; for ip in ${ips[@]}; do echo "--> Scanning $ip"; pp "TCP ports"; scan_tcp; pt /tmp/tcp_ports tcp; cl; done; } \ No newline at end of file +if [[ $ip ]]; then + echo "--> Scanning $ip" + if [[ $port ]]; then + scan_tcp $port; pt /tmp/tcp_ports tcp + else + pp "TCP ports"; scan_tcp; pt /tmp/tcp_ports tcp + fi +elif [[ $cidr ]]; then + cidr_to_ips $cidr + for ip in ${ips[@]}; do + echo "--> Scanning $ip" + if [[ $port ]]; then + scan_tcp $port; pt /tmp/tcp_ports tcp + else + pp "TCP ports"; scan_tcp; pt /tmp/tcp_ports tcp + fi + cl + done +fi \ No newline at end of file