本书是畅销书《Python黑帽子:黑客与渗透测试编程之道》的再版,介绍Python是如何被运用在黑客和渗透测试的各个领域的:从基本的网络扫描到数据包捕获,从Web爬虫到编写Burp插件,从编写木马到权限提升等。书中的很多实例都很有启发意义,比如HTTP通信数据中的人脸图像检测,基于GitHub进行C&C通信的模块化木马,浏览器的中间人攻击,利用COM组件自动化技术窃取数据,通过进程监视和代码插入进行提权,通过向虚拟机内存快照插入shellcode实现木马驻留和权限提升等。学习这些实例,读者不仅能掌握各种Python库的应用和编程技术,还能拓宽视野,培养和锻炼自己的黑客思维。阅读本书时,几乎感受不到一般技术图书常有的枯燥和乏味。
与第1版相比,本次再版的大工程在于对示例代码的全方位升级。两位作者不仅将示例代码从Python 2升级到Python 3,还对编码风格进行了改善。此外,他们还用了一些从Python 3.6版本引入的新语法,并增补了一些新的知识点,比如上下文管理器的用法、BPF语法,等等。
本书适合有一定Python编程基础的安全爱好者、计算机从业人员阅读。对于正在学习计算机安全专业,立志从事计算机安全行业,成为渗透测试人员的人来说,本书更是不可多得的参考书。
Justin Seitz是一位业界知名的信息安全研究员、开源情报(OSINT)分析师,以及加拿大信息安全公司 Dark River Systems 的联合创始人。他所做的工作曾被Popular Science、Motherboard、《福布斯》等杂志报道。Justin撰写过两本讨论黑客工具开发的书,创立了开源情报训练平台AutomatingOSINT.com,还开发了一套开源情报收集软件Hunchly。此外,Justin还是独立调查组织Bellingcat的调查员、国际刑事法院的技术顾问,以及华盛顿高级国防研究中心(C4ADS)的受邀专家。
Tim Arnold是一位专业的Python程序员、统计学家。曾在北卡罗来纳州立大学工作多年,是一位备受尊敬的国际演讲者与教育工作者。曾在SAS公司任首席软件工程师,也是Raleigh ISSA协会成员、国际统计学会专家顾问。业余时间进行独立科普工作,向新用户讲解信息安全和Python知识,帮助他们掌握更艰深的技术。
译者:林修乐(Gh0u1L5),毕业于加拿大滑铁卢大学计算机系,曾任职于美国Yahoo Paranoids核心安全团队、华为加拿大滑铁卢信息安全实验室,参与Yahoo SSHCA等若干核心系统的研发。现任职于腾讯安全玄武实验室,从事隐私安全相关研究。业余时间常在知乎上科普信息安全知识,目前已累计获得900万阅读12万赞同。
前言
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所指的页面 上找到。
现在,让我们出发吧!
原:sniff(host)
应: IP.sniff(host)
1.第8章WINDOWS下木马常用功能中第152页的代码块缩进有误,keylogger.py的最后一个try语句后所有语句的缩进应减少一格。
2.第4章Scapy:网络的掌控者中第72页的代码中,缺少poison_victim.hwsrc = self.gatewaymac和poison_gateway.hwsrc = self.victimmac两行代码。