一、题目

包嗅探和欺骗是网络安全中的两个重要概念;它们是网络通信中的两大威胁。能够理解这两种威胁对于理解网络中的安全措施至关重要。有许多包嗅探和欺骗工具,如Wireshark、Tcpdump、Netwox等。其中一些工具被安全专家以及攻击者广泛使用。能够使用这些工具对学生来说很重要,但对于网络安全课程的学生来说,更重要的是了解这些工具是如何工作的,即包嗅探和欺骗是如何在软件中实现的。

本实验的目标是让学生掌握大多数嗅探和欺骗工具的基本技术。学生们将使用一些简单的嗅探和欺骗程序,阅读它们的源代码,修改它们,并最终对这些程序的技术方面有深入的了解。在本实验结束时,学生应该能够编写自己的嗅探和欺骗程序。

二、过程

一、Lab Task Set 1: Using Scapy to Sniff and Spoof Packets
许多工具可以用来做嗅探和欺骗,但其中大多数只提供固定的功能。Scapy是不同的:它不仅可以作为一个工具,还可以作为一个构建块来构建其他的嗅探和欺骗工具,也就是说,我们可以将Scapy功能集成到我们自己的程序中。在这组任务中,我们将对每个任务使用Scapy。要使用Scapy,我们可以编写一个Python程序,然后使用Python执行这个程序。请参阅下面的示例。我们应该使用根权限运行Python,因为欺骗数据包需要该特权。
通过简单测试,构造了一个IP数据包并打印其的一些信息:

(一)Task 1.1: Sniffifing Packets
本任务的目的是学习如何在Python程序中使用Scapy进行包嗅探。
首先获取网络接口名称,当我们使用提供的组合文件为这个实验室创建容器时,将创建一个新的网络来连接虚拟机和容器。

以下内容中提供了一个示例代码:

Task 1.1A.
1.在执行sniffer.py同时,使用ping发出icmp数据包。使用chmod a+x sniffer.py 添加执行权限,root权限运行上面的程序 sudo ./sniffer.py。
结果如下,可以看到其成功嗅探到了不同协议的数据包。

2.使用普通权限运行该程序 ./sniffer.py。可以看到报错,提示无权限。

这说明嗅探包需要高权限。若没有高权限,系统不允许嗅探数据包。

Task 1.1B
可以通过在嗅探中设置过滤器来实现这一点。Scapy的过滤器使用BPF(伯克利数据包过滤器)语法。
1.只捕捉ICMP数据包

嗅探结果如下,可以看到得到包均是ICMP:

2.捕获来自特定IP和目标端口号为23的任何TCP数据包
嗅探代码:

发送包代码:


嗅探结果如下,可以看到得到包来自特定IP和目标端口号为23:

3.捕获数据包来自一个特定的子网128.230.0.0/16
嗅探代码:

发送包代码:

嗅探结果如下,可以看到得到发送给子网128.230.0.0/16 和 该子网发送过来的数据包:

(二)Task 1.2: Spoofifing ICMP Packets
作为一个数据包欺骗工具,Scapy允许我们将IP数据包的字段设置为任意值。此任务的目的是用任意的源IP地址来欺骗IP数据包。我们将欺骗ICMP回波请求包,并将它们发送到同一网络上的另一个虚拟机。我们将使用线鲨来观察我们的请求是否会被接收人接受。如果它被接受,一个回复包将被发送到欺骗的IP地址。

在wireshark中可以看到伪造的包有了回复。
(三)Task 1.3: Traceroute
此任务的目的是使用Scapy来估计虚拟机和选定目的地之间的路由器数量方面的距离。这基本上是由跟踪工具实现的。在这个任务中,我们将编写我们自己的工具。

(四)Task 1.4: Sniffifing and-then Spoofifing
结合嗅探和欺骗技术实现以下嗅探和欺骗程序。在同一局域网上的两台机器:虚拟机和用户容器。从用户容器中,您可以生成一个IPX。这将生成一个ICMP回波请求包。如果X被激活,ping程序将收到一个回波响应,并打印出响应。嗅探和欺骗程序运行在VM上,它通过数据包嗅探来监视局域网。每当它看到ICMP回波请求时,无论目标IP地址是什么,您的程序都应该立即使用数据包欺骗技术发送回波回复。因此,无论机器X是否活动,ping程序将始终收到回复,表明X激活。您需要使用Scapy来完成此任务。

1.首先测试ping baidu.com结果如下。ttl=64为我们伪造的回复包,ttl=49的为正常的包。

2.测试ping 8.8.8.8

二、Lab Task Set 2: Writing Programs to Sniff and Spoof Packets
(一)Task 2.1: Writing Packet Sniffifing Program

编译运行后,ping baidu.com,可以看到发送的包出现在结果中。

