编辑推荐

适读人群:IT安全从业人员
  

自2013年首次问世以来,《Metasploit渗透测试指南(修订版)》迅速掳获了从业人员的芳心。作为唯1一本经官方团队亲自评审并高度认可(“现今已有好的Metasploit框架软件参考指南”)的著作,《Metasploit渗透测试指南(修订版)》不仅涵盖了基础的工具和技术,也深入分享了如何实施渗透测试的方法与经验。四位来自不同领域的资深黑客作者从不同的视角无私奉献了他们的技巧与心得:既贡献了企业安全架构上的经验,也端出了安全漏洞挖掘和渗透代码开发的“私房菜”。

本次的修订版,在译者的精心组织与编排下完成,主要的修订在于:基于Metasploit新的版本复现并更新了原书的实验案例,同时考虑到国情与本地化的需求,将关键的实验对象、分析工具等换成了国内读者更容易接触和使用的替代品。这使读者能更容易通过复现实验过程,深刻而快速地掌握相关渗透技巧。

译者来自诸葛建伟老师的团队。诸葛建伟老师是XCTF联赛发起人、知名的蓝莲花团队创始人之一,在网络安全领域有多年的从业经验。

口碑好书,值得珍藏!

内容简介

  

《Metasploit渗透测试指南(修订版)》介绍开源渗透测试框架平台软件Metasploit,以及基于Metasploit进行网络渗透测试与安全漏洞研究分析的技术、流程和方法,帮助初学者从零开始建立作为渗透测试者的基本技能,也为职业的渗透测试工程师提供一本参考索引。

《Metasploit渗透测试指南(修订版)》分为17章,覆盖渗透测试的情报搜集、威胁建模、漏洞分析、渗透攻击和后渗透攻击各个环节,并包含了免杀技术、客户端渗透攻击、社会工程学、自动化渗透测试、无线网络攻击等高级技术专题,以及如何扩展Metasploit情报搜集、渗透攻击与后渗透攻击功能的实践方法。此修订版尽量保持原著的实验案例选择,仅根据Metasploit版本更新的实际情况来复现实验,同步更新操作流程的命令输入和输出结果。对于少量国内读者不便重现的实验案例,将实验对象、分析工具等替换为更容易接触和使用的替代品。

《Metasploit渗透测试指南(修订版)》的读者群主要是网络与系统安全领域的技术爱好者与学生,以及渗透测试与漏洞分析研究方面的安全从业人员。

作者简介

作者简介

DavidKennedyDiehold公司首席信息安全官,社会工程学工具包(SET)、Fast-Track和其他开源工具的作者,他同时也是BackTrack和ExploitDatabase的开发团队成员,以及社会工程学博客网站的核心成员。Kennedy曾在BlackHat、Defcon、ShmooCon、SecurityB-Sides等一些安全会议上发表过演讲。

JimO’GormanCSC公司StrickForce团队的职业渗透测试工程师,Social-Engineer.org网站的共同创办者,OffensiveSecurity团队的培训讲师。他经常进行数字取证分析调查和恶意代码分析,并协助在BackTrack中集成取证分析工具。在业余时间里,他会帮助自己的孩子们大战僵尸。

DevonKearnsOffensiveSecurity团队的培训讲师,BackTrack的开发者,以及ExploitDatabase网站的管理员。他也为Metasploit贡献过一些渗透攻击模块,并且是《Metasploit揭秘》教程Wiki的维护者。

MatiAharoniBackTrack发行版的创建者,以及安全培训界领军团队OffensiveSecurity的创始人。

译者简介

诸葛建伟博士,清华大学网络空间安全研究室副研究员,狩猎女神科研团队负责人,蓝莲花战队联合创始人及领队,XCTF联赛发起人及组委会副主任委员,信息安全领域培训讲师和自由撰稿人,撰写和翻译过多部教材和技术书籍。个人网站:netsec.ccert.edu.cn/zhugejw。

王珩清华大学硕士毕业,蓝莲花创始团队队员,资深信息安全从业者,在Web应用程序安全、网络渗透测试等方面有丰富的实践经验,现任赛宁网安副总经理、产品总监。

微博:@evan-css。

孙松柏清华大学硕士毕业,从事网络安全相关工作十余年,在Web渗透测试等方面有丰富实践经验。

陆宇翔北京邮电大学信息安全专业毕业,现就职于赛宁网安,参与网络安全实训产品的相关工作。

精彩书评

  NULL

目录

第1章渗透测试技术基础1

1.1PTES中的渗透测试阶段2

1.1.1前期交互阶段2

1.1.2情报搜集阶段2

1.1.3威胁建模阶段3

1.1.4漏洞分析阶段3

1.1.5渗透攻击阶段3

1.1.6后渗透攻击阶段3

1.1.7报告阶段4

1.2渗透测试类型4

1.2.1白盒测试5

1.2.2黑盒测试5

1.2.3灰盒测试5

1.3漏洞扫描器6

1.4小结6

第2章Metasploit基础7

2.1专业术语7

2.1.1渗透攻击(Exploit)8

2.1.2攻击载荷(Payload)8

2.1.3Shellcode8

2.1.4模块(Module)8

2.1.5监听器(Listener)8

2.2Metasploit用户接口8

2.2.1MSF终端9

2.2.2MSF命令行9

2.2.3Armitage10

2.3Metasploit功能程序11

2.3.1MSF攻击载荷生成器11

2.3.2MSF编码器12

2.3.3NasmShell13

2.4MetasploitExpress和MetasploitPro13

2.5小结14

第3章情报搜集15

3.1被动信息搜集16

3.1.1Whois查询16

3.1.2Netcraft17

3.1.3nslookup18

3.1.4GoogleHacking18

3.2主动信息搜集20

3.2.1使用Nmap进行端口扫描20

3.2.2在Metasploit中使用数据库22

3.2.3使用Metasploit进行端口扫描27

