网络攻防基础期末复习
跳过叠甲
引用:中国科学院大学《网络攻防基础》课程课件
主讲教师:张玉清、吴槟
根据复习课的顺序顺的,一级标题是章节/ppt名
这下真是大纲了
第一章 网络安全概述
概念
网络安全的基本需求
可靠性:网络信息系统能够在规定条件下和规定的时间内完成规定的功能的特性。
可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒 绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;(是核心)
保密性:防止信息泄露给非授权个体或实体,只允许授权用户访问的特性。
完整性:数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢 失的特性。
不可抵赖性:又称不可否认性,即在网络信息系统的信息交互过程中所有参与者都不可能否认或抵赖曾 经完成的操作的特性。
可控性:对信息的传播及内容具有控制能力。
可审查性:出现安全问题时提供依据与手段。
真实性:确保网络信息系统的访问者与其声称的身份是一致的;确保网络应用程序的身份和功能与其声 称的身份和功能是一致的;确保网络信息操作的数据是真实有效的数据。
安全漏洞简介
漏洞也叫脆弱性(Vulnerability),是计算机系统在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷和不足。
是攻击的基础
网络安全的主要威胁因素
信息系统脆弱性
操作系统
计算机系统
网络通信协议
基本威胁
安全的基本目标是实现信息的机密性、完整性、可用性。对信息系统这3个基本目标的威胁即是基本威胁:
信息泄漏
完整性破坏
拒绝服务
未授权访问
网络安全主要威胁来源

黑客分类

网络攻击过程
按照攻击方式:主动攻击、被动攻击
按照攻击位置:远程攻击、本地攻击、伪远程攻击
远程攻击:
网络攻击准备阶段
网络攻击的实施阶段
网络攻击的善后阶段
第二章 扫描与防御技术
2.1 扫描技术基础
2.2 常见的扫描技术
2.3 扫描工具赏析
2.4 扫描的防御
网络扫描器
网络扫描器可以通过执行一些脚本文件来模拟对网络系统进行攻击的行为并记录系统的反应,从而搜索目标网络内的服务器、路由器、交换机和防火墙等设备的类型与版本,以及在这些远程设备上运行的脆弱服务,并报告可能存在的脆弱性。
网络安全扫描
第一阶段:发现目标主机或网络(PING扫描)
第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息(OS探测、穿透防火墙探测、端口扫描)
第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞(漏洞扫描)
常见的扫描技术
主机扫描
端口扫描
全扫描:会产生大量的审计数据,容易被对方发现,但其可靠性高。尝试(使用三次握手)与目标主 机的某个端口建立正规的连接。


半扫描:隐蔽性和可靠性介于全扫描和秘密扫描之间。
- SYN扫描:发送SYN数据段。应答是RST,说明端口是关闭的;应答中包含SYN和ACK,说明目标端口处于监听状态。
秘密扫描:能有效的避免对方入侵检测系统和防火墙的检测,但使用的数 据包在通过网络时容易被丢弃从而产生错误的探测信息。
- FIN扫描:不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来。返回一个RST数据包,端口关闭;数据包被简单丢弃,不返回任何信息,端口开放
- SYN+ACK扫描:可能误报。端口关闭,则返回RST;端口开放,不回复,因为TCP协议需要SYN标志才能启动连接
- ACK扫描:
- 若返回的RST数据包的TTL值小 于或等于64,则端口开放,反之端口关闭
- 若返回的RST数据包的 WINDOW值非零,则端口开放,反之端 口关闭
认证扫描:需要先建立一个完整的TCP连接。扫描端先以客户方身份与目标主机建立连接,后又以服务方身份对目标主机进行认证,因此这种扫描方式也被称为反向认证扫描。
认证(ident)协议一般用于网络连接过程中服 务器验证客户端身份。
FTP代理扫描(FTP反弹扫描(FTP Bounce Attack)):隐蔽性好,难以追踪。但受到服务器设置的限制。许多FTP服务器都禁止了代理这一特性。
先在本地与一个支持代理的FTP服务器,让FTP服务器尝试向目标主机指定端口发起数据连接请求。 FTP服务器返回成功信息,返回码为150和 226,端口开放;否则返回错误信息“425 Can’t build data connection: Connection refused”
远程主机OS指纹识别
漏洞扫描
- 基于漏洞库
- 基于模拟攻击
常用扫描工具

