计算机网络;基于网络协议的攻击

引入

appa 阿帕

...(相关计算机大学)

A:001100110011

B:111111111111

APAANET 阿帕网

...

INTERNET 英特网

协议(约定):对数字信号以一种统一格式(长度和含义)来解读

111001|001101|0100110011|001111000111000011001

网络协议:为了解决特定需求,提出一系列对比特位的约定

进制

​ 二进制:01

​ 十进制:0-9

进制与信息量

​ 表示数值:

​ 0000 0000 ->0

​ 表示字母:

​ 0000 0000 ->A

​ ...

​ hello?

多种协议的集合:协议栈、协议簇

​ 协议栈:OSI、tcp/ip、osx、ipx...

​ 协议栈可能由不同的组织、机构、企业提出

生活:完成某个特定的动作,需要有众多节点共同协作

网络:完成某个服务,需要有众多的协议共同协作、提供保障

网络模型:服务端与客户端

​ 微信1<>腾讯即时通讯服务器<>微信2

​ 浏览器<>百度web服务器(nginx)

​ windows ssh<远程登录>kali sshd

​ ...

协议栈:分层思想

网络:将计算机(电脑、手机、路由器、交换机、防火墙、IPS/IDS、平板、智能手表)节点连接起来

网络:通信子网+资源子网

网络规模:局域网、城域网、广域网

数据包封装与解封装

OSI七层结构

每层均屏蔽下层通信细节,向上输出统一接口

应用层:

​ 应用程序(人机交互接口解决人机交互问题)

​ http、https、smtp、pop3、QQ、OICQ、p2p、ssh、rdp、telnet、vnc...

表示层:

定义:编码

​ “你好”、"hello"、“こんにちは”... 通过对应的转换方式,转换为0和1

​ 进制:表达同样数值的情况下,进制的不同只是数学叙述方式(表示方式)不同,数值大小相同!

​ 编码:ASCII

​ eg:A:65(十)-->0100 0001(二)

​ GBK:

​ 八:1643(十)-->011001101011(二)

​ utf-8(万国码)

​ 加解密

​ 编解码

​ 压缩解压

​ 微信、QQ、浏览器、SSH、p2p

会话层

一个程序标识着多个会话

半双工、单工和全双工

​ 一根网线(双绞线)有八根支线

定义:会话(端口和端口间通过网络连接起来)

传输层

定义:端口、可靠性

可靠性TCP

UDP

网络层

定义:路由(查表转发)、网路、IP地址(点分十进制,转二进制后32位)、路由选择算法(ospf、eigrp、isis、bgp...)

​ 路由器:连接不同的网络(重点:不同)

​ 路由表(路牌):说明要去的方向,接下来往哪走

​ 路牌:目的:北京 当前:广州 下一站:江西赣州

​ 路由:目的地址 当前地址 下一跳地址

数据链路层(两个节点之间的事情)

定义:mac地址(十六进制、转二进制后48位),是网卡出厂的唯一标识。前一半是前缀,标识厂商

交换机:连接不同设备,形成一个网络(重点:一个)

物理层

定义:物理设备、网卡、型号、信号、介质、材质

注意

七层所有打包工作均在数据从发送者网卡发送出去之前

总结

下四层完成通信子网功能,上三层完成资源子网功能

七层->一层:封装

一层->七层:解封装

TCP/IP协议栈

wireshark

可视化抓包工具:wireshark

命令行抓包工具:tcpdump

场景:数据包分析、流量分析
1.确认网卡
2.产生流量(发生指定网络动作)
3.分析流量
所有的抓包都是奔着网络行为去的
​
作业:wireshark抓取浏览器访问百度时的数据包

Ethernet协议

学习协议:对应长度的比特位,用特定的数值,表示官方(RFC)约定的功能或内容

  • RFC1024、RFC894

  • 报文格式

流量分析(流量特征、魔改):从有序的众多数据包中,阅读、提炼、抽象网络动作特征

魔改:去除流量上或源代码上的特征、指纹

Ethernet的主要作用:局域网通信中,定义了mac地址在二层链路中的寻址、数据帧的差错检验

0x86dd  //16进制以0x开头
34525
o103335     //8进制以o开头
1000011011011101
​
载波监听多次访问
星型拓扑
环形
​
局域网通信
    通信方式:
        一对一
        一对组
        一对所有
            广播帧
