SeedLab3: ARP Cache Poisoning Attack Lab

来啦ARP Lab~
有种复习Scapy的感觉,不过被官方代码坑到了( •́ㅿ•̀ )


Task 1

第一关就是试试ARP缓存毒害攻击
先发个ARP request康康
SeedLab3: ARP Cache Poisoning Attack Lab_第1张图片
发之前是这样的,对应的就是真实MAC

SeedLab3: ARP Cache Poisoning Attack Lab_第2张图片

发了之后成功替换(中间人的MAC就是下面那个)

SeedLab3: ARP Cache Poisoning Attack Lab_第3张图片

然后再试试ARP reply行不行
SeedLab3: ARP Cache Poisoning Attack Lab_第4张图片

效果一样滴
SeedLab3: ARP Cache Poisoning Attack Lab_第5张图片

再发个gratuitous ARP康康效果
(这种ARP一般是用于开机的时候向同网段其他主机通告自己的MAC看看有没有冲突,或者是主机改变MAC时用于更新)
SeedLab3: ARP Cache Poisoning Attack Lab_第6张图片

也很有效果
SeedLab3: ARP Cache Poisoning Attack Lab_第7张图片

好了,能进行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欺骗可能不够,建议写个循环后台一直发送欺骗数据包
SeedLab3: ARP Cache Poisoning Attack Lab_第8张图片

Step 2

完成欺骗后,没开启IP forwarding的情况下ping当然不可能有回应
ps. 此时ARP还会有报错的数据包,指示多个IP用了同一个MAC
SeedLab3: ARP Cache Poisoning Attack Lab_第9张图片

Step 3

然后开一下IP forwarding,命令:

$ sudo sysctl net.ipv4.ip_forward=1

此时中间人会转发两台主机间的数据包,能收到ping的回应了
在这里插入图片描述

Step 4

开始修改数据吧
注意先把IP forwarding开启,建立A和B的telnet连接
然后关掉IP forwarding,运行自己的程序嗅探+修改+转发
SeedLab3: ARP Cache Poisoning Attack Lab_第10张图片

这里被官方代码坑到了,它有一句newpkt = IP(pkt[IP]),用收到的数据包创建新的IP数据包,但是实际测试时会报错的,求大神指教…
(只能傻傻的一个个赋值了 ( ˃ ˄ ˂̥̥ )

效果就是,无论输入什么,都会出来ZZZZZZZ
SeedLab3: ARP Cache Poisoning Attack Lab_第11张图片

从抓到的包来验证,A发往M的是s
SeedLab3: ARP Cache Poisoning Attack Lab_第12张图片

M发往B的是Z
SeedLab3: ARP Cache Poisoning Attack Lab_第13张图片

B返回的当然也是Z
SeedLab3: ARP Cache Poisoning Attack Lab_第14张图片

Task 3

和Task 2换汤不换药,把你的名字改成aaaa就可以了
SeedLab3: ARP Cache Poisoning Attack Lab_第15张图片

client输入你的名字
SeedLab3: ARP Cache Poisoning Attack Lab_第16张图片

server出来的是aaaa
SeedLab3: ARP Cache Poisoning Attack Lab_第17张图片

okk完成啦,总体不难
就是官方代码不兼容555

你可能感兴趣的:(scapy,seedlab,ARP缓存攻击)