网络安全基础
网络协议基础
OSI与TCP/IP分层模型
分层的好处:
- 开放的标准化接口
- 多厂商的兼容性
- 易于理解、学习和更新协议标准
- 实现模块化工程、降低了开发实现的复杂度
- 便于故障排除
数据包:
-
Frame:物理层的数据帧概况
Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0 #5号帧,线路268字节,实际捕获268字节 Interface id:0 #接口id Encapsulation type: Ethernet(1) #封装类型 Arrival Time: Jun 11, 2015 05:12:18.469086000 中国标准时间 #捕获日期和时间 [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1402449138.469086000 seconds [Time delta from previous captured frame: 0.025257000 seconds] #此包与前一包的时间间隔 [Time since reference or first frame: 0.537138000 seconds] #此包与第一帧的时间间隔 Frame Number: 5 #帧序号 Frame Length: 268 bytes (2144 bits) #帧长度 Capture Length: 268 bytes (2144 bits) #捕获长度 [Frame is marked: False] #此帧是否做了标记:否 [Frame is ignored: False] #此帧是否被忽略:否 [Protocols in frame: eth:ip:tcp:http] #帧内封装的协议层次结构 [Number of per-protocol-data: 2] [Hypertext Transfer Protocol, key 0] [Transmission Control Protocol, key 0] [Coloring Rule Name: HTTP] #着色标记的协议名称 [Coloring Rule String: http || tcp.port == 80]#着色规则显示的字符串
-
EthernetII:数据链路层以太网帧头部信息
-
IPv4:互联网层IP包头部信息
-
TCP:传输层的数据段头部信息
-
HTTP:应用层的信息
#http请求包: POST /test.php HTTP/1.1 //请求行 HOST:www.test.com //请求头 User-Agent:Mozilla/5.0 (windows NT 6.1;rv:15.0)Gecko/20100101 Firefox/15.0 //空白行,代表请求头结束 Username=admin&password=admin//请求正文 #http响应包: HTTP/1.1 200 OK //响应行 Date: Sun, 15 Nov 2015 11:02:04 GMT//响应头 Server: bfe/1.0.8.9 Content-Length: 2605 Content-Type: application/javascript Cache-Control: max-age=315360000 Expires: Fri, 13 Jun 2025 09:54:00 GMT Content-Encoding: gzip Set-Cookie: H_PS_PSSID=2022_1438_1944_1788; path=/; domain=test.com Connection: keep-alive //空白行,代表响应头结束 <html> <head><title> Index.html </title></head>//响应正文或者叫消息主题
常见应用服务介绍
Web服务
Web 是world wide web(万维网)的简称, Web 服务器也称为 HTTP 服务器,它是响应来自浏览器的HTTP请求,并且发送出网页文件的软件。
常见的web服务器:IIS、Apache、Nginx、tomcat、weblogic
web访问流程:
- 解析域名
- 查找IP
- 发送http请求
- 服务器处理请求
- 服务器返回http响应
服务器返回的http常见响应类型:
-
1XX Informational(信息性状态码)
-
2XX Success(成功状态码)
200 OK
-
3XX Redirection(重定向状态码)
302临时重定向
-
4XX Client Error(客户端错误状态码)
404 无此资源
-
5XX Server Error(服务器错误状态码)
500服务器发生错误
SMB协议
SMB(ServerMessage Block)通信协议是基于NetBIOS设定的一套文件共享协议。
网上邻居是使用NetBIOS协议传输数据,通过网上领居,本地计算机可以访问网络中其它计算机共享的资源,本地计算机也可以把自己的资源共享给其它计算机。
NetBIOS 使用下列端口:UDP/137(NetBIOS 名称服务)、UDP/138(NetBIOS 数据报服务)、TCP/139(NetBIOS 会话服务)。
SMB 使用下列端口:TCP/139、TCP/445。
Smb会话过程:
-
建立tcp三次连接;
-
客户端向服务端发送netbios会话请求;
-
服务端向客户端发送netbios会话响应;
-
客户端向服务端发送协商请求;
-
服务端向客户端发送协商响应;
-
客户端向服务端发送一个会话建立请求包;
-
服务端向客户端发送一个会话建立响应包;
-
客户端计算出响应值发送给服务端;
-
服务端发送通过验证的数据包;
-
会话建立结束
FTP服务
File TransferProtocol(文件传输协议)用于Internet上的控制文件的双向传输。
在FTP的使用当中,两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
FTP双TCP连接方式:
注:默认情况下控制端口一般为21,而数据端口不一定是20,这和 FTP的传输模式有关,如果是主动模式(PORT方式),应该为20,如果为被动模式(PASV方式),由服务器端和客户端协商而定
FTP会话流程:
-
被动传输模式
1.TCP三次握手建立控制通道的TCP连接;
2.服务器对PASV命令回应,其中包含用于数据传输的临时端口号
3.客户端随机选择端口与服务器端选定的端口建立数据通道的TCP连接
4.双方进行数据传输。传输完毕后发送数据的一方主动关闭数据连接
-
主动传输模式
1.TCP三次握手建立控制通道的TCP连接;
2.客户端用PORT命令通告用于数据传输的临时端口号
3.TCP三次握手建立数据通道的TCP连接
4.双方进行数据传输。传输完毕后发送数据的一方主动关闭数据连接
DNS服务
Domain Name System(域名系统)能够提供主机名和IP地址之间的映射,DNS系统的结构是一个具有树状层次结构的,联机分布式数据库系统。
因特网域名结构树
DNS查询类型
- 递归查询
- 迭代查询
SMTP协议
Simple Mail Transfer Protocol(简易邮件传输通讯协议) 是互联网上的一种通讯协议,主要功能是用在传送电子邮件,SMTP是一个请求/响应协议,它监听25号端口,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连接。
SMTP协议的工作机制:
- 发送SMTP
- 接收SMTP
MX记录
- 邮件路由记录,是DNS中的一种资源记录类型,用来指定负责处理发往收件人域名的邮件服务器
- 如果解析出域名有好几个,则可以根据MX记录中的优先级记录高的来跳转
攻击案例
ARP欺骗
对路由器ARP表的欺骗(伪装成内网其他用户)——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。
对内网PC的网关欺骗(伪装成网关)——它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。
ARP攻击的现象:
- 当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者不正常上网。
- 局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。
找出ARP病毒源:
- 使用如wireshark等抓包分析
- 使用tracert进行路由跟踪查看下一跳
防御措施:
-
点击“开始”按钮->选择“运行”->输入“arp–d”->点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。
-
对于中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。
-
对于被害者:绑定网关mac地址(编写一个批处理文件A.bat内容如下: @echo off arp –d arp -s 网关ip 网关mac 执行)
-
使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。
DNS劫持
DNS服务器作为域名和IP地址相互映射的分布式数据库。该通信过程中基于UDP协议的一种应用层协议。DNS劫持的前提是攻击者控制了网关(路由器,交换机,运营商)。一般情况下,在同一个局域网下,使用ARP欺骗就可以达到该效果。
DNS常见记录类型
受害者访问网站被劫持的攻击流程图
DNS劫持的目的:
- 钓鱼攻击盗取密码
- 钓鱼攻击劫持支付
- 植入广告
DNS实现钓鱼演示(事先接入局域网且制作好钓鱼网站,可由kali的setoolkit实现):
- 在kali的ettercap的配置文件中可以设置劫持的DNS
- 打开ettercap,选择sniff->unified sniff,然后打开hosts->host list。选中全部的主机,点击add to target1
- 选择Mitm->ARP Posining
- 选择plugin->manage plugin,双击dns spoof来激活插件
- 目标访问被劫持的域名后实际访问的是我们的钓鱼网站
DNS劫持防范:
-
使用SSL(HTTPS)进行访问Web资源
-
选择安全性高的DNS服务器节点
-
加速运营商DNS缓存的记录获取刷新的时间及数据
DDOS攻击
Distributed Denial of service 即分布式拒绝服务攻击,很多DOS攻击源一起攻击某台服务器或某个网络,就组成了DDOS攻击。
DDOS攻击表现形式
- 攻击网络带宽资源
- 直接攻击:ICMP/UDP Flood、UDP Flood
- 发射和放大攻击:ACK反射攻击、DNS放大攻击
- 攻击链路:Coremelt攻击
- 攻击系统资源
- SYN Flood
- PSH+ACK Flood
- 攻击SSL连接-THC SSL DOS攻击
- 攻击应用资源
- 攻击DNS服务:DNS QUERY Flood、DNS NXDOMAIN Flood
- 攻击web服务:HTTP Flood、Slowloris攻击、HTTP POST Flood
TCP三次握手:
- **第一次握手:**建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
- **第二次握手:**服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
在上述过程中,还有一些重要的概念:
**未连接队列:**在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。
CC攻击:
CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
CC攻击的种类:
- **直接攻击:**主要针对有重要缺陷的WEB应用程序。
- **僵尸网络攻击:**类似DDOS攻击,从WEB应用程序层面上已经无法防御。
- 代理攻击:CC攻击者一般会操作一批代理服务器,比方说100个代理,然后每个代理同时发出10个请求,这样WEB服务器同时收到1000个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时WEB服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,这时就出现页面打开极其缓慢或者白屏。
CC攻击现象判断
-
用户端:
网站访问速度很慢
被搜索引擎K站,排名消失。
被云服务器提供商清退。
严重影响用户体验。
-
服务器端:
命令行法(netstat -ano)
批处理法(同命令法)
查看系统日志
CC攻击防御:
-
取消域名绑定
-
域名欺骗解析
-
更改web端口
-
加入防火墙黑名单
-
优化代码
-
限制手段
-
完善日志
的数据将本身的带宽堵死,而不能发动再次请求,这时WEB服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,这时就出现页面打开极其缓慢或者白屏。
CC攻击现象判断
-
用户端:
网站访问速度很慢
被搜索引擎K站,排名消失。
被云服务器提供商清退。
严重影响用户体验。
-
服务器端:
命令行法(netstat -ano)
批处理法(同命令法)
查看系统日志
CC攻击防御:
-
取消域名绑定
-
域名欺骗解析
-
更改web端口
-
加入防火墙黑名单
-
优化代码
-
限制手段
-
完善日志