教材学习内容总结
第九章 恶意代码安全攻防
恶意代码基础知识
- 恶意代码定义与分类:计算机病毒、蠕虫、恶意移动代码、后门、特洛伊木马、僵尸程序、内核套件(Rootkit)、融合型恶意代码。
- 恶意代码发展史:起源、发展过程、发展趋势。
- 计算机病毒:概念、基本特性(感染性、潜伏性、可触发性、破坏性、衍生性)、感染及引导机制(可执行文件、引导扇区、支持宏指令的数据文件)、传播机制(移动存储、电子邮件、下载、共享目录)。
- 网络蠕虫:概念、基本特性(通过网络自主传播)、组成结构(弹头、传播引擎、目标选择算法、扫描引擎、有效载荷)
- 后门与木马:后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道;而木马作为特洛伊木马的简称,是指一类看起来具有某个有用或者善意目的,但实际掩盖着一些隐藏恶意功能的程序。
- 僵尸程序与僵尸网络:概念、演化过程、僵尸网络功能结构(网络控制器和僵尸程序,其中僵尸程序分为主体功能模块和辅助功能模块)、僵尸程序的命令与控制机制(基于IRC协议的命令与控制机制、基于HTTP协议的命令与控制机制、基于P2P协议的命令与控制机制)
- Rootkit:用户模式Rootkit和内核模式Rootkit。其中内核模式Rootkit包括Linux内核模式Rootkit和Windows内核模式Rootkit。
恶意代码分析方法
- 恶意代码分析技术概述:静态分析和动态分析
- 恶意代码分析环境:恶意代码发烧友的分析环境、基于虚拟化构建恶意代码分析环境、用于研究的恶意代码自动分析环境
- 恶意代码静态分析技术:反病毒软件扫描、文件格式识别、字符串提取分析、二进制结构分析、反汇编、反编译、代码结构与逻辑分析、加壳识别、代码脱壳
- 恶意代码动态分析技术:基于快照对比的方法和工具、系统动态行为监控方法(文件行为监控软件、进程行为监控软件、注册表监控软件、本地网络栈行为监控软件)、网络协议栈监控方法、沙箱技术、动态调试技术
第十章 软件安全攻防——缓冲区溢出和Shellcode
软件安全概述
- 软件安全漏洞威胁
- 软件安全困境:复杂性、可扩展性、连通性
- 软件安全漏洞类型:XSS、SQL注入、PHP远程文件包含、目录遍历、信息泄露、由畸形输入导致的拒绝服务、符号链接问题、格式化字符串、密码学缺陷。分为如下四类:内存安全规范类、输入验证类、竞争条件类、权限混淆与提升类。
缓冲区溢出基本概念
- 缓冲区溢出基本概念与发展过程:计算机程序中存在的一类内存安全违规类漏洞,在计算机程序向特定缓冲区内填充数据时,超出了缓冲区本身的容量,导致外溢数据覆盖了相邻内存空间的合法数据,从而改变了程序执行流程破坏系统运行完整性。
- 缓冲区溢出攻击背景知识:编译器与调试器的使用、汇编语言基础知识、进程内存管理、函数调用过程
- 缓冲区溢出攻击原理:栈溢出、堆溢出、内核溢出。
Linux平台上的栈溢出与Shellcode
1
- Linux平台栈溢出攻击技术:NSR、RNS、RS三种模式。NSR和RNS模式适用于本地缓冲区溢出和远程栈溢出攻击,而RS模式只能用于本地缓冲区溢出攻击。
- Linux平台的Shellcode实现技术:Linux本地Shellcode实现机制、Linux远程Shellcode实现机制
Windows平台上的栈溢出与Shellcode
- Windows平台栈溢出攻击技术:Windows平台栈溢出攻击技术机理(对程序运行过程中废弃栈的处理方式差异、进程内存空间的布局差异、系统功能调用的实现方式差异)、远程栈溢出攻击示例、野外Windows栈溢出实例
- Windows平台Shellcode实现技术:Windows本地Shellcode、Windows远程Shellcode
堆溢出攻击
- 函数指针改写
- C++类对象虚函数表改写
- Linux下堆管理glibc库free()函数本身漏洞
缓冲区溢出攻击的防御技术 视频学习总结
- 尝试杜绝溢出的防御技术
- 允许溢出但不让程序改变执行流程的防御技术
- 无法让攻击代码执行的防御技术
视频学习总结
kali压力测试工具
1、压力测试:通过系统瓶颈或者不能接收的性能点,来获得系统所提供的最大服务级别的测试。目标是为了发现在什么条件下应用程序性能变得不可接受。
2、包含:VoIP压力测试、WEB压力测试、网络压力测试以及无线压力测试
3、VoIP:包括iaxflood和inviteflood
4、THC-SSL-DOS:web压力测试。可把提供SSL安全链接的网站攻击下线(SSL拒绝服务攻击SSL DOS)。该工具利用ssl已知弱点,迅速消耗服务器资源,不需要任何带宽。
漏洞存在于协议的renegotiation过程中,被用于浏览器到服务器之间的验证。
5、dhcpig :耗尽DHCP资源池的压力测试
6、ipv6攻击工具包
7、Inundator:IDS/IPS/WAF 压力测试工具
8、Macof:可做泛洪攻击
9、Siege:Siege是一个压力测试和评测工具,设计用于Web开发,评估应用在压力下的承受能力,可以根据配置对一个Web站点进行多用户的并发访问,记录每个用户所有请求过程的响应时间,并在一定数量的并发访问下重复进行。测试服务器性能。
10、T50压力测试:功能强大,且具有独特的数据包注入工具,T50支持*nix系统,可进行多种协议数据包注入,实际上支持15种协议。
11、无线压力测试:MDK3和Reaver
数据取证工具
1、将计算机调查和分析技术应用于潜在的、有法律效力的电子证据的确定与获取,同样他们都是针对黑客和入侵的,目的都是保障网络安全。
2、PDF取证工具:pdf-parser和peepdf
peepdf:python、PDF文件分析工具,检测到恶意的PDF文件。目标是为安全研究人员提供PDF分析中可能用到的所有组件。
3、反数字取证chkrootkit:Linux系统下查找检测rootkit后门工具。判断命令和关键文件是否被植入Rootkit的利器。
4、内存取证工具:Volatility是开源的Windows、Linux、Mac、Android的内存取证分析工具,python,命令行操作,支持各种操作系统。
5、取证分析工具binwalk:固件的分析工具,旨在协助研究人员对固件分析,提取及逆向工程。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,更重要的一点是可以轻松扩展。
功能:提取文件(压缩包)中的隐藏文件(或内容文件)。亦可分析文件格式。
6、取证哈希验证工具集
md5deep是一套跨平台的方案,可以计算和比较MD5等哈希加密信息的摘要MD5,SHA-1,SHA-256,Tiger,Whirlpool。
7、取证镜像工具集
针对镜像文件的取证工具,如mmsstat与mmls等命令。
8、数字取证套件
autopsy:浏览器形式,本地端口9999
DFF:数字取证工作辅助工具,它具有灵活的模块系统,具有多种功能,包括:回复错误或崩溃导致的文件丢失,证据的研究和分析。DFF提供了一个强大的体系结构和一些列有用的模块。而autopsy则是提供了一个浏览器平台。
报告工具与系统服务
1、Dradis:用于提高安全检测效率的信息共享框架(协作平台)。Dradis提供了一个集中的信息仓库,用于标记我们目前已经做的工作和下一步计划。基于浏览器的在线笔记。采用3004端口
2、keepnote:精简的笔记本软件,特点如下:
富文本格式:彩色字体、内置图片、超链接
树形分层组织内容、全文搜索、综合截图、文件附件、集成的备份和恢复
拼写检查(通过gtkspell)、自动保存、内置的备份和恢复(zip文件存档)
3、媒体捕捉工具Cutycapt:将网页内容截成图片保存。
4、Recordmydesktop:屏幕录像工具
5、证据管理:Maltego 和 Casefile
6、MagicTree:面向渗透测试人员的工具,可以帮助攻击者进行数据合并、查询、外部命令执行(比如直接调用nmap)和报告生成。所有数据都会以树形结构存储。
7、Truectypt:免费开源的加密软件,同时支持Windows,OS,Linux等操作系统。
8、系统服务介绍:
BeEF:对应XSS测试框架BeEF的启动与关闭;
Dradis:对应笔记分享服务Dradis的启动与关闭;
HTTP:对用Kali本机Web服务的启动与关闭;
Metasploit:对应Metasploit服务的启动与关闭;
Mysql:对应Mysql服务的启动与关闭;
Openvas:对应Openvas服务的启动与关闭;
SSH:对应SSH服务的启动与关闭;