
《Metasploit渗透测试指南(修订版)》 戴维·肯尼 (David Kennedy), Jim O'Gorman, Devon Kearns, Mati Aharoni, HD Moore, 诸葛建伟, 王珩, 陆宇翔, 等 9787121318252
配送至
编辑推荐
自2013年首次问世以来,《Metasploit渗透测试指南(修订版)》迅速掳获了从业人员的芳心。作为独一一本经官方团队亲自评审并高度认可(“现今已有最好的Metasploit框架软件参考指南”)的著作,《Metasploit渗透测试指南(修订版)》不仅涵盖了基础的工具和技术,也深入分享了如何实施渗透测试的方法与经验。四位来自不同领域的资深黑客作者从不同的视角无私奉献了他们的技巧与心得:既贡献了企业安全架构上的经验,也端出了安全漏洞挖掘和渗透代码开发的“私房菜”。
本次的修订版,在译者的精心组织与编排下完成,主要的修订在于:基于Metasploit最新的版本复现并更新了原书的实验案例,同时考虑到国情与本地化的需求,将关键的实验对象、分析工具等换成了国内读者更容易接触和使用的替代品。这使读者能更容易通过复现实验过程,深刻而快速地掌握相关渗透技巧。
译者来自诸葛建伟老师的团队。诸葛建伟老师是XCTF联赛发起人、著名的蓝莲花团队创始人之一,在网络安全领域有多年的从业经验。
口碑好书,值得珍藏!
作者简介
作者简介
David Kennedy Diehold 公司首席信息安全官,社会工程学工具包(SET)、Fast-Track 和其他开源工具的作者,他同时也是Back Track 和Exploit Database 的开发团队成员,以及社会工程学博客网站的核心成员。Kennedy 曾在Black Hat、Defcon、ShmooCon、Security B-Sides 等一些安全会议上发表过演讲。
Jim O’Gorman CSC 公司StrickForce 团队的职业渗透测试工程师,Social-Engineer.org 网站的共同创办者,Offensive Security 团队的培训讲师。他经常进行数字取证分析调查和恶意代码分析,并协助在Back Track 中集成取证分析工具。在业余时间里,他会帮助自己的孩子们大战僵尸。
Devon Kearns Offensive Security 团队的培训讲师,Back Track 的开发者,以及ExploitDatabase 网站的管理员。他也为Metasploit 贡献过一些渗透攻击模块,并且是《Metasploit 揭秘》教程Wiki 的维护者。
Mati Aharoni Back Track 发行版的创建者,以及安全培训界领军团队Offensive Security的创始人。
译者简介
诸葛建伟 博士,清华大学网络空间安全研究室副研究员,狩猎女神科研团队负责人,蓝莲花战队联合创始人及领队,XCTF 联赛发起人及组委会副主任委员,信息安全领域培训讲师和自由撰稿人,撰写和翻译过多部教材和技术书籍。个人网站:netsec.ccert.edu.cn/zhugejw。
王珩 清华大学硕士毕业,蓝莲花创始团队队员,资深信息安全从业者,在Web 应用程序安全、网络渗透测试等方面有丰富的实践经验,现任赛宁网安副总经理、产品总监。
微博:@evan-css。
孙松柏 清华大学硕士毕业,从事网络安全相关工作十余年,在Web 渗透测试等方面有丰富实践经验。
陆宇翔 北京邮电大学信息安全专业毕业,现就职于赛宁网安,参与网络安全实训产品的相关工作。
目录
第1章渗透测试技术基础
1.1PTES中的渗透测试阶段
1.1.1前期交互阶段
1.1.2情报搜集阶段
1.1.3威胁建模阶段
1.1.4漏洞分析阶段
1.1.5渗透攻击阶段
1.1.6后渗透攻击阶段
1.1.7报告阶段
1.2渗透测试类型
1.2.1白盒测试
1.2.2黑盒测试
1.2.3灰盒测试
1.3漏洞扫描器
1.4小结
第2章Metasploit基础
2.1专业术语
2.1.1渗透攻击(Exploit)
2.1.2攻击载荷(Payload)
2.1.3shellcode
2.1.4模块(Module)
2.1.5监听器(Listener)
2.2Metasploit用户接口
2.2.1MSF终端
2.2.2MSF命令行
2.2.3Armitage
2.3Metasploit功能程序
2.3.1MSF攻击载荷生成器
2.3.2MSF编码器
2.3.3Nasmshel
2.4Metasploit Express和Metasploit Pro
2.5小结
第3章情报搜集
3.1被动信息搜集
3.1.1whois查询
3.1.2Netcraft
3.1.3nslookup
3.1.4GoogleHacking
3.2主动信息搜集
3.2.1使用nmap进行端口扫描
3.2.2在Metasploit中使用数据库
3.2.3使用Metasploit进行端口扫描
3.3针对性扫描
3.3.1服务器消息块协议扫描
3.3.2搜寻配置不当的MicrosoftSQLServer
3.3.3SSH服务器扫描
3.3.4FTP扫描
3.3.5简单网管协议扫描
3.4编写自己的扫描器
3.5展望
第4章漏洞扫描
4.1基本的漏洞扫描
4.2使用Nexpose进行扫描
4.2.1配置
4.2.2将扫描报告导入到Metasploit中
4.2.3在MSF控制台中运行Nexpose
4.3使用Nessus进行扫描
4.3.1配置Nessus
4.3.2创建Nessus扫描策略
4.3.3执行Nessus扫描
4.3.4Nessus报告
4.3.5将扫描结果导入Metasploit框架中
4.3.6在Metasploit内部使用Nessus进行扫描
4.4专用漏洞扫描器
4.4.1验证SMB登录
4.4.2扫描开放的VNC空口令
4.4.3扫描开放的X11服务器
4.5利用扫描结果进行自动化攻击
第5章渗透攻击之旅
5.1渗透攻击基础
5.1.1msf>showexploits
5.1.2msf>showauxiliary
5.1.3msf>showoptions
5.1.4msf>showpayloads
5.1.5msf>showtargets
5.1.6info
5.1.7set和unset
5.1.8setg和unsetg
5.1.9save
5.2你的第一次渗透攻击
5.3攻击Metasploitable主机
5.4全端口攻击载荷:暴力猜解目标开放的端口
5.5资源文件
5.6小结
第6章Meterpreter
6.1攻陷WindowsXP虚拟机
6.1.1使用nmap扫描端口
6.1.2攻击MSSQL
6.1.3暴力破解MSSQL服务
6.1.4xp_cmdshell
6.1.5Meterpreter基本命令
6.1.6获取键盘记录
6.2挖掘用户名和密码
6.2.1提取密码哈希值
6.2.2使用Meterpreter命令获取密码哈希值
6.3传递哈希值
6.4权限提升
6.5令牌假冒
6.6使用PS
6.7通过跳板攻击其他机器
6.7.1使用Meterpreter进行跳板攻击
6.7.2使用MetasploitPro的VPN跳板
6.8使用Meterpreter脚本
6.8.1迁移进程
6.8.2关闭杀毒软件
6.8.3获取系统密码哈希值
6.8.4查看目标机上的所有流量
6.8.5攫取系统信息
6.8.6控制持久化
6.9向后渗透攻击模块转变
6.10将命令行shell升级为Meterpreter
6.11通过附加的Railgun组件操作WindowsAPI
6.12小结
第7章免杀技术
7.1使用MSF攻击载荷生成器创建可独立运行的二进制文件
7.2躲避杀毒软件的检测
7.2.1使用MSF编码器
7.2.2多重编码
7.3自定义可执行文件模板
7.4隐秘地启动一个攻击载荷
7.5加壳软件
7.6使用MetasploitPro的动态载荷实现免杀
7.7关于免杀处理的最后忠告
第8章客户端渗透攻击
8.1基于浏览器的渗透攻击
8.1.1基于浏览器的渗透攻击原理
8.1.2关于空指令
8.2使用ollydbg调试器揭秘空指令机器码
8.3对IE浏览器的极光漏洞进行渗透利用
8.4文件格式漏洞渗透攻击
8.5发送攻击负载
8.6小结
第9章Metasploit辅助模块
9.1使用辅助模块
9.2辅助模块剖析
9.3展望
第10章社会工程学工具包
10.1配置SET工具包
10.2针对性钓鱼攻击向量
10.3Web攻击向量
10.3.1JavaApplet
10.3.2客户端Web攻击
10.3.3用户名和密码获取
10.3.4标签页劫持攻击(Tabnabbing)
10.3.5中间人攻击
10.3.6网页劫持
10.3.7综合多重攻击方法
10.4传染性媒体生成器
10.5USBHID攻击向量
10.6SET的其他特性
10.7展望
第11章Fast—Track
11.1MicrosoftSQL注入
11.1.1SQL注入——查询语句攻击
11.1.2SQL注入——POST参数攻击
11.1.3手工注入
11.1.4MSSQL破解
11.1.5通过SQL自动获得控制(SQLPwnage)
11.2二进制到十六进制转换器
11.3大规模客户端攻击
11.4对自动化渗透的一点看法
第12章Karmetasploit无线攻击套件
12.1配置
12.2开始攻击
12.3获取凭证
12.4得到shell
12.5小结
第13章编写你自己的模块
13.1在MSSQL上进行命令执行
13.2探索一个已存在的Metasploit模块
13.3编写一个新的模块
13.3.1PowerShell
13.3.2运行shell渗透攻击
13.3.3编写Powershell_upload_exec函数
13.3.4从十六进制转换回二进制程序
13.3.5计数器
13.3.6运行渗透攻击模块
13.4小结——代码重用的能量
第14章创建你自己的渗透攻击模块
14.1Fuzz测试的艺术
14.2控制结构化异常处理链
14.3绕过SEH限制
14.4获取返回地址
14.5坏字符和远程代码执行
14.6小结
第15章将渗透代码移植到Metasploit
15.1汇编语言基础
15.1.1EIP和ESP寄存器
15.1.2JMP指令集
15.1.3空指令和空指令滑行区
15.2移植一个缓冲区溢出攻击代码
15.2.1裁剪一个已有的渗透攻击代码
15.2.2构造渗透攻击过程
15.2.3测试我们的基础渗透代码
15.2.4实现框架中的特性
15.2.5增加随机化
15.2.6消除空指令滑行区
15.2.7去除伪造的shellcode
15.2.8我们完整的模块代码
15.3SEH覆盖渗透代码
15.4小结
第16章Meterpreter脚本编程
16.1Meterpreter脚本编程基础
16.2MeterpreterAPI
16.2.1打印输出
16.2.2基本API调用
16.2.3MeterpreterMixins
16.3编写Meterpreter脚本的规则
16.4创建自己的Meterpreter脚本
16.5小结
第17章一次模拟的渗透测试过程
17.1前期交互
17.2情报搜集
17.3威胁建模
17.4渗透攻击
17.5MSF终端中的渗透攻击过程
17.6后渗透攻击
17.6.1扫描Metasploitable靶机
17.6.2识别存有漏洞的服务
17.7攻击PostgreSQL数据库服务
17.8攻击一个偏门的服务
17.9隐藏你的踪迹
17.10小结
附录A配置目标机器
附录B命令参考列表
序言
推荐序
IT 是一个非常复杂和混沌的领域,充斥着各种已经半死不活的过时技术和数量更多的新系统、新软件和新协议。保护现在的企业网络不能仅仅依靠补丁管理、防火墙和用户培训,而更需要周期性地对网络中的安全防御机制进行真实环境下的验证与评估,以确定哪些是有效的哪些是缺失的,而这就是渗透测试所要完成的目标。
渗透测试是一项非常具有挑战性的工作。你拿着客户付的钱,却像犯罪者那样去思考,使用你所掌握的各种“游击”战术,在一个高度复杂的防御网络中找出最为薄弱的环节,来实施致命一击。在渗透测试中,你能够发现的事情可能是既让你的雇主惊奇,又让他烦恼的:从他的服务器可以被攻陷并架设色情网站,到公司业务可以被实施大规模的欺诈与犯罪行为。
渗透测试过程需要绕过目标组织的安全防御阵线,探测出系统中存在的弱点。一次成功的渗透测试可能获取到一些敏感数据,而这通常是安全体系结构审查或漏洞评估所无法找出的,系统被发现的典型弱点包括共享口令、非法外联的网络,以及一些被发掘曝光的隐私信息。由马虎草率的系统管理员和匆匆赶工完成的系统部署会造成各种各样的安全问题,经常会对一个组织造成严重的安全威胁,然而对应的解决方案与计划措施可能还积压在系统管理员冗长的
TO-DO 列表中。渗透测试可以将这些被忽略的问题及时揭示出来,让目标组织更加清晰地了解到在防御一次真正的入侵时哪些问题更需要被立即解决。
渗透测试者会接触到一个公司中最敏感的资源,他们也会访问到公司中最关键的区域,而如果有人针对这些资源和区域实施一些邪恶的攻击行为,那将给这个公司带来极其严重的影响和后果。仅仅一个神秘出现的数据包就可能导致整个工厂停工,从而造成每小时数百万美元的损失;被当成攻击跳板时没有察觉并向有关部门进行通报,也可能导致最后遭遇到警方令人不自在且难堪的问询。医疗系统是一个甚至连非常有经验的渗透测试师都不太乐意进行测试的领域,没有人愿意承担这个领域一些系统故障的后果与责任:比如由于OpenVMS 大型机系统故障导致将患者的血型搞混,或者由于运行Windows XP 的一台X 光机内存破坏对患者进行超辐射量的扫描。最为关键的系统经常也是最为脆弱的,没有几个系统管理员愿意承担业务中断的风险关闭一台核心数据库服务器来安装安全补丁。
在利用潜在攻击路径和造成损害的风险中进行权衡是所有渗透测试师都必须掌握的技能,这个过程不仅仅依赖于对渗透工具和技术的了解,也取决于对目标组织业务流程的深入理解,以及对其中最脆弱环节的定位能力。
在本书中,你将透过四位安全专家的视角来认识渗透测试,而他们拥有不同的背景与技术专长,其中有在企业安全架构方面拥有丰富经验的安全专家,也有熟知安全漏洞挖掘和渗透代码开发地下经济链的资深黑客。在市面上已经有一些关于渗透测试与安全评估技术的书籍,也有一些完全聚焦于某种工具的实践参考书。而这本书尝试在这两者之间取得平衡,既覆盖了一些基础的工具和技术,同时又展示了如何实施一次渗透测试的方法与经验。有经验的渗透测试者也可以从基于最新渗透测试执行标准的方法学中得到一些启示,而新接触到渗透测试领域的新手们也将不仅仅能够看到关于如何入门的参考指南,也可以了解到哪些技术步骤是关键的、为什么关键,以及它们在整个渗透测试流程中的地位。
这本书是专注于Metasploit 渗透测试框架软件的专题指南。Metasploit 开源平台提供了一个包含大量通用可靠并且经常更新的渗透攻击代码库,同时也为编写新的渗透工具及自动化渗透测试过程提供了一个完整的研究与开发环境。本书也介绍了Metasploit Express 和Metasploit Pro——Metasploit 框架中商业化的两个同胞姐妹,她们为如何进行一次自动化的大规模渗透测试提供了独树一帜的能力。
Metasploit 框架在代码的反复无常上是“声名狼藉”的,它的代码库每天被一个核心的开发团队和数百位来自社区的贡献者更新数十次。在我看来,为Metasploit 写一本书根本就是一种自虐行为:完成的一章刚刚经过了试读,可能它里面的内容就已经过时了。然而,作者们接受了这项艰巨的任务,并成功地让这本书在到达读者手中时,内容还仍然是适用的。
Metasploit 开发团队也参与了这本书的评审,以确保对代码的最新修改能够精确地反映到书中,而最终的评审结果是:这本书对Metasploit 框架软件的“0day”覆盖已经达到人力的极限。我们可以很负责任地说——这是现今已有最好的Metasploit 框架软件参考指南。我们希望本书能够在你的工作中发挥价值,并且是指导你在渗透测试技术道路上不断探索前行的一本优秀参考指南。
HD Moore
Metasploit 项目创始人
修订版译者序
2017 年春节假期前,当博文视点编辑皎子老师在微信聊天中提及要重新出《Metasploit 渗透测试指南》这本书的时候,我的第一感受还是蛮激动的,以为Offensive Security 的几位大神们终于想起对这本Metasploit 入门宝典做更新了。因为这本书对于我而言还是蛮有感情的,她是我技术书籍翻译的处女作,自此书出版之后,我就像打开了在网络安全技术书籍出版领域的大门,在之后的三年里组织和参与翻译了五本网络安全知名巨著,包括畅销经典《线上幽灵:世界头号黑客米特尼克自传》、大部头的《恶意代码分析实战》、安卓安全重头书《Android 安全攻防权威指南》等,也和本书译者团队共同出版了一本原创书《Metasploit 渗透测试魔鬼训练营》,算是“集齐七龙珠”,可以“召唤神龙”了。然而等我平复心情去查了下原版的更新情况,却意识到可能有人在给我挖坑了。原书的作者大神们可能根本没有想起来要去更新这本经典书籍,而是在专注一本新书Kali Revealed 的最后冲刺吧。
由于“欠债”太多的缘故,我无法拒绝皎子编辑的殷切期盼,答应她尽快利用春节假期的时间对这本Metasploit 入门宝典进行修订,以适应读者需求并重新出版。为了能够让读者参考修订版来使用最新版本的Metasploit 渗透测试框架软件,我重新召集了原来译者团队中的核心成员——王珩(好在他已经加入赛宁创业团队),并让赛宁网络安全工程师陆宇翔全职加入一起进行全书操作流程的复现和更新工作。此外,为了让读者们能更容易地进行修订版中的全部实验,除了同步更新附录A 中的实验环境部署流程之外,我们还在赛宁运营的XCTF-OJ 实训平台中提供完整的实验环境,让读者无须自己配置环境即可在线快速进行全书大部分的实验操作。
在本书的修订过程中,我们采取的原则是尽量保持原书作者的实验案例选择,仅根据Metasploit 版本更新的实际情况来复现实验,同步更新实验操作流程的命令输入和输出结果,这样让读者在阅读本书时能够实践和掌握Metasploit 最新版本的使用方法和应用技巧。对于少量我们觉得国内读者不便重现的实验案例,我们将实验对象、分析工具等替换为国内读者更容易接触和使用的替代品,在保持实验目的和功能展示效果不变的前提下,让大家更容易通过复现实验过程掌握相关渗透技巧。
基于以上修订原则,我们对原书进行的具体修订内容如下。
第1 章“渗透测试技术基础”:1.2 节“渗透测试类型”中,在原书作者描述的黑盒测试和白盒测试之外,增加了对实际测试环境中更推荐的灰盒渗透方法进行了介绍。
第2 章“Metasploit 基础”:2.2 节“Metasploit 用户接口”中,根据Metasploit 2015 年1月版本之后的更新,移除了其不再支持的msfcli 命令行工具的说明,并介绍了可替令行工具的MSF 终端“-x”选项的用法。2.3 节“Metasploit 功能程序”中,说明了MSF攻击载荷生成器和编码器不再以单独的程序(分别为msfpayload、msfencode)实现,而是将功能集成到msfvenom 程序中。2.4 节“Metasploit Express 和Metasploit Pro”中,增加了Metasploit 商业版本和免费版本的功能差异。
第3 章“情报搜集”:3.1 节“被动信息搜集”中,由于原书作者用于示例的secmaniac.net域名不再维护,我们将相关示例的域名更新为testfire.net,增加了原书作者未覆盖到的Google Hacking 基本技巧。
第4 章“漏洞扫描”:4.2 节“使用Nexpose 进行扫描”中,更新了用Nexpose 免费社区
文摘
版权页:
插图:
8.1 基于浏览器的渗透攻击
在这一节中,我们将集中讨论Metasploit框架中基于浏览器的渗透攻击。由于在很多的组织机构里,浏览器是用户用得最多的应用软件,所以,基于浏览器的渗透攻击是一项最为常用和重要的技术。
假设另外一个场景:我们将一封包含访问链接的邮件发送给某个组织里的一小群人员。当用户点击该链接时,他们的浏览器将会访问我们事先构造好的网站,这些特殊构造的网页将会溢出某个特定版本IE浏览器中的一个程序漏洞。如果用户使用的浏览器是包含漏洞的版本,那么当他的浏览器访问我们的恶意网站时,他的主机将会被我们轻而易举地控制。
自2013年首次问世以来,《Metasploit渗透测试指南(修订版)》迅速掳获了从业人员的芳心。作为独一一本经官方团队亲自评审并高度认可(“现今已有最好的Metasploit框架软件参考指南”)的著作,《Metasploit渗透测试指南(修订版)》不仅涵盖了基础的工具和技术,也深入分享了如何实施渗透测试的方法与经验。四位来自不同领域的资深黑客作者从不同的视角无私奉献了他们的技巧与心得:既贡献了企业安全架构上的经验,也端出了安全漏洞挖掘和渗透代码开发的“私房菜”。
本次的修订版,在译者的精心组织与编排下完成,主要的修订在于:基于Metasploit最新的版本复现并更新了原书的实验案例,同时考虑到国情与本地化的需求,将关键的实验对象、分析工具等换成了国内读者更容易接触和使用的替代品。这使读者能更容易通过复现实验过程,深刻而快速地掌握相关渗透技巧。
译者来自诸葛建伟老师的团队。诸葛建伟老师是XCTF联赛发起人、著名的蓝莲花团队创始人之一,在网络安全领域有多年的从业经验。
口碑好书,值得珍藏!
作者简介
作者简介
David Kennedy Diehold 公司首席信息安全官,社会工程学工具包(SET)、Fast-Track 和其他开源工具的作者,他同时也是Back Track 和Exploit Database 的开发团队成员,以及社会工程学博客网站的核心成员。Kennedy 曾在Black Hat、Defcon、ShmooCon、Security B-Sides 等一些安全会议上发表过演讲。
Jim O’Gorman CSC 公司StrickForce 团队的职业渗透测试工程师,Social-Engineer.org 网站的共同创办者,Offensive Security 团队的培训讲师。他经常进行数字取证分析调查和恶意代码分析,并协助在Back Track 中集成取证分析工具。在业余时间里,他会帮助自己的孩子们大战僵尸。
Devon Kearns Offensive Security 团队的培训讲师,Back Track 的开发者,以及ExploitDatabase 网站的管理员。他也为Metasploit 贡献过一些渗透攻击模块,并且是《Metasploit 揭秘》教程Wiki 的维护者。
Mati Aharoni Back Track 发行版的创建者,以及安全培训界领军团队Offensive Security的创始人。
译者简介
诸葛建伟 博士,清华大学网络空间安全研究室副研究员,狩猎女神科研团队负责人,蓝莲花战队联合创始人及领队,XCTF 联赛发起人及组委会副主任委员,信息安全领域培训讲师和自由撰稿人,撰写和翻译过多部教材和技术书籍。个人网站:netsec.ccert.edu.cn/zhugejw。
王珩 清华大学硕士毕业,蓝莲花创始团队队员,资深信息安全从业者,在Web 应用程序安全、网络渗透测试等方面有丰富的实践经验,现任赛宁网安副总经理、产品总监。
微博:@evan-css。
孙松柏 清华大学硕士毕业,从事网络安全相关工作十余年,在Web 渗透测试等方面有丰富实践经验。
陆宇翔 北京邮电大学信息安全专业毕业,现就职于赛宁网安,参与网络安全实训产品的相关工作。
目录
第1章渗透测试技术基础
1.1PTES中的渗透测试阶段
1.1.1前期交互阶段
1.1.2情报搜集阶段
1.1.3威胁建模阶段
1.1.4漏洞分析阶段
1.1.5渗透攻击阶段
1.1.6后渗透攻击阶段
1.1.7报告阶段
1.2渗透测试类型
1.2.1白盒测试
1.2.2黑盒测试
1.2.3灰盒测试
1.3漏洞扫描器
1.4小结
第2章Metasploit基础
2.1专业术语
2.1.1渗透攻击(Exploit)
2.1.2攻击载荷(Payload)
2.1.3shellcode
2.1.4模块(Module)
2.1.5监听器(Listener)
2.2Metasploit用户接口
2.2.1MSF终端
2.2.2MSF命令行
2.2.3Armitage
2.3Metasploit功能程序
2.3.1MSF攻击载荷生成器
2.3.2MSF编码器
2.3.3Nasmshel
2.4Metasploit Express和Metasploit Pro
2.5小结
第3章情报搜集
3.1被动信息搜集
3.1.1whois查询
3.1.2Netcraft
3.1.3nslookup
3.1.4GoogleHacking
3.2主动信息搜集
3.2.1使用nmap进行端口扫描
3.2.2在Metasploit中使用数据库
3.2.3使用Metasploit进行端口扫描
3.3针对性扫描
3.3.1服务器消息块协议扫描
3.3.2搜寻配置不当的MicrosoftSQLServer
3.3.3SSH服务器扫描
3.3.4FTP扫描
3.3.5简单网管协议扫描
3.4编写自己的扫描器
3.5展望
第4章漏洞扫描
4.1基本的漏洞扫描
4.2使用Nexpose进行扫描
4.2.1配置
4.2.2将扫描报告导入到Metasploit中
4.2.3在MSF控制台中运行Nexpose
4.3使用Nessus进行扫描
4.3.1配置Nessus
4.3.2创建Nessus扫描策略
4.3.3执行Nessus扫描
4.3.4Nessus报告
4.3.5将扫描结果导入Metasploit框架中
4.3.6在Metasploit内部使用Nessus进行扫描
4.4专用漏洞扫描器
4.4.1验证SMB登录
4.4.2扫描开放的VNC空口令
4.4.3扫描开放的X11服务器
4.5利用扫描结果进行自动化攻击
第5章渗透攻击之旅
5.1渗透攻击基础
5.1.1msf>showexploits
5.1.2msf>showauxiliary
5.1.3msf>showoptions
5.1.4msf>showpayloads
5.1.5msf>showtargets
5.1.6info
5.1.7set和unset
5.1.8setg和unsetg
5.1.9save
5.2你的第一次渗透攻击
5.3攻击Metasploitable主机
5.4全端口攻击载荷:暴力猜解目标开放的端口
5.5资源文件
5.6小结
第6章Meterpreter
6.1攻陷WindowsXP虚拟机
6.1.1使用nmap扫描端口
6.1.2攻击MSSQL
6.1.3暴力破解MSSQL服务
6.1.4xp_cmdshell
6.1.5Meterpreter基本命令
6.1.6获取键盘记录
6.2挖掘用户名和密码
6.2.1提取密码哈希值
6.2.2使用Meterpreter命令获取密码哈希值
6.3传递哈希值
6.4权限提升
6.5令牌假冒
6.6使用PS
6.7通过跳板攻击其他机器
6.7.1使用Meterpreter进行跳板攻击
6.7.2使用MetasploitPro的VPN跳板
6.8使用Meterpreter脚本
6.8.1迁移进程
6.8.2关闭杀毒软件
6.8.3获取系统密码哈希值
6.8.4查看目标机上的所有流量
6.8.5攫取系统信息
6.8.6控制持久化
6.9向后渗透攻击模块转变
6.10将命令行shell升级为Meterpreter
6.11通过附加的Railgun组件操作WindowsAPI
6.12小结
第7章免杀技术
7.1使用MSF攻击载荷生成器创建可独立运行的二进制文件
7.2躲避杀毒软件的检测
7.2.1使用MSF编码器
7.2.2多重编码
7.3自定义可执行文件模板
7.4隐秘地启动一个攻击载荷
7.5加壳软件
7.6使用MetasploitPro的动态载荷实现免杀
7.7关于免杀处理的最后忠告
第8章客户端渗透攻击
8.1基于浏览器的渗透攻击
8.1.1基于浏览器的渗透攻击原理
8.1.2关于空指令
8.2使用ollydbg调试器揭秘空指令机器码
8.3对IE浏览器的极光漏洞进行渗透利用
8.4文件格式漏洞渗透攻击
8.5发送攻击负载
8.6小结
第9章Metasploit辅助模块
9.1使用辅助模块
9.2辅助模块剖析
9.3展望
第10章社会工程学工具包
10.1配置SET工具包
10.2针对性钓鱼攻击向量
10.3Web攻击向量
10.3.1JavaApplet
10.3.2客户端Web攻击
10.3.3用户名和密码获取
10.3.4标签页劫持攻击(Tabnabbing)
10.3.5中间人攻击
10.3.6网页劫持
10.3.7综合多重攻击方法
10.4传染性媒体生成器
10.5USBHID攻击向量
10.6SET的其他特性
10.7展望
第11章Fast—Track
11.1MicrosoftSQL注入
11.1.1SQL注入——查询语句攻击
11.1.2SQL注入——POST参数攻击
11.1.3手工注入
11.1.4MSSQL破解
11.1.5通过SQL自动获得控制(SQLPwnage)
11.2二进制到十六进制转换器
11.3大规模客户端攻击
11.4对自动化渗透的一点看法
第12章Karmetasploit无线攻击套件
12.1配置
12.2开始攻击
12.3获取凭证
12.4得到shell
12.5小结
第13章编写你自己的模块
13.1在MSSQL上进行命令执行
13.2探索一个已存在的Metasploit模块
13.3编写一个新的模块
13.3.1PowerShell
13.3.2运行shell渗透攻击
13.3.3编写Powershell_upload_exec函数
13.3.4从十六进制转换回二进制程序
13.3.5计数器
13.3.6运行渗透攻击模块
13.4小结——代码重用的能量
第14章创建你自己的渗透攻击模块
14.1Fuzz测试的艺术
14.2控制结构化异常处理链
14.3绕过SEH限制
14.4获取返回地址
14.5坏字符和远程代码执行
14.6小结
第15章将渗透代码移植到Metasploit
15.1汇编语言基础
15.1.1EIP和ESP寄存器
15.1.2JMP指令集
15.1.3空指令和空指令滑行区
15.2移植一个缓冲区溢出攻击代码
15.2.1裁剪一个已有的渗透攻击代码
15.2.2构造渗透攻击过程
15.2.3测试我们的基础渗透代码
15.2.4实现框架中的特性
15.2.5增加随机化
15.2.6消除空指令滑行区
15.2.7去除伪造的shellcode
15.2.8我们完整的模块代码
15.3SEH覆盖渗透代码
15.4小结
第16章Meterpreter脚本编程
16.1Meterpreter脚本编程基础
16.2MeterpreterAPI
16.2.1打印输出
16.2.2基本API调用
16.2.3MeterpreterMixins
16.3编写Meterpreter脚本的规则
16.4创建自己的Meterpreter脚本
16.5小结
第17章一次模拟的渗透测试过程
17.1前期交互
17.2情报搜集
17.3威胁建模
17.4渗透攻击
17.5MSF终端中的渗透攻击过程
17.6后渗透攻击
17.6.1扫描Metasploitable靶机
17.6.2识别存有漏洞的服务
17.7攻击PostgreSQL数据库服务
17.8攻击一个偏门的服务
17.9隐藏你的踪迹
17.10小结
附录A配置目标机器
附录B命令参考列表
序言
推荐序
IT 是一个非常复杂和混沌的领域,充斥着各种已经半死不活的过时技术和数量更多的新系统、新软件和新协议。保护现在的企业网络不能仅仅依靠补丁管理、防火墙和用户培训,而更需要周期性地对网络中的安全防御机制进行真实环境下的验证与评估,以确定哪些是有效的哪些是缺失的,而这就是渗透测试所要完成的目标。
渗透测试是一项非常具有挑战性的工作。你拿着客户付的钱,却像犯罪者那样去思考,使用你所掌握的各种“游击”战术,在一个高度复杂的防御网络中找出最为薄弱的环节,来实施致命一击。在渗透测试中,你能够发现的事情可能是既让你的雇主惊奇,又让他烦恼的:从他的服务器可以被攻陷并架设色情网站,到公司业务可以被实施大规模的欺诈与犯罪行为。
渗透测试过程需要绕过目标组织的安全防御阵线,探测出系统中存在的弱点。一次成功的渗透测试可能获取到一些敏感数据,而这通常是安全体系结构审查或漏洞评估所无法找出的,系统被发现的典型弱点包括共享口令、非法外联的网络,以及一些被发掘曝光的隐私信息。由马虎草率的系统管理员和匆匆赶工完成的系统部署会造成各种各样的安全问题,经常会对一个组织造成严重的安全威胁,然而对应的解决方案与计划措施可能还积压在系统管理员冗长的
TO-DO 列表中。渗透测试可以将这些被忽略的问题及时揭示出来,让目标组织更加清晰地了解到在防御一次真正的入侵时哪些问题更需要被立即解决。
渗透测试者会接触到一个公司中最敏感的资源,他们也会访问到公司中最关键的区域,而如果有人针对这些资源和区域实施一些邪恶的攻击行为,那将给这个公司带来极其严重的影响和后果。仅仅一个神秘出现的数据包就可能导致整个工厂停工,从而造成每小时数百万美元的损失;被当成攻击跳板时没有察觉并向有关部门进行通报,也可能导致最后遭遇到警方令人不自在且难堪的问询。医疗系统是一个甚至连非常有经验的渗透测试师都不太乐意进行测试的领域,没有人愿意承担这个领域一些系统故障的后果与责任:比如由于OpenVMS 大型机系统故障导致将患者的血型搞混,或者由于运行Windows XP 的一台X 光机内存破坏对患者进行超辐射量的扫描。最为关键的系统经常也是最为脆弱的,没有几个系统管理员愿意承担业务中断的风险关闭一台核心数据库服务器来安装安全补丁。
在利用潜在攻击路径和造成损害的风险中进行权衡是所有渗透测试师都必须掌握的技能,这个过程不仅仅依赖于对渗透工具和技术的了解,也取决于对目标组织业务流程的深入理解,以及对其中最脆弱环节的定位能力。
在本书中,你将透过四位安全专家的视角来认识渗透测试,而他们拥有不同的背景与技术专长,其中有在企业安全架构方面拥有丰富经验的安全专家,也有熟知安全漏洞挖掘和渗透代码开发地下经济链的资深黑客。在市面上已经有一些关于渗透测试与安全评估技术的书籍,也有一些完全聚焦于某种工具的实践参考书。而这本书尝试在这两者之间取得平衡,既覆盖了一些基础的工具和技术,同时又展示了如何实施一次渗透测试的方法与经验。有经验的渗透测试者也可以从基于最新渗透测试执行标准的方法学中得到一些启示,而新接触到渗透测试领域的新手们也将不仅仅能够看到关于如何入门的参考指南,也可以了解到哪些技术步骤是关键的、为什么关键,以及它们在整个渗透测试流程中的地位。
这本书是专注于Metasploit 渗透测试框架软件的专题指南。Metasploit 开源平台提供了一个包含大量通用可靠并且经常更新的渗透攻击代码库,同时也为编写新的渗透工具及自动化渗透测试过程提供了一个完整的研究与开发环境。本书也介绍了Metasploit Express 和Metasploit Pro——Metasploit 框架中商业化的两个同胞姐妹,她们为如何进行一次自动化的大规模渗透测试提供了独树一帜的能力。
Metasploit 框架在代码的反复无常上是“声名狼藉”的,它的代码库每天被一个核心的开发团队和数百位来自社区的贡献者更新数十次。在我看来,为Metasploit 写一本书根本就是一种自虐行为:完成的一章刚刚经过了试读,可能它里面的内容就已经过时了。然而,作者们接受了这项艰巨的任务,并成功地让这本书在到达读者手中时,内容还仍然是适用的。
Metasploit 开发团队也参与了这本书的评审,以确保对代码的最新修改能够精确地反映到书中,而最终的评审结果是:这本书对Metasploit 框架软件的“0day”覆盖已经达到人力的极限。我们可以很负责任地说——这是现今已有最好的Metasploit 框架软件参考指南。我们希望本书能够在你的工作中发挥价值,并且是指导你在渗透测试技术道路上不断探索前行的一本优秀参考指南。
HD Moore
Metasploit 项目创始人
修订版译者序
2017 年春节假期前,当博文视点编辑皎子老师在微信聊天中提及要重新出《Metasploit 渗透测试指南》这本书的时候,我的第一感受还是蛮激动的,以为Offensive Security 的几位大神们终于想起对这本Metasploit 入门宝典做更新了。因为这本书对于我而言还是蛮有感情的,她是我技术书籍翻译的处女作,自此书出版之后,我就像打开了在网络安全技术书籍出版领域的大门,在之后的三年里组织和参与翻译了五本网络安全知名巨著,包括畅销经典《线上幽灵:世界头号黑客米特尼克自传》、大部头的《恶意代码分析实战》、安卓安全重头书《Android 安全攻防权威指南》等,也和本书译者团队共同出版了一本原创书《Metasploit 渗透测试魔鬼训练营》,算是“集齐七龙珠”,可以“召唤神龙”了。然而等我平复心情去查了下原版的更新情况,却意识到可能有人在给我挖坑了。原书的作者大神们可能根本没有想起来要去更新这本经典书籍,而是在专注一本新书Kali Revealed 的最后冲刺吧。
由于“欠债”太多的缘故,我无法拒绝皎子编辑的殷切期盼,答应她尽快利用春节假期的时间对这本Metasploit 入门宝典进行修订,以适应读者需求并重新出版。为了能够让读者参考修订版来使用最新版本的Metasploit 渗透测试框架软件,我重新召集了原来译者团队中的核心成员——王珩(好在他已经加入赛宁创业团队),并让赛宁网络安全工程师陆宇翔全职加入一起进行全书操作流程的复现和更新工作。此外,为了让读者们能更容易地进行修订版中的全部实验,除了同步更新附录A 中的实验环境部署流程之外,我们还在赛宁运营的XCTF-OJ 实训平台中提供完整的实验环境,让读者无须自己配置环境即可在线快速进行全书大部分的实验操作。
在本书的修订过程中,我们采取的原则是尽量保持原书作者的实验案例选择,仅根据Metasploit 版本更新的实际情况来复现实验,同步更新实验操作流程的命令输入和输出结果,这样让读者在阅读本书时能够实践和掌握Metasploit 最新版本的使用方法和应用技巧。对于少量我们觉得国内读者不便重现的实验案例,我们将实验对象、分析工具等替换为国内读者更容易接触和使用的替代品,在保持实验目的和功能展示效果不变的前提下,让大家更容易通过复现实验过程掌握相关渗透技巧。
基于以上修订原则,我们对原书进行的具体修订内容如下。
第1 章“渗透测试技术基础”:1.2 节“渗透测试类型”中,在原书作者描述的黑盒测试和白盒测试之外,增加了对实际测试环境中更推荐的灰盒渗透方法进行了介绍。
第2 章“Metasploit 基础”:2.2 节“Metasploit 用户接口”中,根据Metasploit 2015 年1月版本之后的更新,移除了其不再支持的msfcli 命令行工具的说明,并介绍了可替令行工具的MSF 终端“-x”选项的用法。2.3 节“Metasploit 功能程序”中,说明了MSF攻击载荷生成器和编码器不再以单独的程序(分别为msfpayload、msfencode)实现,而是将功能集成到msfvenom 程序中。2.4 节“Metasploit Express 和Metasploit Pro”中,增加了Metasploit 商业版本和免费版本的功能差异。
第3 章“情报搜集”:3.1 节“被动信息搜集”中,由于原书作者用于示例的secmaniac.net域名不再维护,我们将相关示例的域名更新为testfire.net,增加了原书作者未覆盖到的Google Hacking 基本技巧。
第4 章“漏洞扫描”:4.2 节“使用Nexpose 进行扫描”中,更新了用Nexpose 免费社区
文摘
版权页:
插图:
8.1 基于浏览器的渗透攻击
在这一节中,我们将集中讨论Metasploit框架中基于浏览器的渗透攻击。由于在很多的组织机构里,浏览器是用户用得最多的应用软件,所以,基于浏览器的渗透攻击是一项最为常用和重要的技术。
假设另外一个场景:我们将一封包含访问链接的邮件发送给某个组织里的一小群人员。当用户点击该链接时,他们的浏览器将会访问我们事先构造好的网站,这些特殊构造的网页将会溢出某个特定版本IE浏览器中的一个程序漏洞。如果用户使用的浏览器是包含漏洞的版本,那么当他的浏览器访问我们的恶意网站时,他的主机将会被我们轻而易举地控制。
ISBN | 9787121318252 |
---|---|
出版社 | 电子工业出版社 |
作者 | 戴维·肯尼 (David Kennedy) |
尺寸 | 16 |