Kali Linux 自动扫描脚本

Kali Linux 自动扫描脚本

描述

  之前在使用kali做渗透测试的时候,想着将主机发现和扫描的过程做一个自动化的shell脚本,之前在GitHub上传了一个,现在在博客这里优化一下。
  脚本的思路是这样:首先获取本机的IP地址,然后根据IP来进行同一网段内的主机发现,再对发现的主机进行端口和服务扫描,最后输出扫描结果。

脚本详情

  关于实现相关功能法方法很多,这里给出本人的思路,仅供参考(脚本内出现的命令的详细用法在这里不做详细解释,有兴趣者可以自行查阅相关资料):

#!/bin/bash
#首先获取网卡的名称,虽然我接触到的绝大多数情况下都是eth0,但是以防万一,还是判断一下。
netcard=$(ip addr | grep dynamic | awk '{print $9}')      //将获取到的网卡名赋值给变量netcard
#在获取到网卡名称之后,根据网卡名来获取对应的IP地址,掩码长度.
ip=$(ip addr | grep $netcard | tail -n 1 | awk '{print $2}' | cut -d'.' -f1)
length=$(ip addr | grep $netcard | tail -n 1 | awk '{print $2}' | cut -d'.' -f2)
mask=$(ifconfig $netcard | grep netmask | awk '{print $4}' )
#接下来根据IP和掩码求出所在网段.关于求所在网段这里我没想到有什么好的方法,查找资料也没有找到很简便的方式,所以这里就使用IP和掩码的异或来计算网段。
ip1=$( echo $ip | cut -d'.' -f1 )
ip2=$( echo $ip | cut -d'.' -f2 )
ip3=$( echo $ip | cut -d'.' -f3 )
ip4=$( echo $ip | cut -d'.' -f4 )

mask1=$( echo $mask | cut -d'.' -f1 )
mask2=$( echo $mask | cut -d'.' -f2 )
mask3=$( echo $mask | cut -d'.' -f3 )
mask4=$( echo $mask | cut -d'.' -f4 )

ips1=$($ip1&$mask1)
ips2=$($ip2&$mask2)
ips3=$($ip3&$mask3)
ips4=$($ip4&$mask4)

ips=$(echo $ips1.$ips2.$ips3.$ips4)
#到这里为止,我们所需要的条件已经齐了,可以开始扫描了
#获取主机IP列表
nmap -sP $ips/$length -oN ~/Scan/resault.txt
cat ~/Scan/resault.txt | grep report | awk '{print $5}' > ~/hostlist

#主机的IP有了,开始端口以及操作系统扫描
for ipt in $( cat ~/Scan/hostlist.txt)
do
  	nmap -O $ipt -oN ~/Scan/$ipt.txt
done

使用说明

  下载shell脚本后,添加执行权限即可。

你可能感兴趣的:(Shell,Linux,渗透测试)