当前位置:当前位置:主页 > 计算机电子书 > 程序设计 > C# pdf电子书
C#灰帽子:设计安全测试工具

C#灰帽子:设计安全测试工具 PDF 扫描版

  • 更新:2020-10-31
  • 大小:87 MB
  • 类别:C#
  • 作者:布兰德·佩里,王自亮,侯敬
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

C#灰帽子:设计安全测试工具》是由机械工业出版社出版的一本关于C#方面的书籍,作者是布兰德·佩里,王自亮,侯敬,主要介绍了关于C#、灰帽子、设计安全、测试工具方面的知识内容,目前在C#类书籍综合评分为:9.8分。

书籍介绍

C#灰帽子:设计安全测试工具》介绍如何用C#核心库进行漏洞扫描、恶意软件自动分析和安全事件响应等,以及如何编写安全实用工具可应用于Mac、Linux、移动平台等。例如,编写模糊分析器以便用HTTP和XML库扫描SQL和XSS注入,在Metasploit中生成代码来创建跨平台和跨架构的工具,用Nessus、OpenVAS和sqlmap自动化扫描漏洞并利用SQL漏洞,等等。使用C#工具库和本书提供的工具可简化日常安全工作。

目录

  • 第1章 C#基础知识速成 1
  • 1.1 选择IDE 1
  • 1.2 一个简单的例子 2
  • 1.3 类和接口 3
  • 1.3.1 创建一个类 4
  • 1.3.2 创建接口 4
  • 1.3.3 从抽象类中子类化并实现接口 5
  • 1.3.4 将所有内容与Main()方法结合到一起 7
  • 1.3.5 运行Main()方法 8
  • 1.4 匿名方法 9
  • 1.4.1 在方法中使用委托 9
  • 1.4.2 更新Firefighter类 10
  • 1.4.3 创建可选参数 10
  • 1.4.4 更新Main()方法 11
  • 1.4.5 运行更新的Main()方法 12
  • 1.5 与本地库整合 12
  • 1.6 本章小结 14
  • 第2章 模糊测试和漏洞利用技术 15
  • 2.1 设置虚拟机 16
  • 2.1.1 添加仅主机虚拟网络 16
  • 2.1.2 创建虚拟机 16
  • 2.1.3 从BadStore ISO启动虚拟机 17
  • 2.2 SQL注入 19
  • 2.3 跨站脚本攻击 20
  • 2.4 使用基于突变的模糊测试工具对GET参数进行模糊测试 22
  • 2.4.1 污染参数和测试漏洞 23
  • 2.4.2 构造HTTP请求 23
  • 2.4.3 测试模糊测试的代码 25
  • 2.5 对POST请求进行模糊测试 25
  • 2.5.1 编写一个对POST请求进行模糊测试的工具 28
  • 2.5.2 开始模糊测试 29
  • 2.5.3 对参数进行模糊测试 30
  • 2.6 对JSON进行模糊测试 32
  • 2.6.1 设置存在漏洞的程序 32
  • 2.6.2 捕获易受攻击的JSON请求 33
  • 2.6.3 编写对JSON进行模糊测试的工具 34
  • 2.6.4 测试对JSON进行模糊测试的工具 39
  • 2.7 利用SQL注入 40
  • 2.7.1 手工进行基于UNION的注入 40
  • 2.7.2 编程进行基于UNION的注入 42
  • 2.7.3 利用基于布尔的SQL注入 45
  • 2.8 本章小结 53
  • 第3章 对SOAP终端进行模糊测试 55
  • 3.1 设置易受攻击的终端 55
  • 3.2 解析WSDL 56
  • 3.2.1 为WSDL文档编写一个类 57
  • 3.2.2 编写初始解析方法 58
  • 3.2.3 为SOAP类型和参数编写一个类 60
  • 3.2.4 编写一个SoapMessage类来定义发送的数据 62
  • 3.2.5 为消息部分实现一个类 63
  • 3.2.6 使用SoapPortType类定义端口操作 64
  • 3.2.7 为端口操作实现一个类 65
  • 3.2.8 使用SOAP绑定定义协议 66
  • 3.2.9 编辑操作子节点的列表 68
  • 3.2.10 在端口上寻找SOAP服务 68
  • 3.3 自动化执行模糊测试 70
  • 3.3.1 对不同的SOAP服务进行模糊测试 71
  • 3.3.2 对SOAP HTTP POST端口进行模糊测试 75
  • 3.3.3 对SOAP XML端口进行模糊测试 78
  • 3.3.4 运行模糊测试工具 82
  • 3.4 本章小结 83
  • 第4章 编写有效载荷 84
  • 4.1 编写回连的有效载荷 84
  • 4.1.1 网络流 85
  • 4.1.2 运行命令 86
  • 4.1.3 运行有效载荷 88
  • 4.2 绑定有效载荷 88
  • 4.2.1 接收数据,运行命令,返回输出 89
  • 4.2.2 从流中执行命令 90
  • 4.3 使用UDP攻击网络 91
  • 4.3.1 运行在目标机器上的代码 92
  • 4.3.2 运行在攻击者机器上的代码 95
  • 4.4 从C#中运行x86和x86-64 Metasploit有效载荷 97
  • 4.4.1 安装Metasploit 97
  • 4.4.2 生成有效载荷 99
  • 4.4.3 执行本机Windows有效载荷作为非托管代码 100
  • 4.4.4 执行本机Linux有效载荷 102
  • 4.5 本章小结 106
  • 第5章 自动化运行Nessus 107
  • 5.1 REST和Nessus API 107
  • 5.2 NessusSession类 108
  • 5.2.1 发送HTTP请求 109
  • 5.2.2 注销和清理 111
  • 5.2.3 测试NessusSession类 112
  • 5.3 NessusManager类 112
  • 5.4 启动Nessus扫描 114
  • 5.5 本章小结 117
  • 第6章 自动化运行Nexpose 118
  • 6.1 安装Nexpose 118
  • 6.1.1 激活与测试 120
  • 6.1.2 一些Nexpose语法 121
  • 6.2 NexposeSession类 121
  • 6.2.1 ExecuteCommand()方法 123
  • 6.2.2 注销及释放会话 126
  • 6.2.3 获取API版本 127
  • 6.2.4 调用Nexpose API 127
  • 6.3 NexposeManager类 128
  • 6.4 自动发起漏洞扫描 130
  • 6.4.1 创建一个拥有资产的站点 130
  • 6.4.2 启动扫描 131
  • 6.5 创建PDF格式站点扫描报告及删除站点 132
  • 6.6 汇总 133
  • 6.6.1 开始扫描 133
  • 6.6.2 生成扫描报告并删除站点 134
  • 6.6.3 执行自动化扫描程序 134
  • 6.7 本章小结 135
  • 第7章 自动化运行OpenVAS 136
  • 7.1 安装OpenVAS 136
  • 7.2 构建类 137
  • 7.3 OpenVASSession类 137
  • 7.3.1 OpenVAS服务器认证 138
  • 7.3.2 创建执行OpenVAS命令的方法 139
  • 7.3.3 读取服务器消息 140
  • 7.3.4 建立发送/接收命令的TCP流 141
  • 7.3.5 证书有效性及碎片回收 141
  • 7.3.6 获取OpenVAS版本 142
  • 7.4 OpenVASManager类 143
  • 7.4.1 获取扫描配置并创建目标 144
  • 7.4.2 封装自动化技术 148
  • 7.4.3 运行自动化操作 149
  • 7.5 本章小结 149
  • 第8章 自动化运行Cuckoo Sandbox 150
  • 8.1 安装Cuckoo Sandbox 150
  • 8.2 手动运行Cuckoo Sandbox API 151
  • 8.2.1 启动API 151
  • 8.2.2 检查Cuckoo的状态 152
  • 8.3 创建CuckooSession类 153
  • 8.3.1 编写ExecuteCommand()方法来处理HTTP请求 154
  • 8.3.2 用GetMultipartFormData()方法创建分段HTTP数据 156
  • 8.3.3 用FileParameter类处理文件数据 158
  • 8.3.4 测试CuckooSession及支持类 159
  • 8.4 编写CuckooManger类 160
  • 8.4.1 编写CreateTask()方法 161
  • 8.4.2 任务细节及报告方法 162
  • 8.4.3 创建任务抽象类 163
  • 8.4.4 排序并创建不同的类类型 165
  • 8.5 组合在一起 167
  • 8.6 测试应用程序 168
  • 8.7 本章小结 170
  • 第9章 自动化运行sqlmap 171
  • 9.1 运行sqlmap 172
  • 9.1.1 sqlmap REST API 173
  • 9.1.2 用curl测试sqlmap API 174
  • 9.2 创建一个用于sqlmap的会话 177
  • 9.2.1 创建执行GET请求的方法 179
  • 9.2.2 执行POST请求 179
  • 9.2.3 测试Session类 180
  • 9.3 SqlmapManager类 182
  • 9.3.1 列出sqlmap选项 184
  • 9.3.2 编写执行扫描的方法 185
  • 9.3.3 新的Main()方法 187
  • 9.4 扫描报告 188
  • 9.5 自动化执行一个完整的sqlmap扫描 189
  • 9.6 将sqlmap和SOAP漏洞测试程序集成在一起 191
  • 9.6.1 在SOAP漏洞测试程序中增加sqlmap GET请求支持 191
  • 9.6.2 增加sqlmap POST请求支持 192
  • 9.6.3 调用新编写的方法 194
  • 9.7 本章小结 196
  • 第10章 自动化运行ClamAV 197
  • 10.1 安装ClamAV软件 197
  • 10.2 ClamAV软件本地库与clamd网络守护进程 199
  • 10.3 通过ClamAV软件本地库自动执行 199
  • 10.3.1 创建支持的枚举类型和类 199
  • 10.3.2 调用ClamAV软件的本地库函数 202
  • 10.3.3 编译ClamAV软件引擎 203
  • 10.3.4 扫描文件 205
  • 10.3.5 清理收尾 206
  • 10.3.6 通过扫描EICAR测试文件来测试程序 207
  • 10.4 通过clamd守护进程自动化执行 208
  • 10.4.1 安装clamd守护进程 209
  • 10.4.2 启动clamd守护进程 209
  • 10.4.3 创建clamd进程会话类 210
  • 10.4.4 创建clamd进程管理器类 211
  • 10.4.5 测试clamd进程 212
  • 10.5 本章小结 214
  • 第11章 自动化运行Metasploit 215
  • 11.1 运行RPC服务器 215
  • 11.2 安装Metasploitable系统 217
  • 11.3 获取MSGPACK库 218
  • 11.3.1 为MonoDevelop环境安装NuGet软件包管理器 218
  • 11.3.2 安装MSGPACK库 219
  • 11.3.3 引用MSGPACK库 220
  • 11.4 编写MetasploitSession类 221
  • 11.4.1 为HTTP请求以及与MSGPACK库进行交互创建Execute()方法 222
  • 11.4.2 转换MSGPACK库的响应数据 223
  • 11.5 测试会话类 225
  • 11.6 编写MetasploitManager类 226
  • 11.7 整合代码模块 228
  • 11.7.1 运行漏洞利用示例 229
  • 11.7.2 与命令行进行交互 230
  • 11.7.3 连接得到命令行 231
  • 11.8 本章小结 231
  • 第12章 自动化运行Arachni 233
  • 12.1 安装Arachni软件 233
  • 12.2 Arachni软件的REST API函数 234
  • 12.2.1 创建ArachniHTTP-Session类 235
  • 12.2.2 创建ArachniHTTP-Manager类 237
  • 12.3 整合会话和管理器类 238
  • 12.4 Arachni软件的RPC服务 239
  • 12.4.1 手动运行RPC服务 239
  • 12.4.2 ArachniRPCSession类 241
  • 12.4.3 ExecuteCommand()的支持方法 243
  • 12.4.4 ExecuteCommand()方法 245
  • 12.4.5 ArachniRPCManager类 247
  • 12.5 整合代码 248
  • 12.6 本章小结 250
  • 第13章 反编译和逆向分析托管程序集 252
  • 13.1 反编译托管程序集 252
  • 13.2 测试反编译器 255
  • 13.3 使用monodis工具分析程序集 256
  • 13.4 本章小结 259
  • 第14章 读取离线注册表项 260
  • 14.1 注册表项结构 260
  • 14.2 获取注册表项 261
  • 14.3 读取注册表项 263
  • 14.3.1 创建注册表项文件的解析类 263
  • 14.3.2 创建节点键类 264
  • 14.3.3 创建值键的存储类 269
  • 14.4 对库进行测试 270
  • 14.5 导出启动密钥 271
  • 14.5.1 GetBootKey()方法 271
  • 14.5.2 GetValueKey()方法 273
  • 14.5.3 GetNodeKey()方法 273
  • 14.5.4 StringToByteArray()方法 274
  • 14.5.5 获取启动密钥 275
  • 14.5.6 验证启动密钥 275
  • 14.6 本章小结 276

资源获取

相关资源

网友留言