SeedLab1: Sniffing & Spoofing Lab

本学期开始两门课的SeedLab之旅~
网上能参考的资料比较少…要自己加油鸭 🥰

Sniffing & Spoofing Lab
两种语言:Python(Scapy)、C(pcap)
两种机制:Sniff、spoof


Task 1.1A

抄一抄示例代码,scapy的show()函数能直接打印出以太网、IP、ICMP、DNS等信息(需要root权限运行):

在这里插入图片描述
不用root权限时,会在socket系统调用的地方发生权限错误:

在这里插入图片描述

Task 1.1B

2 更改过滤条件,指定目的IP和目的端口号即可

在这里插入图片描述
在这里插入图片描述
3 更改过滤条件,指定子网即可

在这里插入图片描述
在这里插入图片描述

Task 1.2

Scapy的spoof很好写,不用计算校验和,直接创建对象指定字段就可以啦
发一个伪造的ICMP echo request(ICMP对象默认即为request)

在这里插入图片描述
在目的主机抓包,能看到它发送了reply
在这里插入图片描述

Task 1.3

模拟一个traceroute,循环每次TTL+1,中间节点都发回ICMP TTL字段过期的错误信息,目的节点发回ICMP reply就结束

在这里插入图片描述

可以用traceroute对比一下,基本是一样的

Task 1.4

最后一个啦,抓到ICMP request就伪造目的IP发送ICMP reply(交换源和目的端口,更改type,其他的都保持不变)

在这里插入图片描述


Scapy踩过的坑

第一个大坑就是Linux下使用python:Syntax error "(" unexpected

在这里插入图片描述

解决方法:
最上方加一行#!/usr/bin/python3
(这种以#!开头的代码指定了解释器,因为python2 / 3是不兼容的,所以需要路径)


Task 2.1A

开始pcap~
最开始同样是实现sniff,不同的是pcap没有scapy那么方便的接口,需要自己实现各类协议的各个字段,以便进行解析
在这里插入图片描述

在这里插入图片描述

用typedef更加方便~
确保字段的大小无误,然后就可以输出IP地址啦

在这里插入图片描述
在这里插入图片描述

Task 2.1B

然后就是增加过滤条件:
1 指定两个端口的ICMP

在这里插入图片描述
在这里插入图片描述

2 指定目的端口范围的TCP

在这里插入图片描述
在这里插入图片描述

这里有个思考题没有搞成功,就是在pcap_open_live里关闭混杂模式后再抓包,但是关掉之后(即使在命令行关闭网卡的混杂模式)也能抓到其他主机的包…官方文档说特殊情况下会这样,可能是虚拟机网络配置的问题叭…

Task 2.1C

这题还蛮有意思的,要嗅探TCPpayload里面携带的密码
要用到telnet,选择了新浪邮箱登录

在这里插入图片描述

登录操作:
在这里插入图片描述

嗅探到的报文:

在这里插入图片描述

Task 2.2B

要发一个伪造的ICMP echo request,注意type为8,code为0,id和seq都要用htons进行主机序与网络序的转换

校验和算法:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
指定源和目的IP:

在这里插入图片描述

似乎IP地址的校验和不用计算,(可能是因为IP的分片,在底层设备发送前会自动计算并且填写好字段),但是ICMP的校验和必须计算,否则会出错,也会被目的主机拒收从而收不到回应报文
这里自己也没研究清楚,仅供参考…

在这里插入图片描述

Task 2.3

和之前一样,收到ICMP request后伪造ICMP reply

在这里插入图片描述
没什么问题,找了很久的一个bug是在计算校验和之前要先把checksum字段置为0


这个Lab总体不算很难,重点是各类协议的头部结构、scapy和pcap的语法熟悉和SeedLab的环境熟悉,希望验收顺利~

感谢大佬相助!
https://github.com/SmallPond/SeedLabs/tree/master/sniffandspoof

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值