渗透测试 完全初学者指南
书籍作者:乔治亚·魏德曼 |
ISBN:9787115508843 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:10054 |
创建日期:2021-02-14 |
发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
所谓渗透测试是借助各种漏洞扫描工具,通过模拟黑客的攻击方法来对网络安全进行评估。
《渗透测试——完全初学者指南》作为入门渗透测试领域的理想读物,全面介绍每一位渗透测试人员有必要了解和掌握的核心技巧与技术。本书分为20章,其内容涵盖了渗透测试实验室的搭建、Kali Linux的基本用法、编程相关的知识、Metasploit框架的用法、信息收集、漏洞检测、流量捕获、漏洞利用、密码攻击、客户端攻击、社会工程学、规避病毒检测、深度渗透、Web应用测试、攻击无线网络、Linux/Windows栈缓冲区溢出、SEH覆盖、模糊测试/代码移植及Metasploit模块、智能手机渗透测试框架的使用等。有别于其他图书的是,本书在这20章之外还增加了一个第0章,用来解释渗透测试各个阶段应该做的工作。
《渗透测试——完全初学者指南》内容实用,理论与实战相互辅佐。读者借助于书中提及的各个工具,可复现每一个实验操作,加深对渗透测试技术的进一步理解。无论是经验丰富的信息安全从业人员,还是有志于从事信息安全行业的新手,都会在阅读中获益匪浅。本书还适合信息安全专业的高校师生阅读。
作者简介
Georgia Weidman是一位渗透测试专家和安全研究员,同时还是Bulb Security安全咨询公司的创始人。她不仅多次在Black Hat、ShamooCon和DerbyCon等世界各地的安全会议上发表演讲,而且还亲自传授渗透测试、移动破解和exploit开发等专业课程。世界各国的报纸和电视都曾报道过她在移动安全领域的研究成果。DARPA的Cyber Fast Track(信息化项目快速通道)曾为她的移动设备安全主题立项,并给予她专门的资金支持。
编辑推荐
渗透测试人员通过模拟网络攻击的方式查找网络、操作系统和应用程序中的安全漏洞。世界范围内的信息安全专家都使用渗透技术来评估企业的防御措施。
本书讲解了每一位渗透测试人员都应掌握的核心技巧与技术。本书以虚拟器作为Kali Linux和目标操作系统的载体,借助于Wireshark、Nmap和Burp Suite等工具对所讲内容进行了操作验证。通过遵循每一个实验步骤执行相应的攻击,读者可对渗透设施中的关键阶段(信息收集、查找可利用的漏洞、获取系统访问权限、深度渗透测试)有更好的了解和体会。
本书内容:
使用暴力破解和字典攻击来破解用户密码和无线网络的密码;
测试Web应用的漏洞;
使用Metasploit框架进行漏洞利用,并自行编写Metasploit模块;
自动发起社会工程学攻击;
绕过防病毒软件的检测;
在深度渗透测试阶段,通过单机系统的权限获取整个企业的控制权限。
本书还介绍了自行编写漏洞利用程序的相关知识,并借助于作者自行开发的SPF(智能手机渗透测试框架)介绍了移动破解相关的知识。
本书内容实用、道术并重,全面涵盖了渗透策略和常用工具,不失为一本入门黑客破解技术的理想读物。
目录
第0章 渗透测试导论 1
0.1 渗透测试的各个阶段 2
0.1.1 明确需求阶段 2
0.1.2 信息收集阶段 3
0.1.3 威胁建模阶段 4
0.1.4 漏洞分析阶段 4
0.1.5 漏洞验证阶段 4
0.1.6 深度攻击阶段 4
0.1.7 书面汇报阶段 5
0.2 小结 6
第 1章 搭建虚拟渗透实验室 7
1.1 安装VMware 7
1.2 安装 Kali Linux 8
1.2.1 网络配置 11
1.2.2 安装 Nessus 14
1.2.3 安装其他软件 18
1.2.4 安装Android 模拟器 20
1.2.5 智能手机渗透测试框架 24
1.3 靶机虚拟机 25
1.4 创建Windows XP靶机 25
1.4.1 Microsoft Windows上的VMware Player 26
1.4.2 Mac OS上的VMware Fusion 28
1.4.3 安装并激活Windows系统 29
1.4.4 安装VMware Tools 32
1.4.5 关闭Windows防火墙 33
1.4.6 设置用户密码 34
1.4.7 设置静态IP 34
1.4.8 调整网络登录模式 36
1.4.9 安装一些存在漏洞的软件 37
1.4.10 安装Immunity Debugger和Mona 42
1.5 安装Ubuntu 8.10 靶机 44
1.6 安装Windows 7 靶机 44
1.6.1 创建用户账号 44
1.6.2 关闭自动更新 46
1.6.3 设置静态IP地址 47
1.6.4 安装第二块网卡 47
1.6.5 安装其他的软件 48
1.7 小结 49
第 2章 使用Kali Linux 50
2.1 Linux命令行 50
2.2 Linux文件系统 51
2.3 操作说明:查看参考手册的命令 52
2.4 用户权限 53
2.4.1 添加用户 53
2.4.2 把用户添加到sudoers文件中 54
2.4.3 切换用户与sudo命令 54
2.4.4 创建文件和目录 55
2.4.5 文件的复制、移动和删除 55
2.4.6 给文件添加文本 56
2.4.7 向文件附加文本 56
2.5 文件权限 57
2.6 编辑文件 58
2.6.1 字符串搜索 59
2.6.2 使用vi编辑文件 59
2.7 数据处理 60
2.7.1 grep 60
2.7.2 sed 61
2.7.3 使用awk进行模式匹配 62
2.8 软件包管理 62
2.9 进程和服务 63
2.10 网络管理 63
2.10.1 设置静态IP地址 64
2.10.2 查看网络连接 65
2.11 Netcat——TCP/IP连接的瑞士军刀 65
2.11.1 连接端口 66
2.11.2 开放式shell 67
2.11.3 反弹式shell 67
2.12 使用cron进行定时任务 68
2.13 小结 69
第3章 编程 71
3.1 Bash脚本 71
3.1.1 ping 71
3.1.2 脚本编程 72
3.1.3 运行程序 72
3.1.4 if语句 73
3.1.5 for循环 74
3.1.6 提炼数据 75
3.2 Python编程 77
3.2.1 连接端口 79
3.2.2 Python中的if语句 79
3.3 编写和编译C语言程序 80
3.4 小结 82
第4章 使用Metasploit框架 83
4.1 启动Metasploit 84
4.2 查找Metasploit模块 85
4.2.1 在线的模块数据库 86
4.2.2 内置的搜索命令 87
4.3 设置模块选项 90
4.3.1 RHOST 90
4.3.2 RPORT 91
4.3.3 SMBPIPE 91
4.3.4 Exploit Target 91
4.4 有效载荷 92
4.4.1 查找可兼容的有效载荷 92
4.4.2 试运行 94
4.5 shell的种类 95
4.5.1 绑定型 95
4.5.2 反射型 95
4.6 手动设置有效载荷 95
4.7 Msfcli 98
4.7.1 查看帮助信息 98
4.7.2 查看可用选项 98
4.7.3 设置有效载荷 99
4.8 使用Msfvenom创建有效载荷 100
4.8.1 选取有效载荷 101
4.8.2 设定相关选项 101
4.8.3 选择输出格式 101
4.8.4 部署可执行文件 102
4.8.5 使用Multi/Handler模块 103
4.9 使用辅助类模块 104
4.10 小结 106
第5章 信息收集 108
5.1 开源情报收集(OSINT) 108
5.1.1 Netcraft 109
5.1.2 whois 110
5.1.3 DNS侦查 111
5.1.4 收集邮件地址 113
5.1.5 Maltego 114
5.2 端口扫描 117
5.2.1 手动端口扫描 118
5.2.2 使用Nmap进行端口扫描 119
5.3 小结 127
第6章 漏洞检测 128
6.1 Nmap的版本检测功能 128
6.2 Nessus 129
6.2.1 扫描策略 130
6.2.2 使用Nessus进行扫描 132
6.2.3 漏洞评级 135
6.2.4 漏洞扫描器的必要性 135
6.2.5 导出Nessus的扫描结果 136
6.2.6 漏洞研究 136
6.3 Nmap脚本引擎(NSE) 137
6.4 运行单独的NSE脚本 139
6.5 Metasploit的扫描器模块 141
6.6 Metasploit漏洞检验功能 142
6.7 Web应用程序扫描 143
6.7.1 Nikto 144
6.7.2 攻击XAMPP 145
6.7.3 默认登录账号 145
6.8 人工分析 146
6.8.1 检测非标准端口 146
6.8.2 查找有效登录名 148
6.9 小结 149
第7章 流量捕获 150
7.1 流量捕获网络 150
7.2 Wireshark的使用 151
7.2.1 流量捕获 151
7.2.2 流量过滤 153
7.2.3 查看TCP会话 154
7.2.4 数据包解析 155
7.3 ARP缓存攻击 155
7.3.1 ARP基础 156
7.3.2 IP转发 158
7.3.3 ARP缓存攻击与Arpspoof 159
7.3.4 使用ARP缓存攻击冒充默认网关 160
7.4 DNS缓存攻击 161
7.4.1 入门 163
7.4.2 使用Dnsspoof 163
7.5 SSL攻击 164
7.5.1 SSL基础 165
7.5.2 使用Ettercap进行SSL中间人攻击 165
7.6 SSL Stripping 167
7.7 小结 169
第8章 漏洞利用 171
8.1 回顾MS08-067 171
8.1.1 Metasploit有效载荷 172
8.1.2 Meterpreter 173
8.2 利用WebDAV的默认口令 174
8.2.1 在目标Web服务器上执行脚本 175
8.2.2 上传Msfvenom有效载荷 175
8.3 攻击开源phpMyAdmin 177
8.4 下载敏感文件 180
8.4.1 下载配置文件 180
8.4.2 下载Windows SAM文件 181
8.5 利用第三方软件的缓存溢出漏洞 182
8.6 攻击第三方Web应用 183
8.7 攻击系统服务的缺陷 186
8.8 攻击开源NFS的漏洞 186
8.9 小结 188
第9章 密码攻击 190
9.1 密码管理 190
9.2 在线密码攻击 191
9.2.1 字典 191
9.2.2 使用Hydra猜测用户名和密码 194
9.3 离线密码攻击 196
9.3.1 还原Windows SAM文件中的密码哈希值 197
9.3.2 通过物理访问提取密码哈希值 199
9.3.3 LM与NTLM算法 201
9.3.4 LM哈希算法的局限 201
9.3.5 John the Ripper 203
9.3.6 破解Linux 密码 205
9.3.7 破解配置文件中的密码 205
9.3.8 彩虹表 206
9.3.9 在线密码破解服务 206
9.4 使用Windows Credential Editor提取内存中的密码明文 206
9.5 小结 207
第 10章 客户端攻击 208
10.1 使用Metasploit有效载荷规避过滤规则 209
10.1.1 规避端口限制规则 209
10.1.2 HTTP和HTTPS有效载荷 210
10.2 客户端攻击 211
10.2.1 攻击浏览器漏洞 212
10.2.2 攻击PDF漏洞 219
10.2.3 攻击Java漏洞 223
10.2.4 browser_autopwn 230
10.2.5 Winamp 232
10.3 小结 235
第 11章 社会工程学 236
11.1 SET 237
11.2 鱼叉式钓鱼攻击 237
11.2.1 选择有效载荷 238
11.2.2 选项设置 239
11.2.3 文件命名 240
11.2.4 单个邮箱或者批量地址 240
11.2.5 创建模板 240
11.2.6 设置收件人 241
11.2.7 设置会话受理端 242
11.3 Web攻击 243
11.4 群发邮件攻击 245
11.5 组合攻击 248
11.6 小结 248
第 12章 规避病毒检测 249
12.1 木马程序 249
12.2 防病毒软件的工作原理 252
12.3 Microsoft Security Essentials 252
12.4 VirusTotal 254
12.5 规避防病毒软件的查杀 255
12.5.1 编码技术 255
12.5.2 交叉编译 258
12.5.3 Hyperion加密 261
12.5.4 使用Veil-Evasion规避防病毒软件检测 262
12.6 远在天边近在眼前的“隐藏”方法 266
12.7 小结 266
第 13章 深度渗透 268
13.1 Meterpreter 268
13.1.1 upload命令 269
13.1.2 getuid命令 270
13.1.3 其他命令 270
13.2 Meterpreter脚本 271
13.3 Metasploit的深度渗透模块 272
13.4 Railgun 274
13.5 本地权限升级 274
13.5.1 面向Windows的getsystem命令 275
13.5.2 面向Windows的本地权限提升模块 276
13.5.3 绕过Windows上的UAC 277
13.5.4 Linux上的Udev权限提升 278
13.6 本地信息收集 283
13.6.1 搜索文件 283
13.6.2 键盘记录 283
13.6.3 收集密码 284
13.6.4 net命令 286
13.6.5 另辟蹊径 287
13.6.6 Bash的历史文件 287
13.7 横向移动 288
13.7.1 PSExec 288
13.7.2 传递哈希值 290
13.7.3 SSHExec 291
13.7.4 冒用令牌 293
13.7.5 Incognito 293
13.7.6 SMB捕获 294
13.8 跳板 297
13.8.1 向Metasploit中添加路由 298
13.8.2 Metasploit端口扫描器 299
13.8.3 通过跳板执行漏洞利用 300
13.8.4 Socks4a和ProxyChains 300
13.9 持久化 302
13.9.1 添加用户 302
13.9.2 Metasploit持久化 303
13.9.3 创建Linux cron作业 304
13.10 小结 305
第 14章 Web应用测试 306
14.1 使用Burp Proxy 306
14.2 SQL注入 311
14.2.1 检测SQL注入漏洞 312
14.2.2 利用SQL注入漏洞 313
14.2.3 SQLMap 313
14.3 XPath 注入 315
14.4 本地文件包含 317
14.5 远程文件包含 319
14.6 命令执行 320
14.7 跨站脚本攻击 322
14.7.1 检测反射型XSS漏洞 322
14.7.2 BeEF与XSS 323
14.8 跨站请求伪造 327
14.9 使用W3AF扫描Web应用 328
14.10 小结 329
第 15章 攻击无线网络 331
15.1 配置 331
15.1.1 查看可用的无线网卡 332
15.1.2 扫描无线接入点 332
15.2 监听模式 333
15.3 捕获数据包 334
15.4 开放网络 335
15.5 有线等效加密 335
15.5.1 WEP的弱点 338
15.5.2 用Aircrack-ng破解WEP密钥 338
15.6 WPA 342
15.7 WPA2 342
15.7.1 企业架构网络的联网过程 343
15.7.2 个人架构网络的联网过程 343
15.7.3 四次握手 343
15.7.4 破解 WPA/WPA2密钥 345
15.8 WiFi保护设置 348
15.8.1 WPS的问题 348
15.8.2 用Bully 破解 WPS 349
15.9 小结 349
第 16章 Linux栈缓冲区溢出 350
16.1 内存相关的理论 350
16.2 Linux 缓冲区溢出 353
16.2.1 程序漏洞实例 353
16.2.2 蓄意崩溃 355
16.2.3 运行GDB调试工具 356
16.2.4 引发程序崩溃 361
16.2.5 操纵EIP 363
16.2.6 命令劫持 364
16.2.7 小端字节序 366
16.3 小结 367
第 17章 Windows系统的栈缓冲区溢出 368
17.1 检索War-FTP的已知漏洞 369
17.2 蓄意崩溃进程 371
17.3 寻找EIP 373
17.3.1 创建循环模式字符串,判断关键溢出点 373
17.3.2 验证偏移量 377
17.4 劫持执行程序 379
17.5 获取shell 384
17.6 小结 389
第 18章 SEH覆盖 390
18.1 SEH覆盖 391
18.2 把控制传递给SEH 395
18.3 在内存中搜索攻击字符串 396
18.4 POP POP RET 400
18.5 SafeSEH 401
18.6 使用短跳转(short jump) 405
18.7 选用有效载荷 406
18.8 小结 407
第 19章 模糊测试、代码移植及Metasploit模块 409
19.1 模糊测试 409
19.1.1 源代码审计法检测bug 409
19.1.2 模糊测试法审计TFTP服务器程序 410
19.1.3 引发崩溃 411
19.2 移植代码 415
19.2.1 查找返回地址 418
19.2.2 替换shellcode 419
19.2.3 编辑exploit 419
19.3 编写MSF模块 421
19.3.1 相似模块 423
19.3.2 移植代码 424
19.4 攻击缓解技术 428
19.4.1 Stack Cookie 429
19.4.2 地址空间布局随机化(ASLR) 429
19.4.3 数据执行保护(DEP) 430
19.4.4 强制代码签名机制 430
19.5 小结 431
第 20章 使用智能手机渗透测试框架 432
20.1 移动设备的攻击向量 432
20.1.1 短信 433
20.1.2 NFC 433
20.1.3 二维码 433
20.2 智能手机渗透测试框架 434
20.2.1 安装 434
20.2.2 Android模拟器 436
20.2.3 给移动设备添加调试解调器 436
20.2.4 建立Android App 436
20.2.5 部署被控端App 437
20.2.6 建立SPF会话 438
20.3 远程攻击 440
20.4 客户端攻击 441
20.4.1 客户端shell 441
20.4.2 USSD远程控制 443
20.5 恶意应用程序 445
20.6 移动平台的深度渗透测试 451
20.6.1 信息收集 452
20.6.2 远程遥控 453
20.6.3 用作跳板 454
20.6.4 权限提升 459
20.7 小结 460