Python黑帽编程3.0 第三章 网络接口层攻击基础知识

简介:

3.0 第三章 网络接口层攻击基础知识

首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止。

本节简单概述下OSI七层模型和TCP/IP四层模型之间的对应关系,最后是本章教程需要的几个核心Python模块。

3.0.1 TCP/IP分层模型

国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。

除了标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系如下图所示:

 

2

四层模型和五层是现实世界中真实存在的,本系列教程遵循4层模型来写作。本章内容集中在网络接口层,实际对应到5层的数据链路层,因为硬件本身不是我们要关心的内容。之后的各章,都会出现这张图,希望引起你的重视。

3.0.2 数据链路层

  TCP/IP协议族中,数据链路层主要有三个目的:

          1)为IP模块发送和接收数据

          2)为ARP模块发送ARP请求和接收ARP应答

          3)为RARP模块发送RARP请求和接收RARP应答

这里需要强调一点的是,arprarp协议我们将其划分在数据链路层,如果你把它当成网络层协议也无所谓,希望读者不要在这个问题上争论。提到数据传输,必须要谈我们的网络环境,就我本人目前能接触到的网络基本都是以太网。

以太网(Ether-net)是指 DEC 公司、Intel 公司和 Xerox 公司在 1982 年联合公布的一个标准,这个标准里面使用了一种称作 CSMA/CD 的接入方法。而 IEEE802 提供的标准集 802.3(还有一部分定义到了 802.2 )也提供了一个 CSMA/CD 的标准。

这两个标准稍有不同,因此链路层数据帧的的封装格式也有所不同(数据帧中的地址为MAC 地址):

3

3.0.3 SCAPY

Scapy的是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等等。它可以很容易地处理一些典型操作,比如端口扫描,tracerouting,探测,单元 测试,攻击或网络发现(可替代hpingNMAParpspoofARP-SKarpingtcpdumptetherealP0F等)。 最重要的他还有很多更优秀的特性——发送无效数据帧、注入修改的802.11数据帧、在WEP上解码加密通道(VOIP)、ARP缓存攻击(VLAN 等,这也是其他工具无法处理完成的。

scapykali linux 2.0 中默认已经被安装,如果你的系统中没有需要手动安装一下,下面是软件包安装的简单说明。

  使用pip安装scapy

root@kali:/home/pycharm# pip install scapy

4

 

Scapy可以单独使用,也可以在python中调用。

了解Scapy的基本使用和支持的方法,首先我们从终端启动scapy,进入交互模式。

5

ls()显示scapy支持的所有协议。

ls()函数的参数还可以是上面支持的协议中的任意一个的类型属性,也可以是任何一个具体的数据包,如ls(TCP),ls(newpacket)等。

lsc()列出scapy支持的所有的命令。

conf:显示所有的配置信息。conf变量保存了scapy的配置信息。

help()显示某一命令的使用帮助,如help(sniff)

show()显示指定数据包的详细信息。例如,这里我们先创建一个IP数据包,然后调用show方法。

sprintf()输出某一层某个参数的取值,如果不存在就输出”??”,具体的format格式是:%[[fmt][r],][layer[:nb].]field%,详细的使用参考<Security Power Tools>146页。

%[[fmt][r],][layer[:nb].]field%

layer:协议层的名字,如EtherIPDot11TCP等。

filed:需要显示的参数。

nb:当有两个协议层有相同的参数名时,nb用于到达你想要的协议层。

r:是一个标志。当使用r标志时,意味着显示的是参数的原始值。例如,TCP标志中使用人类可阅读的字符串’SA’表示SYNACK标志,而其原始值是18.

我之前发过一篇文章《Python网络数据监听和过滤》,讲了python中数据包解析,Scapy数据监听的用法,大家可以作为参考。

 

3.0.4 小结

需要准备的基础知识不能全面罗列,你需要学习的内容和你个人目前的积累有关。希望各位同学不要放弃对基础知识的学习。

 

3.1节《ARP缓存投毒攻击》已经在微信订阅号抢先发布,心急的同学进入订阅号(二维码在下方),从菜单专栏”—>”Python黑帽编程进入即可。

 

查看完整系列教程,请关注我的微信订阅号(xuanhun521,下方二维码),回复“python”。问题讨论请加qq群:Hacking 1群):303242737   Hacking 2群):147098303

 

 



本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/5788697.html,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1天前
|
存储 文件存储 Python
python基础知识(一)
python基础(一){编码,字符串格式化,数据类型,运算符,推导式(简化生成数据),函数编程,模块}
|
1天前
|
安全 数据处理 开发者
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
12 1
|
1天前
|
人工智能 数据挖掘 程序员
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
23 0
|
1天前
|
机器学习/深度学习 Python
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
11 0
|
1天前
|
JSON 网络协议 API
Python网络编程面试题精讲
【4月更文挑战第15天】本文介绍了Python网络编程的面试重点,包括基础Socket编程、HTTP协议与requests库、异步编程与asyncio库。通过实例解析常见面试题,强调了非阻塞套接字、异常处理、HTTP状态码检查以及异步任务管理等关键点。提供代码示例帮助读者巩固概念,助力面试准备。
9 0
|
2天前
|
API Python
Python模块化编程:面试题深度解析
【4月更文挑战第14天】了解Python模块化编程对于构建大型项目至关重要,它涉及代码组织、复用和维护。本文深入探讨了模块、包、导入机制、命名空间和作用域等基础概念,并列举了面试中常见的模块导入混乱、不适当星号导入等问题,强调了避免循环依赖、合理使用`__init__.py`以及理解模块作用域的重要性。掌握这些知识将有助于在面试中自信应对模块化编程的相关挑战。
17 0
|
2天前
|
机器学习/深度学习 存储 测试技术
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
|
2天前
|
Python
Python金融应用编程:衍生品定价和套期保值的随机过程
Python金融应用编程:衍生品定价和套期保值的随机过程
|
3天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
37 0