shell脚本——自动记录局域网内主机MAC记录与端口扫描脚本

一、脚本需求

  • 编写名为system.sh的脚本,记录局域网中各主机的MAC地址,保存到/etc/ethers文件中
  • 若此文件已存在,应先转移进行备份;每行一条记录, 第1列为IP地址,第2列为对应的MAC地址
  • 检查有哪些主机开启了匿名FTP服务,扫描对象为/etc/ethers文件中的所有IP地址,扫描的端口为21

二、命令测试

分析:记录局域网中各主机的MAC地址;检查有哪些主机
开启了匿名FTP服务
arping -c 1 -I ens33 ip :发送MAC地址解析请求
awk :打印ip与MAC地址
使用wget下载的方法测试FTP服务

三、脚本编程与调试

  • 通过arping命令发送ARP请求,使用if语句根据反馈结果记录MAC地址
  • 将网段地址(如192.168.179.) 赋值给变量,作为检测地址的前缀
  • 使用while循环语句,重复检测目标并记录MAC地址,主机地址为1~254
  • let ++使得ip地址的主机位自动加1
  • 通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量,并使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况

四、脚本内容

[root@localhost opt]# vim system.sh
#!/bin/bash
#判断/etc/ethers文件是否存在
[ -e /etc/ethers ]
if [  $? -eq 0 ];then
   cp -p /etc/ethers /opt/ethers
   else
   touch /etc/ethers
fi

#记录局域网内在线主机的MAC地址
i=1
while [ $i -lt 254 ]
do
   arping -c 1 -I ens33 192.168.179.$i &> /dev/null
     if [ $? -eq 0 ];then
     arping -c 1 -I ens33 192.168.179.$i | awk 'NR==2{print $4,$5}' > /etc/ethers
     fi
  let i++
done

#判断主机是否开启ftp服务
a=$(awk '{print $1}' /etc/ethers)
for b in $a
do
  wget -T 3 -t 1 ftp://$b &> /dev/null
    if [ $? -eq 0 ];then
    echo "$b主机已开启匿名ftp服务"
    fi
done

五、测试

开启一台虚拟机,ip地址为192.168.179.110并开启ftp服务,在另一台虚拟机中开启脚本进行测试

[root@localhost opt]# bash system.sh 
192.168.179.110主机已开启匿名ftp服务
[root@localhost opt]# cat /etc/ethers
192.168.179.1 [00:50:56:C0:00:08]
192.168.179.2 [00:50:56:EA:EF:41]
192.168.179.110 [00:0C:29:A4:D1:51]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值