来啦ARP Lab~
有种复习Scapy的感觉,不过被官方代码坑到了( •́ㅿ•̀ )
Task 1
第一关就是试试ARP缓存毒害攻击
先发个ARP request康康
发之前是这样的,对应的就是真实MAC
发了之后成功替换(中间人的MAC就是下面那个)
然后再试试ARP reply行不行
效果一样滴
再发个gratuitous ARP康康效果
(这种ARP一般是用于开机的时候向同网段其他主机通告自己的MAC看看有没有冲突,或者是主机改变MAC时用于更新)
也很有效果
好了,能进行ARP欺骗,就要开始篡改数据包了
Task 2
telnet机制是远程登录另一台主机,telnet IP
命令之后client向server发送的字符都会单独打包成一个数据包通过TCP发送(手速快的可能好几个字符在一个数据包里),然后server接收后会将其返回,在client上显示
这一关是telnet过程中的中间人攻击,A是client,B是server
中间人要将A发往B的数据包中的字符全部替换为Z,B发往A的数据包中应该都是Z了,所以不处理
Step 1
先ARP欺骗呗(上面三种均可
亲测一次ARP欺骗可能不够,建议写个循环后台一直发送欺骗数据包
Step 2
完成欺骗后,没开启IP forwarding的情况下ping当然不可能有回应
ps. 此时ARP还会有报错的数据包,指示多个IP用了同一个MAC
Step 3
然后开一下IP forwarding,命令:
$ sudo sysctl net.ipv4.ip_forward=1
此时中间人会转发两台主机间的数据包,能收到ping的回应了
Step 4
开始修改数据吧
注意先把IP forwarding开启,建立A和B的telnet连接
然后关掉IP forwarding,运行自己的程序嗅探+修改+转发
这里被官方代码坑到了,它有一句newpkt = IP(pkt[IP])
,用收到的数据包创建新的IP数据包,但是实际测试时会报错的,求大神指教…
(只能傻傻的一个个赋值了 ( ˃ ˄ ˂̥̥ )
效果就是,无论输入什么,都会出来ZZZZZZZ
从抓到的包来验证,A发往M的是s
M发往B的是Z
B返回的当然也是Z
Task 3
和Task 2换汤不换药,把你的名字改成aaaa就可以了
client输入你的名字
server出来的是aaaa
okk完成啦,总体不难
就是官方代码不兼容555