信息收集渗透测试

CybersecurityCybersecurityBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在渗透测试过程中,信息收集阶段是最关键的环节之一。本实验重点介绍如何使用工具获取信息。你收集到的目标主机信息越多,渗透测试的成功率就越高。在 Kali 系统中,预装了一些渗透工具。通过使用这些工具,你将逐渐熟悉信息收集的基本步骤。

本课程是一个动手实验教程。为了帮助你理解实验中的一些操作,会补充一些信息安全理论内容,并推荐最值得阅读的文章,供你在实践时参考。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cybersecurity(("`Cybersecurity`")) -.-> cybersecurity/NmapGroup(["`Nmap`"]) cybersecurity/NmapGroup -.-> cybersecurity/nmap_port_scanning("`Nmap Port Scanning Methods`") cybersecurity/NmapGroup -.-> cybersecurity/nmap_target_specification("`Nmap Target Specification`") cybersecurity/NmapGroup -.-> cybersecurity/nmap_syn_scan("`Nmap SYN Scan`") cybersecurity/NmapGroup -.-> cybersecurity/nmap_os_version_detection("`Nmap OS and Version Detection`") cybersecurity/NmapGroup -.-> cybersecurity/nmap_service_detection("`Nmap Service Detection`") subgraph Lab Skills cybersecurity/nmap_port_scanning -.-> lab-416118{{"`信息收集渗透测试`"}} cybersecurity/nmap_target_specification -.-> lab-416118{{"`信息收集渗透测试`"}} cybersecurity/nmap_syn_scan -.-> lab-416118{{"`信息收集渗透测试`"}} cybersecurity/nmap_os_version_detection -.-> lab-416118{{"`信息收集渗透测试`"}} cybersecurity/nmap_service_detection -.-> lab-416118{{"`信息收集渗透测试`"}} end

扫描目标主机的开放端口

在这一步骤中,我们将介绍如何使用工具扫描目标主机的开放端口。

在渗透测试过程中,了解目标主机的开放端口是必要的。在 Kali Linux 中,默认提供了两种端口扫描工具:Nmap 和 Zenmap。我们将主要介绍这两种工具的使用方法。

首先,让我们启动实验环境。主机是 Ubuntu(你当前连接的桌面),并安装了 Docker 和 QEMU 虚拟环境。它们分别为 Kali Linux 容器和 Metasploitable2 目标机器提供平台支持。

在 LabEx 主机上,通过双击桌面上的 xfce 终端启动 Metasploitable2,并在终端中输入以下命令:

sudo virsh start Metasploitable2

等待目标机器启动,可能需要1-3分钟。

通过 ping 目标机器来确保其正在运行(按 Ctrl-C 退出 ping):

ping 192.168.122.102

现在,让我们启动 Kali 容器并进入 bash 界面,执行 ping 操作以验证网络连通性:

docker run -ti --network host b5b709a49cd5 bash

现在,我们可以执行 ping 操作来验证网络连通性(按 Ctrl-C 退出 ping):

ping 192.168.122.102

现在两个实验环境都已启动,我们可以开始渗透测试。

注意:如果你不小心退出了当前的 bash,Kali 容器会自动停止。你可以在主机上再次执行 docker run -ti --network host b5b709a49cd5 bash 命令,启动一个新的 Kali 容器并进入 bash 以继续实验操作。

TCP 端口扫描工具:Nmap

Nmap 是一个网络探测和安全扫描程序。系统管理员和个人可以使用此软件扫描大型网络,获取哪些主机正在运行以及它们提供哪些服务的信息。

Nmap 支持多种扫描技术,例如 UDP、TCP Connect()、TCP SYN(半开扫描)、FTP 代理(Bounce 攻击)、空闲扫描(Idle scan)、ICMP、FIN、ACK 扫描、Xmas Tree、SYN 扫描和 Null 扫描。

Nmap 包含四个基本功能:

  • 主机发现(Host Discovery)
  • 端口扫描(Port Scanning)
  • 版本检测(Version Detection)
  • 操作系统检测(Operating System Detection)

使用 nmap 工具,输入以下命令执行端口扫描,获取目标机器的开放端口信息:

