当前位置:主页 > 计算机电子书 > 信息安全 > Rootkit下载
Rootkit:系统灰色地带的潜伏者(第二版)

Rootkit:系统灰色地带的潜伏者(第二版) PDF 超清版

  • 更新:2021-08-02
  • 大小:119.97MB
  • 类别:Rootkit
  • 作者:Bill、Blunden
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Rootkit:系统灰色地带的潜伏者(原书第二版)

作者:(美)Bill Blunden 著,姚领田,蒋蓓,刘安,李潇 等译

出版时间:2013

Amazon五星级畅销书,rootkit领域的重要著作,计算机安全领域公认经典。从反取证角度,深入、系统解读rootkit的本质和核心技术,以及如何构建属于自己的rootkit武器。包含大量模块化示例,行文风趣幽默,颇具实战性和可读性。全书共分四部分。第一部分(第1~6章),全新阐释rootkit本质、rootkit与反取证关系、安全领域态势,以及反取证技术的策略、应对建议和攻击优势。之后,从硬件、软件(系统)、行业工具和内核空间方面介绍rootkit调查过程和利用反取证技术破坏调查过程的策略,使你对取证和反取证有全新了解。第二部分(第7~8章),主要介绍rootkit如何阻止磁盘分析和可执行文件的分析,而调查人员如何利用有效的工具和策略来分析辅助存储器(例如磁盘分析、卷分析、文件系统分析以及未知二进制分析)中可能留下的rootkit痕迹,并对内存驻留和多级释放器技术及用户态Exec(UserlandExec)理念进行了深入剖析。第三部分(第9~15章)主要详解攻击者利用rootkit破坏数据收集过程和造成“一切安好”的假象的前沿实用策略:阻止在线取证、内核模式策略、更改调用表、更改代码、更改内核对象、创建隐秘通道和部署带外rootkit。第四部分(第16章),高屋建瓴地重新总结了rootkit的核心策略,以及如何识别隐藏的rootkit、注意事项和如何处理感染等。