3.3针对性扫描28

3.3.1服务器消息块协议扫描28

3.3.2搜寻配置不当的MicrosoftSQLServer29

3.3.3SSH服务器扫描30

3.3.4FTP扫描30

3.3.5简单网管协议扫描31

3.4编写自己的扫描器33

3.5展望35

第4章漏洞扫描36

4.1基本的漏洞扫描37

4.2使用Nexpose进行扫描38

4.2.1配置38

4.2.2将扫描报告导入到Metasploit中44

4.2.3在MSF控制台中运行Nexpose44

4.3使用Nessus进行扫描46

4.3.1配置Nessus46

4.3.2创建Nessus扫描策略47

4.3.3执行Nessus扫描49

4.3.4Nessus报告50

4.3.5将扫描结果导入Metasploit框架中50

4.3.6在Metasploit内部使用Nessus进行扫描52

4.4专用漏洞扫描器54

4.4.1验证SMB登录54

4.4.2扫描开放的VNC空口令56

4.4.3扫描开放的X11服务器58

4.5利用扫描结果进行自动化攻击59

第5章渗透攻击之旅65

5.1渗透攻击基础66

5.1.1msf>showexploits66

5.1.2msf>showauxiliary66

5.1.3msf>showoptions66

5.1.4msf>showpayloads68

5.1.5msf>showtargets70

5.1.6info71

5.1.7set和unset71

5.1.8setg和unsetg72

5.1.9save72

5.2你的第一次渗透攻击72

5.3攻击Metasploitable主机76

5.4全端口攻击载荷:暴力猜解目标开放的端口79

5.5资源文件80

5.6小结82

第6章Meterpreter83

6.1攻陷WindowsXP虚拟机83

6.1.1使用nmap扫描端口84

6.1.2攻击MSSQL84

6.1.3暴力破解MSSQL服务86

6.1.4xp_cmdshell87

6.1.5Meterpreter基本命令88

6.1.6获取键盘记录89

6.2挖掘用户名和密码90

6.2.1提取密码哈希值90

6.2.2使用Meterpreter命令获取密码哈希值91

6.3传递哈希值92

6.4权限提升93

6.5令牌假冒95

6.6使用PS95

6.7通过跳板攻击其他机器97

6.7.1使用Meterpreter进行跳板攻击97

6.7.2使用MetasploitPro的VPN跳板100

6.8使用Meterpreter脚本105

6.8.1迁移进程105

6.8.2关闭杀毒软件106

6.8.3获取系统密码哈希值106

6.8.4查看目标机上的所有流量106

6.8.5攫取系统信息107

6.8.6控制持久化107

6.9向后渗透攻击模块转变108

6.10将命令行shell升级为Meterpreter109

6.11通过附加的Railgun组件操作WindowsAPI110

6.12小结110

第7章免杀技术112

7.1使用MSF攻击载荷生成器创建可独立运行的二进制文件113

7.2躲避杀毒软件的检测114

7.2.1使用MSF编码器114

7.2.2多重编码117

7.3自定义可执行文件模板118

7.4隐秘地启动一个攻击载荷120

7.5加壳软件122

7.6使用MetasploitPro的动态载荷实现免杀123

7.7关于免杀处理的最后忠告126

第8章客户端渗透攻击127

8.1基于浏览器的渗透攻击128

8.1.1基于浏览器的渗透攻击原理128

8.1.2关于空指令129

8.2使用ollydbg调试器揭秘空指令机器码130

8.3对IE浏览器的极光漏洞进行渗透利用134

8.4文件格式漏洞渗透攻击137

8.5发送攻击负载139

8.6小结140

第9章Metasploit辅助模块141

9.1使用辅助模块144

9.2辅助模块剖析146

9.3展望152

第10章社会工程学工具包153

10.1配置SET工具包154

10.2针对性钓鱼攻击向量155

10.3Web攻击向量160

10.3.1JavaApplet160

10.3.2客户端Web攻击165

10.3.3用户名和密码获取167

10.3.4标签页劫持攻击(Tabnabbing)169

10.3.5中间人攻击169

10.3.6网页劫持169

10.3.7综合多重攻击方法171

10.4传染性媒体生成器176

10.5USBHID攻击向量177

10.6SET的其他特性181

10.7展望181

第11章Fast-Track183

11.1MicrosoftSQL注入184

11.1.1SQL注入——查询语句攻击185

11.1.2SQL注入——POST参数攻击186

11.1.3手工注入187

11.1.4MSSQL破解188

11.1.5通过SQL自动获得控制(SQLPwnage)192

11.2二进制到十六进制转换器194

11.3大规模客户端攻击195

11.4对自动化渗透的一点看法197

第12章Karmetasploit无线攻击套件198

12.1配置199

12.2开始攻击200

12.3获取凭证203

12.4得到Shell203

12.5小结206

第13章编写你自己的模块207

13.1在MSSQL上进行命令执行208

13.2探索一个已存在的Metasploit模块209

13.3编写一个新的模块211

13.3.1PowerShell211

13.3.2运行Shell渗透攻击213

13.3.3编写Powershell_upload_exec函数215

13.3.4从十六进制转换回二进制程序215

13.3.5计数器217

13.3.6运行渗透攻击模块218

13.4小结——代码重用的能量219

第14章创建你自己的渗透攻击模块220

14.1Fuzz测试的艺术221

14.2控制结构化异常处理链225

14.3绕过SEH限制227

14.4获取返回地址230

14.5坏字符和远程代码执行235

14.6小结238

第15章将渗透代码移植到Metasploit239

15.1汇编语言基础240

15.1.1EIP和ESP寄存器240

15.1.2JMP指令集240

15.1.3空指令和空指令滑行区240

15.2移植一个缓冲区溢出攻击代码240

15.2.1裁剪一个已有的渗透攻击代码242

15.2.2构造渗透攻击过程243

15.2.3测试我们的基础渗透代码244

