Python是一门常用的编程语言,它不仅上手容易,而且还拥有丰富的支持库。对经常需要针对自己所处的特定场景编写专用工具的黑客、计算机犯罪调查人员、渗透测试师和安全工程师来说,Python的这些特点可以帮助他们又快又好地完成这一任务,以极少的代码量实现所需的功能。本书结合具体的场景和真实的案例,详述了Python在渗透测试、电子取证、网络流量分析、无线安全、网站中信息的自动抓取、病毒免杀等领域内所发挥的巨大作用。
Python是一门优秀的黑客编程语言,复杂度低、效率高,入门门槛低。本书包含渗透测试、 Web 分析、网络分析、取证分析,以及利用无线设备等方面的 Python 攻击利用方法,案例丰富、深入浅出。不管你是刚开始学习Python程序的小白,还是一个具有丰富经验的渗透攻击高手,这本书都会给你非常大的帮助,引领你成为顶级的黑客高手.
译者序
Python是一门非常常用的编程语言,除应用在科学计算、大数据处理等人们熟知的领域外,在计算机安全领域中使用也非常广泛。这是因为对黑客、软件逆向工程师、电子取证人员来说,Python与C/C++语法上的相似性使它上手十分容易。
本人大约在2008年通过IDAPython接触到了Python语言。相对于IDA自带的IDC脚本来说,IDAPython的功能非常强大,可以很方便地搞定用IDC完成起来很麻烦的一些工作;而相对于用C/C++开发IDA插件,IDAPython使用非常灵活,要写的代码量也少了很多,当时感觉真是“出门在外、居家旅行、杀人越货之必备良药”。当时,Immunity Debugger等各种常用工具也都支持Python脚本,甚至出现了纯用Python打造的计算机内存取证分析工具——Volatility。
2010年,我应丁赟卿之邀,成为他翻译的大作《Python灰帽子:黑客与逆向工程师的Python编程之道》一书的技术审校,审校的过程也使我对Python在安全领域所能发挥的作用有了更深刻的理解。但美中不足的是,该书仅仅介绍了在一些调试器、反汇编器等安全专用工具中Python的使用方法,甚至可以说它只是对一些专用的Python库的介绍。当然,这些很重要,但除此之外,Python的强大功能应该能在更多的场景下发挥作用。
应该说这本Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers(《Python绝技:运用Python成为顶级黑客》)确实是填补了这方面的空白:书中结合具体的场景,甚至是真实的案例,详述了Python在渗透测试、电子取证、网络流量分析、无线安全、网站中信息的自动抓取、病毒免杀等领域内的用途。每一章都针对一个专门的领域,完全用Python完整实现了非常实用的功能,而且代码量非常少。
本书在国外Amazon网站上的评价也非常高——76个用户评价,得分4星半,是很高的分数。
全书由上海公安高等专科学校基础教研部的教师教官翻译完成,全书共7章,分工安排如下:
第1、2章由武晓音翻译,第3章由崔孝晨翻译,第4章由吴杰丽翻译,第5章由孙蓓翻译,第6章由王宏翻译,第7章由龚济悦翻译。全书由崔晓晨统一审校。
本书中文版的面世要感谢博文视点的各位编辑老师,特别是李利健、刘皎老师,感谢你们对我的一贯支持和耐心指导,使我从中获益良多!同时也要感谢你们为本书的出版所花费的大量时间!
由于翻译时间仓促,书中的错误在所难免,敬请读者不吝指正。
崔孝晨
2015年10月
致谢
军事用语中,“观察你的六点钟方向”意思是说要你注意后方。当小队长在观察十二点钟方向的情况时,小队中至少应该有一名队员转向后方,观察六点钟方向有无小队长无法观测到的敌情。当我第一次去找出版本书的指导老师时,他就告诫我:在我的队友专注于观察我的六点钟方向时,我能做的唯一一件事就是:也好好地看着他的六点钟方向。我当时略加思索,付出这么大的努力对我这一生会有什么回报?三秒钟之后,我意识到:他们都是很棒的。
感谢我的技术编辑——Mark Baggett,你兢兢业业的技术校订保证了这本书的质量。感谢Reeves博士、Freeh博士、Jacoby博士和Blair博士——感谢你们对一个年轻急躁的军官的多年栽培,把我变成了这么一名能写出一本书的非传统学者。感谢Fanelli博士,感谢您教导我:神明变化之才,必出于规矩方圆之手,踏实打好基础,别老想着不走寻常路。感谢Conti博士,感谢您总是及时地引导我大胆采取行动。感谢我的同窗校友,特别是“忍者”社团的Alan、Alex、Arod、Chris、Christina、Duncan、Gremlin、Jim、James、Kevin、Rob、 Steven、Sal和Topher——你们的创新不断地激发着我的灵感。
感谢Rob Frost,你写的“网络侦查”那一章比我写的强太多了!感谢Matt、Ryan、Kirk、Mark、Bryan和Bill,感谢你们理解我之前为什么整晚不睡觉,眼瞅着时针从1走到12。感谢我深爱的妻子,我调皮的儿子和我的忍者公主——感谢你们在我写本书的过程中,给我无条件的爱、理解和支持。感谢我的父母——感谢你们对我价值观的教育。最后还要感谢Cook博士——上战车,兄弟!
献给
我调皮的儿子和我的忍者公主:只要你足够努力,万事皆有可能。
领衔作者——TJ O’Connor
TJ O'Connor是一位就职于信息安全部门的防御专家,同时他还是一名美军伞兵。在做美国军事学院的助理教授期间,他给本科生上的是电子取证/漏洞利用和信息确认等课程。他参与执教的参赛队曾两度在国家安全局举办的年度电子防御练习赛获胜,并曾经在(美国)国防大学举办的首届年度电子挑战赛获胜。他自己也曾参加过多个红队,包括在全美大学生网络防御大赛中两次效力于东北区域联队。
TJ在北卡罗来纳州立大学中获得了计算机科学的理学硕士学位,然后又在SANS理工学院获得了信息安全工程的理学硕士学位,并且在美国军事学院获得了计算机科学的理学学士学位。他曾经在USENIX workshop、ACM会议、安全会议、SANS Reading Room、Internet storm center、《军事杂志》(Army Magazine)、《军事力量》(Armed Forces Journal)杂志上发表过技术研究成果。此外,他还拥有多张电子安全专家证书,其中包括声名卓著的GIAC安全专家和OSCE(OffensiveSecurityCertifiedExpert)。TJ还是SANS电子空间防护红队和蓝队的骨干之一。
参编作者——Robert Frost
2011年Robert Frost毕业于美国军事学院,随后成为一名陆军通讯兵。他以优异的成绩获得了计算机科学的理学学士学位,其毕业论文主要关注于开源信息的收集。在2011年度电子防御练习赛中,由于他规避规则的能力,Rob个人被公认为国家锦标赛团队中最优秀的两名成员之一。Rob也参加并赢得了多次电子安全竞赛。
技术编辑——Mark Baggett
Mark Baggett是SANS的认证讲师,担任了SANS的渗透测试课程体系中多门课程的授课任务。Mark是提供应急响应和渗透测试服务的深度防御公司的首席顾问和创始人。目前他是SANS防御部门的技术指导教师,专注于把SANS的资源实际应用于提升军事能力的方向。
Mark在跨国公司和财富1000强企业中拥有多个信息安全职位。他曾经是一名软件开发者、网络和系统工程师、安全管理员和CISO(首席信息安全官)。作为一名首席信息安全官,Mark对信息安全策略的制定、遵守情况、应急事件的响应,以及其他信息安全操作负责。Mark掌握当前在销售、实现和支持信息安全时,信息安全专家所面临挑战的第一手资料。Mark也是信息安全社区中的一名活跃成员,是Greater Augusta ISSA的创始人兼总裁。他拥有包括SANS声誉卓著的GSE在内的多张认证证书。Mark的个人博客中对多个安全主题均有涉猎,其地址为:http://www.pauldotcom.com。
前言
Python是黑客的语言,具有低复杂度、高效率和几乎无限多的第三方库,入门门槛低,拥有这一切的Python为你编写自己的攻击工具提供了一个极好的开发平台。如果你使用的是Mac OS X或Linux,那么还有个额外的优势——它已经在系统中预装好了。尽管已经有了很多攻击工具,但学习Python仍有助于你应付那些现有工具无法对付的困难情况。
目标读者
尽管每个人的基础不尽相同,但无论你是一个有意学习如何编写Python程序的菜鸟,还是一个想学习怎样把自己的技术运用在渗透测试中的编程老手。这本书都适合你。
本书组织结构
在写本书的过程中,我们确实是想把它写成一本以Python黑暗面案例构成的暗黑秘籍。接下来的内容中提供了渗透测试、Web分析、网络分析、取证分析,以及利用无线设备等方面的Python操作清单。我希望这些例子能够激发起读者编写自己的Python脚本的热情。
第1章:入门
如果你之前没有Python编程经验,第1章将提供关于这一语言、变量、数据类型、函数、迭代、语句块和如何使用模块等背景信息,并通过编写一些简单的程序系统地学习它们。如果你已经能够完全驾驭Python编程语言,则完全可以跳过本章。在第1章之后的各章之间几乎都是独立的,你完全可以根据自己的喜好决定阅读的顺序。
第2章:用Python进行渗透测试
第2章中介绍使用Python编程语言在渗透测试中进行脚本化攻击的思想。本章中的例子包括编写一个端口扫描器,构建一个SSH僵尸网络,通过FTP进行“批量入侵”(mass-compromising),重新写一个“Conficker”病毒,以及编写一段漏洞利用代码(exploit)。
第3章:用Python进行取证调查
第3章介绍用Python进行电子取证。本章中的例子包括确定计算机的地理位置信息、恢复被删除的数据、从Windows注册表中提取键值。检查文档和图片中的元数据,以及检查应用程序和移动设备备份文件中记录的信息。
第4章:用Python进行网络流量分析
第4章介绍使用Python分析网络流量。本章涉及的脚本有:从抓包文件中IP地址对应的地理位置,调查流行的DDoS工具包、发现诱骗扫描(decoy scan),分析僵尸网络的流量及挫败入侵检查系统。
第5章:用Python进行无线网络攻击
本章的例子展示了如何嗅探和解析无线流量、编写无线键盘记录器、识别隐藏的无线网络、远程控制无人驾驶飞行器(Unmanned Aerial Vehicles,UAV)、识别出正在被使用的恶意无线工具包、追踪蓝牙设备,以及编写蓝牙漏洞的利用代码。
第6章:用Python刺探网络
第6章演示了使用Python刺探网络获取信息的技术。本章的例子包括通过Python匿名浏览网络、利用开发API工作、在流行的社交网站上收集信息以及生成钓鱼邮件。
第7章:用Python实现免杀
在最后一章,也就是第7章中,我们要编写一段能逃避杀毒软件检测的恶意软件。另外,我们还要写一个脚本把我们的恶意软件上传到一个在线病毒扫描器上,验证它是否真能做到免杀。
本书的Web站点
本书涉及的所有代码都被放在了本书的Web站点上。读者可以在阅读本书时访问http://www.elsevierdirect.com/companion.jsp?ISBN=9781597499576下载代码、分析样本,以及进行网络抓包文件。