Rootkit:系统灰色地带的潜伏者

Rootkit:系统灰色地带的潜伏者
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , , , ,
2013-10
版次: 2
ISBN: 9787111441786
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 600页
正文语种: 简体中文
原版书名: The Rootkit Arsenal
77人买过
  •   《Rootkit:系统灰色地带的潜伏者》共分四部分。第一部分(第1~6章),全新阐释rootkit本质、rootkit与反取证关系、安全领域态势,以及反取证技术的策略、应对建议和攻击优势。之后,从硬件、软件(系统)、行业工具和内核空间方面介绍rootkit调查过程和利用反取证技术破坏调查过程的策略,使你对取证和反取证有全新了解。第二部分(第7~8章),主要介绍rootkit如何阻止磁盘分析和可执行文件的分析,而调查人员如何利用有效的工具和策略来分析辅助存储器(例如磁盘分析、卷分析、文件系统分析以及未知二进制分析)中可能留下的rootkit痕迹,并对内存驻留和多级释放器技术及用户态Exec(UserlandExec)理念进行了深入剖析。第三部分(第9~15章)主要详解攻击者利用rootkit破坏数据收集过程和造成“一切安好”的假象的前沿实用策略:阻止在线取证、内核模式策略、更改调用表、更改代码、更改内核对象、创建隐秘通道和部署带外rootkit。第四部分(第16章),高屋建瓴地重新总结了rootkit的核心策略,以及如何识别隐藏的rootkit、注意事项和如何处理感染等。
      Bill Blunden,资深计算机安全专家,从事相关研究10余年,对rootkit有非常深入的研究。目前从事网络安全设备代码和ERP中间件的相关工作。活跃于计算机安全类社区,常与计算机安全领域多名世界级安全专家交流探讨。在学术生涯中走过不少弯路,因此对计算机安全有异于常人的观察角度和体会。
    译者序
    献给“孙悟空”
    前言

    第一部分基础知识

    第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处理感染
  • 内容简介:
      《Rootkit:系统灰色地带的潜伏者》共分四部分。第一部分(第1~6章),全新阐释rootkit本质、rootkit与反取证关系、安全领域态势,以及反取证技术的策略、应对建议和攻击优势。之后,从硬件、软件(系统)、行业工具和内核空间方面介绍rootkit调查过程和利用反取证技术破坏调查过程的策略,使你对取证和反取证有全新了解。第二部分(第7~8章),主要介绍rootkit如何阻止磁盘分析和可执行文件的分析,而调查人员如何利用有效的工具和策略来分析辅助存储器(例如磁盘分析、卷分析、文件系统分析以及未知二进制分析)中可能留下的rootkit痕迹,并对内存驻留和多级释放器技术及用户态Exec(UserlandExec)理念进行了深入剖析。第三部分(第9~15章)主要详解攻击者利用rootkit破坏数据收集过程和造成“一切安好”的假象的前沿实用策略:阻止在线取证、内核模式策略、更改调用表、更改代码、更改内核对象、创建隐秘通道和部署带外rootkit。第四部分(第16章),高屋建瓴地重新总结了rootkit的核心策略,以及如何识别隐藏的rootkit、注意事项和如何处理感染等。
  • 作者简介:
      Bill Blunden,资深计算机安全专家,从事相关研究10余年,对rootkit有非常深入的研究。目前从事网络安全设备代码和ERP中间件的相关工作。活跃于计算机安全类社区,常与计算机安全领域多名世界级安全专家交流探讨。在学术生涯中走过不少弯路,因此对计算机安全有异于常人的观察角度和体会。
  • 目录:
    译者序
    献给“孙悟空”
    前言

    第一部分基础知识

    第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处理感染
