科技>计算机>信息安全
Python绝技:运用Python成为顶级黑客

Python绝技:运用Python成为顶级黑客"

作者:崔孝晨,武晓音等
ISBN:9787121277139
定价:¥79.0
字数:325千字
页数:264
出版时间:2015-12
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

Python是一门常用的编程语言,它不仅上手容易,而且还拥有丰富的支持库。对经常需要针对自己所处的特定场景编写专用工具的黑客、计算机犯罪调查人员、渗透测试师和安全工程师来说,Python的这些特点可以帮助他们又快又好地完成这一任务,以极少的代码量实现所需的功能。本书结合具体的场景和真实的案例,详述了Python在渗透测试、电子取证、网络流量分析、无线安全、网站中信息的自动抓取、病毒免杀等领域内所发挥的巨大作用。

前言

序一 在我从事信息安全技术研究学习的近20年间,带领过不少安全团队,发现编程能力是真正黑客和“脚本小子”的本质区别,在安全研究人员和希望成长为黑客高手的技术爱好者们的成长过程中一直面临着一个编程语言的选择问题,但是Python在黑客领域拥有着霸主的地位。在XCon召开的这15年中,Python被越来越多地应用,越来越多的优秀黑客工具和安全工具都是用Python开发的,Python已经发展成为和C/C++一样作为黑客必备的技能之一。 Python是一门非常优秀的主流编程语言,拥有用户友好的语法和大量的第三方模块。它提供了一个更好的支撑平台,能明显平缓大多数程序员初学攻击技术时的学习曲线。这本书涵盖了黑客、渗透测试人员、取证分析师和安全工程师需要具备的很多技巧。 Python是一门优秀的黑客编程语言,复杂度低、效率高,入门门槛低,尽管已经有了很多攻击工具,但Python为编写你自己的攻击工具提供了一个极好的开发平台,仍然对解决某些特定条件下那些已有工具无法处理的问题。这本书的特点是剖析技巧的本质,使用Python内置模块和优秀的第三方模块来完成,并通过众多实例引领读者更好地体会理解Python的技巧和用法。 本人与本书译者相识相交多年,亦师亦友。我们经常在一起讨论交流技术,探讨发展,对译者的技术水平和经验能力是非常认可与钦佩的,也多次邀请他来XCon和XKungfoo进行演讲并分享技术,每每演讲都是博得广大技术高手的赞扬与认可。从此书中可以看出,作者在攻防、取证和编程多反面的深厚功底,也可以看出译者在这方面的超强能力和丰富经验。这本书包含渗透测试、Web分析、网络分析、取证分析,以及利用无线设备等方面的 Python 攻击利用方法,并且书中采用的实例都会深入浅出地讲解说明Python该如何帮助你实现各种攻击的方法。不管你是刚开始学习Python程序的小白,还是一个具有丰富经验的渗透攻击高手,这本书都会给你非常大的帮助,引领你成为顶级的黑客高手。 在我创办的“神话——信息安全人才颠覆行动”中,Python是我们的必修课之一。本书将会是我们“神话行动”学员学习的专业书籍之一。 王英键(呆神) XCon创始人,神话行动创始人,XFocus创始人之一 序二 作为一名安全研究从业人员,在日常工作中经常需要编写代码来解决一些简单的自动化文本处理、验证自己的某些推测、编写一套工具等。回眸大学时代,那时候不明白脚本语言的强大性,遇到任何问题一概用C语言来解决。久而久之,发现自己的研究进度总是比别人慢,有时候一些非常简单的字符串处理排版问题,用C语言一写就是几个小时,而用脚本几分钟就能搞定。在这之后,我逐渐开始改用VBScript作为我主要的脚本编写语言,并且在很长一段时间里满足了我绝大多数的需求。某天,当我接到一个应急响应任务,在Linux上做一些日志搜集分析时,已经理解脚本语言强大的快速开发能力的我,只能用非常愚蠢的办法——将日志复制到Windows上再处理,而就在那时,我已经感到,熟悉一门更加强大、跨平台的脚本语言迫在眉睫。自那之后,我逐渐接触了Perl,并且能够通过Perl来满足一些日常的需要。可是,Perl代码的可读性总是让我在看别人代码的时候显得毫无效率,在朋友的推荐下,我最终选择了Python。 Python是一门非常容易上手的脚本语言,相比Perl语言,我几乎是在完全不懂Python语法的情况下读懂了网上一些简单的Python代码,在简单的语法学习之后,便可以事半功倍地满足日常需要。Python对于白帽黑客来说,也是必须掌握的一门脚本语言。相比其他脚本语言来说,其丰富的库几乎可以覆盖安全研究的方方面面,例如:强大的Scapy库可以很方便地实现跨平台的网络嗅探、网络发包等需求;文档分析工具PyPDF提供了强大的PDF格式解析功能,这些功能对PDF格式的Fuzz测试、PDF 0day的分析,甚至PDF Exploit的编写都起了极大的帮助。这样的例子还举不胜举,在我参加的两届Pwn2Own黑客大赛的准备过程中,我几乎天天和Python打交道。例如,在使用IDA分析一个OS X的服务时,编写一个IDA Python脚本可以将一些没有符号的接口提取出来进行测试,对函数进行Pattern筛选,找出可疑函数进行进一步代码审计;在Exploit Safari中,堆布局是非常关键的一环,lldb提供的Python接口可以很方便地对WebKit对象进行分析,对每个WebKit对象大小以及快速发现对象的可利用特性,对最终编写出完整的攻击代码起了决定性的作用。 虽然Python脚本上手容易,要迅速掌握其丰富的安全工具库并熟练运用绝非易事。我刚接触Python语言时,很多朋友就对我说过:Python是一门非常适合白帽黑客学习的语言,然而我却在很长一段时间里一知半解,用了几年时间理解了这句话的含义。多而杂的工具库需要时间和经验的积累,才能慢慢“吃透”和掌握。市面上的Python入门书籍虽然非常多,但真正从安全从业者角度深入浅出介绍的书籍几乎没有。本书的出现无疑给安全从业者带来了福音,对Python初学者来说,第1章内容可以使其迅速掌握Python语言。而之后的几章几乎涵盖了安全研究的每个方面,并且配以近几年比较热门的案例(例如:LOIC、Conficker等),无论你是进行漏洞研究还是取证分析、渗透测试、DDoS对抗、反病毒等,都可以从本书中学到有用的知识和技能,使自己在学习过程中少走弯路,在工作中事半功倍。更加难得的是,负责本书翻译工作的崔孝晨老师是一位具有极其丰富数字取证从业经验的安全界专家,并且他曾经翻译过多本安全技术书籍,只有像他这样国内顶级安全从业者并且具备丰富翻译经验的专家,才能将这样一本好书的精髓以中文的方式原原本本地还原在读者面前,而读者也可以从字里行间体会到他“功力”的深厚。 相信读者会从本书中受益良多。 陈良 KeenTeam高级研究员 译者序 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博士——上战车,兄弟! 参编作者——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下载代码、分析样本,以及进行网络抓包文件。

目录

序一 III 序二 V 译者序 VII 致谢 IX 参编作者——Robert Frost X 技术编辑——Mark Baggett XI 前言——Mark Baggett XII 第1章 入门 1 引言:使用Python进行渗透测试 1 准备开发环境 2 安装第三方库 2 Python解释与Python交互 5 Python语言 6 变量 6 字符串 7 List(列表) 7 词典 8 网络 9 条件选择语句 9 异常处理 10 函数 11 迭代 13 文件输入/输出 15 sys模块 16 OS模块 17 第一个Python程序 19 第一个程序的背景材料:布谷蛋 19 第一个程序:UNIX口令破解机 20 第二个程序的背景材料:度恶为善 22 第二个程序:一个Zip文件口令破解机 23 本章小结 27 参考文献 28 第2章 用Python进行渗透测试 29 引言:Morris蠕虫现在还有用吗 29 编写一个端口扫描器 30 TCP全连接扫描 30 抓取应用的Banner 32 线程扫描 34 使用NMAP端口扫描代码 36 用Python构建一个SSH僵尸网络 38 用Pexpect与SSH交互 39 用Pxssh暴力破解SSH密码 42 利用SSH中的弱私钥 45 构建SSH僵尸网络 49 利用FTP与Web批量抓“肉机” 52 用Python构建匿名FTP扫描器 53 使用Ftplib暴力破解FTP用户口令 54 在FTP服务器上搜索网页 55 在网页中加入恶意注入代码 56 整合全部的攻击 58 Conficker,为什么努力做就够了 62 使用Metasploit攻击Windows SMB服务 64 编写Python脚本与Metasploit交互 65 暴力破解口令,远程执行一个进程 67 把所有的代码放在一起,构成我们自己的Conficker 67 编写你自己的0day概念验证代码 70 基于栈的缓冲区溢出攻击 70 添加攻击的关键元素 71 发送漏洞利用代码 72 汇总得到完整的漏洞利用脚本 73 本章小结 75 参考文献 75 第3章 用Python进行取证调查 77 引言:如何通过电子取证解决BTK凶杀案 77 你曾经去过哪里?——在注册表中分析无线访问热点 78 使用WinReg读取Windows注册表中的内容 79 使用Mechanize把MAC地址传给Wigle 81 用Python恢复被删入回收站中的内容 85 使用OS模块寻找被删除的文件/文件夹 85 用Python把SID和用户名关联起来 86 元数据 88 使用PyPDF解析PDF文件中的元数据 88 理解Exif元数据 90 用BeautifulSoup下载图片 91 用Python的图像处理库读取图片中的Exif元数据 92 用Python分析应用程序的使用记录 95 理解Skype中的SQLite3数据库 95 使用Python和SQLite3自动查询Skype的数据库 97 用Python解析火狐浏览器的SQLite3数据库 103 用Python调查iTunes的手机备份 111 本章小结 116 参考文献 116 第4章 用Python分析网络流量 119 引言:“极光”行动以及为什么明显的迹象会被忽视 119 IP流量将何去何从?——用Python回答 120 使用PyGeoIP关联IP地址和物理位置 121 使用Dpkt解析包 121 使用Python画谷歌地图 125 “匿名者”真能匿名吗?分析LOIC流量 128 使用Dpkt发现下载LOIC的行为 128 解析Hive服务器上的IRC命令 130 实时检测DDoS攻击 131 H.D.Moore是如何解决五角大楼的麻烦的 136 理解TTL字段 136 用Scapy解析TTL字段的值 138 “风暴”(Storm)的fast-flux和Conficker的domain-flux 141 你的DNS知道一些不为你所知的吗? 142 使用Scapy解析DNS流量 143 用Scapy找出fast-flux流量 144 用Scapy找出Domain Flux流量 145 Kevin Mitnick和TCP序列号预测 146 预测你自己的TCP序列号 147 使用Scapy制造SYN泛洪攻击 148 计算TCP序列号 148 伪造TCP连接 150 使用Scapy愚弄入侵检测系统 153 本章小结 159 参考文献 159 第5章 用Python进行无线网络攻击 161 引言:无线网络的(不)安全性和冰人 161 搭建无线网络攻击环境 162 用Scapy测试无线网卡的嗅探功能 162 安装Python蓝牙包 163 绵羊墙——被动窃听无线网络中传输的秘密 165 使用Python正则表达式嗅探信用卡信息 165 嗅探宾馆住客 168 编写谷歌键盘记录器 171 嗅探FTP登录口令 174 你带着笔记本电脑去过哪里?Python告诉你 176 侦听802.11 Probe请求 176 寻找隐藏网络的802.11信标 177 找出隐藏的802.11网络的网络名 178 用Python截取和监视无人机 179 截取数据包,解析协议 179 用Scapy制作802.11数据帧 181 完成攻击,使无人机紧急迫降 184 探测火绵羊 186 理解Wordpress的会话cookies 187 牧羊人——找出Wordpress Cookie重放攻击 188 用Python搜寻蓝牙 190 截取无线流量,查找(隐藏的)蓝牙设备地址 192 扫描蓝牙RFCOMM信道 195 使用蓝牙服务发现协议 196 用Python ObexFTP控制打印机 197 用Python利用手机中的BlueBug漏洞 197 本章小结 199 参考文献 199 第6章 用Python刺探网络 201 引言:当今的社会工程 201 攻击前的侦察行动 202 使用Mechanize库上网 202 匿名性——使用代理服务器、User-Agent及cookie 203 把代码集成在Python类的AnonBrowser中 206 用anonBrowser抓取更多的Web页面 208 用Beautiful Soup解析Href链接 209 用Beautiful Soup映射图像 211 研究、调查、发现 213 用Python与谷歌API交互 213 用Python解析Tweets个人主页 216 从推文中提取地理位置信息 218 用正则表达式解析Twitter用户的兴趣爱好 220 匿名电子邮件 225 批量社工 226 使用Smtplib给目标对象发邮件 226 用smtplib进行网络钓鱼 227 本章小结 230 参考文献 231 第7章 用Python实现免杀 233 引言:火焰腾起! 233 免杀的过程 234 免杀验证 237 本章小结 243 参考文献 243

作者简介

TJ O'Connor是一位就职于信息安全部门的防御专家,同时他还是一名美军伞兵。在做美国军事学院的助理教授期间,他给本科生上的是电子取证/漏洞利用和信息确认等课程。他参与执教的参赛队曾两度在国家安全局举办的年度电子防御练习赛获胜,并曾经在(美国)国防大学举办的首届年度电子挑战赛获胜。他自己也曾参加过多个红队,包括在全美大学生网络防御大赛中两次效力于东北区域联队。__eol__TJ在北卡罗来纳州立大学中获得了计算机科学的理学硕士学位,然后又在SANS理工学院获得了信息安全工程的理学硕士学位,并且在美国军事学院获得了计算机科学的理学学士学位。他曾经在USENIX workshop、ACM会议、安全会议、SANS Reading Room、Internet storm center、《军事杂志》(Army Magazine)、《军事力量》(Armed Forces Journal)杂志上发表过技术研究成果。此外,他还拥有多张电子安全专家证书,其中包括声名卓著的GIAC安全专家和OSCE(Offensive Security Certified Expert)。TJ还是SANS电子空间防护红队和蓝队的骨干之一。__eol____eol__译者崔孝晨,中国计算机法证协会会员,安全研究小组Team509的创始人之一。2009年因完成了对某僵尸网络的分析,找出其主要控制者,并由此破获了上海"2009.7.18"私车拍卖网站被DDOS攻击一案,而荣立个人二等功。

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个