15.2.4实现框架中的特性245

15.2.5增加随机化246

15.2.6消除空指令滑行区247

15.2.7去除伪造的Shellcode247

15.2.8我们完整的模块代码249

15.3SEH覆盖渗透代码250

15.4小结257

第16章Meterpreter脚本编程258

16.1Meterpreter脚本编程基础258

16.2MeterpreterAPI265

16.2.1打印输出265

16.2.2基本API调用266

16.2.3MeterpreterMixins266

16.3编写Meterpreter脚本的规则267

16.4创建自己的Meterpreter脚本268

16.5小结275

第17章一次模拟的渗透测试过程276

17.1前期交互277

17.2情报搜集277

17.3威胁建模278

17.4渗透攻击280

17.5MSF终端中的渗透攻击过程280

17.6后渗透攻击281

17.6.1扫描Metasploitable靶机282

17.6.2识别存有漏洞的服务284

17.7攻击Postgresql数据库服务286

17.8攻击一个偏门的服务288

17.9隐藏你的踪迹289

17.10小结291

附录A配置目标机器293

附录B命令参考列表301

精彩书摘

推荐序

IT是一个非常复杂和混沌的领域,充斥着各种已经半死不活的过时技术和数量更多的新系统、新软件和新协议。保护现在的企业网络不能仅仅依靠补丁管理、防火墙和用户培训,而更需要周期性地对网络中的安全防御机制进行真实环境下的验证与评估,以确定哪些是有效的哪些是缺失的,而这就是渗透测试所要完成的目标。

渗透测试是一项非常具有挑战性的工作。你拿着客户付的钱,却像犯罪者那样去思考,使用你所掌握的各种“游击”战术,在一个高度复杂的防御网络中找出最为薄弱的环节,来实施致命一击。在渗透测试中,你能够发现的事情可能是既让你的雇主惊奇,又让他烦恼的:从他的服务器可以被攻陷并架设色情网站,到公司业务可以被实施大规模的欺诈与犯罪行为。

渗透测试过程需要绕过目标组织的安全防御阵线,探测出系统中存在的弱点。一次成功的渗透测试可能获取到一些敏感数据,而这通常是安全体系结构审查或漏洞评估所无法找出的,系统被发现的典型弱点包括共享口令、非法外联的网络,以及一些被发掘曝光的隐私信息。由马虎草率的系统管理员和匆匆赶工完成的系统部署会造成各种各样的安全问题,经常会对一个组织造成严重的安全威胁,然而对应的解决方案与计划措施可能还积压在系统管理员冗长的TO-DO列表中。渗透测试可以将这些被忽略的问题及时揭示出来,让目标组织更加清晰地了解到在防御一次真正的入侵时哪些问题更需要被立即解决。

渗透测试者会接触到一个公司中最敏感的资源,他们也会访问到公司中最关键的区域,而如果有人针对这些资源和区域实施一些邪恶的攻击行为,那将给这个公司带来极其严重的影响和后果。仅仅一个神秘出现的数据包就可能导致整个工厂停工,从而造成每小时数百万美元的损失;被当成攻击跳板时没有察觉并向有关部门进行通报,也可能导致最后遭遇到警方令人不自在且难堪的问询。医疗系统是一个甚至连非常有经验的渗透测试师都不太乐意进行测试的领域,没有人愿意承担这个领域一些系统故障的后果与责任:比如由于OpenVMS大型机系统故障导致将患者的血型搞混,或者由于运行WindowsXP的一台X光机内存破坏对患者进行超辐射量的扫描。最为关键的系统经常也是最为脆弱的,没有几个系统管理员愿意承担业务中断的风险关闭一台核心数据库服务器来安装安全补丁。

在利用潜在攻击路径和造成损害的风险中进行权衡是所有渗透测试师都必须掌握的技能,这个过程不仅仅依赖于对渗透工具和技术的了解,也取决于对目标组织业务流程的深入理解,以及对其中最脆弱环节的定位能力。

在《Metasploit渗透测试指南(修订版)》中,你将透过四位安全专家的视角来认识渗透测试,而他们拥有不同的背景与技术专长,其中有在企业安全架构方面拥有丰富经验的安全专家,也有熟知安全漏洞挖掘和渗透代码开发地下经济链的资深黑客。在市面上已经有一些关于渗透测试与安全评估技术的书籍,也有一些完全聚焦于某种工具的实践参考书。而这《Metasploit渗透测试指南(修订版)》尝试在这两者之间取得平衡,既覆盖了一些基础的工具和技术,同时又展示了如何实施一次渗透测试的方法与经验。有经验的渗透测试者也可以从基于最新渗透测试执行标准的方法学中得到一些启示,而新接触到渗透测试领域的新手们也将不仅仅能够看到关于如何入门的参考指南,也可以了解到哪些技术步骤是关键的、为什么关键,以及它们在整个渗透测试流程中的地位。

这《Metasploit渗透测试指南(修订版)》是专注于Metasploit渗透测试框架软件的专题指南。Metasploit开源平台提供了一个包含大量通用可靠并且经常更新的渗透攻击代码库,同时也为编写新的渗透工具及自动化渗透测试过程提供了一个完整的研究与开发环境。《Metasploit渗透测试指南(修订版)》也介绍了MetasploitExpress和MetasploitPro——Metasploit框架中商业化的两个同胞姐妹,她们为如何进行一次自动化的大规模渗透测试提供了独树一帜的能力。

Metasploit框架在代码的反复无常上是“声名狼藉”的,它的代码库每天被一个核心的开发团队和数百位来自社区的贡献者更新数十次。在我看来,为Metasploit写一《Metasploit渗透测试指南(修订版)》根本就是一种自虐行为:完成的一章刚刚经过了试读,可能它里面的内容就已经过时了。然而,作者们接受了这项艰巨的任务,并成功地让这《Metasploit渗透测试指南(修订版)》在到达读者手中时,内容还仍然是适用的。

