Bash脚本:将网络上所有计算机的MAC与特定计算机的MAC比较

在这里,我将讨论我为特定目的而制作的bash脚本,我怀疑其他人是否会遇到这种情况,但是由于对它进行了编程,因此分享它不会花费我任何东西🙂

楼上这是怎么回事

碰巧,在我的城市中,有一个相当大的网络,我们许多人以有线方式连接(网络电缆连接到一台交换机,又连接到另一台交换机,是的,很多交换机,呵呵),但是连接却很大(不能通过电缆)他们使用Wi-Fi设备,通过这种方式,您可以拥有一个拥有数千名用户的网络,尽管没有邮件服务,而互联网却少得多,但是您确实可以玩WoW(等等),学习,共享信息等。

事实是,某些Wi-Fi设备由于其所有者违反网络规则或其他原因而被禁止或从网络中驱逐。 因此,有必要每X次扫描一次,以检查是否有人重新连接了弹出计算机的MAC,这就是该脚本的用处。

简而言之,脚本有什么作用?

  1. 首先,它在运行子网中进行扫描并检测活动主机(活动IP)
  2. 然后,检查这些IP中的任何一个是否是Ubiquiti(用于链接的设备)。 实际上,它仅检测上述每个IP上端口443是否打开。
  3. 它会删除每个活动设备的MAC,并打开端口443,同时将提取的每个MAC与正在搜索的MAC进行比较。
  4. 如果找到匹配项,则会生成报告。

快来看代码!

明确说明其操作需要安装以下软件包:nmap…nc…arping

好吧,使用nmap,它执行映射以检测活动IP,使用nc,然后它检查哪个端口443已打开,最后通过arping提取MAC。

是的,我知道可以使用nmap来完成所有这些操作,但是花了几秒钟(或几分钟),我更喜欢使用几种工具,而不是仅仅使用一种工具来使所有工作更快。

是现在…。 编码!

#!/ bin / bash##需要安装软件包:#nmap,arping,nc##作者:KZKG ^ Gaara clear#声明变量DATE =`date +'%Y-%m-%d_%H-%M '`INTERFACE ='wlo1'WANTEDMAC ='C8:CB:B8:B1:DA:E6'YOURIP =`ifconfig |' grep“ 192.168” | awk'{print $ 2}'''``YOURZONE =`echo $ YOURIP | awk -F“。 '{print $ 3}'``#拉动网络中的活动主机(您的IP)nmap -sn 192.168。$ YOURZONE.0 / 24 | grep“报告” | awk'{print $ 5}'> hosts-ip#通过打开443端口rm hosts-nanos&> / dev / null为`cat hosts-ip`中的TMPVAR来查看其中哪些主机可以是Nano。 -w 2 $ TMPVAR 443&> / dev / null,如果[$? -ne 1]; 然后回显“ $ TMPVAR” >>主机-nanos fi已完成#从网络上的Nanos删除MAC rm hosts-mac&> / dev / null为`cat hosts-nanos`中的TMPVAR做arping -I $接口-f $ TMPVAR | grep“回复自” | awk'{print $ 5}'| 切-d'['-f2 | cut -d']'-f1 >> hosts-mac done#将提取的MAC与在cat cat-mac中搜索到的MAC进行比较,如果[[$ MAC“ =” $ WANTEDMAC“]; 然后MACLINE =`cat hosts-mac | grep -n $ MAC | cut -d':'-f1` IPMAC =`cat hosts-nanos | sed $ MACLINE'q; d'`echo -e“ \ n \ t警报,检测到被盗设备的MAC:$ MAC ...使用IP:$ IPMAC” echo -e“ \ t ...生成报告... SpyMac生成的“ echo -e”报告\ n“> final_report_ $ YOURZONE.info echo -e”报告时刻:$ DATE \ n“ >> final_report_ $ YOURZONE.info echo -e”检测到被盗设备的MAC:$ WANTEDMAC \ n“ >> final_report_ $ YOURZONE.info echo -e”此计算机当前使用的IP:$ IPMAC \ n“ >> final_report_ $ YOURZONE.info echo -e”报告生成者:$ YOURIP \ n“ >> final_report_ $ YOURZONE .info fi完成退出