​
以太网地址:
    普通mac地址:局域网中通信所需要的地址
    广播帧地址:ff:ff:ff:ff:ff:ff

ARP协议

地址解析协议,将IP地址解析为mac地址

工作在数据链路层(二层),不通过三层的路由转发

  • 衍生话题:关注某些工具的协议工作的层级

    • arp-scan

解决的问题:局域网第一次通信时,通过目标IP地址获得目标mac地址

arp缓存表

arp -a
arp -d 1.1.1.1

网关:网络关口(出口)

虚拟网络:

通讯过程:请求包+响应包:

ARP扫描

扫描:

  • 目录扫描

  • 漏洞扫描

  • 主机扫描

  • 综合扫描

  • ...

存活主机扫描(网络信息搜集)

同一个网络:没有路由器参与的情况下,链路上可以互相通信

  • 连接在同一个交换机上的所有终端默认情况下属于同一个网络

  • 路由器的一个接口下的所有终端默认属于同一个网络

  • 192.168.0.1-192.168.0.254,前缀相似

sudo arp-scan --interface=eth0 192.168.1.0/24

流量特征:

  • 大量的arp广播帧

  • arp广播帧中遍历所有的target IP

ARP欺骗攻击(实验)
sudo arpspoof -i eth1 -t 100.10.10.146 100.10.10.254
​
echo 1 > /proc/sys/net/ipv4/ip_forward  //将数字1写入系统文件/proc/sys/net/ipv4/ip_forward,表示启用ip转发功能
sudo sysctl -w net.ipv4.ip_forward=1    //和第一条命令效果相同,用于临时启用 IP 转发功能,但设置在系统重启后会丢失
sudo sysctl -p  //使用sysctl命令重新加载/etc/sysctl.conf文件中的系统参数配置

流量特征:

  • 大量的单播帧

  • 错误的ip与mac的映射关系

网关:局域网网络关口,计算机的数据无条件相信网关,路由最高优先级(静态路由)

arp攻击:

  • 攻击原理:攻击方充当了局域网中的网关的角色

  • 攻击结果:导致局域网中的所有流量都经过攻击方

IP协议

因特网协议

IP地址:

  • 一个IP用于标识网络中的一个网卡(节点)

  • 格式:点分十进制(x.x.x.x),32位

    • 每个十进制数的取值范围:0-255

    • 为什么最大是255?

      • 0000 0000|0000 0000|0000 0000|0000 0000

      • 1111 1111|1111 1111|1111 1111|1111 1111

  • 进制:数学公式

    有一个问题:为什么用这些符号来表示某个具体的数值?
    十进制:371
        1*10^0+7*10^1+1*10^2
    二进制:1011 1001
        1*2^0+1*2^3+1*2^4+1*2^5+1*2^7

  • 因特网中的IP地址是不能冲突的

  • IP地址结构

    • 网络号+主机号

      • 用于标识一个网络范围

      • 不同网络不能够直接通信

      • 网络号相同,称为同一个网络,可以互相通信

      • 同一个网络中,主机号不能冲突,主机号个数有限

  • IP地址分类

    • 分类是为了对地址划分默认的网络号长度

    • 分类直接导致的现象:不同类的网络中,单个网络中可用IP(可用主机)个数不同

    • A:0.0.0.0->127.255.255.255

      • 0.0.0.0:表示所有、任意

      • 127.x.x.x:回环地址(计算机自称,但其他计算机无法通过这个地址找到本计算机)

      • 0.0.0.0/8

      • 1.0.0.0->126.255.255.255(有效地址)

    • B:128.0.0.0->191.255.255.255(有效地址)

      • 0.0.0.0/16

    • C:192.0.0.0->223.255.255.255(有效地址)

      • 0.0.0.0/24

  • 子网掩码

    • 点分十进制

    • 由连续的1和连续的0组成

      • 0.0.0.0/24

      • 255.255.255.0

      • 1111 1111|1111 1111|1111 1111|0000 0000

      • 子网掩码是用来标识IP地址的网络位和主机位的分界

        192.168.10.101/24
        ​
        IP地址:192.168.10.101
        它的子网掩码:255.255.255.0

关于“一个网络”

网络号、主机号、网络地址、广播地址、最大可用主机数

