我们知道IP地址是ISP分配给我们的,IP不能作为服务器的唯一的身份,那么服务器真正的身份是什么呢?MAC
IP地址直接的通信在底层要转换到MAC直接的通信,那他们如何通信的呢?
1.简介
出场人物:艾拼同学简称IP,马珂同学简称MAC,红娘 艾人品 简称ARP
为描述方便,后面都以简称称呼。
上面的文章《你所忽略的DNS---DNS实战及深度解读》和《访问了一次百度网页,你都经历了什么?https及tcp协议揭秘》都提到IP和MAC生活在不同得圈子。
IP是个程序猿,生活的圈子叫:逻辑地址;MAC是一名教师,生活的圈子叫:物理地址;
按照道理,IP和MAC一辈子都不会有交集,但缘分最终让他们有了交集--ARP是一个红娘,专门促成这种事情。
那我们先来看看IP和MAC的家吧
windows进去cmd命令行,输入
ipconfig /all
结果如下:
IP住的逻辑地址为:172.16.86.71
MAC住的物理地址为:48-8A-D2-9D-D9-29
2.arp如何让ip找到别的mac呢?
ipconfig 仅仅可以让我看到一个家庭,那如何让ip同学认识到更多的mac这样的人呢?我们知道可以通过ip间的相互通信
2.1 ARP请求
2.1.1 没有缓存的arp
2.1.2有缓存的arp
2.1.3 如何查看本机的arp缓存呢
查看局域网其它机器的mac地址 arp -a
2.2 响应报文
3.arp欺骗
地址解析协议(ARP),ARP(Address Resolution Protocol),是一个位于TCP/IP协议栈中的网络层。当局域网内计算机间(或者是计算机与网关间)需要通信时,使用ARP协议获取目标IP地址对应的MAC地址,然后计算机间再通过该MAC地址完成数据包发送。ARP欺骗一般目的是把自己伪装成网关,从而欺骗目标机器,使本应发送到真实网关的数据包发送到欺骗者的机器。
攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。如果欺骗者机器不对这些数据包作处理,当被欺骗数据包到达后就会被本机丢弃(因为自己到底不是网关,还不知道如何处理这类数据包),这当然是不允许的
arpspoof 是一款进行arp欺骗的工具,攻击者通过毒化受害者arp缓存,将网关mac替换为攻击者mac,然后攻击者可截获受害者发送和收到的数据包,可获取受害者账户、密码等相关敏感信息。
4.arp防御
黑客采用ARP软件进行扫描并发送欺骗应答,同处一个局域网的普通用户就可能遭受断网攻击、流量被限、账号被窃的危险。由于攻击门槛非常低,普通人只要拿到攻击软件就可以扰乱网络秩序,导致现在的公共网络、家庭网络、校园网、企业内网等变得脆弱无比。
目前网络安全行业现有的ARP防御方案,基本都是上面两个方法的具体实现。我们来看看这张防御图:
①当黑客发起ARP欺骗包时,会途径局域网里面的交换机或无线路由器等网络设备;
②如果网络设备能够识别这种欺骗包,并且提前丢弃掉,则电脑/手机端就不会被欺骗;
用户端的ARP防御方法,要么安装ARP防火墙,要么做ARP双向绑定。对于绝大部分用户来讲,虽然安装防火墙不是保证百分百安全了,但是能够解决很大一部分的隐患。
5.总结
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。 ARP工作在网络层。ARP解决的是同一个局域网上的主机或者路由器的IP地址和硬件地址的映射问题。如果要找的主机和源主机不在一个局域网,则要通过ARP协议找到一个位于本局域网上的某个路由器的硬件地址。然后把该分组发送给这个路由器。这个路由器再把分组转发给下一个网络。
参考文献
【1】https://www.cnblogs.com/csguo/p/7527303.html
【2】https://www.cnblogs.com/csguo/p/7527073.html
【3】https://www.cnblogs.com/csguo/p/7527582.html
【4】https://blog.csdn.net/china_jeffery/article/details/78689582
【5】https://blog.csdn.net/lansefly1990/article/details/86574677
【6】https://baike.baidu.com/item/nmap/1400075?fr=aladdin