第零章 网络安全概述
网络安全是什么
- 网络安全基本要素(CIA)
- 机密性(Confidentiality):确保一些重要信息/敏感数据不会被未授权访问(不会被窃取);
- 完整性(Integrity):确保数据在传输过程中不会被篡改;
- 可用性(Availability):确保已授权人员可以正常获取数据;
网络安全关心什么
- 网络通信安全:网络、路由器、交换机等网络设备;
- 计算环境安全:中间件、操作系统;
- 应用数据安全:应用程序、数据存取;
核心技术体系
- 安全运营(防止黑客攻击&&应急响应)
- 网络安全架构的设计(被攻击前);
- 入侵检测与安全预警(被攻击时);
- 日志流量的分析研判(被攻击时);
- 数字取证与攻击溯源(被攻击时);
- 安全加固和应急响应(被攻击后);
- 渗透测试
- Web安全渗透测试;
- 白盒测试、代码审计;
- 网络协议攻击与入侵;
- 漏洞扫描、漏洞挖掘;
- 漏洞环境搭建;
- 系统入侵
- 木马制作与木马植入;
- 漏洞利用与系统入侵;
- 系统提权和内网渗透;
- 系统入侵和渗透工具;
- 漏洞环境复现和自测;
- 安全开发
- PHP漏洞环境搭建;
- python攻击脚本编写;
- 安全基线检测脚本开发;
- IDS、WAF系统制作;
- Shell脚本批处理应用;
- Java对网络安全的重要性:绝大部分应用程序都是用Java开发,因此Java在网络安全中的地位是非常重要的,但是Java的学习成本非常高,不建议先学Java(很多漏洞都是大同小异的)。
就业方向薪资待遇
各阶段学习目标
-
第一阶段:网络通信与协议安全
-
第二阶段:系统应用与安全开发
-
第三阶段:渗透测试与系统入侵
-
第四阶段:安全防御和运营保障
第一章 Windows基础
Vmware
虚拟机安装
- 镜像下载:https://next.itellyou.cn/
- 虚拟机安装:https://blog.csdn.net/weixin_74195551/article/details/127288338
网络模式
-
NAT:虚拟机和物理机的真实网卡形成网络环境。
-
网络地址转换;
-
虚拟操作系统将数据包发送给VMware中的虚拟路由器,虚拟路由器将数据包发送给真是网卡,进而发送给因特网;
-
NAT网络模式下,虚拟机可以访问物联网(虚拟路由器发送给真实网卡),也可以与物理机通信(虚拟路由器发送给虚拟网卡);
-
实验(虚拟机和物理机互相通信、虚拟机与外网通信):关闭虚拟机和物理机的防火墙&&将所有虚拟机都设置为NAT模式。
-
-
仅主机模式:虚拟机和物理机的虚拟网卡形成网络环境。
-
虚拟机之间可以互相通信、也可以和物理机相互通信;
-
虚拟机无法访问外网;
-
实验
-
-
桥接模式:虚拟机直接使用物理机上的任何一张网卡(真实网卡、虚拟网卡),默认使用真实网卡。
Windows基本命令
文件与目录操作
-
命令结构
命令 [参数] 内容
-
路径
- 绝对路径:从盘符到目标所经过的所有文件夹
- 相对路径:以当前文件夹为基准,表示上一级或下一级路径
-
cd:进入某个文件夹
-
演示
#进入C盘中Windows目录中的System目录 cd C://Windows//System #进入上一级目录 cd ../ #进入当前目录下的System32目录 cd ./
-
-
dir:查看文件夹中的所有内容
-
演示
#查看当前文件夹中的内容 dir #查看指定文件夹中的内容 dir D:\Download #查看当前文件夹中的所有内容(包括隐藏的) dir /a
-
-
md:创建文件夹
-
rd:删除文件夹
-
xcopy:复制文件/文件夹到指定路径
-
演示
#将D盘中的web目录复制到C盘 xcopy D:\web C:\
-
-
copy:复制文件到指定路径
-
演示
#将当前目录中的1.txt移动到D盘中的test文件夹中 copy ./1.txt D:\test\ #将b.txt中的内容追加到a.txt中 copy a.txt+b.txt c.txt #将muma.txt中的内容追加到tupian.jpg中(/b表示二进制文件) copy /b tupian.jpg+/b muma.txt image.jpg
-
-
move:将文件移动到指定文件夹中
-
rename:重命名文件
-
del:删除文件
文本处理
-
type:查看文本文件内容
-
findstr:查找字符串
-
演示
#将ipconfig的内容写入到当前目录中的ip.txt ipconfig > ./ip.txt #查找IPv4所在的行 findstr "IPv4" ./ip.txt
-
-
管道:将前面命令的结果作为后面命令的对象
-
演示
ipconfig | findstr "IPv4"\\ #查看本地开放的端口 netstat -anop | findstr /i "listening"
-
-
重定向:将命令结果写入到文件中
-
演示
#将本地端口信息写入到result.txt中 netstat -anop > ./result.txt #将ipconfig /all的结果追加到result.txt中 ipconfig /all >> ./result.txt
-
网络相关
-
ipconfig:查看网络适配器;
-
netsh:配置网络适配器,通过命令配置网络连接;
-
ping:检测是否能与目标通信;发送的是ICMP报文(ping不同,不代表不能访问网站);
-
nslookup:请求DNS服务器解析域名;
路由操作
-
tracert:路由跟踪,监测与目标通信,经过了哪些路由器;
-
route:查看路由器信息;
网络连接排查
-
netstat:查看使用tcp、udp、icmp协议通信的进程;
-
telnet:远程管理操作系统,用于连接telnet服务器,常用来探测目标开放的端口;
-
arp:查看arp缓存表(arp缓存表记录IP地址对应的mac地址,防止被arp欺骗)
进程和服务控制
- taskkill:结束指定进程;
- services.msc:图形化界面管理本地所有服务
- net start:启动服务
用户和组管理
用户
组
-
一台计算机拥有多个用户,不同用户权限不同;同时,为了区分账户,操作系统为每个账户设置了一串编码——sid(类似于身份证号);
-
创建影子账户
https://blog.csdn.net/baidu_38844729/article/details/115708745
-
内置账户
- Administrator:windows默认管理员;
- Guest:来宾账户,一旦开启任何人都可以登录,但是权限极低;
- System:系统账户,代表当前操作系统(比Administrator的权限都高,也是提权的最终目标);
- Local Service:本地服务:
- Network Service:网络服务
-
用户组:方便批量管理用户的权限
-
创建组
-
将用户添加到某个组
-
-
常用内置组
- administrators:管理员组;
- remote desktop users:远程登陆组;
- Backup Operators:备份操作系统组;
- Users:普通用户组,新建用户默认属于该组;
- Authenticated Users:已认证的用户(登录成功过的用户),在修改权限时要特别注意这个组的权限,避免权限限制不到位;
NTFS权限
- 常用文件系统(磁盘存储文件的方式/格式)
- Windows:FAT、FAT32、NTFS等;
- Linux:Ext、XFS、JFS等;
- macOS:HFS、APFS等;
- windows中最常用的是NTFS文件系统,其特点如下:
- 支持对文件/文件夹设置权限(ACL:访问控制列表);
- 支持压缩;
- 支持磁盘配额;
文件共享
文件共享服务采用SMB协议进行网络文件共享,对应TCP/445,windows默认开启该服务;
Windows注册表
- 注册表:windows操作系统配置信息的集合,注册表有多个配置文件组成;
- 快捷方式:regedit;
- 注册表由五棵子树构成(其他三棵子树都是HKEY_LOCAL_MACHINE和HKEY_USERS中抽取出来的),每棵子树都由若干项(类似于文件夹)组成,每个项都由若干具体的值(类似于文件)构成。
- HKEY_CLASSES_ROOT:
- HKEY_CURRENT_USER:
- HKEY_LOCAL_MACHINE:计算机硬件和操作系统的配置信息;
- HKEY_USERS:
- HKEY_CURRENT_CONFIG:当前系统的部分配置信息;
开机启动项
- 路径
- 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run;
- 计算机\HKE_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run;
软件信息
- 路径
- 计算机\HKEY_LOCAL_MACHINE\SOFTWARE;
- 计算机\HKEY_CURRENT_USER\Software;
用户信息
- 路径:计算机\HKEY_LOCAL_MACHINE\SAM;
Windows防火墙
-
概述:防火墙是用来控制数据流量进出的软件/设备,是网络传输中的拦路虎;
-
产品分类
- 软件:windows安全中心、火绒、360、Linux Firewalld等;
- 硬件:启明星辰(天清汉马USG防火墙、下一代防火墙等)、奇安信等;
-
入站规则:控制数据流量的进入(默认为拒绝状态);出战规则:控制数据流量的出去;
-
防火墙原理:基于数据包的五元组(源IP、源端口、协议、目标IP、目标端口)对数据包进行过滤,识别的是IP、端口和协议;
-
访问方式/流量分类
- ping:使用ICMP协议(网络层协议,没有端口);
- web访问:使用http或https协议,占用TCP/80或TCP/443端口;
- 文件共享:使用SMB协议,占用TCP/445端口;
- 文件服务:使用FTP协议,占用TCP/21端口;
- telnet远程命令:使用telnet协议,占用TCP/23端口;
- 远程桌面:使用rdp协议,占用TCP/3389端口;
- 域名解析:使用DNS协议,占用UDP/53端口;
-
实验:准备虚拟机Win7(防火墙开启)、虚拟机Win10(防火墙开启)
-
win10可以ping通win7;
-
win7共享一个文件夹,但是win10无法访问;
-
win10可以telnet win7;
-
win10无法远程桌面到win7;
第二章 计算机网络
网络拓扑结构
- 星型拓扑
- 有中心节点;
- 结构简单,拓展容易,排查轻松;
- 容易产生单点故障,中心节点一旦发生故障,其下的整个字网络将瘫痪(对中心节点增加冗余设备);
- 网型拓扑
- 树型拓扑
网络参考模型
- OSI七层模型
- 应用层(第七层):用户操作使用应用软件的层次,产生原始数据;
- 表示层(第六层):对原始数据进行格式转换(例如转换为ASCII、二进制、BCD等)、加密、压缩等,便于在网络中传输;
- 会话层(第五层):建立、管理和终止会话;
- 传输层(第四层):定义传输数据时使用的协议、端口、进程等;
- 网络层(第三层):寻找目标IP地址(地名),选择网络路径实现不同网络之间的通信(根据路由选择路径);
- 数据链路层(第二层):根据MAC地址(经纬度)表寻址(IP地址与MAC地址对应);
- 物理层(第一层):将数据转换为信号(光信号、电信号、无线信号等),数据传输的物理通道;
- TCP/IP(传输控制协议/网际协议)五层协议簇/栈
- 应用层(第五层):用户操作使用应用软件的层次,产生原始数据;对原始数据进行格式转换(例如转换为ASCII、二进制、BCD等)、加密、压缩等,便于在网络中传输;建立、管理和终止会话;
- 传输层(第四层):定义传输数据时使用的协议、端口、进程等;
- 网络层(第三层):寻找目标IP地址(地名),选择网络路径实现不同网络之间的通信(根据路由选择路径);
- 数据链路层(第二层):根据MAC地址(经纬度)表寻址(IP地址与MAC地址对应);
- 物理层(第一层):将数据转换为信号(光信号、电信号、无线信号等),数据传输的物理通道;
- 为什么使用TCP/IP,不适用OSI?
- OSI没有考虑协议问题,不适用于现在庞大复杂的网络环境,而TCP/IP中容纳了许许多多的协议,可以在当今的网络中进行数据传输。
TCP/IP五层协议栈
各层协议
-
应用层:应用层的所有协议都基于传输层协议的某个端口(端口范围:tcp(065535)、udp(065535),0~1023为公认端口);
-
常用端口及协议大全:https://www.lddgo.net/network/port
-
ftp:tcp/21
-
ssh:tcp/22
-
telnet:tcp/23
-
dns:tcp/53、udp/51
-
http:tcp/80
-
https:tcp/443
-
mysql:tcp/3306
-
rdp:tcp/3389
-
-
传输层:TCP传输控制协议(数据更加安全可靠,不会丢失)、UDP用户数据协议(传输速率更加高效);
-
网络层:ARP(地址解析协议)、RARP(逆地址解析协议)、ICMP(网际控制报文协议)、IGMP(网际组管理协议);
-
数据链路层:Ethernet协议;
-
物理层
封装与解封装
- 封装:对原始数据进行格式转换,并逐层加上特殊内容;
- 解封装:将格式化后的结果转为原始数据,并逐层丢掉特殊内容;
- IP地址与MAC地址的关系:IP地址类似于地址名(例如,北京市朝阳区AA小区BB栋CC层DD号),MAC地址类似于经纬度(北纬33°28′,东经44°32′);网络通信中要知道自己要去哪里(IP地址),并且怎么去(根据MAC地址);
IP地址
-
IPv4有32为二进制数组成,为了方便表示,每八位划分为一组,并用点分十进制表示;
#IP地址:11000000.10101000.01111000.00100000 #表示为:192.168.120.32
-
子网掩码:确定IP地址中的网络位和主机位,1对应的位置位网络位,0对应的位置位主机位;
#192.168.120.32/16:192.168.120.32的前16位表示网段 IP地址:192.168.120.32 11000000.10101000.01111000.00100000 子网掩码:255.255.0.0 11111111.11111111.00000000.00000000 网段:192.168.0.0 #192.168.1.1/10:192.168.1.1的前20位表示网段 IP地址:192.168.1.1 11000000.10101000.00000001.00000001 子网掩码:255.255.240.0 11111111.11111111.11110000.00000000 网段:192.168.11110000.00000000
IP地址分类
- IP地址分类(普通人类使用ABC三类地址)
- A类:1.0.0.0 ~ 127.255.255.255,主要分配给主机多局域网少的大型网络;
- B类:128.0.0.0 ~ 191.255.255.255, 一般用于大型公司和政府机构;
- C类:192.0.0.0 ~ 223.255.255.255 ,一般用于小型公司、校园网、研究机构等;
- D类:224.0.0.0 ~ 239.255.255.255,特殊用途,又称做广播地址;
- E类:240.0.0.0 ~ 255.255.255.255,暂时保留
- 常见的私网地址
- 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;
- 127.0.0.0 ~ 127.255.255.255 为系统回环地址;
子网划分
网络分析工具
WireShark
科来
网络协议
Ethernet协议
-
Ethernet协议属于二层协议,用于在数据中封装MAC地址;
-
二层中的数据叫做帧或者报文,二层封装的帧有两种结构;EthernetII帧结构和802.3帧结构。
-
EthernetII 帧结构
-
802.3帧结构
-
ARP协议
-
ARP(Address Resolution Protocol)地址解析协议:找出IP地址对应的MAC地址;同一网络下通信,需要使用ARP协议获取目标的MAC地址,不同网络下通信,需要使用ARP协议获取网关的MAC地址;
-
ARP协议属于网络层,工作在数据链路层,封装在数据链路层的上层(2.5层,不是网络层);
-
ARP协议原理
- 主机发送ARP广播报文;
- 目标主机收到请求后,进行单播相应;
-
ARP利用(局域网攻击,ARP报文无法跨越路由器;属于中间人攻击,):我是你要找的目标(将自己伪装成目标IP,将给出自己网关的真实MAC地址),请将消息发送给我。
-
ARP攻击:攻击机向靶机发送的ARP应答报文中使用的是虚假的MAC地址,导致靶机无法通信;
-
ARP欺骗:攻击机向靶机发送的ARP应答报文中使用的是攻击者的MAC地址,导致靶机将信息发送的信息被窃取;
-
无感利用:攻击机开启IP转发,靶机将流量发送给攻击机,攻击机再将流量转发出去,从此充当中间人窃听通信,并且靶机不易发现;
-
ARP攻击研判与防御(攻击者一般伪装成为网关)
-
研判:路由跟踪(与外网通信,第一条路有一定是网关,如果被攻击了,就不是或者根本无法跟踪)、查看ARP缓存表中记录的MAC地址是否正确;
-
防御:下载安全软件并开启局域网防御(原理:以极快的速度发送ARP广播报文,赶在被欺骗之前获取到正确的MAC地址)、以极快的速度清理ARP缓存表(下一次通信之前一定会再次获取MAC地址,赶在被欺骗之前获取到正确的MAC地址);
-
ICMP协议
-
ICMP(Internet Contorl Message Protocol)网络控制报文协议:在主机和路由器之间传递的控制报文(例如,网络是否可达),是一种用于直接和路由器交互的报文,封装在网络层的上层,但属于三层协议;
-
ICMP报文结构
-
type:ICMP类型
类型0:ICMP应答报文 类型3:目标不可达 类型5:ICMP重定向 类型8:ICMP请求报文 类型11:超时报文
-
code
-
checksum
-
Identifier(BE)
-
Identifier(LE)
-
Sequence Number(BE)
-
Sequence Number(LE)
-
Data:报文携带的数据,此处存在安全风险
-
-
ICMP重定向:主机向访问外网,向网关发起请求时,该路由器没有对应的外网地址,无法进行路由,但是它知道有另一个路由器可以到达,此时该网关回想主机发送一个ICMP重定向报文,要求主机将网关改为另一个路由器的地址;
-
ICMP重定向攻击:攻击机告诉正在通信的靶机,我是你当前访问的网关(冒充真实的网关IP,但MAC地址为填充地址),并且不能使用我,请将网关改为我指定的路由器;
IP协议
- 属于三层协议,上三层的数据的传输都需要使用IP协议,目前(2024年)有两个版本(IPv4、IPv6),在网络层封装IP头部(源IP和目标IP);
- IP报文头部结构
- 版本;IPv4还是IPv6;
- 头部长度:
- 区分服务字段:用于控制流量传输,网络层会给每个数据包贴上标签,用于表示那些是重要流量,哪些是普通流量,传输时优先保证重要数据的传输;
- 总长度;
- 标识:数据在网络层会被分片(正常应用层的数据会在传输层进行分段,控制大小,但是ICMP层如果产生了一个较大的单个报文,就会在网络层进行分片),给每个片段进行编号,防止数据错乱;
- 标志:数据在网络层会被分片,给每个片段进行编号,防止数据错乱;
- 段偏移量:数据在网络层会被分片,给每个片段进行编号,防止数据错乱;
- 生存周期:经过的路由器数量,windows产生的报文生存周期为128,linux产生的报文默认生存周期为64,可以用于判断目标操作系统;
- 协议:用于标识上层报文的协议(icmp——1,tcp——6,udp——17);
- 首部校验;
- 源IP;
- 目标IP;
- 可选项:携带的数据;