渗透日记之计算机网络
常见私有IP段:10.0.0.0 ~10.255.255.255
00001010.00000000.00000000.00000000~000001010.11111111.11111111.11111111
172.16.0.0~172.31.255.255
11000000.00010000.00000000.00000000~11000000.00100000.11111111.11111111
192.168.0.0~192.168.255.255
11000000.10101000.00000000.00000000~11000000.101010000.11111111.11111111
网络协议分层
应用层
提供应用功能;包含c/s p2p模型;
常见的有http,smtp(TCP协议 25端口),ftp(文件传输协议 21)dns协议
传输层
有两个传输协议:
- TCP:大部分应用使用的是TCP传输层协议,有流量控制、超时重传、拥塞控制。保证数据包可靠的传输给对方。
- UDP:相对简单,只负责发生数据包,不保证数据包是否抵达对方,实时性更好,传输效率也高。在应用层实现TCP的特性也可以实现可靠传输。
网络层
TCP/IP协议:寻址,路由。
ip地址:网络号(标识ip地址是哪一个子网的),主机号(标识同一个子网的不同主机)
数据链路层
网卡->MAC;(ARP协议)
物理层
二进制信息传输;数据包转为电信号,让其可以在物理介质中传输。这一层就是物理层。
IP协议
网关:默认寻找IP。
路由表:寻找目标;
可用命令:
1 | route print |
IP和MAC的关系:MAC实现直连的两个设备之间通信,IP则负责在没有直连的两个网络之间进行通信传输;
源MAC地址和目标MAC地址一直在变化。源ip和目的ip不会变化。
2^32=4294967269
A类地址:0 0.0.0.0 ~127.255.255.255 1677w7214 2^24-1
B类地址:10 128.0.0.0 ~191.255.255.255 6w5534 2^16-1
C类地址:110 129.0.0.0~223.255.255.255 254 2^8-1
d类地址:1110 224.0.0.0~239.255.255.255 组播地址:用于多播:多播用于将包发送给特定组内的所有主机
[!NOTE]
- 224.0.0.0 ~ 224.0.0.255 为预留的组播地址,只能局域网中,路由器是不会进行转发的
- 224.0.1.0 ~ 238.255.255.255 为用户可用的组播地址,可以用于 Internet 上
- 239.0.0.0 ~ 239.255.255.255 为本地管理组播地址,可供内部网在内部使用,仅在特定的本地范围内有效
e类地址:11110 240.0.0.0~255.255.255 留待用处
CIDR:无分类地址。前面是网络号,后面是主机号 加上/x
子网掩码与IP地址按位计算&,可得到网络号
子网掩码还有一个作用,那就是划分子网。
子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址
napt协议:ip地址加上端口。
[!TIP]
私有 IP 地址通常是内部的 IT 人员值管理,公有 IP 地址是由
ICANN
组织管理,中文叫「互联网名称与数字地址分配机构」。
主机号全0为网络地址,全1为广播地址(用于同一链路相互连接的主机之间发送数据包)本地广播会被接受,不同网络的直接广播默认不会设置转发。
IP协议
DNS协议:域名解析协议;将网站自动转为ip
域名存在三个层级:根dns服务器(保存在所有互联网的dns服务器中);顶级域dns服务器(com,cn);权威dns服务器
为了方便记忆而诞生的域名解析协议:过程如下。
- 查看DNS缓存 浏览器缓存->操作系统缓存->host缓存; 没有转2
- 发出DNS请求,询问冰发给本地DNS服务器
- 本地DNS服务器查找缓存 没有转3
- 寻找根域名服务器->给与顶级域名服务器地址
- 本地dns询问顶级域名服务器
- 本地询问询问权威DNS服务器
- 权威dns服务器将对应的ip地址告诉本地
- 本地dns返回ip地址给客户端,建立连接
ARP与RARP协议:
解析IP所在的MAC地址;主机通过广播发送ARP请求,包含想要知道的MAC地址的主机IP地址。同一链路的所有设备收到ARP请求时,如果拆开ARP请求包中的内容,目标IP和自己的IP一致,该设备就将自己的MAC地址塞入ARP响应包返回给主机。操作系统会缓存ARP获得的MAC地址;超过一定期限,,缓存内容被清除
解析MAC地址的IP(需要架设以太RAPR服务器,在该服务器上注册设备的MAC地址和IP地址,设备会发送自己的MAC地址,RARP收到该消息会返回MAC地址为xxx的IP地址为xxx);
DHCP协议:
动态获取IP协议;
客户端发起 ==DHCP发现报文(DHCP DISCOVER)== 的 IP数据包,没有ip地址,不知道dhcp服务器的地址,使用UDP广播通信,目的地址255.255.255.255(端口:67)使用0.0.0.0(68端口)作为源IP地址;dhcp客户端将该IP数据传给链路层,然后将帧广播到所有网络设备中。
dhcp服务器收到 DHCP 发现报文后,用==DHCP提供报文(DHCP OFFER)==向客户端做出响应。任然使用IP广播地址255.255.255.255,该报文信息携带服务器可租约的IP地址,子网掩码,默认网关,dns服务器以及ip地址租用期。
客户收到一个或多个服务器的DHCP提供报文后,选择一个服务器,发送==FHCP请求报文(DHCP REQUEST)==进行响应,回显配置的参数
服务端最后用==DHCP ACK报文==对DHCP请求报文进行响应。
全程使用udp广播通信。不在同一个局域网的话,DHCP中继代理,对不同网段的IP地址分配可以由一个DHCP服务器进行统一管理。
NAT:
网络地址转换协议;进阶NAPT;ip地址+端口号;可以将私有地址转为公有地址,以不同的端口号进行区分。
ICMP协议:
互联网控制报文。
主要功能:确认IP是否成功送达目标地址,报告发送过程中被废弃的原因和改善网络设置等等。
1.查询报文类型
1 | 0 回送应答 |
2.差错报文
1 | 3 目标不可达 |
HTTP介绍:
http是超文本传输协议;Hypertext TransferProtocol
分为三个部分:超文本;传输;协议;
协议:
http是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流的规范,以及相关的各种控制和错误处理方式。
传输:
数据利用http协议进行传输,由浏览器进行渲染,就可以看见图片,视频。
超文本:
http传输的内容就是超文本。
总结:HTTP是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。
URL:
统一资源定位符;具有标准的语法;其中https端口会默认省略是443;
1 | protocol://[[user[:password]@]host[:port]][/path][?query][#fragment] |
URI:
统一资源标识符;用来标识抽象字符或物理资源的一个紧凑字符串。
http使用统一资源标识符URI 来传输数据和建立连接
同样差不多的是URN,统一资源名称,通过特定命名空间中的唯一名称或id来标识资源
Request:
包含四个部分:请求行;请求头部;空行;请求正文;每部分使用\r\n(CRLF //回车符,换行符)分隔开
请求行
1 | Method Request-URI HTTP-Version CRLF |
请求方法:
1 | GET 请求获取Request-URI所标识的资源 |
请求头部字段
1 | #查看所有的的 |
常见字段:
1)Host:
1 | Host: www.A.com |
2)Content-Length
1 | Content-Length: 1000 |
3)Connection
1 | Connection: keep-alive |
4)Content-Type
1 | 用于服务器回应时;告诉客户端,本次数据格式 |
5)Content-Encodeing
1 | 说明数据的压缩方法,表明服务器返回数据使用了什么压缩格式 |
6)Origin
1 | 指名当前请求来自哪个站点 |
7)Referer
1 | 先前网站的地址;当前请求网页紧跟其后 |
空行
表示请求头结束,请求正文开始
请求正文
get方法提交数据时,数据参数会作为url的一部分,放在文件路径后面发送给服务器,称为查询字符串
Responce:
包含四个部分:状态行;消息报头;空行;响应正文;
状态行
1 | HTTP-Version Status-Code Reason-Phrase CRLF |
包含五大状态码:
1xx:基本看不见。协议处理的中间状态
2xx:成功处理了客户端的请求
3xx:重定向 301;永久重定向 302;临时重定向 304;不具有跳转的含义;读取浏览器缓存
4xx:客户端发送的报文有误;403:禁止访问 404:访问不存在
5xx:服务器错误
响应头部字段
空行
表示响应头结束,响应正文开始
响应正文
服务器返回的资源内容
[!NOTE]
http和https区别:
https加入了ssl/tls安全协议,报文能够加密传输
http连接建立相对简单,
端口号不同80 、443
https需要向ca(证书权威机构)申请数字证书