1、常见的端口扫描技术
完全连接扫描 | 源主机和目的主机的端口,建立一次三次握手 |
半连接扫描 | 只完成前两次握手,不建立一次完整的连接 |
SYN扫描 | 向目标主机发送连接请求,当目标主机返回响应后,立即切断连接过程【返回:ACK开放、Reset关闭】 |
ID头信息扫描 | 借助第三方主机,ID头递增1则端口关闭,否则端口开放 |
隐蔽扫描 | 绕过安全设备,取得目标主机端口信息 |
SYN | ACK扫描 | 发送SYN | ACK 数据包,不返回信息则端口开放,返回RST则端口关闭 |
FIN扫描 | 发送FIN数据包,不返回信息则端口开放,返回RST则端口关闭 |
ACK扫描 | 发送FIN数据包,开放< TTL值64 < 关闭 关闭< win值0 < 开放 |
NULL扫描 | 标志位置空,不返回信息则端口开放,返回RST则端口关闭 |
XMAS扫描 | 标志位全部置为1,不返回信息则端口开放,返回RST则端口关闭 |
2、DDOS攻击的一般过程(采用C/S部署)
- 通过探测扫描大量主机,寻找可被攻击的目标
- 攻击有安全漏洞的主机,并设法获取控制权
- 在已攻击成功的主机中安装客户端攻击程序
- 利用已攻击成功的主机继续扫描和攻击,从而扩大可被利用的主机
- 当安装了攻击程序的客户端,达到一定数量后,攻击这个在主控端给客户端攻击程序发布命令,同时攻击特定主机
PS:DDOS常见的攻击手段包括:HTTP Flood攻击、SYN Flood攻击、DNS放大攻击
3、拒绝服务攻击的特点
- 难确认性:用户在得不到及时响应时,很难判断自己是否受到攻击
- 隐蔽性:正常请求服务,从而隐藏拒绝服务攻击的过程
- 资源有限性:计算机的资源是有限的,容易实现拒绝服务攻击
- 软件复杂性:因难以确保软件没有缺陷,所以攻击者利用软件缺陷进行拒绝服务攻击
4、拒绝服务攻击的方式
- 同步包风暴(SYN Flood):发送大量半连接状态的服务请求,使TCP/IP的三次握手无法完成,从而无法建立连接
- UDP洪水(UDP Flood):利用主机能自动回复的服务,在两台主机之间传送足够多的无用数据流
- Smurf攻击:将回复地址设置成目标网络的广播地址,如果再复杂点就把原地址改为第三方的目标网络
- 垃圾邮件:耗尽用户信箱的磁盘空间,使用户无法使用这个邮箱
- 消耗CPU和内存资源的的拒绝服务攻击:构造恶意的输入数据,导致目标系统CPU或资源耗尽
- 死亡之ping:ICMP数据包大于64kb,就会出现内存分配错误
- 泪滴攻击:暴露出IP数据包分解与重组的弱点,增加了偏移量
- 分布式拒绝服务攻击:植入后门程序,然后统一攻击同一目标
5、远程口令破解的流程
- 建立与目标网络服务的网络连接
- 选取一个用户列表文件及字典文件
- 在用户列表文件及字典文件中,选取一组用户名和口令,发送到目标网络服务端口
- 检测远程服务返回的信息,确定口令尝试是否成功
- 若不成功,再取另一组,重复实验,直到口令用户列表及字典选取完毕
密码破解的方式 特点
口令猜测 主要针对弱口令
穷举搜索 使用高性能计算机,逐个尝试可能的密码
撞库 用已经收集的用户名密码,去和目标系统的用户信息进行匹配
6、网络攻击模型
(1) 攻击树模型(又称故障树模型)
攻击树方法可以被 red team 用来进行渗透测试,同时也可以被blue team用来研究防御机制
攻击树的优点:能够采取专家头脑风暴法,并且将这些意见融合到攻击树中去;能够进行费效分析或者概率分析; 能够建模非常复杂的攻击场景。
ps:采用头脑风暴,进行费效分析,从而建模复杂的攻击场景
攻击树的缺点:由于树结构的内在限制,攻击树不能用来建模多重尝试攻击、时间依赖及访问控制等场景; 不能用来建模循环事件;对于现实中的大规模网络,攻击树方法处理起来会特别复杂
ps:依赖访问控制不能建模循环事件和多重攻击,对大规模网络处理复杂
(2)MITRE ATT & CK 模型 (又称攻击矩阵模型)
基于 MITTE ATT&CK 常见的应用场景主要有网络红蓝对抗模拟、网络安全渗透测试、网络防御差距评估、网络威胁情报收集等。
(3)网络杀伤链(Kill Chain) 模型
该模型将网络攻击活动分成:目标侦察、武器构造、载荷投送、漏洞利用、安装植入、指挥和控制、目标行动等7个阶段。
7、密码学名词解释1(明文、密钥、加密算法、密文)
- 密码学的目的:把明文进行处理,防止被攻击者获取明文
- 密码分析学的目的:把密码还原成明文
- 明文:指需要采用密码技术进行保护的消息(消息==明文)
- 密文:指采用密码技术对明文进行处理后的结果
- 加密:明文--》密文
- 解密:密文--》明文
- 算法:加密 or 解密过程中使用的一系列运算规则【算法也称为数学函数】。
- 算法简单分类:加密算法、解密算法(通过情况下,有两个相关函数:一个用作加密,一个用作解密)
- 密钥:是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数
- 密钥分类:对称密钥(加密和解密使用相同的密钥); 非对称密钥(解密和解密过程使用不同密钥) ps:【如果用数学公式表达加密过程 的话 ,则有 y = f(x,k) , 这里x 就是明文,k就是密钥,f就是加密算法,y就是密文】
8、密码学名词解释2(私钥密码体制、公钥密码体制、混合密码体制、密码算法、哈希函数)
- 私钥密码体制(对称密码体制):加密和解密使用的秘钥是一样的【因秘钥不能公开所以叫私钥密码体制】
- 公钥密码体制(非对称密码体制):加密和解密使用的秘钥是不一样的【因加密时的加密秘钥可以公开所以叫公钥密码体制】【由加密秘钥推出解密秘钥在计算上是不可行的】
- 混合密码体制:A利用公钥密码体制,把私钥密码体制的”私钥“传送给对方,A和B公用这个秘钥,然后按照私钥密码体制的方式,进行加密和解密
- 加密算法(Encrypt) 与 哈希函数(Hash) 2种方式都市用来保护数据【哈希函数只是密码算法的一部分】
- 加密算法=加密函数==》密文
- Hash函数=杂凑函数=Hash算法=杂凑算法=散列算法=哈希算法=数据摘要算法=》结果:哈希值=数字摘要=消息摘要=杂凑值
- 加密算法的目标: 将明文转换成具有不同长度的密文【可逆的:密文--》 明文】
- 哈希函数的目标:将明文转换成固定长度的哈希值【不可逆的:根据哈希值不能推出明文】
- 保护数据时选取的基本原则:如果被保护数据仅仅用作比较验证,在以后不需要还原成明文形式,则使用哈希函数;如果被保护数据以后需要被还原成明文,则需要使用加密函数
9、主要国产密码算法
- SM1 分组密码算法、SM2 椭圆曲线公钥密码算法
- SM3 密码杂凑算法、SM4分组算法、SM9标识密码算法
算法名称 | 算法特性描述 | 备注 |
SM1 | 对称加密,分组长度和密钥长度都为128比特 | |
SM2 | 非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法 | 国家标准推荐使用素数域256位 椭圆曲线【椭圆256】 |
SM3 | 杂凑算法,杂凑值长度为256比特【杂凑256】 | |
SM4 | 对称加密,分组长度和密钥长度都为128比特 | |
SM9 | 标识密码算法 |
10、密码体制分类(私钥密码体制、公钥密码体制、混合密码体制)
(1)私钥密码体制(对称密码体制):加密和解密使用相同的秘钥
私钥密码体制的缺陷:
- 秘钥分配问题:A让专门的人把秘钥护送给接收者B
- 秘钥管理问题:由于加密和解密使用的是同一个秘钥,当接收者不一样的时候,A就需要保存多个秘钥
- 无法认证源:A发送了加密数据给B和C,那么B和C具备相同的加密、解密能力。这时候要是B收到一个新的加密数据包,它无法区别是A发送还是C发送的,因为无论谁发送他都可以解密
私钥密码体制的优点:处理速度快、常用于数据加密
私钥密码典型算法包括:DES、IDEA、AES等,EDS已经被AES取代
非对称加密算法包括:椭圆曲线密码、ELGamal、RSA
(2)公钥密码体制(非对称密码体制):加密和解密使用不同的秘钥
公钥密码体制的优点:(站在接收方的角度来理解)
- 秘钥分发方便:能以公开的方式分配公钥(加密秘钥)
- 秘钥保管量少:只需要保管好自己的私钥就行
- 支持数字签名
非对称加密算法包括:椭圆曲线密码、ELGamal、RSA
(3)混合密码体制:私钥密码体制+公钥密码体制(利用公钥密码体制解决私钥密码体制存在的问题)
11、密码分析攻击的5种类型
如果用数学公式表达加密过程 的话 ,则有 y = f(x,k) , 这里x 就是明文,k就是密钥,f就是加密算法,y就是密文】
唯密文攻击 | 只知道密文 |
已知明文攻击 | 只知道部分 明文x 和对应密文y(这个片段是固定的) |
选择明文攻击 | 知道自己选定的 明文x和对应的密文y(可以自己选择任意明文) |
选择密文攻击 | 知道自己选定的 密文y和对应的明文x |
密文验证攻击 | 密码分析者对于任何选定的密文,能够得到该密文”是否合法“的判断 |
12、密码管理
密码管理包括:秘钥管理、密码管理政策、密码测评
生命周期各阶段 | 内容 |
密钥生成 | 按照一定标准产生 |
密钥存储 | 不以明文方式存储保管,应采取严格的安全防护措施 |
密钥分发 | 通过安全通道,把密钥安全地传递给相关接收者 |
密钥使用 | 根据不同的用途而选择正确的使用方式 |
密钥更新 | 当密钥过期、密钥泄露等情况发生时需要更新密钥 |
密钥撤销 | 当密钥过期、密码安全应急事件时,需要进行撤销密钥 |
密钥备份 | 采用安全可靠的密钥备份机制进行备份。备份的密钥与密钥存储要求一致 |
密钥恢复 | 在密钥丢失或损毁的情形下,通过密钥备份机制,恢复密码系统的正常运行 |
密钥销毁 | 使用完进行销毁,一般来说销毁过程不可逆 |
密钥审计 | 对密钥生命周期的相关活动进行记录,以确保密钥安全合规,可查可追溯 |
13、常见密码算法(加密算法可逆,哈希算法不可逆)
名称 | 分组长度 | 秘钥长度 | 备注 |
---|---|---|---|
DES | 分组长度 64bit | 秘钥长度 56bit | |
IDEA | 分组长度 64bit | 秘钥长度 128bit | 同一算法既可以加密也用于解密 |
AES | 分组长度 128bit | 支持秘钥长度为128、 192、256 | 免费的 |
RSA |
|
14、Hash函数
HASH函数的特点:
- 能将任意长度的信息转换成固定长度的hash值
- 相同的明文输入得到相同的hash值
- 不同的明文输入得到不同的hash值
- hash值越大的Hash函数,安全性越高
- Hash计算是不可逆的(Hash是有损计算,如MD5无论多长的输入,输出都是128bit)
Hash函数名 | 分组大小 | Hash值大小(消息摘要) |
---|---|---|
MD5 | 512bit | 128bit |
SHA | 512bit | 160bit |
SM3 | 512bit | 256bit |
15、数字证书的内容
数字证书的基本内容 (目前数字证书的标准是x.509) | |
---|---|
序号 | 描述 |
1 | 版本号 |
2 | 序列号 |
3 | 有效期 |
4 | 主体 |
5 | 主体唯一标识 |
6 | 主体公钥信息 |
7 | 颁发者 |
8 | 颁发者唯一标识 |
9 | 签名算法 |
10 | 扩展项 |
16、数字证书的应用场景及目标
CA:认证授权中心
- 问题1:A给B发送消息,用什么来加密
用B的公钥来加密,只有这样B在接收消息以后才能用自己的私钥解密还原出明文
- 问题2:那么如何获取B的公钥
公钥是公开的,可以直接向B要,或者从B的官网下载
- 问题3:如果B的公钥被入侵者C伪造了,这时A用伪造后的公钥加密数据,发送消息后,C通过劫持消息,然后用自己的私钥解密,即可还原出明文,那么如何防止B的公钥被伪造,如何确认B的公钥是可信的?
引入数字证书,B向CA提交自己的各种信息,给CA审核,CA审核没有问题,就会给B发一个证,这个证书类似营业执照,重点包含了B的公钥、CA的盖章(CA用自己的私钥签名)【就像开个饭点,发了工商营业执照就说明我是合法的,因为在申请营业执照时我提交了很多资料用于审核,而吃饭的人如何验证这个执照的真假,只要看证是谁发的,有没有该发证机构的章】
- 问题4:A如何使用B的数字证书?
A不是拿B的公钥,而是拿B的数字证书,拿到以后先用CA的公钥来验证证书,如果解密成功,则说明这个数字证书没有问题,然后再提取证书里面的的B的公钥,用来对明文加密【CA机构是国家备案的,不用担心CA的公钥、私钥被伪造,所有PC、浏览器等都集成了目前合法的CA清单,如果遇到不是合法的CA会有提醒】
数字证书(公钥证书):有证书认证机构(CA)签名的。包含版本号、序列号、有效期、颁发者、颁发者唯一标识、签名算法、主体、主体唯一标识、主体公钥信息、扩展项