192.168.10.100/24、192.168.10.150/24、192.168.10.200/24
​
网络号、网络地址(主机位全为0用来标识一个网络范围):192.168.10.0/24
主机号(同一个网络中每一个可在网卡中使用的具体IP地址):192.168.10.100/24、192.168.10.150/24、192.168.10.200/24
广播地址(主机位全为1,用于广播通信时标识网络中的所有目标):192.168.10.255/24
最大可用主机数:1-254,254个(0-255,减去一个网络地址和一个广播地址)
sudo dhclient -r eth0   //释放地址
sudo dhclient -d eth0   //获取地址
​
​
网卡配置文件位置:/etc/network/interfaces    //对该文件的配置是永久生效的
​
​
静态自定义配置:
#The eth0 network interface
auto eth0
iface eth0 inet static
address 172.16.100.200
netmask 255.255.255.0
gateway 172.16.100.254
​
动态获取
#The eth0 network interface
auto eth0
iface eth0 inet dhcp
​
sudo ifconfig eth0 172.16.100.200 netmask 255.255.0.0   //临时修改网卡配置

VLSM子网划分

不能通信
kali:172.16.100.200/24
win:172.16.101.103/24
可以通信
kali:172.16.100.200/16
win:172.16.101.103/16

VMware虚拟网络

  • 虚拟机的网卡模式

    • 桥接模式:使用虚拟网桥VMware0(不是网卡,只是一个虚拟网桥,体现在某些系统服务或者是进程当中)。虚拟机和物理机的物理网络是同一个网络(虚拟机用的是我物理机WiFi的IP)

    • NAT模式:虚拟机IP经NAT地址转换后才能和主机通信(三层:外网、局域网、虚拟机)

    • 仅主机模式:用VMware1网卡,只能和宿主主机或宿主主机里的其他虚拟机通信,无法和同局域网内其他主机或外网通信

NAT网络地址转换协议

  • 内网地址<----出口路由器做NAT转换---->公网地址

    • 内网IP可以自发访问外网IP

    • 外网IP可以访问外网IP

    • 外网地址不能够自发访问内网地址。数据包中的目标IP是内网IP的情况是不存在的

      • 有无攻击方式?有:内网渗透

  • 内网IP地址分类

    • A:10.0.0.0-10.255.255.255

    • B:172.16.0.0-172.31.255.255

    • C:192.168.0.0-192.168.255.255

    • 以上也称为内网地址

    • 从内网到外网,数据包的源地址要经过NAT地址转换,转换为公网地址

    • 外网中通信是不会使用内网地址的,内网地址都会先转换为一个外网的IP地址然后再在外网进行通信

ICMP互联网控制信息协议

ping

tracert

​ 发送UDP包

​ 返回ICMP包

UDP协议

特点

  • 无连接

  • 不可靠

  • 不分片

基于UDP的应用层协议:DNS、DHCP、SNMP、TFTP、OICQ...

通常发包频率低,内容少的应用层协议,传输层基于UDP

DHCP动态主机配置协议

类似租赁

  • IP(房子)

  • DHCP服务器(房东)

  • pc(租客)

  • 合同、续租

出现背景:人工培植IP地址,量大、易出错

DHCP配置过程

  • DHCP discover

  • DHCP offer

  • DHCP request

  • DHCP ack

某些异常情况:

续约:

DHCP地址流量消耗特征:

DHCP泛洪攻击(实验)
sudo yersinia dhcp -attack 1 -i eth0
    -attack 1表示执行攻击模式1。根据Yersinia的文档,模式1通常是DHCP伪造攻击,模拟多个伪造的DHCP服务器,试图在网络中制造混乱
​
isc-dhcp-server
​
sudo service isc-dhcp-server start

DNS域名解析协议

域名服务器:domain name server

所有通信都是跟IP通信,只不过人们对具体名字会更敏感

kali的DNS服务器所在文件:/etc/resolv.conf

主机名解析:host
hostname
/etc/hosts
  • 弊端:无法记录如此庞大数量的主机名

DNS域名解析
  • 域名解析系统

    • 企业管理-->老板不可能认识企业中所有员工的名字

      • 员工之间有层级关系,可利用分层思想进行管理

    • 分层管理的思想

    • 相关概念

      • 域:计算机群在逻辑范围当中的标识

      • 域名:标识一个范围的名称

      • 域名服务器:管理(注册)区域中的下级域名服务器和下级域名服务器的IP

      • 完全限定域名FQDN

        • 通过层级关系最终能找到指定主机的完整层级

