一条命令扫描局域网内所有的IP及MAC操作教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一条命令扫描局域网内所有的IP及MAC操作教程相关的知识,希望对你有一定的参考价值。

参考技术A

  大家知道扫描局域网客户机的IP地址和MAC地址列表的方法/步骤有哪些吗?其实最简单的甚至可以用一条命令就能实现。下面是我为你整理相关的内容,希望大家喜欢!

  一条命令扫描局域网内所有的IP及MAC 具体操作方法:

  1、下载nbtscan.rar到硬盘后解压;

  2、然后将cygwin1.dll和nbtscan.exe两文件拷贝到c:\\windows\\system32下; 3、进入cmd窗口就可以输入命令:nbtscan 192.168.1.1/24(假设本机的IP为:192.168.1.X)。

  ARP欺骗攻击解决方法

  故障现象:机器以前可正常上网的,突然出现可认证,不能上网的现象(无法ping通网关),重启机器或在MSDOS窗口下运行命令ARP -d后,又可恢复上网一段时间。

  故障原因:这是APR病毒欺骗攻击造成的。

  引起问题的原因一般是由ARP木马攻击。病毒会将该机器的MAC地址映射到网关的IP地址上,向局域网内大量发送ARP包,从而致使同一网段地址内的其它机器误将其作为网关,这就是为什么掉线时内网是互通的,计算机却不能上网的原因。

  临时处理对策:

  步骤一、在能上网时,进入MS-DOS窗口,输入命令:arp –a 查看网关IP对应的正确MAC地址,将其记录下来。

  注:如果已经不能上网,则先运行一次命令arp –d将arp缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话),一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp –a。

  步骤二、如果已经有网关的正确MAC地址,在不能上网时,手工将网关IP和正确MAC绑定,可确保计算机不再被攻击影响。手工绑定可在MS-DOS窗口下运行以下命令: arp –s 网关IP 网关MAC

  例如:假设计算机所处网段的网关为218.197.192.254,本机地址为218.197.192.1在计算机上运行arp –a后输出如下:

  C:\\Documents and Settings>arp -aInterface: 218.197.192.1 --- 0x2Internet Address Physical Address Type218.197.192.254 00-01-02-03-04-05 dynamic 其中00-01-02-03-04-05就是网关218.197.192.254对应的MAC地址,类型是动态(dynamic)的,因此是可被改变。

  被攻击后,再用该命令查看,就会发现该MAC已经被替换成攻击机器的MAC,如果大家希望能找出攻击机器,彻底根除攻击,可以在此时将该MAC记录下来,为以后查找做准备。

  手工绑定的命令为:

  arp –s 218.197.192.254 00-01-02-03-04-05 绑定完,可再用arp –a查看arp缓存:

  C:\\Documents and Settings>arp -aInterface: 218.197.192.1 --- 0x2Internet Address Physical Address Type218.197.192.254 00-01-02-03-04-05 static

  这时,类型变为静态(static),就不会再受攻击影响了。但是,需要说明的是,手工绑定在计算机关机重开机后就会失效,需要再绑定。所以,要彻底根除攻击,只有找出网段内被病毒感染的计算机,令其杀毒,方可解决。

  找出病毒计算机的方法:

  如果已有病毒计算机的MAC地址,可使用NBTSCAN软件找出网段内与该MAC地址对应的IP,即病毒计算机的IP地址,然后可报告校网络中心对其进行查封。 解决措施

  NBTSCAN的使用方法:

  下载nbtscan.rar到硬盘后解压,然后将cygwin1.dll和nbtscan.exe两文件拷贝到c:\\windows \\system32(或system)下,进入MSDOS窗口就可以输入命令:nbtscan -r

  218.197.192.0/24 (假设本机所处的网段是218.197.192,掩码是255.255.255.0;实际使用该命令时,应将斜体字部分改为正确的网段)。

  注:使用nbtscan时,有时因为有些计算机安装防火墙软件,nbtscan的输出不全,但在计算机的arp缓存中却能有所反应,所以使用nbtscan时,还可同时查看arp缓存,就能得到比较完全的网段内计算机IP与MAC的对应关系。

  扫描局域网客户机的IP地址和MAC地址列表的方法/步骤

  在WFilter的”扩展插件“中点击”下载“,然后安装”局域网扫描“插件。我们主要就是要用该插件获取IP和MAC地址列表。

  运行该插件,选择“本地网络”,这个选项只能扫描同网段设备。如果要跨网段扫描IP地址和MAC地址,请选择“IP范围”。

  扫描出来的结果,可以看到IP地址和MAC地址列表,以及厂商和机器名等信息。点击“导出”,就可以导出一份详细的列表信息啦。是不是很方便呢?

  在WFilter的”扩展插件“中点击”下载“,然后安装”局域网扫描“插件。我们主要就是要用该插件获取IP和MAC地址列表。

  运行该插件,选择“本地网络”,这个选项只能扫描同网段设备。如果要跨网段扫描IP地址和MAC地址,请选择“IP范围”。

  扫描出来的结果,可以看到IP地址和MAC地址列表,以及厂商和机器名等信息。点击“导出”,就可以导出一份详细的列表信息啦。是不是很方便呢?

  如果要进行端口扫描,可以点击每行后面的扫描图标。

