描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121343131丛书名: 安全技术大系
本书由Kali Linux的官方团队撰写,相比市面上其他图书,内容上几乎无可挑剔。
除了可以帮助读者轻松入门,本书更能提高读者对系统的整体认识:它完全从实战出发,对从环境搭建到渗透测试的全过程 、主流工具的使用,均有丰富的示例进行深入阐述。这些内容,将成为你深入探索Kali Linux的正确起点!
学习Kali Linux,当然选《Kali Linux大揭秘:深入掌握渗透测试平台》。
1.1 简要回顾 2
1.2 和Debian的关系 3
1.2.1 软件包处理流程 3
1.2.2 同Debian的区别 4
1.3 设计目标和使用场景 5
1.4 Kali Linux的主要功能 7
1.4.1 一个自生系统 7
1.4.2 取证模式 8
1.4.3 一个自定义的Linux内核 8
1.4.4 完全可定制 8
1.4.5 一个值得信任的操作系统 8
1.4.6 可以在众多的ARM设备中使用 9
1.5 Kali Linux的设计策略 9
1.5.1 默认使用root用户 9
1.5.2 禁用了网络服务 10
1.5.3 一个精心组织的应用集合 10
1.6 小结 11
练习题 11
练习1——搭建环境 11
思考题 12
第2章 Kali入门 13
2.1 下载一个Kali ISO镜像 13
2.1.1 从哪里下载 13
2.1.2 下载什么内容 14
2.1.3 验证完整性和真实性 16
2.1.4 将镜像复制到DVD-ROM或USB驱动器中 18
2.2 使用自生模式启动Kali ISO 23
2.2.1 在一台物理计算机上启动 23
2.2.2 在一台虚拟机中启动 23
2.3 小结 34
练习题 35
练习1——安装、下载、验证和烧录Kali 35
练习2——启动Kali 35
练习3——修改启动参数 35
思考题 36
第3章 Linux基础 37
3.1 什么是Linux,它能做什么 37
3.1.1 驱动硬件设备 38
3.1.2 统一文件系统 38
3.1.3 管理进程 39
3.1.4 权限管理 40
3.2 命令行 40
3.2.1 如何获得一个命令行 40
3.2.2 命令行基础:浏览目录树以及管理文件 42
3.3 文件系统 43
3.3.1 文件系统层次标准 43
3.3.2 用户的主目录 44
3.4 有用的命令 45
3.4.1 显示和修改文本文件 45
3.4.2 搜索文件和文件内容 45
3.4.3 进程管理 46
3.4.4 权限管理 46
3.4.5 获取系统信息和日志 49
3.4.6 发现硬件 50
3.5 小结 51
练习题 52
练习1 52
练习2——任务控制 52
练习3——检索文件 52
练习4——枚举硬件 53
练习5——使用硬件 53
思考题 53
第4章 安装Kali Linux 54
4.1 小安装要求 54
4.2 手把手教你如何安装到硬盘上 55
4.2.1 非加密安装 55
4.2.2 在一个完全加密的文件系统上安装 72
4.3 无人值守安装 77
4.3.1 预设答案 77
4.3.2 创建预设文件 78
4.4 ARM平台安装 79
4.5 疑难问题解答 80
4.6 小结 84
练习题 85
练习1——全加密盘安装Kali Linux 85
练习2——Kali Linux无人值守安装 85
练习3——Kali Linux在ARM设备中的安装 85
进阶练习 85
练习4——自定义Kali Linux ARM安装 85
练习5——Kali Linux ARM chroot 86
第5章 配置Kali Linux 87
5.1 网络配置 87
5.1.1 使用桌面上的NetworkManager 87
5.1.2 通过命令行使用ifupdown 88
5.1.3 命令行工具systemd-networkd 90
5.2 管理UNIX用户和用户组 91
5.2.1 创建用户账号 91
5.2.2 修改一个已存在的用户名及口令 92
5.2.3 禁用一个账号 92
5.2.4 管理UNIX用户组 92
5.3 配置服务 93
5.3.1 配置一个特定程序 93
5.3.2 配置SSH远程登录 94
5.3.3 配置PostgreSQL数据库服务 95
5.3.4 配置Apache 97
5.4 服务管理 100
5.5 小结 103
练习题 104
练习1——配置管理Kali系统中的用户 104
练习2——配置网络 104
练习3——配置服务第1部分 104
练习4——配置服务第2部分 104
进阶练习 105
练习5——树莓派接入点 105
第6章 自助解决问题并获得帮助 106
6.1 文档资源 106
6.1.1 手册页 107
6.1.2 Info文档 108
6.1.3 软件包专用文档 109
6.1.4 网站 109
6.1.5 docs.kali.org上的Kali 使用文档 110
6.2 Kali Linux社区 110
6.2.1 forums.kali.org上的Web论坛 111
6.2.2 kali-linux IRC的freenode即时聊天频道 111
6.3 编写一个友好的bug报告 112
6.3.1 一般性建议 112
6.3.2 在哪里提交问题报告 115
6.3.3 如何填写一个bug报告 116
6.4 小结 129
练习题 130
练习1——Kali源 130
第7章 加固和监控Kali Linux 131
7.1 定义安全策略 131
7.2 可用的安全措施 133
7.2.1 服务器 133
7.2.2 个人电脑 133
7.3 对网络服务进行安全加固 134
7.4 防火墙和包过滤 135
7.4.1 netfilter 行为 135
7.4.2 iptables和ip6tables语法 138
7.4.3 创建规则 140
7.4.4 每次启动时加载的规则 141
7.5 监控和日志 142
7.5.1 使用logcheck来监控日志 142
7.5.2 监控实时行为 143
7.5.3 侦测变化 143
7.6 小结 146
练习题 147
练习1——加固Kali网络 147
练习2——Kali服务监控 147
练习3——Kali文件系统安全加固 148
进阶练习 148
练习4——无线热点 148
第8章 Debian软件包管理 149
8.1 APT使用说明 150
8.1.1 APT和dpkg之间的关系 150
8.1.2 理解sources.list文件 151
8.1.3 Kali软件库 153
8.2 软件包基础交互 155
8.2.1 APT初始化 155
8.2.2 安装软件包 155
8.2.3 更新Kali Linux 158
8.2.4 卸载并清除软件包 160
8.2.5 检查安装包 161
8.2.6 故障排除 167
8.2.7 前端:aptitude和synaptic 170
8.3 APT高级配置和应用 174
8.3.1 APT配置 175
8.3.2 包优先级管理 176
8.3.3 同时运行几个软件分发源 178
8.3.4 跟踪自动安装的包 180
8.3.5 Multi-Arch支持 180
8.3.6 检查包的真实性 182
8.4 软件包参考:深入挖掘Debian软件包系统 185
8.4.1 control文件 186
8.4.2 配置脚本 191
8.4.3 校验和配置文件 194
8.5 小结 196
练习题 198
练习1——镜像重定向 198
练习2——进一步了解dpkg 198
练习3——dpkg-deb练习 198
练习4——Kali Multi-Arch多体系架构 199
思考题 199
第9章 高级用法 200
9.1 修改Kali软件包 200
9.1.1 获取源码 201
9.1.2 安装编译依赖包 204
9.1.3 修改源码 205
9.1.4 开始编译 209
9.2 重编译Linux内核 211
9.2.1 简介与准备工作 211
9.2.2 获取源码 212
9.2.3 配置内核 213
9.2.4 编译及构建内核包 214
9.3 定制Kali自生ISO镜像 215
9.3.1 准备工作 215
9.3.2 给自生镜像换个桌面环境 216
9.3.3 更改软件包集合 216
9.3.4 使用钩子调整镜像内容 217
9.3.5 在ISO镜像或自生文件系统中添加文件 218
9.4 使用U盘启用自生ISO的持久化功能 218
9.4.1 持久化特性 218
9.4.2 在U盘上设置非加密的持久化功能 219
9.4.3 在U盘上设置加密的持久化功能 221
9.4.4 使用多个持久化存储 222
9.5 小结 224
9.5.1 修改Kali包的小结与建议 224
9.5.2 重编译Linux内核的小结与建议 225
9.5.3 定制Kali自生ISO镜像的小结与建议 226
练习题 227
练习1——Fork Kali软件包 227
练习2——更新Kali软件包 227
练习3——重编译构建Linux内核 228
练习4——Kali live-build使用合适的工具完成工作 228
练习5——Kali live-build自动小化安装 228
练习6——制作有多个持久化存储和LUKS核密码的Kali U盘 228
第10章 Kali Linux企业级应用 229
10.1 通过网络安装Kali Linux(PXE启动) 229
10.2 高级配置管理 232
10.2.1 配置SaltStack 232
10.2.2 在minion上执行命令 233
10.2.3 Salt State及其他功能 236
10.3 扩展和定制Kali Linux 240
10.3.1 fork Kali软件包 240
10.3.2 新建配置包 241
10.3.3 为APT创建一个软件包仓库 247
10.4 小结 251
练习题 254
练习1——分别配置一个Salt master和minion 254
练习2——创建一个Kali代码仓库 254
练习3——从头创建一个配置软件包 254
第11章 安全评估简介 255
11.1 安全评估中的Kali Linux 256
11.2 安全评估的类型 257
11.2.1 漏洞评估 259
11.2.2 合规性渗透测试 262
11.2.3 传统渗透测试 263
11.2.4 应用程序评估 265
11.3 评估规范 266
11.4 攻击类型 267
11.4.1 拒绝服务 268
11.4.2 内存破坏 268
11.4.3 Web漏洞 269
11.4.4 密码攻击 269
11.4.5 客户端攻击 270
11.5 小结 270
练习题 271
练习1——信息安全评估 271
第12章 结尾:未来的路 272
12.1 拥抱变化 272
12.2 炫一下你刚Get的新知识 273
12.3 进一步探索 273
12.3.1 系统管理方向 273
12.3.2 渗透测试方向 273
Kali解决方案实现 274
结课项目1:使用Aircrack-NG 274
结课项目2:ISO of Doom 274
结课项目3:Kali设备和自动化 274
应诸葛建伟先生之邀,为其翻译的《Kali Linux大揭秘:深入掌握渗透测试平台》一书作序。OWASP作为国际权威应用安全的研究机构,在Web安全方面的研究,是国内外信息安全机构在应用安全研究方面的主要参考依据。本人作为OWASP中国北京的主要负责人,很荣幸地拜读了本书的整个目录和全部章节,的感受就是本书贴合实际需求、生动详实,案例充分。
本书从渗透测试的实战出发,增加了诸多新增工具的介绍,完整地填补了目前市面上相关书籍内容上的空白:现在市面上的许多安全书籍,都是只介绍结果,考虑过程的并不多。本书从实践出发,本着务实的精神,对环境搭建一直到渗透测试的全阶段,以及主流工具的使用,都做了详尽的介绍,示例丰富,是每位信息安全的从业人员、在校学生不可多得的一本使用大全。你完全可以依照本书的案例来学习,并有效地贴近企业需求,做到有的放矢。
从本书的编写风格就可以看出作者技术功底扎实、写作思路清晰、讲解由浅入深、举例生动详实,非常值得一读!
陈 亮
OWASP中国
推荐序二
你可能还没意识到你所拥有的美好事物。
在1998年,我还是一位初出茅庐的黑客,创建了早的一个职业白帽黑客团队。当时团队成员们还都是一群孩子,梦想着自己未来的工作,能够拿着不错的薪水,去入侵这个星球上安全的计算机系统、网络甚至建筑。
这听起来很“性感”,但现实却是,我们需要把生活中的绝大部分时间花在和电脑键盘相处上,用行业中的一些数字工具来武装自己。我们挥舞着四处采集到的程序,绘制网络地图并定位目标,然后扫描、渗透目标并进一步拓展。在某些情况下,我们中的一员(经常是Jim Chapple)会编写一些定制化工具来做一些很酷的事情,比如说扫描一个A类的网络(在当时可没有其他现成工具能够搞定这件事),但绝大多数时候我们只是使用和修改黑客社区中已开发好的工具。在那些还没有Google的日子里,我们频繁地刷BugTraq、AstaLaVista、Packet Storm、w00w00、SecurityFocus、X-Force以及其他资源,来研究并建立起我们自己的军火库。
因为我们在每次行动中的时间有限,我们必须追求速度,这意味着我们不会花很多时间来拨弄各种工具。所以我们必须要学习核心工具的里里外外,然后让其他辅助工具只是处于待命状态。于是我们必须良好地组织我们的工具,文档化并进行测试,以便在实战中不要给我们带来意外。如果不能成功渗透,那么我们将在客户面前丢脸,而他们也会轻视我们所提出的建议。
正因为如此,我花了非常多的时间来对工具进行分类编目,当一个工具被发布或更新时,我会完整地走完一个流程,查看它是否可以在攻击平台上正常运行,以及是否值得安装运行。我还必须更新依赖这一工具的所有脚本,编写相关文档并进行测试,包括相对于前一版本有了何种变化。然后我会组织所有的工具,根据它们在执行一次安全评估时的目的和作用,将它们放置到不同的目录里。我会为特定工具编写包装脚本,将一些工具链接在一起,并将所有工具关联在一起,刻录成一张CD盘,当客户不让我们带入攻击机器或者移动介质到他们实验室的时候,我们将带着这个CD盘进入隔离的敏感区域。这一过程是非常让人头疼的,但也是必须的。我们知道,如果合适地应用我们的技能和专业经验,保持良好的组织性,并高效工作,我们有入侵任何网络的能力。尽管在渗透测试中从不失手是我们的驱动力,但是我们提供给客户的是一种专业入侵网络的渗透服务,而客户会增加各种限制,并通过金钱回报引导渗透的主要目标到他们为关键但可能疏于防范的信息安全流程中。
我们花了好几年的时间来磨练我们的技能和专业度,但如果没有良好的组织和高效率,我们不会像现在这样成功。如果我们没有尽心去调校所需的工具,我们可能已经失败了。这是我花那么多时间研究、编撰文档、测试与分类工具的根本原因。在21世纪到来之后,这很快发展成为一份压力巨大的全职工作。由于Internet的发展,攻击面的全球性爆发,以及攻击工具的种类和数量的指数级增长,维护这些工具所需的工作量也随之剧增。
从2004年开始,Internet已经不仅仅是商务活动的基石,也成为了一个社交平台。计算机已经变成人人都能负担得起的东西,而且更加友好,无所不在。存储技术已经从M字节扩展到G字节,以太网的速率从每秒几百KB快速发展到每秒数十MB,Internet连接变得越来越快,也更加便宜。电子商务已经非常流行,而社交媒体如Facebook(2004年)、Twitter(2006年)已经上线,Google变得更加成熟,可以让每个人(包括罪犯)在互联网上找到几乎任何东西。
研究对于我们这样的团队变得至关重要,因为我们必须能够跟上新型攻击和工具集发展的脚步。我们对更多计算机犯罪事件进行响应,在必要的取证工作中我们需要仔细追查潜在的证据。而自生型CD的概念意味着我们可以在被攻陷的机器上执行实时取证,而不会对证据造成任何破坏。现在我们这个小团队必须要管理攻击工具、取证工具和在敏感区域使用工具发行版,我们必须跟上所有攻击技术和利用方法学的发展。我们必须这么做,因为你知道我们是受雇来进行渗透测试的,所以都是高标准要求。而事情变得有些超出控制,在近一段时间,我们在实战中花费的时间少了,而在研究、打磨工具和计划方面投入更多的时间。
在这场对抗中我们并不孤独,在2004年,Mati“Muts”Aharoni,一位黑客和安全专家,发布了“WHoppiX” (White Hat Knoppix),一个被宣传为“终极版渗透测试 Live CD”的自生Linux CD,其中包含了“来自SecurityFocus、Packet Storm和kotik的所有渗透利用脚本,Metasploit框架2.2版,以及更多其他软件”。记得在下载WHoppiX时,我在想这是很棒的东西,我也下载了其他一些自生CD,想象假使我之前陷入困境的一些局面,这些自生CD可以在实战中帮上我们。但是我当时并没有计划在真正实战工作中依赖WHoppiX和其他CD。我并不相信它们中的任何一个能够满足我的大部分需求,没有一个对我的工作流来说感觉是对的,而且它们也不是完全的、可安装的发行版。在我下载的时候,它们已经过时了。一个过时的工具集对于我们所在的行业就是“死神降临”。我只是简单地将这些CD镜像添加到军火库里,尽管它们的大小相对较大,然后还是继续着那令人头疼的过程来维护我们实际使用的工具集。
尽管在当时我对它持保留意见,但WHoppiX及其后续者在我们的行业和社区中都造成了巨大的影响,或许也超出了Muts本人的预期。
在2005年,WHoppiX进化成了WHAX,一个扩展并更新后的工具集,基于“模块化的SLAX(Slackware)自生CD”。Muts和来自黑客社区的一个迅速发展的志愿者团队看起来已经意识到了,无论他们如何具有远见,仍然无法预期到我们这个行业的所有发展和波动,而CD的用户们在实战中也有多种差异化需求。而且Muts和他的团队显然也已经在实战中使用WHAX,他们似乎也努力让它变得更加好用,这件事对于我是非常受鼓舞的。
到了2006年,Muts、Max Moser和他们的团队将Auditor Security Linux和WHAX合并到单一发行版中,称为BackTrack。基于SLAX,BackTrack继续向前发展,增加了更多的工具,更多的框架,扩展语言支持,多种无线协议支持,整合一个对专业用户和新手用户都适用的菜单结构,以及重度修改了内核。BackTrack成为领先的安全发行版,但是像我这样的很多人仍然把它作为“实际使用工具集”的一个备份。
在2009年初,Muts和他的团队已经将BackTrack扩展至BackTrack 4,这是一个明显的变化。今天,Muts将此作为了全职工作,BackTrack已经不再是一个自生CD,而是一个基于Ubuntu充分发展的发行版,并充分利用了Ubuntu的软件仓库。这种变化以一个显著的革新作为标志:也就是BackTrack 4拥有系统更新机制。用Muts自己的话说:“当和我们的BackTrack的软件仓库同步时,你可以在安全工具发布后很快就获得更新。”这真的是一个转折点,BackTrack团队已经真正理解了渗透测试者、取证分析师和该行业其他从业者所面对的挑战,他们的工作可以帮助我们节省很多时间,并为我们提供了一个坚实的基础,使得我们直接进入实战状态,将更多的时间花在真正重要且有趣的事情上。结果是,社区反响热烈,众多用户群集到论坛和wiki上,并热情参与到开发团队中。BackTrack确实是一个社区化的贡献,而Muts仍在其中引领着。
BackTrack 4终成为工业界强的渗透测试平台,而我,还有很多像我这样的人终于可以松一口气了。我们对Muts和他团队所承受的“痛苦”有着切身体会,因为我们也曾经亲身经历过。而结果是,我们中的很多人开始使用BackTrack作为工作的首要基础平台。是的,我们仍然会拨弄一些工具,编写我们自己的代码,以及开发我们自己的漏洞利用工具和技术,我们开展研究和实验,但是我们不再在收集、更新和组织工具上花费很多时间了。
BackTrack 4 R1和R2是2010年进一步修订的版本,之后又在2011年自底向上重新构建了Back Track 5——仍然基于Ubuntu,但跟上每个发布的脚步。Back Track在当时已经是一个极为成功的项目,需要英雄的志愿者团队和社区的努力,同时也需要一些资助。Muts在2006年开始创立Offensive Security公司,该公司不仅仅提供全球领先的培训和渗透测试服务,还为保持Back Track的开发进程提供坚实后盾,保证Back Track的开源和免费使用。
评论
还没有评论。