主机名-->IP

目标-->IP:域名解析

相关命令

nslookup、dig

DNS劫持攻击

流量特征:

sudo service apache2 start
sudo netstat -tunlp
​
sudo vim/etc/ettercap/etter.dns
-->www.baidu.com(想要欺骗的网站) A kali的IP
​
sudo ettercap -G

TCP协议

特点

  • 可靠性

  • 面向连接

  • 流量控制

  • 多路复用

    • 套接字:IP+端口的绑定形式

机制

  • 三次握手

  • 四次挥手

TCP有限状态机

Hping3

dos:拒绝服务攻击

ddos:分布式拒绝服务攻击

icmp dos

udp dos

TCP SYN Dos

Telnet协议

远程登录服务:telnet、ssh、vnc、rdp...

CS/BS

banner信息

SSH协议

HTTP协议

https://developer.mozilla.org/zh-CN/docs/Web/HTTP   //HTTP参考教程

超文本传输协议

文本传输

超链接

B/S架构

浏览器/Web服务

  • 请求/响应

http版本
  • 1991:http/0.9

    • 仅支持GET方法、HTML文本

  • 1996:http/1.0

    • 支持富文本,GET、POST、PUT、HEAD

  • 1999:http/1.1

    • 丰富全面的请求方法

  • 2015:http/2.0

    • 多路复用

    • 服务端推送

    • 二进制格式

HTTP请求

请求格式

  • 请求行

    • 请求方法

    • 网站资源路径(.html、.css、.js、.png、.mp4...)

    • 协议版本

  • 请求头(难点)

    • Key:value

  • 请求数据

HTTP响应

响应格式

  • 响应行

    • 协议版本、状态码(响应码,重点)、状态描述

  • 响应头(难点)

    • Key:value

  • 响应数据

请求方法

  • GET方法

    • 请求指定页面信息,一般浏览网页采用GET

  • POST方法

    • 用于请求并提交内容到指定页面,提交表单/上传文件,采用POST方法

  • PUT

    • 从客户端向服务器传送指定的内容,更多体现为传输文件

  • DELETE

    • 请求服务器删除指定内容

  • HEAD

    • 不需要返回响应数据、只返回响应行+响应头的请求方法,大多用于扫描场景

  • CONNECT

  • OPTIONS

    • 检测服务器支持的请求方法、探测请求资源是否可访问

  • TRACE

响应状态码

状态码分类

  • 1xx 正在处理

  • 2xx 成功处理

    • 200 OK:请求成功

  • 3xx 重定向

    • 301 永久重定向

    • 302 临时重定向

    • 304 从缓存读取

  • 4xx 客户端错误

    • 401 http身份认证失败

    • 403 防火墙等策略拦截

    • 404 页面不存在

  • 5xx 服务端错误

    • 500 服务器内部错误,无法提供服务

    • 503 服务器暂时无法提供服务,通常需要等待一段时间回复

头部字段

HTTP 标头 - HTTP | MDN

重要头部字段

  • cookie:用户在网站上的身份标识

    • 如果能掌握cookie,则可通过修改cookie的方式绕过用户名密码的验证

  • host

  • Authtication:认证相关

  • User-agent:客户端指纹

  • server:服务器信息

  • Set-cookie:cookie设置时需要的参数

  • referer:当前请求页面的来源页面的地址

  • Origin:与浏览器同源策略有关

其他需要关注的字段,这些字段会记录客户端和IP相关的信息

X-Forwarded-For

X-Remote-Ip

...

前端、接口与后台总结

  • url格式:协议://主机:端口/目录名/文件

  • http请求任何地方都可能作为输入点,自己测

  • 接口通常是一个url,指向后端提供的资源或服务

  • 前端发送http请求(一般通过javascript),使用接口url,其中可能带有参数;访问到后端的资源或服务

  • 后端代码根据业务逻辑,选择性取下http请求中的参数,执行后端业务逻辑

  • 后端通过接口,反馈http响应给前端

  • 前端根据反馈的结果更新界面

网络问题排查

由近到远:ping自己、ping同局域网、ping网关、ping外网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值