如果找到匹配项,它将向我们显示找到的MAC以及该设备使用的IP。

这个(还是)还有差距呵呵

服务器

我知道有些事情需要改进,例如可以伪造MAC,可以将MAC更改为计算机,仅此而已,我仍然在寻找如何查看真实的MAC,而不是错误的MAC。

另外,通过添加另一个for循环,我可以使多个MAC同时被比较,而不是只比较/搜索特定的MAC,也就是说,搜索列表5、10中的MAC,无论它们是什么。 这是我尚未做的事情。

也许它是一个Nano,但是它的端口443被阻止了,我知道如何能够完全安全地知道它是否是Ubiquiti设备,也就是说,使用curl(或wget),我可以获得登录表单并进行比较。对于Ubiquiti之一,这是一种比使用端口443更安全的方法。这是在以后的版本中添加的另一个细节。

我还想(对我来说已经很困难)生成一个小的脚本甚至一个APK,以便在Android上使用此工具。 我知道我将无法放入 Play商店 但…。 bueh,不是我要😀

嗯,iPhone用户...即使我不能(出于知识和时间)我也不会将此工具移植到iOS ... JUAZ JUAZ JUAZ ...看着你 App Store 让我们看看他们是否碰巧有类似的东西,我怀疑😀

结束

一切都好。 我再说一遍,我认为特定的脚本可能对许多人都没有用(对于一个非常特定的情况),但是也许代码的某些部分是,希望如此。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   天使之刃

    使用nmap,无需进行ips映射和nc验证以及使用arping即可获得MAC地址。

    选项是-PR

    像那样的东西
    sudo nmap -sn IpAddress /网络掩码-PR | grep MAC | awk'{print $ 3}

    1.    埃利奥时间3000

      好的提示,尽管它必不可少。

  2.   达约

    除非您自己执行脚本,否则bash通常非常不可读。 但是您的代码是可以理解的xD

    您可以做的另一件事是对不同的IP进行简单的ping操作,然后使用arp -a命令查看arp表(在某些情况下,您必须安装net工具)和ping的mac地址,我认为这是最快的解。

  3.   达约

    或更好
    回声“ test”> /dev/tcp/www.google.com/80
    如果给出错误,则端口(80)已关闭

  4.   马里奥

    您好,您是否可以实施SNMP来识别问题,例如设备类型,品牌,功能,也可以解决已更改或虚拟MAC的问题; 你甚至可以通过conf来“管理”。 snmp服务弱。 只是一种见解,打开了脚本的可能性范围。 非常好的博客,很高兴找到他们,我经常阅读它们! 拥抱。

  5.   弗兰克·亚历山大

    该bash脚本极具启发性。

  6.   火冷

    该脚本非常易于理解,非常好,谢谢,它给了我很好的主意,问候

  7.   飞马碱

    如果您将其放在GITHUB上,那就太好了,所以我们都将在那里进行合作。

    感谢分享!
    问候

  8.   卢西亚诺·拉加萨(Luciano Lagassa)

    您好,您的bash脚本非常好,就我而言,我建议您提高安全性,可以实施验证方法,例如wisps,以防止未经授权或驱逐的用户进入。 他们可以使用很多软件。

  9.   猎人

    欺骗Mac时,您要做的就是将伪造的Mac以数据包的形式发送(第2层OSI),除非重置了攻击者的网卡,否则您将无法发现真实的Mac。

  10.   亚历山大·塞亚斯

    我对您的脚本感兴趣...好吧,我一直在寻找一个更复杂或更简单的脚本。

    事实是,我有250台机器的大型网络,并且有Wi-Fi点,但他们购买的地块相同...

    您将知道如何将Mac与ip进行比较,并且应该事先声明它,因此,当有一个有趣的人更改ip时,请发出ip与mac不匹配的警报。

    我希望我已经解释了自己。

    即使我到处搜索,也找不到任何关于…的信息。

  11.   的Hotmail

    感谢您共享脚本,我将不得不对其进行一些修改,但是它基本上就是我想要的,再次感谢。 干杯

  12.   伊西多罗

    正是我一直在寻找的,因为我需要我的树莓派来检测我的手机何时连接到 wifi 以运行另一个 bash。
    非常感谢