教材学习内容总结
第9章 恶意代码安全攻防
一、恶意代码基础知识
1、恶意代码定义与分类
恶意代码定义
使计算机按照攻击者的意图执行以达到恶意目标的指令集恶意代码类型
(1)计算机病毒
(2)蠕虫
(3)恶意移动代码
(4)后门
(5)特洛伊木马
(6)僵尸网络
(7)内核套件恶意代码的命名规则与分类体系
2、恶意代码发展史
- 恶意代码的起源
- 恶意代码的发展过程
- 恶意代码的发展趋势
3、计算机病毒
计算机病毒基本特性
(1)感染性
(2)潜伏性
(3)可触发性
(4)破坏性
(5)衍生性计算机病毒的感染及引导机制
(1)可执行文件
(2)引导扇区
(3)支持宏指令的数据文件计算机病毒的传播机制
4、网络蠕虫
- 网络蠕虫的基本特性
网络蠕虫的组成结构
(1)“弹头”
缓冲区溢出攻击
文件共享攻击
利用电子邮件传播
利用其他普遍的错误配置
(2)传播引擎
(3)目标选择法和扫描引擎
电子邮件地址
主机列表
被信任的系统
网络邻居主机
域名服务
通过特定规则任意选择IP目标地址
(4)有效荷载- 植入后门
- 安装分布式拒绝服务攻击代理
- 组建僵尸网络
执行一个复杂的计算
5、后门与木马
- 后门
后门工具能为攻击者提供多种不同类型的访问通道,包括以下几种:
(1)本地权限提升和本地账号
(2)单个命令的远程执行
(3)远程命令行解释器访问
(4)远程控制GUI
(5)无端口后门
- 特洛伊木马
6、僵尸程序与僵尸网络
- 僵尸程序和僵尸网络的演化过程
- 僵尸网络的功能结构
- 僵尸程序的命令与控制机制
(1)基于IRC协议的命令与控制机制
(2)基于HTTP协议的命令与控制机制
7、Rootkit
用户模式Rootkit
(1)提供后门访问的二进制替换程序
(2)隐藏攻击者的二进制替换程序
(3)用于隐藏但不替换的二进制长须
(4)另外一些零散工具
(5)安装脚本内核模式Rootkit
大多内核模式Rootkit采用如下技术手段
(1)文件和目录隐藏
(2)进程隐藏
(3)网络端口隐藏
(4)混杂模式隐藏
(5)改变执行方向
(6)设备截取和控制
Linux,Windows内核模式Rootkit
二、恶意代码分析方法
1、恶意代码分析技术概述
2、恶意代码分析环境
- 恶意代码发烧友的分析环境
- 基于虚拟化构建恶意代码分析环境
- 用于研究的恶意代码自动分析环境
3、恶意代码静态分析技术
- 反病毒软件扫描
- 文件格式识别
- 字符串提取分析
- 恶意代码实例名
- 帮助或命令行选项
- 用户会话
- 后门命令
- 相关URL信息,E-mail地址
- 包含库文件和函数调用
- 二进制结构分析
- 反汇编与反编译
- 代码结构与逻辑分析
- 加壳识别与代码脱壳
4、恶意代码动态分析技术
- 基于快照比对的方法和工具
系统动态行为监控方法
(1)文件行为监控软件
(2)进程行为监控软件
(3)注册表监控软件
(4)本地网络栈监控软件- 网络协议栈监控方法
- 沙箱技术
动态调试技术
第10章 软件安全攻防——缓冲区溢出和Shellcode
一、软件安全概述
1、 软件安全漏洞威胁
2、软件安全环境
- 复杂性
- 可扩展性
- 连通性
3、软件安全漏洞类型
- 内存安全违规类
- 输入验证类
- 竞争条件类
- 权限混淆与提升类
二、缓冲区溢出基础概念
1、缓冲区溢出的基本概念与发展过程
- 缓冲区溢出基本概念
- 缓冲区溢出攻击技术发展过程
2、缓冲区溢出攻击背景知识
- 编译器与调试器的使用
- 汇编语言基础知识
- 进程内存管理
- 函数调用过程
3、缓冲区溢出攻击原理
分为栈溢出,堆溢出,内核溢出这三种具体技术形态。
三、Linux平台上的栈溢出与Shellcode
1、Linux平台栈溢出攻击原理
- NSR模式
- RNS模式
- RS模式
2、Linux平台的Shellcode实现技术
- Linux本地Shellcode实现机制
- Linux远程Shellcode实现机制
四、Windows平台上的栈溢出与Shellcode
1、Windows平台栈溢出攻击技术
Windows平台栈溢出攻击技术机理
(1)对程序运行过程中废弃栈的处理方式差异
(2)进程内存空间的布局差异
(3)系统功能调用的实现方式差异- 远程栈溢出攻击实例
野外Windows栈溢出实例
2、Windows平台Shellcode实现技术
- Windows本地Shellcode
- Windows远程Shellcode
五、堆溢出攻击
- 函数指针改写
- C++类对象虚函数表改写
- Linux下堆管理glibc库free()函数本身漏洞
六缓冲区溢出攻击的防御技术
- 尝试杜绝溢出的防御技术
- 允许溢出但不让程序改变执行流程的防御技术
- 无法让攻击代码执行的防御技术
视频学习过程总结
一、KaliSecurity - 压力测试工具
压力测试通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大的服务级别的测试。通俗的讲,压力测试是为了发现在什么条件下你的应用程序的性能会变得不可接受。
1、VoIP压力测试工具
包括iaxflood和inviteflood
2、Web压力测试
借助THC-SSl-DOS攻击工具,任何人都可以把提供SSL安全连接的网站攻击下线。这种攻击方法被称为SSL拒绝服务攻击。德国黑客组织“The Hacker’s Choice”发布THC SSL DOS,利用SSL中的已知弱点,迅速消耗服务器资源,与传统DDos工具不同的是,他不需要任何带宽,只需要一台执行单一攻击的电脑。
漏洞存在与协议的renegotitation过程中,renegotiation被用于浏览器到服务器之间的验证。
打开之后如下
图1
3、dhcpig
耗尽DHCP资源池的压力测试。
图2
4、IPv6 攻击工具包
图3
全都是关于攻击IPv6的。
5、Inundator
IDS/IPS/WAF 压力测试工具
图4
防火墙压力测试工具,耗尽对方认证资源。
6、Macof
图5
可做泛洪攻击。
7、Siege
压力测试和评测工具,设计用于WEB开发和评估应用在压力下的承受能力;可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
图6
在攻击的同时进行数据分析。
8、T50压力测试
T50 Sukhoi PAK FA Mixed Packet Injector是一个压力测试工具,功能强大且具有独特的数据包注入工具。T50支持Unix系统可进行多种协议的数据包注入,实际上支持15种协议。主要特点:
- Flooding
- CIDR support
- TCP ,UDP,ICMP,IGMPVC2,IGMPV3,EGP,DCCP,RSVP,RIPV1 ,RIPv2 ,GRE,ESP,AH,EIGRp
- TCP options
- HIGH performance
- Can hit about 1000000 packets per second
9、无线压力测试
mdk3和reaver
图7
二、KaliSecurity - 数字取证工具
数字取证技术将计算机调查和分析技术应用于对潜在的、有法律效力的电子证据的确定与获取,同样他们都是针对黑客和入侵的,目的都是宝航网络安全。
图8
1、PDF取证工具
peepdf是一个用Python编写的PDF文件分析工具,它可以检测恶意的PDF文件,其设计目标是为安全研究人员提供PDF分析中可能用到的所有组件,无需使用3或4种工具完成统一任务。
2、反数字取证chkrootkit
Linux系统下的查找检测Rootkit后门的工具。适用该条指令就可以检测是否被注入后门
图9
3、内存取证工具
开源的Windows,Linux,mac,Android的内存取证分析工具,有Python编写成,命令行操作,支持各种操作系统。
4、取证分割工具binwalk
是一个固件分析工具,旨在协助研究人员对固件分析,提取及逆向工程用处,简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,更重要的一点是可以轻松扩展。
借助binwalk有个很强大的功能是提取文件中存在的隐藏文件,亦可分析文件格式。
5、取证哈希验证工具集
md5deep是一套跨平台的方案,可以计算和比较MD5等哈希加密信息的摘要MD5,SHA-1,SHA-256,Tiger,Whirlpool
6、取证镜像工具集
针对镜像文件的取证工具,如mmsstat与mmls等命令。
7、数字取证套件
dff是一个简单强大的数字取证工作辅助工具,有一个灵活的模块系统,具有多种功能,包括:恢复错误或崩溃导致的文件丢失,证据的研究和分析等。dff提供了一个强大的体系结构和一些有用的模块。
autopsy提供了一个浏览器控制台 。
三、KaliSecurity - 报告工具与系统服务
一次完整的渗透测试,最后总要完成一份优雅的报告作为一个小结,kali下也有相关的报告工具集。
1、Dradis
是一个用于提高安全检测效率的信息共享框架,它提供了一个集中的信息仓库,用于标记我们目前已经做的工作和下一步计划。
2、Keepnote
一个很精简的笔记软件,特点如下:
- 富文本格式:彩色字体,内置图片,超链接(即:能保存整个网页的图品文字等完整信息)。
- 树形分层组织内容
- 分门别类,一目了然
- 全文搜索
- 综合截图:屏幕截图后,可以直接在笔记本中插入
- 文件附件
- 集成的备份和恢复
- 拼写检查
- 自动保存
- 内置的备份和恢复(zip文件存档)
3、Cutycapt
将网页内容截成图片保存
4、Recordmydesktop
屏幕录像工具,用来录制桌面
5、Maltego Casefile
6、MagicTree
是一个面向渗透测试人员的工具,可以帮助你轻松直接的进行数据合并,查询,外部命令执行,报告生成,所有数据都会以树形结构存储,非常方便。
7、Truecrypt
一款免费开源的加密软件,同时支持Windows Vista/7/XP,Mac OS X,Linux等操作系统。
8、系统服务介绍
beEF:对应XSS测试框架BeEF的启动与关闭
Dradis:对应笔记本分享服务的启动与关闭
HTTP:对应kali本机WEB服务的启动与关闭
Metasploit:对应Metasploit服务的启动与关闭
MySQL:对应mysql的服务启动与关闭
openvas:对应扫描器openvas服务的启动与关闭
SSh:对应SSh的服务启动与关闭