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