nmap使用方法-跳板機命令

nmap:https://blog.csdn.net/tk86935367/article/details/8352015



#/bin/bash

#變量聲明
nmap=`which nmap`
ssh_keygen=`which ssh-keygen`
ssh_copy_id=`which ssh-copy-id`
ifconfig=`which ifconfig`
ssh=`which ssh`
user=muyang
pass=muyang
declare -a vm
declare -a know=0
declare -i i=0
lan_Ip=192.168.127.0
mask=24
trap "" HUP INT QUIT TSTP
#本地IP獲取
local_ip=`$ifconfig ens33 | grep netmask | awk '{print $2}'`
#echo -e "\033[40;32m================信號捕捉開始====================\033[0m"
#trap "" HUT,INT,QUIT,TSTP

#掃描可以訪問的主機
echo -e "\033[40;34m=======================開始搜索可以遠程訪問的主機=============\033[0m"
for own  in $(cat /root/.ssh/known_hosts  |cut -d " " -f 1 |cut -d "." -f 4)
        do
           echo "192.168.127.${own}......."
           know[$own]=1
           i=$(( $i+1 ))
        done
echo 
echo -e "\033[40;34m=======================搜索完畢=================================\033[0m"


#flag=1
#while [ $flag -eq 1 ]
#是否生成祕鑰併發送給客戶端
#do
  if [ $i -eq 0 ]
        then
        echo "檢測到沒有可訪問的主機;是否要生成公鑰併發送至遠程客戶端?(y/n)"
        read option
        case $option in
           "y"|"yes")
           $ssh_keygen
           ;;
           "n"|"no")
           echo -e "\033[40;33m若您無法解決當前問題,請聯繫管理員!!\033[0m"
           #exit
           ;;
           "yang")
           exit
           ;;
           *)
           echo -e "\033[40;31m請根據提示信息輸入您的選擇!\033[0m"
         ;;
         esac
  else
  fi
#done
#掃描同網段內存活主機
if [ $? -eq 0 ];then
     #reset integer i
     k=0
     i=0
     echo -e "\033[40;33m==================即將掃描同網段內存活主機====================\033[0m"
     for ip_add in $(${nmap} -sP ${lan_Ip}/${mask} | grep report | grep -v 127.1$ | grep -v 127.2$ | grep -v 127.254$ | cut -d " " -f 5)
        do
           if [ $ip_add != $local_ip ]
                then
                vm[$k]=${ip_add}
                k=$(( $k+1 ))
           fi
           tial=`echo "$ip_add" | cut -d "." -f 4`
           #echo $tial
           #echo ${know[${tial}]}
             if [ -z  ${know[${tial}]} ]
                then
                know[${tial}]=0
             fi
             if [ ${know[${tial}]} -eq 0  -a  "${ip_add}" != "${local_ip}" ]
               then
               echo -e "\033[40;33m ==================即將將公鑰拷貝到主機${ip_add}上============="
               $ssh_copy_id ${user}@$ip_add
               #vm[$i]=$ip_add
               i=$(( $i+1 ))
               echo -e "\033[40;32m ==================公鑰拷貝成功============================\033[0m"
             fi
        done
     #echo $i
     else
        echo -e "\033[40;31m 公鑰生成錯誤!!!\033[0m"
fi

#加下來是核心部分
#打印菜單欄
memset(){
        j=0
        for prin_ip in ${vm[@]}
            do
                if [ $prin_ip != ${local_ip} ];then
                echo -e "\033[40;34m ${j}----------${prin_ip}\033[0m"
                j=$(( $j+1 ))
                fi
            done
}

#echo ${vm[@]}
tput=`which tput`
#trap "" HUP INT QUIT TSTP
while true
do
        $tput clear
        memset
        #echo $m
        read -t 20 -p "請輸入你的選擇: " inf
        if [ $inf == "yang" ]
          then
          exit
          else
                test -z ${vm[$inf]} && echo "您的輸入有誤,請重新輸入" || $ssh $user@${vm[$inf]}
        fi
done

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章