TASK 5 ARP Cache Poisoning

 不想学习,所以自己随便写写,不一定对,看个乐呵

Task 1: ARP Cache Poisoning

        前面的大意是构造arp数据包的方法,此处略过

        Task 1.A (using ARP request)

                在M上的volume文件夹下,设计发包程序,让A的arp表中B的ip解析到M的mac

                程序完整代码如图,注意主要是mac和ip对应关系的填充

                注意源地址和目的地址的填充:

                 

                发起中间人攻击

                可以看到现在10.9.0.6的mac已经成为py脚本中的mac,中间人攻击成功

        Task 1.B (using ARP reply)

                上个实验发的是arp请求报文,这个是arp响应报文,本质没什么区别

                首先构造arp reply数据包发送程序

                主要的区别其实还是在几个源和目的地址上面 ,而且这次已知了A的mac,故不是广播(FF:FF:FF:FF:FF:FF)

                – Scenario 1: B’s IP is already in A’s cache.

                        首先保证B的mac在arp缓存中

                        然后发送reply报文

                        Arp表中的Mac再次发生了改变

                -Scenario 2: B’s IP is not in A’s cache

删除arp表项命令:
arp -d $ip

                        删除表项之后arp缓存应该是空的

                在此情况下再次发送reply报文无法成功,攻击失败

            

        Task 1C (using ARP gratuitous message)

                其实就需要修改一下刚才的request报文,要注意按照以下规则修改程序的ip数据报头的src,dst;MAC头的src,dst地址:

– The source and destination IP addresses are the same, and they are the IP address of the host issuing the gratuitous ARP.

– The destination MAC addresses in both ARP header and Ethernet header are the broadcast MAC address (FF:FF:FF:FF:FF:FF).

– No reply is expected.

                 省流:改IP为B的IP,改两个dst为广播,MAC还是M的MAC

                在无缓存的情况下发包:

                好像无效

                有缓存之后发包

                攻击生效,但是说实话跟我想的不太一样,可能这里我实现的有问题。但是懒得细琢磨了 ,看的时候图一乐得了

Task 2: MITM Attack on Telnet using ARP Cache Poisoning

         Step 1 (Launch the ARP cache poisoning attack).

                首先让B的arp表也映射错误,mac映射为M的mac

                就改一下task1的程序ip就好,结果如下:

                要求我们每5s发一个假的报文,否则攻击表项可能被真的替代

                利用之前的程序,加一个while循环,并且每隔5s给两边都发一次假的arp报文

                这里只贴修改部分,其余不动(我没动)

         Step 2 (Testing).

               关闭IP forwarding时:

命令:
sysctl net.ipv4.ip_forward=0

                执行py脚本,A ping B

                B ping A 

                可以看出丢包率奇高

        Step 3 (Turn on IP forwarding).

sysctl net.ipv4.ip_forward=1

                A ping B 正常

              B ping A

                可以看到不丢包了,并且可以收到105的重定向报文

        Step 4 (Launch the MITM attack)

                首先让A远程登陆到B,注意此时arp表中B的mac应该是M的mac

                远程登陆成功

                编写mimt_telnet.py程序

                完整代码见书,注意第二页开篇还有一行代码

                书上的代码有提示,要自己加一种数据填充,自己试了一下如果不加填充会报错

                 这里仅展示修改的数据填充:

if pkt[TCP].payload:
            data = pkt[TCP].payload.load # The original payload data
           # newdata = data # No change is made in this sample code
            data_list=list(data)
            for i in range(0,len(data_list)):
                if chr(data_list[i]).isalpha():
                    data_list[i]=ord('@')
            newdata=bytes(data_list)
            send(newpkt/newdata)

                代码逻辑: 把接收到的输入信息中的字母替换为"@"

                注意题目还要求了改下面的过滤器

                测试:M端开启arp攻击,开启路由转发(sysctl net.ipv4.ip_forward=1)  -->  A远程登陆到B  -->  开启监听(即执行telnet攻击脚本)  -->  sysctl net.ipv4.ip_forward=0  --> 看结果

                测试结果如下图所示:

                 可以看到在远程登陆时输入的字母全变成了@字符,攻击生效

Task 3: MITM Attack on Netcat using ARP Cache Poisoning

                此实验与前序实验相似,甚至不用改代码,只是用nc命令测试

                当开启路由(sysctl net.ipv4.ip_forward = 1),并停止运行telnet攻击脚本时,nc的内容都能正常被接收

                但是一旦关闭路由(置0),再次执行telnet,即可看到仍旧是所有字母都被替换成了@,攻击成功

Task 4 Summary

                整个task2和3中我的arp攻击脚本一直在运行,也懒得琢磨有没有必要

                开了好多窗口找起来好麻烦

                没了。

                以上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值