Task 2.1A: Understanding How a Sniffer Works
• Question 1. 请使用您自己的单词来描述对嗅探器程序至关重要的库调用的序列。
第一步启动pcap监听网卡,第二步编译BPF过滤器并设置过滤器,第三步设置嗅探的处理函数,最后关闭嗅探即可。

• Question 2. 为什么你需要根的特权来运行一个嗅探器程序?如果没有根权限,程序在哪里失败?
嗅探数据包是一个高权限的操作,涉及到隐私安全,所以需要根的特权来运行一个嗅探器程序。如果普通用户也能嗅探数据包,那么他就能窃取别人的隐私。若没有根权限运行该程序,可以发现在第一步监听网卡就失败。

• Question 3.这个模式在开启和关闭时的区别
使用混杂模式可以监听所在网段下其他机器的数据包,关闭则不能。打开混杂模式,监听到了本网段另一机器ping baidu.com的数据包,关闭后则嗅探不到。一般来说,非混杂模式的嗅探器中,主机仅嗅探那些跟它直接有关的通信,如发向它的,从它发出的,或经它路由的等都会被嗅探器捕捉。而在混杂模式中则嗅探传输线路上的所有通信。在非交换式网络中,这将是整个网络的通信。这样做最明显的优点就是使更多的包被嗅探到,它们因你嗅探网络的原因或者对你有帮助,或者没有。但是,混杂模式是可被探测到的。

Task 2.1B: Writing Filters.
为嗅探器程序编写过滤器表达式,以捕获以下每一个内容。
1.捕获两个特定主机之间的ICMP数据包。
使用2.1A代码,将其中过滤器修改,使用的过滤器为 icmp and src host 10.0.2.4 and dst host 6.6.6.6, 只捕捉从 10.0.2.4 发送到 6.6.6.6的ICMP包。


2.捕获目标端口号在10到100范围内的TCP数据包。

使用的过滤器为 tcp and dst portrange 10-100。

用浏览器访问baidu.com的包出现在结果中,用浏览器访问baidu.com:111的包没有出现在结果中。

