This commit is contained in:
wizardforcel 2016-11-25 09:16:58 +08:00
parent cc898de09f
commit 9408dda3ef
2 changed files with 16 additions and 0 deletions

4
ch3.md
View File

@ -6,6 +6,10 @@
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
确定目标的攻击面的下一步,是识别目标系统上的开放端口。开放端口对应系统上运行的联网服务。编程错误或实施缺陷可能使这些服务存在漏洞,有时可能导致系统的全面沦陷。要为了定可能的攻击向量,必须首先枚举项目范围内的所有远程系统上的开放端口。这些开放端口对应可以用 UDP 或 TCP 流量访问的服务。 TCP 和 UDP 都是传输协议。传输控制协议TCP更加常用并提供面向连接的通信。用户数据报协议UDP是一种面向非连接的协议有时用于传输速度比数据完整性更重要的服务。用于枚举这些服务的渗透测试技术称为端口扫描。与上一章讨论的主机发现不同这些技术应该产生足够的信息来识别服务是否与设备或服务器上的给定端口相关。
在讲解特定秘籍之前,我们首先要讨论一些有关端口端口的底层原理,你应该理解它们。
## 3.1 UDP端口扫描
由于 TCP 是更加常用的传输层协议,使用 UDP 的服务常常被人遗忘。虽然 UDP 服务本质上拥有被忽视的趋势这些服务可以枚举用来完全理解任何给定目标的工具面这相当关键。UDP 扫描通常由挑战性,麻烦,并且消耗时间。这一章的前三个秘籍会涉及如何在 Kali 中使用不同工具执行 UDP 扫描。理解 UDP 扫描可以用两种不同的方式执行相当重要。一种技巧会在第一个秘籍中强调,它仅仅依赖于 ICMP 端口不可达响应。这类型的扫描依赖于任何没有绑定某个服务的 UDP 端口都会返回 ICP 端口不可达响应的假设。所以不返回这种响应就代表拥有服务。虽然这种方法在某些情况下十分高效,在主机不生成端口不可达响应,或者端口不可达响应存在速率限制或被防火墙过滤的情况下,它也会返回不精确的结果。一种替代方式会在第二个和第三个秘籍中讲解,是使用服务特定的探针来尝试请求响应,以表明所预期的服务运行在目标端口上。这个方法非常高效,也非常消耗时间。

12
ch4.md
View File

@ -6,14 +6,26 @@
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
识别目标范围上的活动系统,并枚举这些系统上的开放端口之后,重要的是开始收集关于它们和开放端口的服务的信息。 在本章中,我们会讨论用于 Kali Linux 的指纹和服务识别的不同技术。 这些技术将包括特征抓取服务探测识别操作系统识别SNMP 信息收集和防火墙识别。
## 4.1 Netcat 特征抓取
Netcat 是个多用途的网络工具,可以用于在 Kali 中执行多个信息收集和扫描任务。这个秘籍展示了如何使用 Netcat 获取服务特征,以便识别和开放端口相关的服务。
在讲解上述特定秘籍之前,我们应首先了解一些将在本章剩余部分讨论的基本原则。 本章中的每个秘籍都将介绍可用于执行几个特定任务的工具。 这些任务包括特征抓取服务识别操作系统识别SNMP 分析和防火墙识别。 这些任务中的每一个都用于尽可能多地收集目标系统的信息,来快速有效地攻击该系统。
### 准备
为了使用 Netcat 收集服务特征,在客户端设备连接时,你需要拥有运行开放信息的网络服务的远程系统。提供的例子使用了 Metasploitable2 来执行这个任务。配置 Metasploitable2 的更多信息,请参考第一章的“安装 Metasploitable2”秘籍。
在尝试识别远程服务,以及投入大量时间和资源之前,我们应该首先确定该远程服务是否会向我们暴露自己。服务特征包括与远程服务建立连接时立即返回的输出文本。过去用于网络服务的最佳实践是,发现制造商,软件名称,服务类型,甚至服务特征中的版本号。幸运的是,对于渗透测试人员,这些信息对于识别软件中已知的弱点,缺陷和漏洞非常有用。通过仅连接到远程终端服务,我们可以轻易读取服务特征。但是,为了使它是一个有效的信息收集工具,它应该是自动的,这样我们不必手动连接到远程主机上的每个单独的服务。在本章中的特征抓取秘籍中讲解的工具,将完成自动化抓取特征的任务,来识别尽可能多的开放服务。
如果远程服务不愿意暴露运行它的软件和版本,我们需要更多精力来识别服务。 通常,我们可以识别独特的行为,或请求用于精确识别服务的唯一响应。 甚至可以根据响应或行为的微妙变化而识别特定服务的特定版本。 然而,所有这些独特的签名的知识,对任何人来说都很困难。 幸运的是,许多工具已经创建,来向远程服务发送大量探测,来分析这些目标服务的响应和行为。 与之相似,响应变化也可以用于识别在远程服务器或工作站上运行的底层操作系统。 这些工具将在讲解服务识别和操作系统识别的秘籍中讨论。
简单网络管理协议SNMP是一种为各种类型的网络设备提供远程管理服务的协议。 SNMP 的管理功能将团体字符串用于验证来执行。 使用默认团队字符串部署设备是非常常见的。 当发生这种情况时,攻击者通常可能远程收集目标设备配置的大量信息,并且甚至在某些情况下重新配置设备。 利用 SNMP 用于信息收集的技术会在讲解 SNMP 分析的秘籍中讨论。
在收集关于潜在目标的信息时,重要的是,还要了解可能影响成功侦查或攻击的任何障碍。 防火墙是一个网络设备或软件,用于选择性限制发往或来自特定目标的网络流量。 防火墙通常配置为防止远程访问特定服务。 防火墙的存在修改了攻击系统和目标之间的流量,有助于尝试识别绕过其过滤器的方法。 识别防火墙设备和服务的技术将在讲解防火墙识别的秘籍中讨论。
### 操作步骤
为了使用 Netcat 抓取服务特征,我们必须与建立远程系统的目标端口建立套接字连接。为了快速理解 Netcat 的用法,以及如何用于该目的,我们可以输出使用方法。这可以使用`-h`选项来完成: