Kali Linux 高级渗透测试(原书第2版)
目录 作者简介 审校者简介 译者简介 前 言 第1章 基于目标的渗透测试 1 1.1 安全测试的概念 1 1.2 经典漏洞扫描、渗透测试和红队练习的失败 2 1.3 测试方法 2 1.4 Kali Linux介绍——历史和目的 4 1.5 安装和更新Kali Linux 5 1.6 在便携式设备中使用Kali Linux 5 1.7 将Kali安装到虚拟机中 6 1.8 将Kali安装到Docker设备 10 1.9 将Kali安装到云——创建一个AWS实例 12 1.10 组织Kali Linux 14 1.10.1 配置和自定义Kali Linux 15 1.10.2 建立验证实验室 18 1.11 小结 26 第2章 开源情报和被动侦察 27 2.1 侦察的基本原则 28 2.1.1 开源情报 28 2.1.2 进攻型OSINT 28 2.1.3 Maltego 29 2.1.4 CaseFile 32 2.1.5 Google缓存 33 2.1.6 抓取 33 2.1.7 收集姓名和电子邮件地址 34 2.1.8 获得用户信息 34 2.1.9 Shodan和censys.io 34 2.2 Google黑客数据库 36 2.2.1 使用dor k脚本来查询Google 36 2.2.2 DataDump网站 36 2.2.3 使用脚本自动收集OSINT数据 38 2.2.4 防守型OSINT 38 2.2.5 分析用户密码列表 40 2.3 创建自定义单词列表来破解密码 41 2.3.1 使用CeWL来映射网站 41 2.3.2 使用Twofi从Twitter提取单词 42 2.4 小结 42 第3章 外网和内网的主动侦察 43 3.1 隐形扫描策略 44 3.1.1 调整源IP栈和工具识别设置 44 3.1.2 修改数据包参数 45 3.1.3 使用匿名网络代理 46 3.2 DNS侦察和路由映射 49 3.3 综合侦察应用 50 3.3.1 recon—ng框架 51 3.3.2 使用IPv6专用工具 54 3.3.3 映射路由到目标 55 3.4 识别外部网络基础设施 57 3.5 防火墙外映射 58 3.6 IDS/IPS识别 58 3.7 枚举主机 59 3.8 端口、操作系统和发现服务 60 3.9 使用netcat编写自己的端口扫描器 61 3.9.1 指纹识别操作系统 62 3.9.2 确定主动服务 62 3.10 大规模扫描 63 3.10.1 DHCP信息 64 3.10.2 内部网络主机的识别与枚举 64 3.10.3 本地MS Windows命令 65 3.10.4 ARP广播 66 3.10.5 ping扫描 67 3.10.6 使用脚本组合Masscan和nmap扫描 68 3.10.7 利用SNMP 69 3.10.8 通过服务器消息块(SMB)会话的Windows账户信息 70 3.10.9 查找网络共享 71 3.10.10 主动侦察目录域服务器 72 3.10.11 使用综合工具(SPARTA) 73 3.10.12 配置SPARTA的示例 73 3.11 小结 74 第4章 漏洞评估 75 4.1 漏洞命名 75 4.2 本地和在线漏洞数据库 76 4.3 用nmap进行漏洞扫描 79 4.3.1 LUA脚本介绍 80 4.3.2 自定义NSE脚本 80 4.4 Web应用漏洞扫描器 81 4.4.1 Nikto和Vege简介 82 4.4.2 定制Nikto和Vege 84 4.5 移动应用漏洞扫描程序 87 4.6 网络漏洞扫描程序OpenVAS 88 4.7 专业扫描器 91 4.8 威胁建模 92 4.9 小结 93 第5章 物理安全和社会工程学 94 5.1 方法和攻击方法 95 5.1.1 基于计算机的攻击 95 5.1.2 基于语音的攻击 96 5.1.3 物理攻击 96 5.2 控制台上的物理攻击 97 5.2.1 samdump2和chntpw 97 5.2.2 粘滞键 99 5.2.3 使用Inception攻击系统内存 100 5.3 创建流氓物理设备 101 5.4 社会工程工具包 103 5.4.1 使用网站攻击向量——凭据收割攻击方法 106 5.4.2 使用网站攻击向量——标签钓鱼攻击方法 107 5.4.3 使用网站攻击向量——综合攻击网页方法 108 5.4.4 使用PowerShell字母数字的shellcode注入攻击 109 5.4.5 HTA攻击 110 5.5 隐藏可执行文件与伪装攻击者的URL 111 5.6 使用DNS重定向攻击的升级攻击 112 5.7 网络钓鱼攻击曝光 113 5.7.1 用Phishing Frenzy搭建网络钓鱼活动 116 5.7.2 发起网络钓鱼攻击 119 5.8 小结 120 第6章 无线攻击 121 6.1 配置Kali实现无线攻击曝光 121 6.2 无线侦察 122 6.3 绕过一个隐藏的服务集标识符 126 6.4 绕过MAC 地址验证与公开验证 127 6.5 攻击WPA和WPA2129 6.5.1 暴力攻击曝光 129 6.5.2 使用Reaver攻击无线路由器曝光 132 6.6 拒绝服务(DoS)攻击无线通信 132 6.7 对WPA/WPA2实施攻击规划 133 6.8 使用Ghost Phisher工作 137 6.9 小结 138 第7章 基于Web应用的侦察与利用 139 7.1 方法 139 7.2 黑客构思 141 7.3 对网站进行侦察 142 7.3.1 Web应用防火墙和负载均衡检测 143 7.3.2 指纹识别Web应用和CMS 144 7.3.3 利用命令行设置镜像网站 146 7.4 客户端代理 147 7.4.1 Burp代理 147 7.4.2 扩展Web浏览器的功能 150 7.4.3 Web抓取和目录的暴力攻击 151 7.4.4 具体网络服务的漏洞扫描器 152 7.5 针对特定应用的攻击 153 7.5.1 暴力破解访问证书 153 7.5.2 使用commix的OS命令行注入 154 7.5.3 数据库注入攻击 155 7.6 使用WebShells维持访问 157 7.7 小结 158 第8章 攻击远程访问 159 8.1 利用通信协议漏洞 160 8.1.1 破解远程桌面协议 160 8.1.2 破解安全外壳 162 8.1.3 破解远程访问协议 164 8.2 攻击安全套接字层 165 8.2.1 SSL协议的弱点和漏洞 165 8.2.2 Testssl的介绍 166 8.2.3 SSL连接的侦察 167 8.2.4 使用sslstrip 进行中间人攻击曝光 171 8.2.5 针对SSL 的拒绝服务攻击曝光 173 8.3 攻击IPSec虚拟专用网络 174 8.3.1 扫描***网关 174 8.3.2 指纹识别***网关 175 8.3.3 截获预共享密钥 176 8.3.4 执行离线PSK破解 177 8.3.5 确定默认用户账户 177 8.4 小结 177 第9章 客户端攻击技术详解 178 9.1 留后门的可执行文件 178 9.2 使用恶意脚本攻击系统曝光 181 9.2.1 使用VBScript进行攻击曝光 181 9.2.2 使用Windows PowerShell攻击系统曝光 183 9.3 跨站点脚本框架 185 9.4 浏览器开发框架——BeEF 189 9.5 BeEF浏览器的演练 191 9.5.1 整合BeEF和Metasploit攻击 194 9.5.2 用BeEF作为隧道代理 195 9.6 小结 196 第10章 绕过安全控制 197 10.1 绕过网络访问控制 197 10.1.1 前准入NAC 198 10.1.2 后准入NAC 199 10.2 使用不同的框架绕过防病毒软件 200 10.2.1 利用Veil框架 201 10.2.2 利用Shellter 204 10.3 绕过应用程序级控制 208 10.3.1 利用SSH穿透客户端防火墙 208 10.3.2 攻击应用程序白名单 211 10.4 绕过Windows特定的操作系统控制 212 10.4.1 增强迁移体验工具 212 10.4.2 用户账户控制(UAC) 214 10.4.3 其他Windows特定的操作系统控制 217 10.5 小结 219 第11章 漏洞利用 220 11.1 Metasploit框架 220 11.1.1 库 221 11.1.2 接口 222 11.1.3 模块 222 11.1.4 数据库设置和配置 223 11.2 利用MSF开发目标 227 11.2.1 使用简单反向shell攻击单个目标 227 11.2.2 利用具有PowerShell攻击向量的反向shell攻击单个目标 228 11.3 使用MSF资源文件的多目标渗透 229 11.4 使用Armitage的多目标渗透 229 11.5 使用公开的漏洞 231 11.5.1 定位和验证公开可用的漏洞 232 11.5.2 编译和使用漏洞 233 11.6 开发Windows漏洞 234 11.6.1 模糊识别漏洞 235 11.6.2 制作特别的Windows漏洞 241 11.7 小结 243 第12章 行动的目的 244 12.1 在入侵本地系统上的活动 244 12.1.1 对已入侵的系统进行快速侦察 245 12.1.2 找到并提取敏感数据——掠夺目标 246 12.1.3 漏洞利用后期工具(MSF、Veil—Pillage框架、脚本) 249 12.1.4 Veil—Pillage 251 12.2 横向提升与横向运动 254 12.2.1 侵入信任与共享域 254 12.2.2 PsExec、WMIC和其他工具 254 12.2.3 使用服务的横向运动 258 12.2.4 枢轴与端口转发 258 12.3 小结 260 第13章 特权升级 261 13.1 常见的升级/扩展方法概述 261 13.2 本地系统扩展 262 13.2.1 由管理员升级到系统管理员 263 13.2.2 DLL注入 264 13.2.3 PowerShell的Empire工具 266 13.3 凭据收割和升级攻击 270 13.3.1 密码嗅探器 270 13.3.2 Responder 271 13.3.3 SMB中继攻击 273 13.4 升级Active Directory中的访问权限 274 13.5 入侵Kerberos——金票攻击 279 13.6 小结 280 第14章 命令和控制 281 14.1 使用持久代理 282 14.1.1 使用Netcat作为持久代理 282 14.1.2 使用schtasks来配置持久任务 285 14.1.3 使用Metasploit框架保持持久性 286 14.1.4 使用persistence脚本 287 14.1.5 使用Metasploit框架创建一个独立持久代理 288 14.1.6 使用社交媒体和Gmail的持久性 289 14.2 提取数据 291 14.2.1 使用现有的系统服务(Telnet、RDP、VNC) 291 14.2.2 使用DNS协议提取数据 292 14.2.3 使用ICMP提取数据 294 14.2.4 使用数据提取工具包 295 14.2.5 从PowerShell提取 297 14.2.6 隐藏攻击证据 297 14.3 小结 298 序言 Foreword?推 荐 序时隔一年,《Kali Linux高级渗透测试》(原书第2版)这么快就跟读者见面了,不得不感叹网络空间安全技术的发展日新月异。 刚刚过去的2017年,勒索病毒WannaCry肆虐全球,各种“邮件门”、个人隐私泄露事件层出不穷,网络安全问题更加突出。也正是在2017年6月1日,我国首部网络安全法—— 《中华人民共和国网络安全法》正式实施,成为我国第一部规范网络空间秩序的基础性法律,该部法典从法律层面明确了网络安全保护的基本原则和要求,对于技术人员则需要从技术层面去研究实践如何提高网络攻击防御技术,提升网络系统的安全保护能力。渗透测试作为主动防御的一种重要手段,其重要性不言而喻。本书在第1版的基础上,增加了部分章节,更加全面、系统地介绍了Kali Linux在渗透测试中的高级应用,相信能够为国内从事空间网络安全的相关人员提供最前沿的技术参考。 本书由网络空间安全方面的教授和行业专家合作翻译,译者不但理论水平高,而且还拥有丰富的业务实践经验,尤其在渗透测试方面更是实干的权威行家。本书译文忠实原著,是一部高质量的学术译著。本书既可作为网络空间安全专业领域的研究开发人员、工程技术人员及高级技术主管的工具书,也可作为高校研究生和高年级本科生学习网络安全相关课程的参考书。 网络空间安全学科建设任重道远,学科的统一基础理论有待创立;心理学、管理学、经济学、社会学、安全熵、赛博学等因素对网络空间安全的影响有待深入探讨;借助科普提升普通大众的网络空间安全意识才刚刚开始;网络空间安全的各种攻防新手段、新思路永无止境。但愿此书能为此添砖加瓦;但愿已经(或即将)出版的《安全通论》《安全简史》《安全心理学》和《安全管理学》等,能为网络空间安全学科建设尽一点绵薄之力。 杨义先 2018年1月 文摘 版权页: 插图: 2.1 侦察的基本原则 在进行渗透测试或攻击数据目标时,侦察是杀链的第一步。这是在实际测试或攻击标网络之前进行的。侦察的结果会给出需要额外侦察的方向或者指出在漏洞利用阶段要攻击的漏洞。 侦察活动是与目标网络或设备交互过程的一部分。 被动侦察并小与目标网络产生直接的交互。攻击者的源IP地址和活动不会被日志记录(例如,一个对目标邮件地址的谷歌搜索)。在正常的商业活动中想要区分出哪些活动是被动侦察是困难的,或者说是不可能的。 当攻击者以一种可预期的方式与目标交互时,被动侦察可以看作是与目标的正常交互。例如,攻击者登录公司网站、浏览不同的网页、下载进一步研究的文档。这些交互活动属于可预期的用户活动,很少被看作是攻击目标的前奏。 主动侦察涉及直接查询或其他交互活动(例如,目标网络的端口扫描)。这些活动会触发系统警报,被攻击的目标也能获取攻击者的IP地址和活动信息。在法律诉讼中,这些信息能够用来确认攻击者的身份,或抓捕攻击者。因此,测试者在主动侦察中需要额外技术手段来确保不被发现,第3章将详细介绍主动侦察与漏洞扫描。
用户评论