第三章 网络监听及防御
3.1 网络监听概述
3.2 监听技术
3.3 监听的防御
基础知识
网络监听的概念
网络监听技术又叫做网络嗅探技术,顾名思义这是一种在他方未察觉的情况下捕获其通信报文或通信内容的技术。
对于网络攻击与防范双方都有着重要的意义,是一把双刃剑
只限于局域网
网卡的四种工作模式
(1)广播模式:够接收网络中的广播信息。
(2)组播模式:能够接受组播数据。
(3)直接模式:只收目的MAC是自己的。只有匹配目的MAC地址的网卡才能接收该数据帧。
(4)混杂模式:接受一切接收到的数据帧。
网络监听防御的通用策略
采用安全的网络拓扑结构和数据加密技术
第四章 口令破解及防御
攻击
词典攻击
强行攻击(暴力破解)
组合攻击
其他
社会工程学偷窥搜索垃圾箱口令蠕虫特洛伊木马网络监听重放
口令破解工具
口令破解防御
第五章 欺骗攻击及防御
IP欺骗
前三种老的,最后是高级应用,现在还适用
基本地址变化
使用源站选路截取数据包
利用Unix机器上的信任关系
为了方便大量机器的系统管理。这种信任关系是基于IP地址的
TCP会话劫持
会话劫持就是接管一个现存动态会话的过程,结合了嗅探及欺骗技术
为了接管整个会话过程,攻击者需要积极攻击使被冒充用户下线。
过程:
- 发现攻击目标 :需要目标准予 TCP会话连接以及能检测数据流
- 确认动态会话 :适合在网络流通 量达到高峰时发起攻击,目标多且不容易被怀疑
- 猜测序列号 :通过嗅探或者ARP欺骗,先发现目标机正在使用的序列号,再猜测
- 使客户主机下线
- 接管会话
不依赖于操作系统,并且可以被用来进行积极攻击
序列号机制
(简化场景)
1 | 2包的SEQ = 1包的ACK |
ARP欺骗
防御
- MAC地址绑定
- 静态ARP缓存
- 使用ARP服务器
- 使用ARP欺骗防护软件,如ARP防火墙。
- 发现正在进行ARP欺骗的主机并将其隔离。
电子邮件欺骗
- 利用相似的电子邮件地址
- 修改邮件客户软件设置
- 远程登录到25号端口
DNS欺骗
在DNS服务器的本地Cache中缓存一条伪造的解析记录
两种情况:
- 攻击者能控制一台本地域名服务器
- 攻击者只能控制一台主机:需要确定目标DNS服务器的ID号。监听、猜测尝试
Web欺骗
网络钓鱼
第六章 拒绝服务攻击及防御
Denial of Service(简称DoS)
致使攻击目标无法对合法的用户提供正常的服务。是让攻击目标瘫痪的一种“损人不利己”的攻击手段
典型拒绝服务攻击技术
死亡之Ping(Ping of Death)
“泪滴”(teardrop):IP数据包分片机制。
IP欺骗DoS攻击
UDP“洪水”
SYN“洪水”
防御
- 缩短SYN Timeout时间
- 设置SYN Cookie :匹配才分配资源维护连接
- 负反馈策略 :允许系统自己调整timeout等参数
- 退让策略 :遭到攻击后更换IP/放一个靶子服务器。原理:SYN flood攻击开始后不会重新进行域名解析,死盯这个IP
- 分布式DNS负载均衡 :分配到不同IP
- 防火墙
Land攻击
Smurf攻击
Fraggle攻击
分布式反射拒绝服务攻击
电子邮件炸弹
畸形消息攻击
Slashdot effect
WinNuke攻击
分布式拒绝服务DDoS (Distributed Denial of Service)
借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击。
来源广泛难以监测
第七章 缓冲区溢出攻击及防御
缓冲区溢出,就是由于填充数据越界而导致原有程序流程的改变。黑客借此精心构造填充数据,让程序转而执行特殊的代码,最终获取控制权。
缓冲区溢出原理
栈溢出