Metasploit开发团队也参与了这《Metasploit渗透测试指南(修订版)》的评审,以确保对代码的最新修改能够精确地反映到书中,而最终的评审结果是:这《Metasploit渗透测试指南(修订版)》对Metasploit框架软件的“0day”覆盖已经达到人力的极限。我们可以很负责任地说——这是现今已有最好的Metasploit框架软件参考指南。我们希望《Metasploit渗透测试指南(修订版)》能够在你的工作中发挥价值,并且是指导你在渗透测试技术道路上不断探索前行的一本优秀参考指南。

HDMoore

Metasploit项目创始人

修订版译者序

2017年春节假期前,当博文视点编辑皎子老师在微信聊天中提及要重新出《Metasploit渗透测试指南》这《Metasploit渗透测试指南(修订版)》的时候,我的第一感受还是蛮激动的,以为OffensiveSecurity的几位大神们终于想起对这本Metasploit入门宝典做更新了。因为这《Metasploit渗透测试指南(修订版)》对于我而言还是蛮有感情的,她是我技术书籍翻译的处女作,自此书出版之后,我就像打开了在网络安全技术书籍出版领域的大门,在之后的三年里组织和参与翻译了五本网络安全知名巨著,包括畅销经典《线上幽灵:世界头号黑客米特尼克自传》、大部头的《恶意代码分析实战》、安卓安全重头书《Android安全攻防权威指南》等,也和《Metasploit渗透测试指南(修订版)》译者团队共同出版了一本原创书《Metasploit渗透测试魔鬼训练营》,算是“集齐七龙珠”,可以“召唤神龙”了。然而等我平复心情去查了下原版的更新情况,却意识到可能有人在给我挖坑了。原书的作者大神们可能根本没有想起来要去更新这本经典书籍,而是在专注一本新书KaliRevealed的最后冲刺吧。

由于“欠债”太多的缘故,我无法拒绝皎子编辑的殷切期盼,答应她尽快利用春节假期的时间对这本Metasploit入门宝典进行修订,以适应读者需求并重新出版。为了能够让读者参考修订版来使用最新版本的Metasploit渗透测试框架软件,我重新召集了原来译者团队中的核心成员——王珩(好在他已经加入赛宁创业团队),并让赛宁网络安全工程师陆宇翔全职加入一起进行《Metasploit渗透测试指南(修订版)》操作流程的复现和更新工作。此外,为了让读者们能更容易地进行修订版中的全部实验,除了同步更新附录A中的实验环境部署流程之外,我们还在赛宁运营的XCTF-OJ实训平台(http://oj.xctf.org.cn)中提供完整的实验环境,让读者无须自己配置环境即可在线快速进行《Metasploit渗透测试指南(修订版)》大部分的实验操作。

在《Metasploit渗透测试指南(修订版)》的修订过程中,我们采取的原则是尽量保持原书作者的实验案例选择,仅根据Metasploit版本更新的实际情况来复现实验,同步更新实验操作流程的命令输入和输出结果,这样让读者在阅读《Metasploit渗透测试指南(修订版)》时能够实践和掌握Metasploit最新版本的使用方法和应用技巧。对于少量我们觉得国内读者不便重现的实验案例,我们将实验对象、分析工具等替换为国内读者更容易接触和使用的替代品,在保持实验目的和功能展示效果不变的前提下,让大家更容易通过复现实验过程掌握相关渗透技巧。

基于以上修订原则,我们对原书进行的具体修订内容如下。

第1章“渗透测试技术基础”:1.2节“渗透测试类型”中,在原书作者描述的黑盒测试和白盒测试之外,增加了对实际测试环境中更推荐的灰盒渗透方法进行了介绍。

第2章“Metasploit基础”:2.2节“Metasploit用户接口”中,根据Metasploit2015年1月版本之后的更新,移除了其不再支持的msfcli命令行工具的说明,并介绍了可替代命令行工具的MSF终端“-x”选项的用法。2.3节“Metasploit功能程序”中,说明了MSF攻击载荷生成器和编码器不再以单独的程序(分别为msfpayload、msfencode)实现,而是将功能集成到msfvenom程序中。2.4节“MetasploitExpress和MetasploitPro”中,增加了Metasploit商业版本和免费版本的功能差异。

第3章“情报搜集”:3.1节“被动信息搜集”中,由于原书作者用于示例的secmaniac.net域名不再维护,我们将相关示例的域名更新为testfire.net,增加了原书作者未覆盖到的GoogleHacking基本技巧。

第4章“漏洞扫描”:4.2节“使用Nexpose进行扫描”中,更新了用Nexpose免费社区版进行漏洞扫描过程的演示。4.3节“使用Nessus进行扫描”中,更新了用免费家用版Nessus4.4.1进行漏洞扫描的过程演示。4.5节“利用扫描结果进行自动化攻击”中,由于Metasploit最新版本中已移除对db_autopwn功能的支持,更新使用了MetasploitPro商业版本进行自动化攻击的演示。

第5章“渗透攻击之旅”:5.2节“你的第一次渗透攻击”中,将攻击机从BackTrack更新至目前流行的KaliLinux,Windows靶标从WindowsXP英文版更新为国内读者更容易获取到的WindowsXP中文版。5.3节“攻击Metasploitable主机”中,将Linux靶标从Metasploitablev1更新至Metasploitablev2,将攻击服务同步更新至Metasploitablev2环境中包含的vsftpd网络服务。

第6章“Meterpreter”:6.7节“通过跳板攻击其他机器”中,增加了使用MetasploitPro的VPN跳板的功能介绍和演示。

第7章“免杀技术”:7.1节“使用MSF攻击载荷生成器创建可独立运行的二进制文件”中,Metasploit新版本使用msfvenom集成原先的载荷生成器msfpayload和编码器msfencode的功能,更新了利用msfvenom进行攻击载荷生成的命令。7.2节“躲避杀毒软件检测和后续”中,使用国内的杀毒软件代替原书中国外杀毒软件进行实验更新。我们增加了7.6“使用MetasploitPro的动态载荷实现免杀”,向读者们演示了MetasploitPro商业版中特有的动态载荷生成功能。

第8章“客户端渗透攻击”:使用了国内读者更熟悉的Ollydbg代替原书的ImmunityDbg更新对浏览器漏洞分析的实验过程。

第9章“Metasploit辅助模块”:9.2节“辅助模块剖析”中,根据原书作者采用的Foursquare基于用户地理位置信息的手机服务网站案例的API更新,将自动签到的辅助模块代码进行了同步更新,并解释了为了适用API更新而做出的修改。

第10章“社会工程学工具包”:根据KaliLinux中社会工程学工具包SET的版本更新,对原书实验进行了完整重复并更新了过程中的输入命令和输出结果。10.5节“USBHID攻击向量”中,采用国内淘宝可采购到的TeensyUSBHIB主板进行攻击过程重现,并提供了完整的代码,使得国内读者能够通过具体实验实际掌握此项渗透技术。

第11章“Fast-Track”:由于KaliLinux中将Fast-Track集成进SET且没有进行任何更新和维护,因此译者没有对本章进行任何修订。

第12章“Karmetasploit无线攻击套件”:使用国内更流行的采用RealtekRTL8188EUS802.11n芯片无线网卡进行了实验重现,并更新了实验过程的命令输入和结果输出。

第13章“编写你自己的模块”:重新部署了Windows7靶标环境代替原书中使用的WindowsServer2008R2重现实验,并更新了实验过程的命令输入和结果输出。

第14章“创建你自己的渗透攻击模块”:使用了国内读者更熟悉的Ollydbg代替原书使用的ImmunityDbg更新实验过程。

第15章“将渗透代码移植到Metasploit”:没有对本章进行任何修订。

第16章“Meterpreter脚本编程”:在更新后的KaliLinux操作机中对实验进行了完整复现,并更新了实验过程的命令输入和结果输出。

第17章“一次模拟的渗透测试过程”:采用更新后的MetasploitableLinuxv2.0作为靶标环境,针对靶标环境中存在漏洞网络服务的变化,选择了攻击Postgresql数据库服务案例代替了Metasploitablev1.0中的ApacheTomcat网络服务案例,使用unrealIRC网络服务案例代替了DistCC网络服务案例。

深夜里打算就以上内容将修订版译者序收场之时,突然一眼瞄到了之前译者序中立下的flag:“译者团队在充分吸收《Metasploit渗透测试指南(修订版)》技术精华之后,也仍有计划推出基于最新发布的Metasploitv4.0,分别面向渗透测试技术人员、漏洞研究与利用技术人员的Metasploit宝典姊妹篇”,瞬间心理防线崩塌“压力山大”了起来。将近六年之后,原先立的flag还只实现了一半(2014年推出的那本面向渗透测试技术人员的《Metasploit渗透测试魔鬼训练营》),flag的另一半还尚无头绪,只能在这里征集合作者,咱们一起争取“八年抗战”把这立在心头的flag拔掉,也算是给一直支持我们的读者朋友还有给我“挖坑”的编辑一个交代。

诸葛建伟

2017年6月5日深夜于北京西山

译者序

Metasploit渗透测试指南(修订版)》介绍Metasploit——近年来非常流行和极有发展前途的开源渗透测试框架平台软件,以及基于Metasploit进行网络渗透测试与安全漏洞研究分析的技术、流程和方法。Metasploit从2004年横空出世之后,立即引起了整个安全社区的高度关注,作为“黑马”很快就排进安全社区流行软件的五强之列。Metasploit不仅为渗透测试的初学者提供了一款简单易用、功能强大的软件,对于职业的渗透测试工程师而言更是在他们的“兵器库”中增加了一件神器,此外Metasploit也已经成为安全社区进行软件安全漏洞分析研究与开发的一个通用平台。现在,安全社区中的漏洞利用程序往往以Metasploit模块方式进行发布,大量书籍(如著名的《黑客大曝光》系列,国内的《0day安全:软件漏洞分析技术(第2版)》等)也都采用Metasploit作为案例讲解分析的基本工具。毋庸置疑,Metasploit已经是安全社区一颗璀璨的“明星”,成为安全社区各个层次上的技术人员都爱不释手的一款软件。

Metasploit渗透测试指南(修订版)》虽不是第一本介绍Metasploit软件的书籍(第一本是由Syngress在2007年出版的MetasploitToolkitforPenetrationTesting,ExploitDevelopment,andVulnerabilityResearch,但内容组织很差,大部分内容直接照搬一些公开的Metasploit文档,Amazon上都是一星和二星的负面评价),却是第一本真正能够全面且深入地展示Metasploit在网络渗透测试和漏洞研究方面强大能力的指南书籍。一方面Metasploit在2007年之后的v3.0版中重新设计并以Ruby完全重写,进一步提升了它作为网络渗透测试和漏洞研究框架平台性软件的功能与号召力;另一方面,来自著名黑客团队OffensiveSecurity的《Metasploit渗透测试指南(修订版)》作者们拥有着丰富的网络渗透测试、安全漏洞研究与渗透软件开发的实践经验,他们对网络渗透攻击的基本理论、实施流程,以及Metasploit软件及相关工具的使用与开发都非常熟悉和了解。在这《Metasploit渗透测试指南(修订版)》中,他们不仅对利用Metasploit来实施网络渗透测试的各个流程环节进行了细致流畅的描述和案例讲解,还结合他们的实际经验展示了如何在Metasploit平台基础上扩展开发模块,以解决一些实际情况中遇到的渗透测试需求。

因此,一方面,《Metasploit渗透测试指南(修订版)》能够逐步引导网络渗透测试的入门读者了解Metasploit的基本框架,并且结合Metasploit软件的功能进行案例讲解,从而使读者能够理解和掌握渗透攻击的基本原理、流程方法与实践技能;另一方面也能为一些较高水平的读者提供Metasploit功能的实际参考手册,及进一步扩展Metasploit完成实际需求的方法指引。正因为如此,《Metasploit渗透测试指南(修订版)》也获得了Metasploit项目发起人、著名黑客HDMoore的好评,并专门为《Metasploit渗透测试指南(修订版)》撰写了序言。

在《Metasploit渗透测试指南(修订版)》正式出版之前,译者团队——清华大学信息与网络安全实验室狩猎女神科研小组就一直在渗透测试与漏洞分析技术的学习、探索和研究中使用Metasploit框架软件,也在今年5月开始规划一本向国内读者全面介绍Metasploit的原创书。然而到6月我们就关注到了OffensiveSecurity黑客团队创作的Metasploit书籍马上要于7月出版,而且和我们之前所规划的原创书目标基本一致,同时我们对OffensiveSecurity黑客团队之前维护的“Metasploit揭秘”在线教程质量非常认可,因此对他们出版的Metasploit书籍的质量与市场销售前景也非常看好,所以选择将此书推荐给电子工业出版社进行引进翻译,电子工业出版社也很顺利地与外方出版社签订了版权引进协议。令我们意想不到的是《Metasploit渗透测试指南(修订版)》在Amazon上的市场销售表现甚至超过了我们的预期,在7月《Metasploit渗透测试指南(修订版)》出版后的相当长一段时间内,都占据了Amazon“安全与加密”类技术书籍的销量冠军宝座,直到让位于8月出版的米特尼克自传。

HDMoore在为《Metasploit渗透测试指南(修订版)》撰写的序言中说:“为Metasploit写一《Metasploit渗透测试指南(修订版)》根本就是一种自虐行为:完成的一章刚刚经过了试读,可能它里面的内容就已经过时了”。为了尽快让国内读者阅读到这本“新鲜出炉”极具影响力的Metasploit参考指南,译者团队在接受出版社的翻译任务之后,就“马不停蹄”地开始了翻译工作,由于我们对Metasploit都有较多的了解与实践经验,书籍专业内容方面并没有给我们带来太多障碍。正值学校暑假,因此译者团队也都投入了充分的时间来保障翻译质量,在书籍翻译所要达到的“信、达、雅”目标中,我们自信能够基本达到前两个目标。

对于“信”,我们在分配翻译任务时考虑了每位译者的技术优势和关注点,来保证对翻译内容的技术掌控,从而能够忠实地描述出原书作者期望传递给读者的技术知识。在翻译过程中,对于不太确认的一些疑问点,我们也祭出Metasploit软件进行实验验证,并将发现的几个原作者由于疏忽而引入的错误通过出版社提交给原作者进行勘误。对于“达”,我们在翻译之前对《Metasploit渗透测试指南(修订版)》出现的技术词汇进行了整理与翻译对照,统一《Metasploit渗透测试指南(修订版)》对关键技术词汇的翻译,并在初译结束之后,由诸葛建伟进行《Metasploit渗透测试指南(修订版)》内容的语句修改、润色与审校。完成修改之后的初稿又由各自负责的译者进行试读、修改与格式调整,最后由诸葛建伟与责任编辑进行《Metasploit渗透测试指南(修订版)》通读、审校与文字修改,通过认真负责的翻译与审校,应能保证最终译稿的达意。而对于翻译的最高境界“雅”,作为具有很强时效性需求的技术类书籍,译者团队在权衡之后,还是选择更加注重在确保前两者翻译质量目标的前提下尽快完成译稿,从而让《Metasploit渗透测试指南(修订版)》更快与国内读者见面,因此在翻译的“雅”上会有所欠缺,也请读者们谅解。

Metasploit渗透测试指南(修订版)》的读者群主要是网络与系统安全领域的技术爱好者与学生,渗透测试与漏洞分析研究方面的安全从业人员,由于Metasploit在国外安全社区中已经成为事实上的渗透测试与漏洞分析平台,相信国内也会有很多对此书感兴趣的读者。在《Metasploit渗透测试指南(修订版)》翻译过程中,译者也发现国内安全社区对《Metasploit渗透测试指南(修订版)》非常关注,并对中文版的尽早问世给予了很高的期望,也有两位热心人士计划自愿进行翻译,并分享给社区。然而由于《Metasploit渗透测试指南(修订版)》是具有版权的发行作品,因此译者善意提醒了他们可能存在的侵权法律问题,也告知他们译者团队在当时已经完成了全部章节的初稿翻译并已进入到审校阶段,他们也非常配合地放弃了重复翻译的想法。而这次小风波也反映了国内安全社区对《Metasploit渗透测试指南(修订版)》的期待,也促使译者团队尽快完成了书稿翻译与审校,为国内读者们献上一本具有良好翻译质量的Metasploit经典作品。

客观而言,《Metasploit渗透测试指南(修订版)》也还存在着一些不足之处,比如没有包含目前非常热门的Web应用渗透攻击测试与漏洞分析内容,渗透技术方面没有紧跟发展潮流(如VoIP、SCADA、移动平台等热点攻击技术),没有引入真实的渗透测试案例以说明Metasploit在实际网络渗透测试中的实用性等等。当然,“瑕不掩瑜”,这并不妨碍《Metasploit渗透测试指南(修订版)》能够成为一本优秀的网络渗透测试专业书籍。这也为我们进一步开发出更加全面深入的原创书提供了空间,而译者团队在充分吸收《Metasploit渗透测试指南(修订版)》技术精华之后,也仍有计划推出基于最新发布的Metasploitv4.0,分别面向渗透测试技术人员、漏洞研究与利用技术人员的Metasploit宝典姊妹篇,也请国内感兴趣的读者们给予关注。

Metasploit渗透测试指南(修订版)》翻译工作的具体分工是:诸葛建伟译序、前言和第1、2、13、14、15、17章,王珩译第3、4、5、7、9章,孙松柏译第10、11、16章和附录B,李聪译第6章,陈力波译第8章,田繁译第12章与附录A。《Metasploit渗透测试指南(修订版)》内容由诸葛建伟进行全面、仔细的统稿与审校。

在《Metasploit渗透测试指南(修订版)》的版权引进和翻译过程中,电子工业出版社的毕宁编辑给予了我们非常大的支持,顾慧芳编辑在审核、校对与排版等方面付出了辛勤的劳动。在此,一并表示深切的谢意。

诸葛建伟

2011年8月于北京清华园

作者序

Metasploit框架跻身信息安全职业者们最广泛使用的工具软件行列已经相当长时间了,但是除了源码本身和在博客上的一些评论之外,有价值的文档却一直非常少。这种状态在OffensiveSecurity团队开发了“Metasploit揭秘”在线教程之后得到了显著改观。在这部教程上线之后不久,NoStarch出版社就联系我们探讨扩展“Metasploit揭秘”教程来编写一本参考书的可行性。

而这《Metasploit渗透测试指南(修订版)》就是设计来让你了解Metasploit的输入输出,以及如何极致地发挥Metasploit框架能力的。而我们的章节内容覆盖也是经过深思熟虑和精心选择的——我们不会覆盖到每个参数或渗透攻击模块,但我们会让你了解必须掌握的基础技术,以及现在和将来如何使用Metasploit的方法。

开始写作《Metasploit渗透测试指南(修订版)》时,我们得到Metasploit项目创始人HDMoore的一次善意提醒。在和HD的一次关于开发我们的“Metasploit揭秘”在线教程的谈话中,我们中的一位成员对他说了一句:“我想教程质量会很好的”。对于这句漫不经心的自我评价,HD仅仅回应了一句“那就确保好的质量吧”。这就是我们期望《Metasploit渗透测试指南(修订版)》所达到的效果。

作为一个团队,我们都是富有经验的渗透测试师,每天都在使用Metasploit框架系统性地挫败安全控制措施、绕过防御机制,并攻击系统。我们写作此书的目的是帮助读者成为具备能力的渗透测试师。HD对高质量的关注和追求也在Metasploit框架中得到了非常显著的体现,我们也期望《Metasploit渗透测试指南(修订版)》能够达到与之相匹配的程度。而我们到底完成得如何,这将由你们来判断。

前言/序言

想像一下在不久的将来,一位攻击者决定要攻击一家跨国企业的数字资产,目标是从花费数百万美元构建的安全防御基础设施中挖掘出价值数亿的知识产权。攻击者很娴熟地祭出“神器”——最新版本Metasploit,在攻破目标组织的网络边界防御之后,他找到了一个“软肋”,并有条不紊地实施一系列渗透攻击,但是直到他攻陷网络中每一个角落之后,好戏才刚刚上演。他在系统之间神出鬼没,寻找核心业务组件,而企业仍然在按部就班地运营,没人能够察觉到他的存在。弹指之间,他让数百万美元的安全防御设施灰飞烟灭,将公司最敏感的知识产权数据手到擒来。

恭喜你完成了一次漂亮的工作,你已经展示出真正的业务影响和后果,现在是写报告和收钱的时候了。令人称奇的是,现今的渗透测试者就已经处在上面场景所描述的假想攻击者角色,应那些需要高度安全等级的企业邀请,来实施合法的攻击。欢迎来到渗透测试的神奇世界。为什么进行渗透测试?

企业在保护关键基础设施的安全计划中投入数百万美元,来找出防护盔甲的缝隙,防止敏感数据外泄。而渗透测试是能够识别出这些安全计划中的系统弱点与不足之处的一种最为有效的技术方式。通过尝试挫败安全控制措施并绕开防御机制,渗透测试师能够找出攻击者可能攻陷企业安全计划、并对企业带来严重破坏后果的方法。

当你在阅读《Metasploit渗透测试指南(修订版)》时,请记住你并不是非要攻陷哪个或者哪些系统,你的目标是以一种安全和受控的方式,来展示攻击者可以如何对一个组织造成严重破坏,并影响它的业务盈利、维持声誉和保护客户的能力。

为什么是Metasploit?

Metasploit并不仅仅是一个工具软件,它是为自动化地实施经典的、常规的,或复杂新颖的攻击提供基础设施支持的一个完整框架平台。它使你可以将精力集中在渗透测试过程中那些独特的方面上,以及如何识别信息安全计划的弱点上。

当你通过逐章阅读《Metasploit渗透测试指南(修订版)》并建立起一个完整全面的渗透测试方法体系的同时,你可以看到如何在你的渗透测试过程中以多种方式来使用Metasploit框架软件。Metasploit能够让你通过选择它的渗透攻击模块、攻击载荷和编码器来轻易实施一次渗透攻击,也可以更进一步编写并执行更为复杂的攻击技术。在《Metasploit渗透测试指南(修订版)》中,我们也会介绍几个基于Metasploit框架所构建的第三方工具——其中一些是由《Metasploit渗透测试指南(修订版)》作者所编写的。我们的目标是让你充分认识Metasploit框架,为你展示一些高级的攻击技术,并确保你能够可靠地应用这些技术。我们希望你能够像我们编写过程中一样享受这《Metasploit渗透测试指南(修订版)》。进入游戏,让我们开始玩吧!

Metasploit发展简史

Metasploit最初是由HDMoore所开发和孕育的,当时HD只是一个安全公司的雇员,当他意识到他的绝大多数时间是在用来验证和处理那些公开发布的渗透代码时,他便开始为编写和开发渗透代码构建一个灵活且可维护的框架平台。2003年的10月HD发布了他的第一个基于Perl语言的Metasploit版本,当时一共集成了11个渗透攻击模块。

HD于2004年4月发布了完全重写后的Metasploit2.0,这个版本包含了19个渗透攻击模块和超过27个攻击载荷。在这次发布之后不久,MattMiller(Skape)加入了Metasploit开发团队,随着项目逐步获得关注,Metasploit框架也获得了来自信息安全社区的大量代码贡献,并很快成为了一个渗透测试与攻击的必备工具。

在使用Ruby编程语言进行了一次完全重写之后,Metasploit团队在2007年发布了Metasploit3.0。Metasploit框架从Perl到Ruby的移植整整花了18个月,结果造就了超过15万行的新代码。随着3.0版本的发布,Metasploit在安全社区获得了更加广泛的用户群,并在代码贡献方面也得到了快速的发展。

2009年秋季,Metasploit被漏洞扫描领域的一家领军企业Rapid7公司收购,Rapid7公司允许HD来招募一支团队,专注于Metasploit框架的开发。自从被收购之后,Metasploit上的代码更新比任何人所预期的都要快得多。Rapid7公司在Metasploit框架的基础上也发布了两款商业版本:MetasploitExpress和MetasploitPro。MetasploitExpress是一个带有GUI界面的轻量级Metasploit框架软件,并增加了一些额外的功能,包括报告生成和其他一些很有用的特性。MetasploitPro则是MetasploitExpress的扩展版本,能够支持以团队协作方式实施的渗透测试过程,并拥有如一键创建VPN通道等很多有用的特性。

关于《Metasploit渗透测试指南(修订版)

Metasploit渗透测试指南(修订版)》的目标是为你传授从Metasploit基础到渗透攻击高级技术的所有知识和技能,我们的目的是为初学者提供一本有用的指南教程,为职业的渗透测试工程师提供一本参考索引,然而我们不会总是牵着你的手前行。编程知识是在渗透测试领域中必须具备的基础,《Metasploit渗透测试指南(修订版)》中的很多例子都会使用Ruby或者Python编程语言,虽然我们建议你去学习并掌握像Ruby或Python这样的一种编程语言,来帮助你进行更高级的渗透攻击和攻击定制开发,但对于阅读《Metasploit渗透测试指南(修订版)》来讲编程知识不是必需的。

当你逐渐熟悉Metasploit之后,你会发现:Metasploit框架是一项经常更新并拥有一些新的特性、渗透代码和攻击的技术。《Metasploit渗透测试指南(修订版)》在编写时,Metasploit中的知识也在不停地更新,没有一《Metasploit渗透测试指南(修订版)》能够跟上如此快速开发的脚步,因此我们更加关注于基础,因为一旦你理解了Metasploit如何工作,你就有能力自己快速地去了解和掌握Metasploit框架的更新内容了。

Metasploit渗透测试指南(修订版)》内容

这《Metasploit渗透测试指南(修订版)》如何才能帮助你入门并让你的技能登上一个新的台阶呢?每个章都以前一章作为阶梯,这样可以帮助你从零开始来建立起作为渗透测试者的基本技能。

第1章:“渗透测试技术基础”,帮你建立起关于渗透测试的方法学。

第2章:“Metasploit基础”,引领你认识Metasploit框架中的各种工具。

第3章:“情报搜集”,为你展示在渗透测试侦察阶段利用Metasploit搜集情报信息的不同方法。

第4章:“漏洞扫描”,指导你如何发现安全漏洞并充分利用漏洞扫描技术。

第5章:“渗透攻击之旅”,带你进入渗透攻击的世界。

第6章:“Meterpreter”,让你见识后渗透攻击阶段的瑞士军刀——Meterpreter。

第7章:“免杀技术”,关注对杀毒软件进行逃逸的底层技术概念。

第8章:“客户端渗透攻击”,为你展示客户端渗透攻击和浏览器安全漏洞。

第9章:“Metasploit辅助模块”,带你了解辅助模块的多样化能力。

第10章:“社会工程学工具包”,这是你在社会工程学攻击中使用SET的参考指南。

第11章:“Fast-Track”,为你全面剖析Fast-Track——一个自动化的渗透测试框架软件。

第12章:“Karmetasploit无线攻击套件”,为你展示如何利用Karmetasploit进行无线攻击。

第13章:“编写你自己的模块”,教你如何编写自己的渗透攻击模块。

第14章:“创建你自己的渗透攻击模块”,介绍Fuzz测试技术,以及如何使用缓冲区溢出技术来创建渗透攻击模块。

第15章:“将渗透代码移植到Metasploit”,让你深入地体验将已有渗透代码移植成Metasploit框架模块的过程。

第16章:“Meterpreter脚本编程”,为你展示如何编写自己的Meterpreter脚本。

第17章:“一次模拟的渗透测试过程”,将所有的技术综合在一起,来带领你进行一次模拟的渗透攻击。

关于道德伦理的忠告

我们编写《Metasploit渗透测试指南(修订版)》的目的是帮助你提升作为渗透测试者的技能。作为一名渗透测试者,我们可以击败安全防御机制,但这仅仅是我们工作中的一部分。当你进行渗透攻击时,请记着如下的忠告:

不要进行恶意的攻击;

不要做傻事;

在没有获得书面授权时,不要攻击任何目标;

考虑你的行为将会带来的后果;

如果你干了些非法的事情,天网恢恢疏而不漏,你总会被抓到牢里的。

无论《Metasploit渗透测试指南(修订版)》作者,还是《Metasploit渗透测试指南(修订版)》的出版商——NoStarch出版社(译者注:再加上《Metasploit渗透测试指南(修订版)》译者和中文书出版商——电子工业出版社),都不会宽恕或鼓励滥用《Metasploit渗透测试指南(修订版)》讨论的渗透测试技术进行非法活动的行为,也不会对其承担任何责任,我们的目标是让你变得更具能力,而不是帮助你自找麻烦,而且我们也不想,也没有能力把你从里面捞出来。


其他推荐