目录

  • 译者序
  • 献给“孙悟空”
  • 前言
  • 第一部分基础知识
  • 第1章 清空思想
  • 1.1不速之客
  • 1.2提炼一个更确切的定义
  • 1.2.1攻击循环
  • 1.2.2rootkit在攻击循环中的角色
  • 1.2.3单级释放器与多级释放器
  • 1.2.4其他部署方法
  • 1.2.5确切的学术性定义
  • 1.2.6不要混淆设计目标与实现
  • 1.2.7rootkit技术--力量倍增器
  • 1.2.8金·费尔比式比喻:破坏与毁坏
  • 1.2.9为何使用隐身技术?rootkit不能被发现吗
  • 1.3rootkit不等于恶意软件
  • 1.3.1感染源
  • 1.3.2广告软件和间谍软件
  • 1.3.3僵尸网络的兴起
  • 1.3.4引入:愚人飞客病毒
  • 1.3.5恶意软件与rootkit
  • 1.4谁在开发和使用rootkit
  • 1.4.1市场营销
  • 1.4.2数字版权管理
  • 1.4.3不是rootkit,而是种功能
  • 1.4.4法律实施
  • 1.4.5商业间谍
  • 1.4.6政治间谍
  • 1.4.7网络犯罪
  • 1.4.8谁开发了颇具艺术感的rootkit
  • 1.4.9rootkit的道德性
  • 1.5慑魄惊魂:战场伤员分类
  • 1.6总结
  • 第2章 反取证综述
  • 2.1事件响应
  • 2.1.1入侵检测系统(和入侵防御系统)
  • 2.1.2异常行为
  • 2.1.3发生故障
  • 2.2计算机取证
  • 2.2.1rootkit不是隐身的吗?为什么还要进行反取证
  • 2.2.2假定最糟糕案例的场景
  • 2.2.3取证技术分类:第一种方法
  • 2.2.4取证技术分类:第二种方法
  • 2.2.5在线取证
  • 2.2.6当关机不再是种选择
  • 2.2.7关于拔掉电源插头的争论
  • 2.2.8崩溃转储或者不进行崩溃转储
  • 2.2.9事后检查分析
  • 2.2.10非本地数据
  • 2.3AF策略
  • 2.3.1数据销毁
  • 2.3.2数据隐藏
  • 2.3.3数据转换
  • 2.3.4数据伪造
  • 2.3.5数据源消除
  • 2.4AF技术的总体建议
  • 2.4.1使用定制工具
  • 2.4.2低且慢与焦土策略
  • 2.4.3避免特定实例攻击
  • 2.4.4使用分层防御
  • 2.5不明身份者具有优势
  • 2.5.1攻击者能够专注于攻击
  • 2.5.2防御者面临制度性挑战
  • 2.5.3安全是一种过程(而且还是一种令人讨厌的过程)
  • 2.5.4持续增加的复杂度
  • 2.6总结
  • 第3章 硬件概述
  • 3.1物理内存
  • 3.2IA-32内存模型
  • 3.2.1平面内存模型
  • 3.2.2分段内存模型
  • 3.2.3操作模式
  • 3.3实模式
  • 3.3.1案例研究:MS-DOS
  • 3.3.2这不是浪费时间吗?为什么学习实模式
  • 3.3.3实模式执行环境
  • 3.3.4实模式中断
  • 3.3.5分段和程序控制
  • 3.3.6案例研究:转储IVT
  • 3.3.7案例研究:用TSR记录击键
  • 3.3.8案例研究:隐藏TSR
  • 3.3.9案例研究:为TREE.COM命令打补丁
  • 3.3.10小结
  • 3.4保护模式
  • 3.4.1保护模式执行环境
  • 3.4.2保护模式分段
  • 3.4.3保护模式分页
  • 3.4.4地址扩展分页
  • 3.4.5进一步研究页表
  • 3.4.6进一步研究控制寄存器
  • 3.5实现内存保护
  • 3.5.1通过分段实现保护
  • 3.5.2界限检查
  • 3.5.3类型检查
  • 3.5.4特权检查
  • 3.5.5受限指令检查
  • 3.5.6门描述符
  • 3.5.7保护模式中断表
  • 3.5.8分页保护
  • 3.5.9总结
  • 第4章 系统概述
  • 4.1Windows系统下的物理内存
  • 4.1.1失落的大陆(内存)
  • 4.1.2Windows如何使用物理地址扩展
  • 4.1.3页、页帧、页帧号
  • 4.2Windows下的分段和分页
  • 4.2.1分段
  • 4.2.2分页
  • 4.2.3线性地址到物理地址的转换
  • 4.2.4一个更快的方法
  • 4.2.5关于EPROCESS和KPROCESS的讨论
  • 4.3用户空间和内核空间
  • 4.3.14GB调优(4GT)
  • 4.3.2各得其所
  • 4.3.3跨越篱笆
  • 4.3.4用户空间剖析
  • 4.3.5内核空间动态分配
  • 4.3.6地址窗口化扩展
  • 4.3.7PAE、4GT和AWE的对比
  • 4.4用户模式和内核模式
  • 4.4.1执行方式与执行位置
  • 4.4.2内核模式组件
  • 4.4.3用户模式组件
  • 4.5其他内存保护特征
  • 4.5.1数据执行保护
  • 4.5.2地址空间布局随机化
  • 4.5.3GS 编译选项
  • 4.5.4SAFESEH链接器选项
  • 4.6本机API
  • 4.6.1中断向量表的发展
  • 4.6.2进一步研究中断描述表
  • 4.6.3通过中断进行系统调用
  • 4.6.4SYSENTER指令
  • 4.6.5系统服务调度表
  • 4.6.6枚举本机API
  • 4.6.7Nt*( )系统调用与Zw*( )系统调用
  • 4.6.8系统调用的生命周期
  • 4.6.9其他内核模式例程
  • 4.6.10内核模式API文档
  • 4.7引导过程
  • 4.7.1BIOS固件启动
  • 4.7.2EFI固件启动
  • 4.7.3Windows启动管理器
  • 4.7.4Windows启动加载器
  • 4.7.5初始化执行体
  • 4.7.6会话管理器
  • 4.7.7wininit.exe
  • 4.7.8winlogon.exe
  • 4.7.9启动过程概括
  • 4.8设计决策
  • 4.8.1藏在人群中:类型0
  • 4.8.2主动隐藏:类型1和类型2
  • 4.8.3跳出边界:类型3
  • 4.8.4前景展望
  • 第5章 行业工具
  • 5.1开发工具
  • 5.1.1诊断工具
  • 5.1.2磁盘映像工具
  • 5.1.3更快速救灾:虚拟机
  • 5.1.4工具综述
  • 5.2调试器
  • 5.2.1配置CDB.exe
  • 5.2.2符号文件
  • 5.2.3Windows符号
  • 5.2.4激活CDB.exe
  • 5.2.5控制CDB.exe
  • 5.2.6有用的调试器命令
  • 5.2.7检查符号命令(x)
  • 5.2.8列举已加载的模块(lm和!lmi)
  • 5.2.9显示类型命令(dt)
  • 5.2.10反汇编命令(u)
  • 5.2.11显示命令(d*)
  • 5.2.12寄存器命令(r)
  • 5.3KD.exe内核调试器
  • 5.3.1使用内核调试器的不同方法
  • 5.3.2物理宿主机-目标机配置
  • 5.3.3准备硬件
  • 5.3.4准备软件
  • 5.3.5启动内核调试会话
  • 5.3.6控制目标机
  • 5.3.7虚拟宿主机-目标机配置
  • 5.3.8 有用的内核模式调试器命令
  • 5.3.9列举已加载模块命令
  • 5.3.10!process扩展命令
  • 5.3.11寄存器命令(r)
  • 5.3.12使用崩溃转储
  • 5.3.13方法1:PS2键盘技巧
  • 5.3.14方法2:KD.exe命令
  • 5.3.15方法3:NotMyFault.exe
  • 5.3.16崩溃转储分析
  • 第6章 内核空间中的玄机
  • 6.1KMD模板
  • 6.1.1内核模式驱动程序:全局概览
  • 6.1.2WDK框架
  • 6.1.3真正最小的KMD
  • 6.1.4处理IRP
  • 6.1.5与用户模式代码通信
  • 6.1.6从用户模式发送命令
  • 6.2加载内核模式驱动程序
  • 6.3服务控制管理器
  • 6.3.1在命令行使用sc.exe
  • 6.3.2编程使用SCM
  • 6.3.3注册表踪迹
  • 6.4使用导出驱动程序
  • 6.5综合利用内核中的漏洞
  • 6.6Windows内核模式安全
  • 6.6.1内核模式代码签名
  • 6.6.2KMCS的应对措施
  • 6.6.3内核补丁保护
  • 6.6.4KPP的应对措施
  • 6.7同步
  • 6.7.1中断请求级
  • 6.7.2延迟过程调用
  • 6.7.3实现
  • 6.8总结
  • 第二部分事 后 分 析
  • 第7章 阻止磁盘分析
  • 7.1事后调查:概述
  • 7.2取证副本
  • 7.3卷分析
  • 7.3.1Windows下的存储卷
  • 7.3.2手工分析卷
  • 7.3.3应对措施:破坏分区表
  • 7.3.4Windows下的原始磁盘访问
  • 7.3.5原始磁盘访问:突破常规
  • 7.4文件系统分析
  • 7.4.1恢复删除的文件
  • 7.4.2恢复删除的文件:应对措施
  • 7.4.3枚举可选数据流
  • 7.4.4枚举可选数据流: 应对措施
  • 7.4.5恢复文件系统对象
  • 7.4.6恢复文件系统对象:应对措施
  • 7.4.7带外隐藏
  • 7.4.8带内隐藏
  • 7.4.9引入:FragFS
  • 7.4.10应用层隐藏
  • 7.4.11获取元数据
  • 7.4.12获取元数据:应对措施
  • 7.4.13改变时间戳
  • 7.4.14改变校验和
  • 7.4.15识别已知文件
  • 7.4.16交叉时间差异与交叉视图差异
  • 7.4.17识别已知文件:应对措施
  • 7.5文件签名分析
  • 7.6总结
  • 第8章 阻止可执行文件分析
  • 8.1 静态分析
  • 8.1.1扫描相关人工痕迹
  • 8.1.2验证数字签名
  • 8.1.3转储字符串数据
  • 8.1.4检查文件头
  • 8.1.5反汇编和反编译
  • 8.2破坏静态分析
  • 8.2.1数据转换:加壳
  • 8.2.2加壳:加密程序
  • 8.2.3密钥管理
  • 8.2.4加壳:压缩程序
  • 8.2.5加壳:变形代码
  • 8.2.6定制工具的需求
  • 8.2.7关于加壳的争论
  • 8.2.8数据伪造
  • 8.2.9虚旗攻击
  • 8.2.10数据源清除:多级加载器
  • 8.2.11深度防御
  • 8.3运行时分析
  • 8.3.1运行环境
  • 8.3.2手工与自动运行时分析
  • 8.3.3手工分析:基本概要
  • 8.3.4手工分析:跟踪
  • 8.3.5手工分析:内存转储
  • 8.3.6手工分析:捕捉网络活动
  • 8.3.7自动化分析
  • 8.3.8运行时复合分析
  • 8.4破坏运行时分析
  • 8.4.1跟踪的应对措施
  • 8.4.2API跟踪:规避迂回补丁
  • 8.4.3API跟踪:多级加载器
  • 8.4.4指令级跟踪:攻击调试器
  • 8.4.5断点
  • 8.4.6检测用户模式调试器
  • 8.4.7检测内核模式调试器
  • 8.4.8检测用户模式调试器或者内核模式调试器
  • 8.4.9通过代码校验和检测调试器
  • 8.4.10关于反调试器技术的争论
  • 8.4.11指令级跟踪:混淆
  • 8.4.12混淆应用数据
  • 8.4.13混淆应用代码
  • 8.4.14阻止自动化
  • 8.4.15应对运行时复合分析
  • 8.5总结
  • 第三部分在 线 取 证
  • 第9章 阻止在线取证
  • 9.1在线取证:基本过程
  • 9.2用户模式加载器
  • 9.2.1UML破坏现有的API
  • 9.2.2关于加载器API模块的争论
  • 9.2.3纵览Windows PE文件格式
  • 9.2.4相对虚拟地址
  • 9.2.5PE文件头
  • 9.2.6导入数据节(.idata)
  • 9.2.7基址重定位节(.reloc)
  • 9.2.8实现独立的UML
  • 9.3最小化加载器踪迹
  • 9.3.1数据节育:献给The Grugq的颂歌
  • 9.3.2下一步:通过漏洞利用程序加载
  • 9.4关于独立PE加载器的争论
  • 第10章 用C语言创建shellcode
  • 10.1用户模式shellcode
  • 10.1.1Visual Studio工程设置
  • 10.1.2使用相对地址
  • 10.1.3寻找kernel32.dll:通往TEB和PEB的旅程
  • 10.1.4扩展地址表
  • 10.1.5解析kernel32.dll导出表
  • 10.1.6提取shellcode
  • 10.1.7危险空间
  • 10.1.8构建自动化
  • 10.2内核模式shellcode
  • 10.2.1工程设置:$(NTMAKEENV)\makefile.new
  • 10.2.2工程设置:SOURCES
  • 10.2.3地址解析
  • 10.2.4加载内核模式shellcode
  • 10.3特殊武器和策略
  • 10.4展望
  • 第11章 更改调用表
  • 11.1在用户空间挂钩:IAT
  • 11.1.1DLL基础
  • 11.1.2访问导出例程
  • 11.1.3注入DLL
  • 11.1.4走查磁盘上PE文件的IAT
  • 11.1.5挂钩IAT
  • 11.2内核空间的调用表
  • 11.3挂钩IDT
  • 11.3.1处理多处理器:方案#1
  • 11.3.2裸例程
  • 11.3.3关于挂钩IDT的问题
  • 11.4挂钩处理器MSR
  • 11.5挂钩SSDT
  • 11.5.1禁用WP位:技巧#1
  • 11.5.2禁用WP位:技巧#2
  • 11.5.3挂钩SSDT项
  • 11.5.4SSDT示例:跟踪系统调用
  • 11.5.5SSDT示例:隐藏进程
  • 11.5.6SSDT示例:隐藏网络连接
  • 11.6挂钩IRP处理程序
  • 11.7挂钩GDT:安装调用门
  • 11.8挂钩的应对措施
  • 11.8.1检查内核模式挂钩
  • 11.8.2检查IA32_SYSENTER_EIP
  • 11.8.3检查 INT 0x2E
  • 11.8.4检查 SSDT
  • 11.8.5检查IRP处理程序
  • 11.8.6检查用户模式钩子
  • 11.8.7解析PEB:
  • 第1部分
  • 11.8.8解析PEB:
  • 第2部分
  • 11.9反应对措施
  • 11.9.1假设最坏的案例
  • 11.9.2最坏案例应对措施#1
  • 11.9.3最坏案例应对措施#2
  • 第12章 更改代码
  • 12.1跟踪调用
  • 12.1.1迂回实现
  • 12.1.2获取NtSetValueKey()的地址
  • 12.1.3初始化补丁元数据结构
  • 12.1.4对照已知签名核实原始机器码
  • 12.1.5保存原始序言和尾声代码
  • 12.1.6更新补丁元数据结构
  • 12.1.7锁定访问并禁用写保护
  • 12.1.8注入迂回
  • 12.1.9序言迂回
  • 12.1.10尾声迂回
  • 12.1.11事后总结
  • 12.2破坏组策略
  • 12.2.1迂回实现
  • 12.2.2初始化补丁元数据结构
  • 12.2.3尾声迂回
  • 12.2.4将注册表值映射到组策略
  • 12.3绕过内核模式API记录器
  • 12.3.1故障安全规避
  • 12.3.2更上一层楼
  • 12.4指令补丁应对措施
  • 第13章 更改内核对象
  • 13.1隐形的代价
  • 13.1.1问题#1:陡峭的学习曲线
  • 13.1.2问题#2:并发性
  • 13.1.3问题#3:可移植性和指针运算
  • 13.1.4特有技术:DKOM
  • 13.1.5对象
  • 13.2再访EPROCESS对象
  • 13.2.1获取EPROCESS指针
  • 13.2.2EPROCESS相关域
  • 13.2.3UniqueProcessId
  • 13.2.4ActiveProcessLinks
  • 13.2.5Token
  • 13.2.6ImageFileName
  • 13.3DRIVER_SECTION对象
  • 13.4令牌对象
  • 13.4.1Windows授权
  • 13.4.2定位令牌对象
  • 13.4.3令牌对象中的相关域
  • 13.5隐藏进程
  • 13.6隐藏驱动程序
  • 13.7操纵访问令牌
  • 13.8使用No-FU
  • 13.9内核模式回调
  • 13.10应对措施
  • 13.10.1交叉视图检测
  • 13.10.2高级枚举:CreateToolhelp32Snapshot()
  • 13.10.3高级枚举:PID暴力
  • 13.10.4低级枚举:进程
  • 13.10.5低级枚举:线程
  • 13.10.6相关软件
  • 13.10.7域校验和
  • 13.11反应对措施
  • 13.11.1最好的防护:饿死对手
  • 13.11.2评论:超越双环模型
  • 13.11.3最后一道防线
  • 第14章 隐秘通道
  • 14.1普通恶意软件通道
  • 14.1.1互联网中继聊天
  • 14.1.2对等通信
  • 14.1.3HTTP
  • 14.2最坏案例场景:截获所有数据内容
  • 14.2.1协议隧道
  • 14.2.2DNS
  • 14.2.3ICMP
  • 14.2.4外围设备问题
  • 14.3Windows TCPIP栈
  • 14.3.1Windows Sockets 2
  • 14.3.2原始套接字
  • 14.3.3Winsock内核API
  • 14.3.4NDIS
  • 14.3.5不同任务使用不同的工具
  • 14.4DNS隧道
  • 14.4.1DNS查询
  • 14.4.2DNS应答
  • 14.5DNS隧道:用户模式
  • 14.6DNS隧道:WSK实现
  • 14.6.1初始化应用程序的上下文
  • 14.6.2创建内核模式套接字
  • 14.6.3确定本地传输地址
  • 14.6.4绑定套接字与传输地址
  • 14.6.5设置远程地址(C2客户端)
  • 14.6.6发送DNS查询
  • 14.6.7接收DNS应答
  • 14.7NDIS协议驱动程序
  • 14.7.1创建并运行NDISProt6.0示例
  • 14.7.2客户端代码概要
  • 14.7.3驱动程序代码概要
  • 14.7.4Protocol*()例程
  • 14.7.5缺失的特征
  • 14.8被动的隐秘通道
  • 第15章 转到带外
  • 15.1 附加处理器模式
  • 15.1.1系统管理模式
  • 15.1.2流氓管理程序
  • 15.1.3白帽成员对策
  • 15.1.4流氓管理程序与SMM rootkit
  • 15.2固件
  • 15.2.1主板BIOS
  • 15.2.2ACPI组件
  • 15.2.3扩展ROM
  • 15.2.4UEFI固件
  • 15.3远程管理设施
  • 15.4不太明显的备用方案
  • 15.4.1板载闪存
  • 15.4.2电路级伎俩
  • 15.5总结
  • 第四部分结 束 语
  • 第16章 rootkit之道
  • 16.1核心策略
  • 16.1.1尊重你的对手
  • 16.1.2五指穿心掌
  • 16.1.3忍耐强行夺取的欲望
  • 16.1.4研究你的目标
  • 16.2识别隐藏之门
  • 16.2.1对付专有系统
  • 16.2.2监视内核
  • 16.2.3重要特点:硬件是新软件
  • 16.2.4充分利用现有研究
  • 16.3建筑领域的训诫
  • 16.3.1首先加载,深度加载
  • 16.3.2为自主性而奋斗
  • 16.3.3Butler Lampson:策略与机制分离
  • 16.4设计rootkit
  • 16.4.1隐身与开发努力
  • 16.4.2使用定制工具
  • 16.4.3稳定性很重要:致力于最佳实践
  • 16.4.4逐步提高
  • 16.4.5容错移转:自我修复的rootkit
  • 16.5处理感染

资源下载

资源下载地址1:https://pan.baidu.com/s/1G0opPLAUmC20larlbrrZDQ

相关资源

网友留言