推荐序

从我为轰动一时的《Python黑帽子:黑客与渗透测试编程之道》(第1版)作序以来,已经过去6年了。这些年,世界变了不少,但有一件事始终没变:我每天还是要写一大堆Python代码。在计算机安全领域,为了应付各式各样的任务,你每天仍要跟用各种语言编写的工具打交道,比如用C语言写的内核漏洞利用程序,用JavaScript写的JavaScript fuzzer,或是用Rust之类的“花哨”语言写的代理。然而,Python依然是这个圈子里的“得力干将”。在我看来,它仍是最易上手的编程语言,有数不胜数的第三方库;如果需要快速编写代码完成复杂任务,轻松地化繁为简,那么Python是最佳选择。有大量的安全工具和漏洞利用程序仍然是用Python编写的,比如CANVAS这样的漏洞利用框架,以及Sulley这样经典的fuzzer。

在《Python黑帽子:黑客与渗透测试编程之道》(第1版)发行之前,我就已经用Python写过许多fuzzer和漏洞利用程序(攻击代码),攻击过的目标包括Mac OS上的Safari浏览器、苹果手机、安卓手机,甚至还有游戏《第二人生》(你可能需要上网搜一搜这个游戏)。

我还跟Chris Valasek一起写过一段挺特别的攻击代码,它能够远程感染包括2014款Jeep切诺基在内的多款车型。这段攻击代码当然也是用Python写的(基于dbus-python模块)。我们开发了大量工具,能够在感染车辆之后远程控制它的方向盘、刹车和油门。上述这些工具,也全部是用Python开发的。从某种意义上,你甚至可以说是Python害菲亚特克莱斯勒公司召回了140万辆汽车。

如果你喜欢做一些“修修补补”类的信息安全小项目,那么Python是一门非常值得学习的语言,因为Python中有大量的逆向工程框架、漏洞利用框架供你使用。现在,只要那帮Metasploit开发者能恢复神智,弃Ruby投Python,我们的开发者社区就能迎来统一。

此次对这本经典书的升级,Justin和Tim把书里的所有代码都更新到Python 3版本。就个人而言,我是个想要死守Python 2的老顽固,但是当所有第三方库都升级到Python 3时,我也得去接受它。这个新版很好地覆盖了大量知识点,它们都是摩拳擦掌的年轻黑客们入门必备的知识,从如何收发网络数据包,到网络应用审计/攻击所需的各项技能,应有尽有。

总之,《Python黑帽子:黑客与渗透测试编程之道》(第2版)是一本由从业多年的专家精心撰写的好书,无私分享了他们一路走来学到的许多诀窍。也许它不会让你马上变成像我一样的绝世高手,但它绝对能够让你走上一条正确的道路。

记住,脚本小子和职业黑客之间最大的区别,就是前者只会用别人写的工具;而后者,能创造自己想要的一切。

Charlie Miller
安全研究员
密苏里州圣路易斯