nmap 192.168.122.102

Zenmap:Nmap 的图形用户界面

Zenmap 是 Nmap 项目开发的基于 Nmap 的官方图形用户界面。Zenmap 是一个用 Python 编写的开源免费图形界面,可以在不同的操作系统平台(Windows/Linux/Unix/Mac OS 等)上运行。Zenmap 旨在为 Nmap 提供更简单的操作方法。常见的操作可以保存为配置文件,用户可以在扫描时选择一个配置文件,方便比较不同的扫描结果。它还提供了网络拓扑的图形化显示。

注意:LabEx 环境使用的是 Kali 容器,因此目前无法使用图形界面。

获取目标主机的基本信息

在这一步骤中,我们将练习如何使用工具获取目标主机的基本信息,例如操作系统。

在这个阶段,我们需要尽可能多地收集目标主机操作系统的基本信息。这将提高渗透测试的成功率。信息收集指的是指纹识别,而主动指纹识别工具包括 nmap 中的 -O-sV 参数。指纹识别虽然听起来很高端,但实际上只是识别目标主机的操作系统版本和应用程序版本,以帮助我们进一步检测操作系统和应用程序层面的漏洞。

主动指纹识别工具

要获取目标主机的操作系统,请使用以下命令:

nmap -O 192.168.122.102

在 Kali 终端中执行该命令以查看目标机器的信息。目标机器的 IP 地址为 192.168.122.102

要获取目标主机的端口服务信息,请使用以下命令:

nmap -sV 192.168.122.102

被动指纹识别工具

被动指纹识别工具,例如 p0f,不会向目标发送特定的探测数据,而是被动接收并分析数据。它们通常无法被检测到。

p0f 在网络分析方面非常强大,可用于分析 NAT、负载均衡、应用代理等。

p0f 识别的主要信息包括:

  • 操作系统类型、端口
  • 是否运行在 NAT 模式下
  • 是否运行在防火墙后面
  • 是否运行在负载均衡模式下

在 Kali 终端中执行以下命令,使用 p0f 查看目标主机:

p0f 192.168.122.102

隐蔽扫描(TCP 半开扫描)

在 Kali 终端中执行以下命令,进行隐蔽扫描:

nmap -sS 192.168.122.102

这种方法的优点是难以检测,隐蔽性高。通常不会在目标计算机上留下记录。

TCP 连接扫描

在 Kali 终端中执行以下命令,进行 TCP 连接扫描:

nmap -sT 192.168.122.102

这种类型的扫描会被大多数系统记录,但它可以提供比隐蔽扫描更多的信息。

获取目标站点的网络服务信息

在这一步骤中,我们将获取目标站点提供的网络服务信息。

获取网络服务信息

收集更多关于目标主机网络服务的信息将有助于提高渗透测试的成功率。

打开 Firefox 浏览器,在地址栏中输入 http://192.168.122.102。如果一切顺利,你将看到以下内容:

LabEx 目标站点主页

使用 amap 扫描目标主机的特定端口

amap 用于扫描主机上的特定端口。在 LabEx 的 Kali 终端中,输入以下命令以扫描目标主机的端口 21:

amap -bqv 192.168.122.102 21

使用 smtp-user-enum 进行用户枚举

smtp-user-enum 工具主要用于 SMTP 用户枚举。在 LabEx 的 Kali 终端中,输入以下命令以枚举 SMTP 用户:

smtp-user-enum -M VRFY -u root -t 192.168.122.102

总结

在本实验中,我们练习了使用各种常见的安全工具来收集目标主机的信息,涵盖了以下知识点:

  • 使用工具扫描目标主机的开放端口
  • 获取目标主机的基本信息,例如操作系统
  • 获取目标站点提供的网络服务信息
  • 分析收集到的信息以识别潜在的攻击向量

在整个实验过程中,我们学习了如何使用不同的工具进行信息收集,这是渗透测试过程中的关键步骤。通过掌握这些工具和技术,我们可以通过收集更多关于目标主机的有价值信息来提高渗透测试的成功率。

您可能感兴趣的其他 Cybersecurity 教程