前言
Python黑客、Python程序员,随便你怎么称呼我们。Justin大部分的时间都在做渗透测试,这项工作要求快速开发出各种Python工具,并以最终成果为导向,不一定兼顾美观、性能,甚至稳定性之类的细节。而Tim的口头禅则是“先让代码能用,然后使其易懂、高效”。如果你的代码写得简洁漂亮,不仅能方便别人读懂,你自己隔了几个月再看也会很轻松。通过阅读本书,你将了解我们的编程风格:我们以实现各种又快又脏的巧妙方案为最终目标,而编写干净易懂的代码是我们抵达这个目标的手段。希望这种编程哲学和风格也能对你有所帮助。
自《Python黑帽子:黑客与渗透测试编程之道》(第1版)问世以来,Python世界发生了不小的变化。Python 2于2020年1月被停止维护,Python 3成为目前编程与教学的推荐环境。因此,在本书中我们将所有代码迁移到Python 3,并用上了最新的包与第三方库。我们还用了一些Python 3.6和Python 3以上的版本才引入的语法,比如Unicode字符串、上下文管理器、f-string等。最后,我们还在本书中增补了一些编码和网络编程的知识点,比如上下文管理器的用法、BPF语法,以及ctypes和struct库的比较等。
在阅读本书的过程中,你会发现每个知识点都没有讲太深,这是我们有意为之的。我们希望教你一些基础知识,再加一点简单的技巧,为你进入黑客开发领域打下基础。与此同时,我们在本书里塞了不少拓展阅读材料、有趣的想法和课后作业,以此来启发你找到自己的方向。我们鼓励你去实践这些想法,也欢迎你分享“造轮子”的体验。
像所有技术图书一样,本书会带给不同水平的读者相当不同的体验。有的人可能只需要翻看自己急需的内容,而有的人则需要从头到尾读完全书。如果你是一名初级至中级水平的Python程序员,建议你按章节顺序通读本书,这个过程能让你学到不少东西。
作为开场,我们将在第2章介绍网络方面的基础知识,在第3章仔细讲原始socket,在第4章介绍如何使用Scapy开发有趣的网络工具。之后我们将讨论如何攻击Web应用。在第5章我们会先教你编写一些典型的Web黑客工具,然后在第6章用鼎鼎大名的Burp Suite来编写一些攻击插件。再接下来,我们花大量的篇幅讨论木马,从第7章的基于GitHub服务的C&C通信,一直讲到第10章的Windows提权技术。在最后一章我们学习Volatility内存取证库,它既能帮你理解防守方是如何思考的,又能让你明白如何以子之矛,攻子之盾。
我们会尽可能地让书中的代码样例及解释说明文字保持简明扼要的风格。如果你刚刚开始接触Python,建议你动手敲书里的每一行代码,好好锻炼一下写代码的手感。书中的所有源代码都可以在链接1所指的页面[1]上找到。
现在,让我们出发吧!
[1]请访问http://www.broadview.com.cn/43069下载本书提供的附加参考资料,如正文中提及参见“链接1”“链接2”等时,可在下载的“参考资料.pdf”文件中查询。