Task 2.1C: Sniffifing Passwords.
请展示,当有人在您正在监视的网络上使用电信网时,您可![以如何使用您的嗅探器程序来捕获密码。

使用telnet 10.0.2.5 ,并输入账户密码远程登录。嗅探到的密码如下

(二)Task 2.2: Spoofifing
Task 2.2A: Write a spoofifing program.
编辑代码,使用gcc -o task22A task22A.c spoof.c -lpcap编译,sudo ./task22A运行,查看后台wireshark,可以看到我们伪造的UDP包。

Task 2.2B: Spoof an ICMP Echo Request.
伪造ICMP Echo请求。伪造的代码其中源IP10.0.2.5是局域网内另一个虚拟机的IP。
使用gcc -o task22B task22B.c spoof.c checksum.c -lpcap 进行编译, sudo ./task22B运行,查看后台的wireshark,如下:
可以看到我们发送的源IP为10.0.2.5, 目的IP为8.8.8.8的ICMP包,并且还有回复。


• Question 4. 是否可以将IP包长度字段设置为任意值,而不管实际包有多大?
不可以,将代码中设置长度修改小后,wireshark没有捕捉到包,说明没有发出去。改大后成功发出。说明可以调大长度,不能调小长度。

• Question 5. 使用原始套接字编程,是否必须计算IP头的校验和?
不用计算IP头部的checksum,但是需要计算ICMP头部的checksum。

• Question 6. 为什么您需要根权限来运行使用原始套接字的程序?如果没有根权限执行,程序在哪里失败?
因为能任意读取发送包意味着很大的安全风险,所以需要root权限。

(三)Task 2.3: Sniff and then Spoof
结合嗅探和欺骗技术来实现以下嗅探和欺骗程序。需要在同一局域网上的两台机器。从机器A开始,你就可以得到一个IPX。这将生成一个ICMP回波请求包。如果X被激活,ping程序将收到一个回波响应,并打印出响应。您的嗅探和欺骗程序在攻击者机器上运行,它通过数据包嗅探监视局域网。每当它看到ICMP回波请求时,无论目标IP地址是什么,您的程序都应该立即使用数据包欺骗技术发送回波回复。因此,无论机器X是否活动,ping程序将始终收到回复,表明X激活。
使用 gcc -o task23 task23.c checksum.c spoof.c -lpcap编译程序,sudo ./task23运行。Ping 1.1.1.1,得到程序输出:


网络攻防技术——嗅探与欺骗相关推荐

  1. 2018-2019-2 20165312《网络攻防技术》Exp7 网络欺诈防范

    2018-2019-2 20165312<网络攻防技术>Exp7 网络欺诈防范 目录 一.相关知识点总结 二.实验内容 三.实验步骤 四.实验总结及问题回答 五.实验中遇到的问题及解决方法 ...

  2. 2017-2018-2 20179205 《网络攻防技术与实践》第八周作业

    <网络攻防技术与实践>第八周学习总结 教材第八章<Linux操作系统安全攻防>学习总结 本章通过介绍Linux的结构和安全机制,引出了对Linux系统的攻击过程,包括首先从远程 ...

  3. 网络攻防技术(摆烂一天)

    网络攻防技术非常基础 1. 信息采集 信息采集的重点概念: 信息采集是黑客为了更有效的实施攻击而在攻击前对被攻击目标进行探测活动(信息渗透的过程) 信息采集是渗透重要的一部分:知道的越多就可能知道的更 ...

  4. 网络攻防技术(郑大信安个人总结版)

    网络攻防技术(郑大信安个人总结版) 目录 第1部分 绪论 2 第2部分 网络脆弱性分析 3 第3部分 网络侦察 5 第4部分 网络扫描 7 第5部分 拒绝服务攻击 11 第6部分 计算机木马 14 第 ...

  5. 2017-2018-2 20179305《网络攻防技术》第二周作业

    Q1 国内外著名黑客介绍 1.国内著名黑客黄鑫简介 黄鑫,网名木马冰河,毕业于西安电子科技大学,职业是网络安全网站"安全焦点"冰河木马软件的创作者. 99年,木马虽然已经在黑客中间 ...

  6. 2018-2019-2 20189221 《网络攻防技术》第六周作业

    2018-2019-2 20189221 <网络攻防技术>第六周作业 视频学习(21-25) KaliSecurity-密码攻击之在线攻击工具 1.Cewl 可以通过爬行网站获取关键信息创 ...

  7. 20189216 《网络攻防技术》第六周作业

    教材和视频学习总结 一.教材内容学习总结 课本第五章主要围绕TCP/IP网络协议攻击技术进行讲述,教材中主要涉及的攻击内容如下: 网络攻击基本模式: 截获 中断 篡改 伪造 网络层协议攻击手段 IP源 ...

  8. 2018-2019-2 20189215 《网络攻防技术》第六周作业

    教材<网络攻防技术>第五.六章学习 第5章 TCP/IP网络协议攻击 5.1 TCP/IP协议栈攻击概述 网络安全的属性:机密性 .完整性 .可用性 .真实性 .不可抵赖性 . 网络攻击的 ...

  9. 2017-2018-2 20179205 《网络攻防技术与实践》第六周作业

    <网络攻防技术与实践>第六周作业 视频学习总结 一.kali密码攻击之在线工具攻击 密码攻击是安全测试中必不可少的一环,而在线攻击多为对一个服务远程连接并使用用户名与密码破解. 1.cew ...

最新文章

  1. 【C#串口编程计划】通信协议解析 -- byte[]与常用类型的转换
  2. 简单dp ---HDU3485 Count 101
  3. 在updatepanel中使用fileupload控件
  4. Kotlin 文档 .Google 正式确定将 Kotlin为android 开发语言
  5. VS编译提示错误“....Consider using strcat_s instead.To disable deprecation, use _CRT_SECURE_NO_WARNINGS.”
  6. 堆晶结构_内蒙古苏尼特左旗地区堆晶角闪辉长岩的发现及地质意义
  7. OJ1033: 五级制成绩
  8. adcetris研发历程_抗体类药物质量控制—张伯彦20130730.pdf
  9. Python+numpy实现矩阵的行列扩展
  10. 调用模块里的action_初级测试人员进阶必备Python编码模块,看过的都说好
  11. Spring中的bean装配
  12. 拓端tecdat|Python、R对小说进行文本挖掘和层次聚类可视化分析案例
  13. UCOSIII实时操作系统
  14. 基于ESP-IDF环境的ESP32-C3开发
  15. ubuntu 安装 xv 图像查看软件
  16. Android应用测速组件实现原理,这篇看完还不懂跟我去摆地摊,全网首发
  17. mysql语句总结_mysql语句总结
  18. 空腹不能吃的东西,可不仅仅是香蕉和柿子
  19. Java对Excel的读写详解(POI)
  20. 【12月】RT-Thread VL53L0X TOF传感器驱动实现

热门文章

  1. 开源mysql执行平台_MySQL自动化审核平台部署说明
  2. 原生实现点击li变颜色
  3. 专业编写c语言的软件,适合编写C语言代码的几款软件
  4. c语言编程软件平板_想在ipad上进行C语言程序编写,请问有没有编译的APP
  5. 论文笔记:MICCAI2018 Cell Detection with Star-convex Polygons
  6. mac系统重置Mysql密码
  7. 和ts一般怎么玩_AG首发大换血,成功复仇TS,发了工资的TS谁也打不赢?
  8. 初等证明:费马商的加法分配律证明
  9. JAVA实现利用第三方平台发送短信验证码
  10. 中恒建模助手bim软件中的建筑给排水设计,给水系统和中水系统什么意思?