编写MAC记录与端口扫描脚本的shell脚本

                         MAC记录与端口扫描脚本

1、需求描述
编写名为system.sh的小脚本,记录局域网中各主机的MAC地址,保存到/etc/ethers文件中;
若此文件已存在,应先转移进行备份;每行一条记录,第1列为IP地址,第2列为对应的MAC地址
检查有哪些主机开启了匿名FTP服务,扫描对象为/etc/ethers文件中的所有IP地址,扫描的端口为21
2、命令测试
分析:记录局域网中各主机的MAC地址,保存到/etc/ethers文件中;若此文件已存在,
应先转移进行备份;检查有哪些主机开启了匿名FTP服务,扫描对象为/etc/ethers文件中的所有IP地址,
扫描的端口为21
arping?–c?2?–w?1?ip?:发送MAC地址解析请求
arp?–n:纪录MAC
awk?:打印?ip与MAC地址
使用wget下载的方法测试FTP服务
3、脚本编程与调试
?通过arping命令发送ARP请求,使用if语句根据反馈结果记录MAC地址
?将网段地址(如192.168.4.)赋值给变量NADD,作为检测地址的前缀
?使用while循环语句,重复检测目标并记录MAC地址,主机地址为1~254
let??HADD++?使得ip地址的主机位自动加1
?通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量TARGET,
并使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况

实验步骤
1.编写名为system.sh的小脚本,记录局域网中各主机的MAC地址,保存到/etc/ethers文件中;
若此文件已存在,应先转移进行备份;每行一条记录,第1列为IP地址,第2列为对应的MAC地址
技术图片
脚本文件如下:
#!/bin/bash
d=/etc/ethers
if [ -f "$d" ] ###判断有没有/etc/ethers这个文件
then
(cp /etc/ethers /etc/ethers.bark )&&[ -d "$d" ]&&[ touch "$d" ]
###有,就新备份,删除,在创个新的
else ###这里注意,直接命令,用小括号
touch "$d" ###没有就创建文件
fi
HADD=1 ###定义IP的变量参数,起始值为1
while [ $HADD -lt 12 ] ###循环语句,当IP最后为不小于12,执行循环这里是做下测试,测试完后改为12改为254
do
ping -c 3 -i 0.2 -W 3 192.168.32.$HADD &> /dev/null ###ping一下
if [ $? -eq 0 ] ###有返回值,
then
echo "192.168.32.$HADD is up" ###输出此IP开启
arp -n |grep ether |awk ‘{print $1,$3}‘ > /etc/ethers ###并将IP和对应的mac地址筛选出来,
else ###覆盖保存到/etc/ethers文件里
echo "192.168.32.$HADD is down" ###否则,输出此IP关闭
fi
let HADD++ ###每次变量加1
Done
2.更改权限,运行测试文件
技术图片
3 查看/etc/ethers里面有没有存到文件
技术图片

开启的IP,其和他对应关系的IP都储存到这里面来了。

2、并使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况
3、配置脚本文件。直接在system.sh后面添加下面脚本如下
技术图片

TARGET=$(awk ‘($1!="192.168.32.6")&&($1!="192.168.32.1"){print $1}‘ /etc/ethers)
###定义变量文件,要把网关和本机IP去掉,否则会卡机
for n in $TARGET
do
wget ftp://$n &> /dev/null ###当能用ftp下载,则匿名访问就开启了,否则关闭。
if [ $? -eq 0 ]
then
echo "ftp 匿名访问开启的服务机: $n"
else
echo "ftp 匿名访问关闭的服务机: $n"
fi
done

运行程序:
技术图片
在将shell脚本中HADD参数范围改成254,运行就可以用了
技术图片

以上是关于一条命令扫描局域网内所有的IP及MAC操作教程的主要内容,如果未能解决你的问题,请参考以下文章

如何查询局域网内在用的IP地址?

如何用cmd命令主动查看(扫描)局域网的机器ip

编写MAC记录与端口扫描脚本的shell脚本

linux下有没有查看局域网内所有机器ip的命令或是软件啊?

linux局域网内的一台电脑,有啥方法可以在局域网内任意一台机器查到整个局域网内的其他主机的ip

nbtscan工具