堆溢出
BSS溢出
格式化串溢出
代码植入技术
S代表shellcode,R代表返回地址,N代表填充数据,A表示环境变量
增加nop或ret以增加命中率
NSR模式
缓冲区要大,能放下shellcode

RNS模式

AR模式
事先把shellcode放进环境变量里

第八章 WEB攻击及防御
Web安全
Web服务器的安全
- 利用Web服务器的漏洞:
- 利用网页自身的安全漏洞:SQL注入,跨站脚本攻击
Web客户端的安全
浏览器漏洞,XSS
Web通信信道的安全
嗅探,DOS
Web服务器指纹识别
- Banner信息
- 服务器协议行为
Http指纹识别
记录不同服务器对Http协议执行中的微小差别进行识别。
Http指纹识别比TCP/IP堆栈指纹识别复杂许多,理由是定制Http服务器的配置文件、增加插件或组件使得更改Http的响应信息变的很容易,这样使得识别变的困难
Web盗窃
通过对各个网页页面源码的详细分析,找出可能存在于代码、注释或者设计中的关键缺陷和脆弱点,以此来确定攻击的突破点。
- 逐页手工扫描
- 自动扫描
SQL注入
XSS 跨站脚本攻击(Cross Site Script)
攻击客户端(浏览器)
恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行。原因:输入校验不足,又轻易地返回给客户端
需要存在跨站脚本漏洞的web应用程序
需要用户点击链接或者是访问某一页面
分类:
- 反射型
- 存储型
Google Hacking
用搜索引擎通过关键字找到有指定漏洞的网站
网页验证码
验证码技术属于人机区分问题,这在英文中称为CAPTCHA,它是是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称。
病毒与各类恶意软件
病毒
具有自我复制(Self-replication)能力的自动机结构
逻辑炸弹
当系统运行的过程中满足某个逻辑时触发,造成严重后果
后门
一种绕过产品,计算机系统,密码系统或算法等中的正常身份验证的方法,通常是秘密的。可以确定是故意留下的
木马
蠕虫
僵尸网络
勒索软件
总结
| 独立性 | 传播性 | 可控性 | 窃密性 | 协同性 | 一句话总结 | |
|---|---|---|---|---|---|---|
| 僵尸网络 | 独立程序 | 控制传播 | 扩展可控 | 窃密 | 有 | 受中心节点控制 |
| 病毒 | 非独立程序 | 被动传播 | 无 | 无 | 无 | 毫无克制的传染 |
| 蠕虫 | 独立程序 | 主动传播 | 无 | 无 | 无 | 明显的网络传播 |
| 木马 | 独立程序 | 一般不 | 完全可控 | 窃密 | 无 | 隐藏、连接CC服务器 |
| 间谍软件 | 独立程序 | 一般不 | 无 | 窃密 | 无 | 深度隐藏 |
| 勒索软件 | 独立程序 | 一般不 | 无 | 无 | 无 | 数据加密 |
逆向工程与代码分析基础
概念
逆向工程
- 对一项目标产品进行深入分析及研究
- 演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素
- 以制作出功能相近,但又不完全一样的产品。
从产品到设计的过程,即,(不能轻易获得必要的生产信息的情况下)根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。
代码加载方式
- 静态链接
- 动态链接(分多个文件)
- load time:与主程序文件同时加载
- run time:运行时加载(如Windows的dll文件)
- 函数指针定位
常用技术
逆向