查看详情
系列丛书 / 更多
Rootkit:系统灰色地带的潜伏者
Wireshark网络分析就这么简单
林沛满 著
Rootkit:系统灰色地带的潜伏者
代码审计:企业级Web代码安全架构
尹毅 著
Rootkit:系统灰色地带的潜伏者
Metasploit渗透测试魔鬼训练营
诸葛建伟、陈力波、田繁 著
Rootkit:系统灰色地带的潜伏者
Web之困:现代Web应用安全指南
[美]Michal Zalewski 著;朱筱丹 译
Rootkit:系统灰色地带的潜伏者
软件定义安全:SDN/NFV新型网络的安全揭秘
刘文懋、裘晓峰、王翔 著
Rootkit:系统灰色地带的潜伏者
信息安全技术丛书:密码旁路分析原理与方法
郭世泽、王韬、赵新杰 著
Rootkit:系统灰色地带的潜伏者
社会化媒体与企业安全:社会化媒体的安全威胁与应对策略
[美]Gary、Jason、Alex de 著
Rootkit:系统灰色地带的潜伏者
暗渡陈仓:用低功耗设备进行破解和渗透测试
[美]菲利普·布勒斯特拉 著;桑胜田 译
Rootkit:系统灰色地带的潜伏者
iOS应用逆向工程 第2版
沙梓社、吴航 著
Rootkit:系统灰色地带的潜伏者
信息安全技术丛书:信息系统安全等级保护实务
李超、李秋香、何永忠 编
Rootkit:系统灰色地带的潜伏者
防患未然:实施情报先导的信息安全方法与实践
[美]艾伦·利斯卡(AllanLiska) 著;姚军 译
Rootkit:系统灰色地带的潜伏者
基于信号处理的低速率拒绝服务攻击的检测技术
吴志军、岳猛 著
相关图书 / 更多
Rootkit:系统灰色地带的潜伏者
Rohen人体标本解剖图谱(第9版)
[德]埃尔克·吕特延-德雷科尔 著;欧阳钧 译;[德]约翰内斯·罗恩;[日]横地千寻
Rootkit:系统灰色地带的潜伏者
RocketMQ实战
丁威 梁勇
Rootkit:系统灰色地带的潜伏者
Rootkit和Bootkit:现代恶意软件逆向分析和下一代威胁
[美]亚历克斯·马特罗索夫 (美)尤金·罗季奥诺夫 (美)谢尔盖·布拉图斯
Rootkit:系统灰色地带的潜伏者
RobotFramework自动化测试精解
刘云 著
Rootkit:系统灰色地带的潜伏者
RoyalMarsden癌症护理精要
Lisa Dougherty(英) 著;[英]Sara Lister、纪光伟、许平、刘垠良 译
Rootkit:系统灰色地带的潜伏者
Rong聚法大:新闻宣传中的思政实践创新
李秀云
Rootkit:系统灰色地带的潜伏者
Rock fracture mechanics: cracking visualization, analysis and applications(岩石断裂力学:断裂过程可视化、分析及应用)
潘鹏志
Rootkit:系统灰色地带的潜伏者
Robust gain-scheduling estimation and control of electrified vehicles via LPV technique
张辉;王荣蓉;王俊敏
Rootkit:系统灰色地带的潜伏者
RoboCup小型组足球机器人路径规划关键技术的理论与实践
杨莉;舒军
Rootkit:系统灰色地带的潜伏者
RocketMQ技术内幕:RocketMQ架构设计与实现原理(第2版)
丁威;张登;周继锋
Rootkit:系统灰色地带的潜伏者
Rossby 孤立波理论模型及演化机制分析
张瑞岗 著;陈利国;刘全生
Rootkit:系统灰色地带的潜伏者
RocketMQ分布式消息中间件:核心原理与最佳实践
李伟 著
您可能感兴趣 / 更多
Rootkit:系统灰色地带的潜伏者
无辜者的谎言(相信我!看到结局你一定会头皮发麻;全美读者推荐的悬疑神作,GOODREADS高分作品)
[美]A.R.托雷 著;梁颂宇 译;星文文化 出品
Rootkit:系统灰色地带的潜伏者
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
Rootkit:系统灰色地带的潜伏者
哲学、历史与僭政——重审施特劳斯与科耶夫之争
[美]弗罗斯特(Bryan-Paul Frost) 编;[美]伯恩斯(Timothy W. Burns)
Rootkit:系统灰色地带的潜伏者
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
Rootkit:系统灰色地带的潜伏者
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
Rootkit:系统灰色地带的潜伏者
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
Rootkit:系统灰色地带的潜伏者
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
Rootkit:系统灰色地带的潜伏者
最后一章
[美]厄尼·派尔
Rootkit:系统灰色地带的潜伏者
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
Rootkit:系统灰色地带的潜伏者
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
Rootkit:系统灰色地带的潜伏者
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
Rootkit:系统灰色地带的潜伏者
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译