Linux shell編寫端口掃描腳本


Linux shell編寫端口掃描腳本

需求:

掃描特定主機

掃描特定主機的特定端口

掃描特定網段

掃描特定網段中哪些主機開放了特定的端口

源碼如下:

#/bin/bash #該腳本用於對特定目標主機進行常見端口掃描(加載端口字典)或者指定端口掃描,判斷目標主機開放來哪些端口 #用telnet方式 #作者:雨中落葉 #博客:https://www.cnblogs.com/yuzly/
IP=$1 #獲得IP的前三位 threeIP=$(echo $IP |awk -F. '{print $1"."$2"."$3"."}') #獲得IP的第四位 endIP=$(echo $IP | awk -F. '{print $4}') if [ $1 ] then
  if [ $2 ] then #IP的第四位為0表明是一個網段,對整個網段進行特定端口的掃描,發現哪個主機開放特定端口 if [ $endIP -eq 0 ] then
      for ((i=128;i<=140;i++)) do (sleep 1;)|telnet $threeIP$i $2 2>&1 |grep "Connected to $threeIP$i">/dev/null 
        if [ $? -eq 0 ] then
          echo "主機$threeIP$i開放$2端口!"
        else
          echo "主機$threeIP$i的$2端口關閉!"         
        fi
      done
    else #IP的第四位不為0,說明是單個IP,對單個IP進行特定端口掃描 (sleep 1;)|telnet $1 $2 2>&1 |grep "Connected to $1">/dev/null
       if [ $? -eq 0 ] then
         echo "主機$1開放$2端口!"
       else
         echo "主機$1的$2端口關閉!"      
       fi
    fi  
  else #腳本只有一個IP參數,根據IP的第四位是否為0來判斷是否為網段,因為沒有端口參數,掃描默認端口 if [ $endIP -eq 0 ] then
      for ((i=128;i<=130;i++)) do
        for port in $(cat defaultport.txt) do (sleep 1;)|telnet $threeIP$i $port 2>&1 |grep "Connected to $threeIP$i">/dev/null
          if [ $? -eq 0 ] then
            echo "主機$threeIP$i開放$port端口!"
          else
            echo "主機$threeIP$i的$port端口關閉!"          
          fi
        done
      done
    else #腳本只有IP一個參數,沒有端口參數,加載端口字典掃描默認端口 for i in $(cat defaultport.txt) do #與目標主機的特定端口只通信1秒,根據返回的數據來判斷目標是否開放特定端口 (sleep 1;)|telnet $1 $i 2>&1 |grep "Connected to $1">/dev/null
        if [ $? -eq 0 ] then
          echo "主機$1開放$i端口!"
        else
          echo "主機$1的$i端口關閉!"        
        fi
      done
    fi
  fi       
else
  echo "******************************************* 
 該腳本的用法示例: $0 192.168.1.1(掃描默認端口) $0 192.168.1.1 portx(掃描指定IP指定端口portx) $0 192.168.1.0(掃描指定網段,掃描默認端口) $0 192.168.1.0 portx(掃描指定網段指定端口portx) ******************************************** "  
fi

1.測試,掃描特定主機(沒有給出端口,掃描默認端口文件) 

2. 測試,掃描特定主機的特定端口

3. 測試,掃描特定網段(沒給端口參數,掃描默認端口文件)  #實驗為例減少測試時間只掃描了很小的網段 

4.測試,掃描特定網段中哪些主機開放了特定的端口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM