编辑推荐

  

  关于Python的书虽然已有不少,但从安全从业者角度全方位剖析Python的书籍几乎没有,《Python绝技:运用Python成为顶级黑客》填补了这个的空白:包含了渗透测试、Web分析、网络分析、取证分析以及利用无线设备等方面的Python攻防方法。
  无论你是从事安全研究的哪个方向,书中的大量深入浅出的案例分析均可以让你掌握有用的技能,快速上手编写代码,在工作中事半功倍,拓展视野、培养和锻炼自己的黑客思维。
  
  

内容简介

  

  Python是一门常用的编程语言,它不仅上手容易,而且还拥有丰富的支持库。对经常需要针对自己所处的特定场景编写专用工具的黑客、计算机犯罪调查人员、渗透测试师和安全工程师来说,Python的这些特点可以帮助他们又快又好地完成这一任务,以极少的代码量实现所需的功能。《Python绝技:运用Python成为顶级黑客》结合具体的场景和真实的案例,详述了Python在渗透测试、电子取证、网络流量分析、无线安全、网站中信息的自动抓取、病毒免杀等领域内所发挥的巨大作用。
  《Python绝技:运用Python成为顶级黑客》适合计算机安全管理人员、计算机犯罪调查和电子取证人员、渗透测试人员,以及所有对计算机安全感兴趣的爱好者阅读。同时也可供计算机、信息安全及相关专业的本/专科院校师生学习参考。
  
  

精彩书评

  

  Python在黑客领域拥有霸主地位。在XCon召开的这15年中,Python已经发展成为与C/C++一样是黑客必备的技能之一了。
  《Python绝技:运用Python成为顶级黑客》包含渗透测试、Web分析、网络分析、取证分析,以及利用无线设备等方面的Python攻击利用方法。不管你是刚开始学习Python程序的“小白”,还是一个具有丰富经验的渗透攻击高手,这《Python绝技:运用Python成为顶级黑客》都会给你非常大的帮助,引导你成为优秀的黑客高手。在我创办的“神话-信息安全人才颠覆行动”中,Python是我们的必修课之一。此书将会是我们“神话行动”学员学习的专业书籍之一。
  ——王英健(呆神)XCon创始人、神话行动创始人,XFocus创始人之一
  
  Python是一门非常容易上手的脚本语言,但要迅速掌握其丰富的安全工具库并熟练运用绝非易事。市面上的Python入门书籍虽然非常多,但真正从安全从业者角度深入浅出地介绍的书籍几乎没有。《Python绝技:运用Python成为顶级黑客》的出现无疑给安全从业者带来了福音,对Python初学者来说,第1章的内容可以使其迅速掌握Python语言,而之后的几章几乎涵盖了安全研究的每个方面,并且配以近几年比较热门的案例(例如:LOIC、Conficker等),无论你是进行漏洞研究、取证分析、渗透测试、DDoS对抗还是反病毒,都可以从《Python绝技:运用Python成为顶级黑客》中学到有用的知识和技能,使自己在学习过程中少走弯路,在工作中事半功倍。
  ——陈良KeenTeam高级研究员
  
  作为系统管理出身的一名安全人员,对脚本类语言具有天然的好感,之前写过VBScript、Perl、Shell,转行做安全以后接触到Python,发现Python真是一款值得推荐的利器,非常适合解决网络安全攻防中面临的各种复杂和奇特的要求,从基本的端口扫描到密码猜解,从Web页面抓取到Burp扩展工具,从验证码识别到权限提升等。作者在书中通过由浅入深的讲解,将读者带入Python的神奇世界,通过对攻击案例的解析,理论结合实际让读者完全不会感觉到学习编程的枯燥和乏味,反而能快速上手编写代码。通过对这些案例的学习,读者不仅能掌握Python的各种应用,还能拓宽视野,培养和锻炼自己的黑客思维。《Python绝技:运用Python成为顶级黑客》适合有一定编程基础的安全爱好者、计算机从业人员阅读,特别是对正在学习计算机安全的爱好者有较大帮助。
  《Python绝技:运用Python成为顶级黑客》编排有序,章节之间相互独立,读者可以按需阅读,也可以逐章阅读。
  ——cnhawk支付宝安全专家
  
  Python因其特性而成为黑客们青睐的语言。《Python绝技:运用Python成为顶级黑客》对Python在安全领域的应用做了实战的引导,内容全面(当然,如果想成为优秀黑客,仅掌握Python还远远不够)。感谢这《Python绝技:运用Python成为顶级黑客》对Python做了很好的梳理。
  ——余弦知道创宇技术副总裁,《Web前端黑客技术揭秘》作者
  
  《Python绝技:运用Python成为顶级黑客》就像一本武林秘籍,专注于教会你使用一种武器——Python,只要掌握了这把利器,你就能够完成渗透测试中可能涉及的方方面面。译者是资深的安全专家,他将书中所有的技术细节精准和优雅地传达给了读者。
  ——杨坤蓝莲花战队队长,长亭科技首席安全研究员
  

目录

序一III
序二V
译者序VII
致谢IX
参编作者――RobertFrostX
技术编辑――MarkBaggettXI
前言――MarkBaggettXII
第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
抓取应用的Banner32
线程扫描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攻击WindowsSMB服务64
编写Python脚本与Metasploit交互65
暴力破解口令,远程执行一个进程67
把所有的代码放在一起,构成我们自己的Conficker67
编写你自己的0day概念验证代码70
基于栈的缓冲区溢出攻击70
添加攻击的关键元素71
发送漏洞利用代码72
汇总得到完整的漏洞利用脚本73
本章小结75
参考文献75
第3章用Python进行取证调查77
引言:如何通过电子取证解决BTK凶杀案77
你曾经去过哪里?――在注册表中分析无线访问热点78
使用WinReg读取Windows注册表中的内容79
使用Mechanize把MAC地址传给Wigle81
用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-flux141
你的DNS知道一些不为你所知的吗?142
使用Scapy解析DNS流量143
用Scapy找出fast-flux流量144
用Scapy找出DomainFlux流量145
KevinMitnick和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.11Probe请求176
寻找隐藏网络的802.11信标177
找出隐藏的802.11网络的网络名178
用Python截取和监视无人机179
截取数据包,解析协议179
用Scapy制作802.11数据帧181
完成攻击,使无人机紧急迫降184
探测火绵羊186
理解Wordpress的会话cookies187
牧羊人――找出WordpressCookie重放攻击188
用Python搜寻蓝牙190
截取无线流量,查找(隐藏的)蓝牙设备地址192
扫描蓝牙RFCOMM信道195
使用蓝牙服务发现协议196
用PythonObexFTP控制打印机197
用Python利用手机中的BlueBug漏洞197
本章小结199
参考文献199
第6章用Python刺探网络201
引言:当今的社会工程201
攻击前的侦察行动202
使用Mechanize库上网202
匿名性――使用代理服务器、User-Agent及cookie203
把代码集成在Python类的AnonBrowser中206
用anonBrowser抓取更多的Web页面208
用BeautifulSoup解析Href链接209
用BeautifulSoup映射图像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

前言/序言

  序一
  在我从事信息安全技术研究学习的近20年间,带领过不少安全团队,发现编程能力是真正黑客和“脚本小子”的本质区别,在安全研究人员和希望成长为黑客高手的技术爱好者们的成长过程中一直面临着一个编程语言的选择问题,但是Python在黑客领域拥有着霸主的地位。在XCon召开的这15年中,Python被越来越多地应用,越来越多的优秀黑客工具和安全工具都是用Python开发的,Python已经发展成为和C/C++一样作为黑客必备的技能之一。Python是一门非常优秀的主流编程语言,拥有用户友好的语法和大量的第三方模块。它提供了一个更好的支撑平台,能明显平缓大多数程序员初学攻击技术时的学习曲线。这《Python绝技:运用Python成为顶级黑客》涵盖了黑客、渗透测试人员、取证分析师和安全工程师需要具备的很多技巧。Python是一门优秀的黑客编程语言,复杂度低、效率高,入门门槛低,尽管已经有了很多攻击工具,但Python为编写你自己的攻击工具提供了一个极好的开发平台,仍然对解决某些特定条件下那些已有工具无法处理的问题。这《Python绝技:运用Python成为顶级黑客》的特点是剖析技巧的本质,使用Python内置模块和优秀的第三方模块来完成,并通过众多实例引领读者更好地体会理解Python的技巧和用法。本人与《Python绝技:运用Python成为顶级黑客》译者相识相交多年,亦师亦友。我们经常在一起讨论交流技术,探讨发展,对译者的技术水平和经验能力是非常认可与钦佩的,也多次邀请他来XCon和XKungfoo进行演讲并分享技术,每每演讲都是博得广大技术高手的赞扬与认可。从此书中可以看出,作者在攻防、取证和编程多反面的深厚功底,也可以看出译者在这方面的超强能力和丰富经验。这《Python绝技:运用Python成为顶级黑客》包含渗透测试、Web分析、网络分析、取证分析,以及利用无线设备等方面的Python攻击利用方法,并且书中采用的实例都会深入浅出地讲解说明Python该如何帮助你实现各种攻击的方法。不管你是刚开始学习Python程序的小白,还是一个具有丰富经验的渗透攻击高手,这《Python绝技:运用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测试、PDF0day的分析,甚至PDFExploit的编写都起了极大的帮助。这样的例子还举不胜举,在我参加的两届Pwn2Own黑客大赛的准备过程中,我几乎天天和Python打交道。例如,在使用IDA分析一个OSX的服务时,编写一个IDAPython脚本可以将一些没有符号的接口提取出来进行测试,对函数进行Pattern筛选,找出可疑函数进行进一步代码审计;在ExploitSafari中,堆布局是非常关键的一环,lldb提供的Python接口可以很方便地对WebKit对象进行分析,对每个WebKit对象大小以及快速发现对象的可利用特性,对最终编写出完整的攻击代码起了决定性的作用。
  虽然Python脚本上手容易,要迅速掌握其丰富的安全工具库并熟练运用绝非易事。我刚接触Python语言时,很多朋友就对我说过:Python是一门非常适合白帽黑客学习的语言,然而我却在很长一段时间里一知半解,用了几年时间理解了这句话的含义。多而杂的工具库需要时间和经验的积累,才能慢慢“吃透”和掌握。市面上的Python入门书籍虽然非常多,但真正从安全从业者角度深入浅出介绍的书籍几乎没有。《Python绝技:运用Python成为顶级黑客》的出现无疑给安全从业者带来了福音,对Python初学者来说,第1章内容可以使其迅速掌握Python语言。而之后的几章几乎涵盖了安全研究的每个方面,并且配以近几年比较热门的案例(例如:LOIC、Conficker等),无论你是进行漏洞研究还是取证分析、渗透测试、DDoS对抗、反病毒等,都可以从《Python绝技:运用Python成为顶级黑客》中学到有用的知识和技能,使自己在学习过程中少走弯路,在工作中事半功倍。更加难得的是,负责《Python绝技:运用Python成为顶级黑客》翻译工作的崔孝晨老师是一位具有极其丰富数字取证从业经验的安全界专家,并且他曾经翻译过多本安全技术书籍,只有像他这样国内顶级安全从业者并且具备丰富翻译经验的专家,才能将这样一本好书的精髓以中文的方式原原本本地还原在读者面前,而读者也可以从字里行间体会到他“功力”的深厚。相信读者会从《Python绝技:运用Python成为顶级黑客》中受益良多。
  陈良KeenTeam高级研究员
  译者序
  Python是一门非常常用的编程语言,除应用在科学计算、大数据处理等人们熟知的领域外,在计算机安全领域中使用也非常广泛。这是因为对黑客、软件逆向工程师、电子取证人员来说,Python与C/C++语法上的相似性使它上手十分容易。本人大约在2008年通过IDAPython接触到了Python语言。相对于IDA自带的IDC脚本来说,IDAPython的功能非常强大,可以很方便地搞定用IDC完成起来很麻烦的一些工作;而相对于用C/C++开发IDA插件,IDAPython使用非常灵活,要写的代码量也少了很多,当时感觉真是“出门在外、居家旅行、杀人越货之必备良药”。当时,ImmunityDebugger等各种常用工具也都支持Python脚本,甚至出现了纯用Python打造的计算机内存取证分析工具——Volatility。2010年,我应丁赟卿之邀,成为他翻译的大作《Python灰帽子:黑客与逆向工程师的Python编程之道》一书的技术审校,审校的过程也使我对Python在安全领域所能发挥的作用有了更深刻的理解。但美中不足的是,该书仅仅介绍了在一些调试器、反汇编器等安全专用工具中Python的使用方法,甚至可以说它只是对一些专用的Python库的介绍。当然,这些很重要,但除此之外,Python的强大功能应该能在更多的场景下发挥作用。应该说这本ViolentPython:ACookbookforHackersForensicAnalystsPenetrationTestersandSecurityEngineers(《Python绝技:运用Python成为顶级黑客》)确实是填补了这方面的空白:书中结合具体的场景,甚至是真实的案例,详述了Python在渗透测试、电子取证、网络流量分析、无线安全、网站中信息的自动抓取、病毒免杀等领域内的用途。每一章都针对一个专门的领域,完全用Python完整实现了非常实用的功能,而且代码量非常少。《Python绝技:运用Python成为顶级黑客》在国外Amazon网站上的评价也非常高——76个用户评价,得分4星半,是很高的分数。《Python绝技:运用Python成为顶级黑客》由上海公安高等专科学校基础教研部的教师教官翻译完成,《Python绝技:运用Python成为顶级黑客》共7章,分工安排如下:
  第1、2章由武晓音翻译,第3章由崔孝晨翻译,第4章由吴杰丽翻译,第5章由孙蓓翻译,第6章由王宏翻译,第7章由龚济悦翻译。《Python绝技:运用Python成为顶级黑客》由崔晓晨统一审校。《Python绝技:运用Python成为顶级黑客》中文版的面世要感谢博文视点的各位编辑老师,特别是李利健、刘皎老师,感谢你们对我的一贯支持和耐心指导,使我从中获益良多!同时也要感谢你们为《Python绝技:运用Python成为顶级黑客》的出版所花费的大量时间!由于翻译时间仓促,书中的错误在所难免,敬请读者不吝指正。
  崔孝晨2015年10月
  致谢
  军事用语中,“观察你的六点钟方向”意思是说要你注意后方。当小队长在观察十二点钟方向的情况时,小队中至少应该有一名队员转向后方,观察六点钟方向有无小队长无法观测到的敌情。当我第一次去找出版《Python绝技:运用Python成为顶级黑客》的指导老师时,他就告诫我:在我的队友专注于观察我的六点钟方向时,我能做的唯一一件事就是:也好好地看着他的六点钟方向。我当时略加思索,付出这么大的努力对我这一生会有什么回报?三秒钟之后,我意识到:他们都是很棒的。感谢我的技术编辑——MarkBaggett,你兢兢业业的技术校订保证了这《Python绝技:运用Python成为顶级黑客》的质量。感谢Reeves博士、Freeh博士、Jacoby博士和Blair博士——感谢你们对一个年轻急躁的军官的多年栽培,把我变成了这么一名能写出一《Python绝技:运用Python成为顶级黑客》的非传统学者。感谢Fanelli博士,感谢您教导我:神明变化之才,必出于规矩方圆之手,踏实打好基础,别老想着不走寻常路。感谢Conti博士,感谢您总是及时地引导我大胆采取行动。感谢我的同窗校友,特别是“忍者”社团的Alan、Alex、Arod、Chris、Christina、Duncan、Gremlin、Jim、James、Kevin、Rob、Steven、Sal和Topher——你们的创新不断地激发着我的灵感。感谢RobFrost,你写的“网络侦查”那一章比我写的强太多了!感谢Matt、Ryan、Kirk、Mark、Bryan和Bill,感谢你们理解我之前为什么整晚不睡觉,眼瞅着时针从1走到12。感谢我深爱的妻子,我调皮的儿子和我的忍者公主——感谢你们在我写《Python绝技:运用Python成为顶级黑客》的过程中,给我无条件的爱、理解和支持。感谢我的父母——感谢你们对我价值观的教育。最后还要感谢Cook博士——上战车,兄弟!

其他推荐