- ISBN:9787302588245
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:356
- 出版时间:2021-09-01
- 条形码:9787302588245 ; 978-7-302-58824-5
本书特色
《Go黑帽子 渗透测试编程之道》探索了Go的“阴暗面”,Go是一种因为简单、高效和可靠而受到黑客推崇的流行编程语言。本书从安全从业者和黑客的角度出发,提供了一系列实用的策略,以帮助你使用Go的功能来测试系统、构建和自动化工具以满足你的需求,并提高你的进攻性安全技能。 我们将从Go的语法和原理的基本概述开始你的学习之旅,探索可用于工具开发的示例,包括HTTP、DNS和SMB等常见网络协议。然后,我们将深入研究渗透测试人员会使用的各种“招数”和会遇到的问题,解决诸如数据窃取、数据包侦探和漏洞利用开发之类的问题。在深入研究加密技术、攻击Microsoft Windows并实现隐写技术之前,我们将创建动态的、可插入的工具。
内容简介
学习内容: 如何开发用于你自己安全项目的高性能工具。 如何创建与远程API交互的可用工具。 如何抓取任意HTML数据。 如何使用Go的标准包net/http构建HTTP服务器。 如何编写自己的DNS服务器和代理。 如何使用DNS隧道建立一个C2通道以突破性网络。 如何创建漏洞模糊器(fuzzer)以发现应用程序的安全漏洞。 如何使用插件和扩展使产品可以面向未来。 如何构建RC2对称密钥暴力破解工具。 如何在(PNG)图像中植入数据。 准备好扩展你的安全工具库了吗? 那我们出发(Go)吧!
目录
第1 章 Go 语言基础1
1.1 设置开发环境 1
1.1.1 下载和安装Go 1
1.1.2 设置GOROOT 以定义二进制文件的位置 2
1.1.3 设置GOPATH 以确定Go工作区的位置 2
1.1.4 选择一个集成开发环境 3
1.1.5 常用的Go 工具命令 6
1.2 理解Go 的语法 9
1.2.1 数据类型10
1.2.2 控制结构13
1.2.3 并发15
1.2.4 错误处理17
1.2.5 处理结构化数据18
1.3 小结19
第2 章 TCP、扫描器和代理 21
2.1 理解TCP 的握手机制21
2.2 通过端口转发绕过防火墙22
2.3 编写一个TCP 扫描器23
2.3.1 测试端口可用性23
2.3.2 执行非并发扫描24
2.3.3 执行并发扫描26
2.4 构造TCP 代理31
2.4.1 使用io.Reader 和io.Writer 32
2.4.2 创建回显服务器 35
2.4.3 通过创建带缓冲的监听器来改进代码 37
2.4.4 代理一个TCP 客户端 39
2.4.5 复现Netcat 命令执行 41
2.5 小结 44
第3 章 HTTP 客户端以及与工具的远程交互 45
3.1 Go 的HTTP 基础知识 45
3.1.1 调用HTTP API 46
3.1.2 生成一个请求 47
3.1.3 使用结构化响应解析 48
3.2 构建与Shodan 交互的HTTP
客户端 51
3.2.1 回顾构建API 客户端的步骤 51
3.2.2 设计项目结构 52
3.2.3 清理API 调用 52
3.2.4 查询Shodan 订阅情况 53
3.2.5 创建一个客户端 58
3.3 与Metasploit 交互 59
3.3.1 配置环境 59
3.3.2 定义目标 61
3.3.3 获取有效令牌 62
3.3.4 定义请求和响应方法 63
3.3.5 创建配置结构体和RPC方法64
3.3.6 执行远程调用65
3.3.7 创建实用程序67
3.4 使用Bing Scraping 解析文档元数据69
3.4.1 配置环境和规划69
3.4.2 定义元数据包71
3.4.3 把数据映射到结构体72
3.4.4 使用Bing 搜索和接收文件.73
3.5 小结77
第4 章 HTTP 服务器、路由和中间件79
4.1 HTTP 服务器基础79
4.1.1 构建一个简单的服务器80
4.1.2 构建一个简单的路由器81
4.1.3 构建简单的中间件82
4.1.4 使用gorilla/mux 包进行路由84
4.1.5 使用negroni 包构建中间件.85
4.1.6 使用negroni 包添加身份验证88
4.1.7 使用模板生成HTML 响应.90
4.2 凭证收割92
4.3 使用WebSocket API 实现按键记录.96
4.4 多路命令与控制100
4.5 小结.104
第5 章 DNS 利用 105
5.1 编写DNS 客户端105
5.1.1 检索A 记录106
5.1.2 使用Msg 结构体处理应答.107
5.1.3 枚举子域.109
5.1.4 查询A 记录和CNAME记录110
5.1.5 工人函数113
5.1.6 使用bufio 包创建一个文本扫描器.114
5.1.7 收集和显示结果.115
5.2 编写DNS 服务器120
5.2.1 实验环境搭建和服务器介绍120
5.2.2 创建DNS 服务器和代理123
5.3 小结.132
第6 章 与SMB 和NTLM 交互.133
6.1 SMB 包133
6.2 理解SMB .134
6.2.1 理解SMB 安全令牌135
6.2.2 创建一个SMB 会话135
6.2.3 使用结构域的混合编码.136
6.2.4 了解元数据和引用字段.139
6.2.5 理解SMB 实现.140
6.3 使用SMB 包猜测密码147
6.4 通过pass-the-hash 技术重用密码.149
6.5 恢复NTLM 密码.151
6.5.1 计算散列值151
6.5.2 恢复NTLM 散列值152
6.6 小结.153
第7 章 滥用数据库和文件系统.155
7.1 使用Docker 设置数据库156
7.1.1 安装MongoDB 数据库并写入数据.156
7.1.2 安装PostgreSQL 和MySQL数据库并写入数据.158
7.1.3 安装Microsoft SQL Server数据库并写入数据.159
7.2 在Go 中连接和查询数据库 160
7.2.1 查询MongoDB 数据库 160
7.2.2 查询SQL 数据库 162
7.3 构建数据库矿工 163
7.3.1 实现一个MongoDB数据库矿工 166
7.3.2 实现一个MySQL数据库矿工 169
7.4 掠夺文件系统 172
7.5 小结 174
第8 章 原始数据包处理 175
8.1 配置环境 175
8.2 使用pcap 子包识别设备 176
8.3 实时捕获和结果过滤 177
8.4 嗅探和显示明文用户凭证 180
8.5 通过SYN 泛洪保护进行端口扫描 182
8.5.1 检查TCP 标志位 183
8.5.2 构建BPF 过滤器 183
8.5.3 编写端口扫描器 184
8.6 小结 187
第9 章 编写和移植利用代码 189
9.1 创建一个模糊测试器 189
9.1.1 缓冲区溢出模糊测试 190
9.1.2 SQL 注入模糊测试 193
9.2 将漏洞利用移植到Go 198
9.2.1 从Python 移植漏洞利用 199
9.2.2 从C 移植漏洞利用 202
9.3 在Go 中构建shellcode 215
9.3.1 C 转换 216
9.3.2 十六进制转换 216
9.3.3 num 转换 217
9.3.4 raw 转换 217
9.3.5 Base64 编码 218
9.3.6 一个关于汇编的注意事项.219
9.4 小结.219
第10 章 Go 插件和可扩展工具221
10.1 使用Go 的原生插件系统222
10.1.1 创建主程序.223
10.1.2 构建一个密码猜测插件226
10.1.3 运行扫描器.228
10.2 基于Lua 构建插件.229
10.2.1 创建head() HTTP 函数230
10.2.2 创建函数get() 231
10.2.3 向Lua VM 注册函数.233
10.2.4 编写函数main().233
10.2.5 创建插件脚本.234
10.2.6 测试Lua 插件.235
10.3 小结236
第11 章 针对密码学的攻击和实现.237
11.1 回顾基本密码学概念.237
11.2 理解标准的Crypto 库.238
11.3 探索散列.239
11.3.1 破解MD5 和SHA-512散列值.239
11.3.2 实现bcrypt241
11.4 验证消息.243
11.5 加密数据.245
11.5.1 对称密钥加密.245
11.5.2 非对称加密.248
11.6 暴力破解RC2.255
11.6.1 准备工作.256
11.6.2 生产工作.258
11.6.3 执行工作和解密数据.260
11.6.4 编写函数main() .261
11.6.5 运行程序.263
11.7 小结.264
第12 章 Windows 系统交互与分析 265
12.1 Windows API 的函数OpenProcess()265
12.2 unsafe.Pointer 和uintptr类型268
12.3 使用syscall 包执行进程注入270
12.3.1 定义Windows DLL并给变量赋值272
12.3.2 使用OpenProcess Windows API 获取进程令牌.273
12.3.3 使用VirtualAllocEx Windows API 操作内存.276
12.3.4 使用WriteProcessMemory Windows API 写入内存.276
12.3.5 使用GetProcessAddress Windows API 查找LoadLibraryA .277
12.3.6 使用CreateRemoteThread Windows API 执行恶意DLL.278
12.3.7 使用WaitforSingleObject Windows API 验证注入.279
12.3.8 使用VirtualFreeEx Windows API 进行清理.280
12.3.9 附加练习.281
12.4 可移植的可执行文件281
12.4.1 理解PE 文件格式282
12.4.2 编写一个PE 解析器282
12.4.3 附加练习.293
12.5 在Go 中使用C293
12.5.1 安装C Windows 工具链293
12.5.2 使用C 和Windows API创建一个消息框294
12.5.3 在C 程序中嵌入Go代码.295
12.6 小结.297
第13 章 使用隐写术隐藏数据.299
13.1 探索PNG 格式.299
13.1.1 文件头.300
13.1.2 块序列.300
13.2 读取图像字节数据.301
13.2.1 读取头数据.302
13.2.2 读取块序列.303
13.3 写入图像字节数据以植入载荷.306
13.3.1 查找块偏移量.306
13.3.2 使用方法ProcessImage()写入字节.306
13.4 使用XOR 编码和解码图像字节数据.311
13.5 小结.316
13.6 附加练习.316
第14 章 构建一个C2 远控木马.319
14.1 入门.319
14.1.1 安装用于定义gRPC API的Protocol Buffers .320
14.1.2 创建项目工作区.320
14.2 定义和构建gRPC API 321
14.3 创建服务器323
14.3.1 实现协议接口.323
14.3.2 编写函数main() .325
14.4 创建客户端植入程序.327
14.5 构建管理组件.329
14.6 运行RAT330
14.7 改进RAT330
14.7.1 加密通信.331
14.7.2 处理连接中断.331
14.7.3 注册植入程序 331
14.7.4 添加数据库持久 332
14.7.5 支持多个植入程序 332
14.7.6 添加植入程序功能 332
14.7.7 链接操作系统命令 333
14.7.8 增强植入程序的真实性并实践良好的运营安全333
14.7.9 添加ASCII Art .333
14.8 小结334
作者简介
Tom Steele、Chris Patten和Dan Kottmann分享了他们30多年的渗透测试和进攻性俺安全经验,并举办了多次Go培训和开发课程(有关详细信息,请参阅书中内容)。
-
乡村振兴新技术:新时代农村短视频编辑技术基础入门
¥12.8¥32.0 -
AI绘画+AI摄影+AI短视频从入门到精通
¥45.5¥79.8 -
企业AI之旅
¥43.5¥79.0 -
机器学习
¥59.4¥108.0 -
基于知识蒸馏的图像去雾技术
¥61.6¥88.0 -
软件设计的哲学(第2版)
¥51.0¥69.8 -
智能算法优化及其应用
¥52.4¥68.0 -
Photoshop图像处理
¥25.5¥49.0 -
R语言医学数据分析实践
¥72.3¥99.0 -
大模型推荐系统:算法原理、代码实战与案例分析
¥62.3¥89.0 -
剪映 从入门到精通
¥25.7¥59.8 -
游戏造梦师----游戏场景开发与设计
¥67.6¥98.0 -
SAR图像处理与检测
¥35.4¥49.8 -
人工智能
¥29.4¥42.0 -
中文版PHOTOSHOP 2024+AI修图入门教程
¥59.3¥79.0 -
WPS办公软件应用
¥25.2¥36.0 -
格拉斯曼流行学习及其在图像集分类中的应用
¥13.7¥28.0 -
轻松上手AIGC:如何更好地向CHATGPT提问
¥40.3¥62.0 -
元宇宙的理想与现实:数字科技大成的赋能与治理逻辑
¥61.6¥88.0 -
云原生安全:攻防与运营实战
¥66.8¥89.0