我为了进行黑客技术研究而特地学习了Python这门语言,我敢断言在这个领域中的众多其他同行们也是如此。我曾经花费了大量的时间来寻找一种能够同时适用于黑客技术和逆向工程领域的编程语言,就在几年前,Python成为了黑客编程领域内显而易见的王者。而一个不尽人如意的事实是,到目前为止还没有一本真正意义上的参考手册,来指导你将Python应用于不同的黑客技术场景中。你往往需要游走于各大论坛的技术讨论帖子中或者各种工具手册中。有时为了使你的工具能够正确地运转起来,花费一番不小的功夫来阅读和调试源代码也是司空见惯的情况。而本书正是致力于填补这方面的空缺,将引领你经历一次“旋风”之旅——你将看到Python这门语言是如何被应用在各式各样的黑客技术与逆向工程场景中的。
本书将向你揭示隐藏在各种黑客工具背后的原理机制,其中包括:调试器、后门技术、Fuzzer、仿真器以及代码注入技术,本书将向你一 一演示如何驾驭这些技术工具。除了学到如何使用现有的基于Python的工具之外, 你还将学习如何使用Python构建自己的工具。需要有言在先的一点就是,这并不是一本大全式的参考手册!有大量使用Python编写的信息安全类工具未在此书中被提及。本书的信条是授之以渔,而非授之以鱼!你应当把从本书中所获得的技能灵活地应用于其他的场景中,根据自身的需求对你选择的其他Python工具进行调试,并做出扩展和定制。
阅读本书的方式不仅限于一种,如果你是个Python新手或者对于构建黑客工具尚感陌生,那么从前往后依次阅读对你来说是最好的选择,你将从最基本的理论开始,并在阅读本书的过程中编写相当数量的Python代码。当你阅读完本书时,你应当具备了自行解决各种黑客或逆向工程任务的能力。如果你对Python已有一定程度的了解,并且对Ctype库的使用驾轻就熟,那么不妨直接跳过第1章。对于那些行业浸沉已久的老手,相信你们可以在本书中来回穿梭自如,欢迎你们在日常工作中随时按需撷取本书中的代码片段或者相关章节。
本书在调试器相关的内容上花费了相当的篇幅,从第2章讲述调试器的基本原理开始,直至第5章介绍完Immunity Debugger为止。调试器对于任何一个真正的黑客而言都是至关重要的工具,因此我毫不吝惜笔墨来对它们进行广泛而全面的介绍。在之后的第6章和第7章中你将学到一些钩子和代码注入的技术,这些技术同样可以被调试器工具采用,作为控制程序流和 *** 纵内存的手段。
本书接下来的焦点放在使用Fuzzer工具来攻破应用程序体系上。在第8章中,你将开始学习基本的Fuzzing技术理论,我们将构建自己的文件Fuzzing工具。第9章将向你演示如何驾驭强大的Fuzzing框架——Sulley来攻破一个现实世界中的FTP daemon程序。在第10章中,你将学习如何构建一个Fuzzer工具来攻击Windows驱动。
在第11章中,你将看到如何在IDA Pro中(一款流行的二进制静态分析工具)实现自动化执行静态分析任务。在第12章中,我们将介绍一款基于Python的仿真器——PyEmu,来为本书画上句号。
我试着使出现在本书中的代码尽量简洁,并在某些特定的地方加上了详细的注释以帮助你理解代码的本质。学习一门新的编程语言或者掌握一套陌生的函数库的过程少不了你自己的亲身实践,以及不断的自我纠正。
内容简介
《Python灰帽子》是由知名安全机构Immunity Inc的资深黑帽Justin Seitz主笔撰写的一本关于编程语言Python如何被广泛应用于黑客与逆向工程领域的书籍。老牌黑客,同时也是Immunity Inc的创始人兼首席技术执行官(CTO)Dave Aitel为这本书担任了技术编辑一职。书中绝大部分篇幅着眼于黑客技术领域中的两大经久不衰的话题:逆向工程与漏洞挖掘,并向读者呈现了几乎每个逆向工程师或安全研究人员在日常工作中所面临的各种场景,其中包括:如何设计与构建自己的调试工具,如何自动化实现烦琐的逆向分析任务,如何设计与构建自己的fuzzing工具,如何利用fuzzing 测试来找出存在于软件产品中的安全漏洞,一些小技巧诸如钩子与注入技术的应用,以及对一些主流Python安全工具如PyDbg、 Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介绍。作者借助于如今黑客社区中备受青睐的编程语言 Python引领读者构建出精悍的脚本程序来一一应对上述这些问题。出现在书中的相当一部分Python代码实例借鉴或直接来源于一些优秀的开源安全项目,诸如Pedram Amini的Paimei,由此读者可以领略到安全研究者们是如何将黑客艺术与工程技术优雅融合来解决那些棘手问题的。
:《Python教程》
作者简介
Justin Seitz是一名Immunity公司的高级安全研究员,他在以往的工作中花费了大量的时间从事漏洞挖掘、逆向工程、编写漏洞利用以及编写Python代码的研究。
目录
第1章 搭建开发环境 1
11 *** 作系统要求 1
12 获取和安装Python 25 2
121 在Windows下安装Python 2
122 在Linux下安装Python 2
13 安装Eclipse和PyDev 4
131 黑客挚友:ctype库 5
132 使用动态链接库 6
133 构建C数据类型 8
134 按引用传参 9
135 定义结构体和联合体 9
第2章 调试器原理和设计 12
21 通用寄存器 13
22 栈 15
23 调试事件 17
24 断点 18
241 软断点 18
242 硬件断点 20
243 内存断点 22
第3章 构建自己的Windows调试器 24
31 Debugee,敢问你在何处 24
32 获取寄存器状态信息 33
321 线程枚举 34
322 功能整合 35
33 实现调试事件处理例程 39
34 无所不能的断点 44
341 软断点 44
342 硬件断点 49
343 内存断点 55
35 总结 59
第4章 PyDbg——Windows下的纯Python调试器 60
41 扩展断点处理例程 60
42 非法内存 *** 作处理例程 63
43 进程快照 66
431 获取进程快照 67
432 汇总与整合 70
第5章 Immunity Debugger——两极世界的最佳选择 74
51 安装Immunity Debugger 74
52 Immunity Debugger 101 75
521 PyCommand命令 76
522 PyHooks 76
53 Exploit(漏洞利用程序)开发 78
531 搜寻exploit友好指令 78
532 “坏”字符过滤 80
533 绕过Windows 下的DEP机制 82
54 破除恶意软件中的反调试例程 87
541 IsDebuugerPresent 87
542 破除进程枚举例程 88
第6章 钩子的艺术 90
61 使用PyDbg部署软钩子 90
62 使用Immunity Debugger部署硬钩子 95
第7章 DLL注入与代码注入技术 101
71 创建远程线程 101
711 DLL注入 102
712 代码注入 105
72 遁入黑暗 108
721 文件隐藏 109
722 构建后门 110
723 使用py2exe编译Python代码 114
第8章 Fuzzing 117
81 几种常见的bug类型 118
811 缓冲区溢出 118
812 整数溢出 119
813 格式化串攻击 121
82 文件Fuzzer 122
83 后续改进策略 129
831 代码覆盖率 129
832 自动化静态分析 130
第9章 Sulley 131
91 安装Sulley 132
92 Sulley中的基本数据类型 132
921 字符串 133
922 分隔符 133
923 静态和随机数据类型 134
924 二进制数据 134
925 整数 134
926 块与组 135
93 行刺WarFTPD 136
931 FTP 101 137
932 创建FTP协议描述框架 138
933 Sulley会话 139
934 网络和进程监控 140
935 Fuzzing测试以及Sulley的Web界面 141
第10章 面向Windows驱动的Fuzzing测试技术 145
101 驱动通信基础 146
102 使用Immunity Debugger进行驱动级的Fuzzing测试 147
103 Driverlib——面向驱动的静态分析工具 151
1031 寻找设备名称 152
1032 寻找IOCTL分派例程 153
1033 搜寻有效的IOCTL控制码 155
104 构建一个驱动Fuzzer 157
第11章 IDAPython——IDA PRO环境下的Python脚本编程 162
111 安装IDAPython 163
112 IDAPython函数 164
1121 两个工具函数 164
1122 段(Segment) 164
1123 函数 165
1124 交叉引用 166
1125 调试器钩子 166
113 脚本实例 167
1131 搜寻危险函数的交叉代码 168
1132 函数覆盖检测 169
1133 检测栈变量大小 171
第12章 PYEmu——脚本驱动式仿真器 174
121 安装PyEmu 174
122 PyEmu概览 175
1221 PyCPU 175
1222 PyMemory 176
1223 PyEmu 176
1224 指令执行 176
1225 内存修改器与寄存器修改器 177
1226 处理例程(Handler) 177
123 IDAPyEmu 182
1231 函数仿真 184
1232 PEPyEmu 187
1233 可执行文件加壳器 188
1234 UPX加壳器 188
1235 利用PEPyEmu脱UPX壳 189
他是一款基于黑盒专门针对网络协议进行Fuzzing 的安全性/健壮性测试平台。
codenomicon是检测未知漏洞的最佳手段。在安全攻防体系中充当攻防的角色,最大程度的暴露被测对象的漏洞。
区别于流行安全扫描和漏洞检测工具,Denfensics并不基于漏洞库或者漏洞特征,而是通过特有的fuzzing建模技术构造海量畸形数据,已达到挖掘深层次漏洞的目的。
漏洞描述:
Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。
攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
codenomicon是一款基于黑盒专门针对网络协议进行Fuzzing 的安全性/健壮性测试平台。
codenomicon是检测未知漏洞的最佳手段。在安全攻防体系中充当攻防的角色,最大程度的暴露被测对象的漏洞。区别于流行安全扫描和漏洞检测工具,Denfensics并不基于漏洞库或者漏洞特征,而是通过特有的fuzzing建模技术构造海量畸形数据,已达到挖掘深层次漏洞的目的。
漏洞描述
Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。
攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
以上就是关于黑客与逆向工程师的Python编程之道的简介全部的内容,包括:黑客与逆向工程师的Python编程之道的简介、python灰帽子讲的什么、codenomicon协议测试涉及哪些方面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)