发表于2024-11-23
KaliLinux面向专业的渗透测试和安全审计,集成了大量精心挑选的安全检测工具。本书在KaliLinux平台上从一个攻击者的角度来审视网络框架,详细介绍了攻击者“杀链”采取的具体步骤。通过阅读本书读者能快速学习和掌握渗透测试方法和工具。
作者简介罗伯特W.贝格斯(Robert W. Beggs)是Digitial Defence公司的创始人和首席执行官,该公司专门从事信息安全事件的预防和处理。他拥有超过15年的安全业务技术管理经验,涉及有线和无线网络的渗透测试、事件响应、数据取证等内容。
罗伯特是一个资深的信息安全传播者,并且是多伦多地区安全大会(Toronto Area Security Klatch,TASK)的联合创始人之一,在北美多伦多地区安全大会是众所周知的、大的独立–供应商安全用户群。他是部门安全会议(SecTor Security Conference)咨询委员会的成员,以及其他几个安全学术委员会的成员。他是一个热心的安全培训教师,他在加拿大几所大学教授研究生、本科生和继续教育学生的信息安全课程。
罗伯特拥有女王大学的计算机科学与技术MBA学位,同时是一个认证信息系统安全专家。
推荐序
作者简介
审校者简介
前言
第一部分 攻击者杀链
第1章 走进Kali Linux 2
1.1 Kali Linux 2
1.2 配置网络服务和安全通信 4
1.2.1 调整网络代理设置 5
1.2.2 使用安全Shell保护通信安全 6
1.3 更新Kali Linux 7
1.4 配置和自定义Kali Linux 9
1.4.1 重置超级用户密码 9
1.4.2 添加普通用户 10
1.4.3 加速Kali运行 10
1.4.4 与Microsoft Windows共享文件夹 11
1.4.5 用TrueCrypt创建加密文件夹 13
1.5 第三方应用程序的管理 17
1.5.1 安装第三方应用程序 17
1.5.2 作为普通用户运行第三方应用程序 18
1.6 渗透测试的有效管理 19
1.7 总结 21
第2章 确定目标——被动侦察 22
2.1 侦察的基本原则 22
2.2 开源情报 23
2.3 DNS侦察和路由映射 25
2.3.1 WHOIS 25
2.3.2 DNS侦察 26
2.3.3 映射路由到目标 29
2.4 获得用户信息 31
2.4.1 收集姓名和电子邮件地址 31
2.4.2 收集文件元数据 32
2.5 分析用户密码列表 34
2.6 小结 35
第3章 主动侦察和漏洞扫描 36
3.1 隐形扫描策略 37
3.1.1 调整源IP栈和工具识别设置 37
3.1.2 修改数据包参数 38
3.1.3 使用匿名网络代理(Tor和Privoxy) 39
3.2 识别网络基础设施 42
3.3 枚举主机 43
3.4 端口、操作系统和发现服务 44
3.4.1 端口扫描 44
3.4.2 指纹识别操作系统 45
3.4.3 确定主动服务 46
3.5 采用综合侦察应用 47
3.5.1 nmap 47
3.5.2 recon-ng框架 49
3.5.3 Maltego 51
3.6 漏洞扫描 52
3.7 小结 53
第4章 漏洞利用 54
4.1 威胁建模 55
4.2 使用在线和本地漏洞资源 56
4.2.1 Metasploit框架 59
4.2.2 利用易受攻击的应用程序 63
4.3 使用Armitage的多目标渗透 64
4.3.1 Armitage 测试团队 66
4.3.2 Armitage攻击脚本 66
4.4 绕过IDS与反病毒侦测 67
4.5 小结 73
第5章 后期利用——行动的目的 74
5.1 绕过Windows用户账户控制 75
5.2 对已入侵的系统进行快速侦察 77
5.3 找到并提取敏感数据——掠夺目标 80
5.4 创建附加账户 83
5.5 使用Metasploit工具进行后期渗透活动 84
5.6 在已入侵主机上提升用户权限 87
5.7 使用incognito重放身份验证令牌 88
5.7.1 使用Windows凭据编辑器操作访问凭据 89
5.7.2 从管理员升级到系统管理员 90
5.8 访问新账户实现横向升级 90
5.9 消除痕迹 91
5.10 小结 93
第6章 后期利用——持久性 94
6.1 破解现有的系统和应用程序文件进行远程访问 95
6.1.1 启用远程服务 95
6.1.2 启用远程Windows终端服务 96
6.1.3 启用远程虚拟网络计算 97
6.2 使用持久代理 98
6.3 使用Metasploit框架保持持久性 101
6.3.1 使用metsvc脚本 101
6.3.2 使用persistence脚本 103
6.4 使用Metasploit框架创建一个独立持久代理 104
6.5 重定向端口来绕过网络控制 106
6.5.1 示例1——简单端口重定向 106
6.5.2 示例2——双向端口重定向 107
6.6 小结 107
第二部分 交付阶段
第7章 物理攻击与社会工程学 110
7.1 社会工程工具包 111
7.1.1 网络钓鱼攻击曝光 113
7.1.2 使用网站攻击向量——Java小程序攻击方法 118
7.1.3 使用网站攻击向量——凭据收割攻击方法 121
7.1.4 使用网站攻击向量——标签钓鱼攻击方法 123
7.1.5 使用网站攻击向量——综合攻击网页方法 124
7.2 使用PowerShell字母数字的shellcode注入攻击曝光 125
7.3 隐藏可执行文件与伪装攻击者的URL 126
7.4 使用DNS重定向攻击的升级攻击 127
7.5 物理访问与敌对设备 130
7.6 小结 133
第8章 利用无线通信 134
8.1 配置Kali实现无线攻击曝光 134
8.2 无线侦察 135
8.3 绕过一个隐藏的服务集标识符 138
8.4 绕过MAC地址验证 140
8.5 破解WEP加密 142
8.6 攻击WPA和WPA2 146
8.6.1 暴力攻击曝光 146
8.6.2 使用Reaver攻击无线路由器曝光 149
8.7 克隆接入点 149
8.8 拒绝服务攻击曝光 150
8.9 小结 151
第9章 基于Web应用的侦察与利用 153
9.1 对网站进行侦察 154
9.2 漏洞扫描器 158
9.2.1 扩展传统漏洞扫描器功能 158
9.2.2 扩展Web浏览器功能 159
9.2.3 具体网络服务的漏洞扫描器 160
9.3 使用客户端代理测试安全性 163
9.4 服务器漏洞 167
9.5 针对特定应用的攻击 168
9.5.1 暴力破解访问证书 169
9.5.2 数据库注入攻击曝光 169
9.6 使用网站后门维持访问 171
9.7 小结 172
第10章 利用远程访问通信 174
10.1 利用操作系统通信协议 175
10.1.1 破解远程桌面协议 175
10.1.2 破解安全外壳 177
10.2 利用第三方远程访问应用程序 179
10.3 攻击安全套接字层 180
10.3.1 为SSLv2扫描配置Kali 181
10.3.2 SSL连接的侦察 182
10.3.3 使用sslstrip进行中间人攻击曝光 186
10.3.4 针对SSL的拒绝服务攻击曝光 188
10.4 攻击IPSec虚拟专用网络 188
10.4.1 扫描VPN网关 189
10.4.2 指纹识别VPN网关 190
10.4.3 截获预共享密钥 191
10.4.4 执行离线PSK破解 191
10.4.5 确定默认用户账户 192
10.5 小结 192
第11章 客户端攻击技术详解 193
11.1 使用恶意脚本攻击系统曝光 193
11.1.1 使用VBScript进行攻击曝光 194
11.1.2 使用Windows PowerShell攻击系统曝光 196
11.2 跨站点脚本框架 198
11.3 浏览器开发框架——BeEF 204
11.4 BeEF浏览器的演练 206
11.4.1 整合BeEF和Metasploit攻击 210
11.4.2 用BeEF作为隧道代理 211
11.5 小结 213
附录 安装Kali Linux 214
Preface本书致力于介绍如何使用Kali Linux对网络执行渗透测试。渗透测试可以模拟内部或外部的恶意攻击者对网络或系统进行攻击。不同于漏洞评估,渗透测试包括漏洞利用阶段。因此,漏洞是存在的,而且如果不采取相应的措施将会有很大风险。
在这本书中,“渗透测试人员”“攻击者”和“黑客”使用完全相同的技术及工具评估网络和数据系统的安全性。他们之间唯一的区别是他们的目标——数据网络的安全或数据的外泄。
大多数的测试人员和攻击者遵循一个非正式的、开源的或专门定义的测试方法,指导测试过程。下面的一些方法有其固有的优势:
测试过程的部分方法可以自动生成(例如,测试人员可以经常使用ping扫描发现潜在的目标;因此,这可以作为脚本利用),鼓励测试人员把重点放在发现和利用漏洞的技术创新上。
结果是可重复的,允许反复比较,交叉验证测试的结果,确定随着时间的推移,目标的安全性是否有所改善。
定义的方法在时间和人员的要求方面是可见的,鼓励成本控制并使成本小化。
测试方法已经预先获得客户批准,在对网络或数据造成任何损害时测试人员免责。
正式的方法包括以下著名的例子:
Kevin Orrey的渗透测试框架: 这种方法为测试人员提供一个渗透测试的序列步骤,以及工具的超链接和相关命令。更多信息请参见www.vulnerabilityassessment.co.uk。
信息系统安全评估框架(Information Systems Security Assessment Framework,ISSAF): 这个综合性指南的目标是单一的网络测试,更多信息请参见www.oissg.org。
NIST SP 800-115,信息安全测试和评估技术手册:完成于2008年,这种四步走的方法已经有些过时。然而,它确实为渗透测试提供了一个很好的基本步骤总结。更多信息请参见http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf。
开源安全测试方法手册(Open Source Security Testing Methodology Manual,OSSTMM): 这个老的方法之一,并且新版本试图量化确定的风险。更多详细内容参见www.osstmm.org。
开放Web应用安全工程(Open Web Application Security Project,OWASP):该工程主要关注了基于Web应用的10个常见的漏洞。更多信息请关注www.owasp.org。
渗透测试执行标准(Penetration Testing Execution Standard,PTES):积极维护,这种方法能完整并且精确地反映恶意者的行为。更多信息请关注www.pentest-standard.org。
攻击(Web)测试框架(Offensive(Web)Testing Framework,OWTF):在2012年提出,结合了OWASP方法和更完整、严格的PTES方法,这是一个非常有前途的研究方向。更多详细信息请关注https://github.com/7a/owtf。
但是,使用一个结构化的渗透测试方法可能会导致测试过程陷入泥潭:
模型中很少考虑为什么要进行渗透测试,或哪些数据是业务的关键数据,并且需要保护。缺少这至关重要的一步,渗透测试无法抓住重点。 很多渗透测试人员不愿遵循现成的模型方法,他们担心模型会阻碍他们进行网络渗透的创造力。
渗透测试不能反映恶意攻击者的实际活动。通常,客户希望看到你能不能在一个特定的系统中获得管理上的访问权(“你可以打开这个盒子吗?”)。然而,攻击者可能会重点关注复制关键数据的方式——不需要底层接入,或引起拒绝服务。
为了解决形式化测试方法所固有的局限性,它们必须被整合在一个框架中,从一个攻击者的角度看这个网络框架,这就是“杀链”(kill chain)。
渗透测试的“杀链”方案在2009年,Lockheed Martin CERT的Mike Cloppert介绍了这个概念,现在被称为“攻击者杀链”(attacker kill chain)。当攻击者攻击网络时,“杀链”包含攻击者采取的步骤。“杀链”不总是以一个线性流呈现,因为一些步骤可能会并行出现。多发攻击可以对同一个目标瞬时进行多种攻击,并且在同一时间攻击步骤可能发生重叠。
在本书中,我们已经修改了Cloppert的杀链,使之能更准确地反映攻击者如何在测试网络和数据服务时应用这些步骤。下图显示了一个攻击者的典型杀链:
图 典型的杀链一个攻击者的典型杀链可以描述为:
侦察阶段。有一句格言:“侦察永远不浪费时间”。大多数军事组织承认,在进攻敌人之前,好尽可能地去了解敌人的一切信息。同样,攻击者在攻击之前也会对目标展开广泛的侦察。事实上,据估计,针对渗透测试或攻击,至少有70%的“工作量”是进行侦察!一般来说,可采用两种类型的侦察:
被动侦察。这种方式并不直接与目标以敌对方式进行交互。例如,攻击者将会审查公共的可用网站,评估在线媒体(尤其是社交媒体网站),并试图确定目标的“攻击表面”。
一个详细的任务将会产生一份过去和现在的雇员名称的列表。这些名称将成为尝试蛮力攻击或密码猜测的基础。同样它们也被用到社会工程的攻击中。
这种类型的侦察很难从普通用户的行为中区分出来。
主动侦察。这种方式可以被目标检测到,但是很难从常规的背景中区分出大多数在线组织的表现。
主动侦察期间的活动包括物理访问目标前端、端口扫描和远程漏洞扫描。
交付阶段。交付是选择和开发武器,武器用于完成攻击中的任务。精确的武器选择取决于攻击者的意图以及实施路线(例如,借助网络、通过无线,或通过基于Web的服务)。交付阶段的影响将在本书第二部分进行研究。
利用或攻击阶段。一个特定的漏洞被成功利用的时刻,此时攻击者实现他们的目标。攻击可能已经在一个特定的情景下发生(例如:通过缓冲区溢出利用一个已知操作系统的安全隐患),或者攻击可能在多个情景下发生(例如:一个攻击者物理访问公司住所,偷取他们的电话簿,用公司员工的名字来创建门户登录蛮力攻击列表。此外,电子邮件被发送到所有员工以引诱他们单击一个嵌入式链接,下载制作的PDF文件,这些文件会危及员工的计算机)。当恶意攻击者针对特定的企业时,多情景攻击是常态。
后期利用阶段:对目标的行动。这经常被称为“渗漏阶段”(exfiltration phase),这是错误的,因为通常理解的攻击,仅仅以窃取敏感信息作为唯一的目的(如登录信息、个人信息和财务信息);但是,通常情况下,攻击者有不同的攻击目标。例如,这一阶段必须专注于攻击者的许多可能的行动。
常见的利用活动是攻击者试图提升他们的访问权限到高级(纵向升级),并且破解尽可能多的账号(横向升级)。
后期利用:持久性。如果攻击一个网络或者系统是有价值的,那么这个价值很可能在持续攻击下增长。这就需要攻击者持续与被攻破的系统之间保持通信。从防护者的角度来看,这是攻击杀链中容易检测到的一部分。
当攻击者试图攻击网络或特定的数据系统时,攻击杀链是攻击者行为的一种基本模型。作为一种元模型,它可以吸收任何私人的或商业的渗透测试方法。但是,也不同于这些方法,它使攻击者在一个战略高度上关注如何接近网络。这种专注于攻击者的活动将引导本书的布局和内容。
本书涵盖的内容本书分为两个部分。第一部分会根据杀链的步骤,详细分析每个阶段。第二部分会专注于交付阶段和一些有用的方法,来明确攻击是怎么发生的,以及如何用这种方法来保护网络。
第1章介绍了Kali Linux的基础知识和它支持渗透测试的优配置。
第2章提供了一个关于怎么样利用公共可用资源搜集目标信息的背景,以及简化侦察和信息管理的工具。
第3章介绍用来获得目标信息的隐形方法,尤其是识别漏洞的信息,这种信息可以充分利用。
第4章证明了可以用来找到并执行渗透的方法,允许黑客攻击一个系统。
第5章描述攻击者怎样逐步提高自己的权限,实现他们攻击系统的目标,包括盗窃数据、改变数据、发动更多的攻击,或创建一个拒绝服务。
第6章介绍了怎样设置一个受损系统,以便攻击者可以任意返回和继续利用漏洞进行攻击。
第7章介绍了为什么可以在物理上访问一个系统,或者与系统管理者交互,该章提供了一个佳的利用方法。
第8章阐明了怎样利用普通无线链接来访问数据网络与隔离系统。
第9章提供一个关于获得安全的、复杂的交付阶段的简要综述:暴露在公共因特网上的基于Web的应用。
第10章提供一个进入系统的重要方法,因为越来越多的机构采用分布式和在家办公的模式,这种模式依赖于远程访问通信,而这种通信很容易受到攻击。
第11章主要讨论针对终端用户系统上应用的攻击,因为这些应用不会频繁地为终端用户的系统提供与企业的私人网络相同程度的保护。
附录概述安装Kali Linux的主要步骤,以及怎样采用全盘加密来避免机密测试数据的拦截。
学习本书需要准备什么为了练习本书中出现的示例,需要虚拟化工具,例如VMware或者VirtualBox。
需要下载和安装Kali Linux操作系统及工具套件。通过访问互联网来确保你的系统是新的,并且安装了所有的工具。
不幸的是,不是Kali Linux系统上的所有工具都会呈现,因为工具太多了。本书的目标不是将所有的攻击和选项展现给读者,而是提供一个测试方法,这个方法可以为读者提供学习和掌握新工具的机会,经过一段时间后,将它们变为自己的经验和知识。
虽然本书中大多数示例是基于Microsoft Wind Kali Linux高级渗透测试 下载 mobi epub pdf txt 电子书 格式
Kali Linux高级渗透测试 下载 mobi pdf epub txt 电子书 格式 2024
Kali Linux高级渗透测试 下载 mobi epub pdf 电子书推荐,挺有用
评分准备学习网络安全的入门教材
评分不错哟,目前用着还可以,没有出现质量问题
评分刚收到 等以后再慢慢看吧 经典趁便宜收藏了
评分还不错,好好学习天天向上
评分还好还好
评分让我成为了kali的高手
评分准备学习网络安全的入门教材
评分有点薄,没想到
Kali Linux高级渗透测试 mobi epub pdf txt 电子书 格式下载 2024