反逆向
代码混淆(Obfuscation)
控制流扁平化
花指令
虚拟机保护
恶意代码分析
关注点:
注册表或启动项的创建
多个sleep 函数,用于过沙箱
字符串循环解密操作
创建信号量或互斥体
杀软检测
收集信息
软件安全评估
软件安全评估报告内容:
是否包含已知漏洞
是否包含后门
是否有异常数据获取操作
是否有隐蔽行为
对执行环境的破坏性
使用的第三方代码的安全性
是否建立隐通道
漏洞挖掘及利用基础
常见漏洞类型
缓冲区溢出漏洞
- 栈溢出
- 堆溢出
- BSS溢出
- 格式化串溢出
释放后重用漏洞
内存未初始化
整数溢出漏洞
其他溢出类漏洞
漏洞挖掘方法
主力:人肉挖掘大法
辅助分析方法:
模糊测试
符号执行
污点分析
程序切片
模型检验
如何使用合适的方法对程序进行遍历,发现其中可能存在的违背正确规则的代码?
O什么是正确的规则 ?
O什么是违背?
程序中间表示
控制流、数据流、依赖
漏洞利用模式
栈溢出的利用—返回地址
堆溢出漏洞利用—Heap Spraying
堆溢出漏洞利用—DW Shoot
堆溢出漏洞利用—Heap Fengshui
堆溢出漏洞利用—UAF漏洞利用
内核漏洞利用— ret2usr
Web漏洞利用— URL处理不一致问题
漏洞利用(Exp)
优先将漏洞成功利用获得的信息显示出来。稳定、最简利用优先
网络战与信息战
APT :Advanced PersistentThreat(高级持续性威胁)
概念
0day:危害极大的未公开漏洞
1day:刚刚被公布的,还没有来得及被全面修补的漏洞(可以指两三day)
Nday:早已披露的,但用户未及时修复陈旧漏洞
RAT:Remote Access Tool
C&C,CC,C2:Command and Control,命令与控制,原来主要指应用于僵尸网络的CC服务器,是建立在控制者与被控节点之间的通道
白加黑:为了避免被发现,可以由白exe+黑dll协作。
- 结构:Exe(白) —load—> dll(黑)—load—> 恶意代码(shellcode)
- 白exe的选择:带有正规厂商的签名,依赖最小,不同的windows版本下都可以运行,Exe调用了自己的dll,尽可能的小
鱼叉攻击:针对特定个人或群体的高度针对性的网络钓鱼
水坑攻击:在受害者必经之路设置了一个“水坑(陷阱)”。分析攻击目标的上网活动规律,借助了目标所信任的网站
网络靶场与网络安全竞赛
网络靶场
(APT)行动演练的场所,网络沙盘
网络安全竞赛
社会工程学与认知作战
社会工程学
网络钓鱼
基于社会工程学的一种攻击手段,目的是骗取敏感信息,或是获得资源控制权,常用手段包括垃圾邮件、即时聊天、手机短信或恶意网页
形式:链接钓鱼邮件、附件钓鱼邮件、仿冒邮件、仿冒网站
三个层次:
–“撒网式”钓鱼
–“鱼叉式”钓鱼
–“自动化鱼叉式
认知作战
以信息为主要武器,打击敌方的认知系统和信息系统。
根本目的:①掌握战场主动权②影响舆论,改变决策者的决心
安全风险评估与渗透测试
安全风险评估
信息安全风险
“风险”强调的是危害发生的机率以及所造成的可能后果。特征:偶然性,可测性
要素:威胁(Threats)利用脆弱点(Vulnerabilities)给信息资产(Assets)造成负面影响(Impacts)的潜在可能(Likelihood)
- 资产必须有价值
- 风险取决于可能性和影响
- 威胁、脆弱点、影响三要素缺一不可
安全风险评估的内容
标识资产价值与重要性:资产分类、资产价值
识别威胁
识别脆弱点
识别现有控制措施
识别可能性
识别影响

渗透测试
在客户的允许下和可控的范围内,采取可控的,不造成不可弥补损失的黑客入侵手法,对客户网络和系统发起真正攻击。
具有很强的说服力,必须要获得客户方的授权
分类:
- 外部,内部
- 白盒,黑盒,双盲
整改加固
加固范围确认
安全产品部署
技术策略整改
事中分析
五个阶段:检测、抑制、根除、恢复和跟进
事后与日常评估
定向日志分析取证
网络安全意识培养
一些常见的错误认识
口令-密码
存证-取证