介绍
在本实验中,你将学习使用 Kali Linux 进行信息收集的基础知识,重点关注网络扫描和 DNS 查询技术。通过本次实践,你将掌握如何使用强大的网络扫描工具 nmap 识别目标系统上的开放端口和服务,并使用 dnsrecon 收集 DNS 信息。本实验专为初学者设计,在运行于独立云主机的安全 LabEx 虚拟机环境中提供分步指导。你将执行 nmap 端口扫描、使用脚本进行服务枚举、查询 DNS 记录,并将发现的结果保存以供分析。当你打开终端时,系统会自动连接到 Kali Linux 容器的 shell,无需手动启动或进入容器即可直接开始练习。
安装并运行基础 Nmap 扫描
在第一步中,你将学习如何安装并使用 nmap(一款强大的网络扫描工具)来识别目标系统上的开放端口。端口扫描是信息收集的一项基本技能,它能帮助你发现机器上运行的服务,并可能揭示潜在的漏洞。本步骤专为初学者设计,我们将引导你完成每一个细节。
当你打开 LabEx 虚拟机环境中的终端时,系统会自动连接到 Kali Linux 容器的 shell。无需手动启动容器或进入 shell,环境已经为你准备就绪。
在开始之前,让我们先了解一下 nmap 的作用。nmap(Network Mapper 的缩写)是一种通过发送数据包并分析响应来发现网络上主机和服务的工具。开放端口通常意味着有正在运行的服务(如 Web 服务器或 SSH),这些服务可能成为进一步分析的切入点。
现在,让我们安装 nmap 并执行一次基础扫描。请仔细按照以下说明操作:
首先,更新软件包列表,确保能够安装最新版本的
nmap。在终端中输入以下命令并按回车键:apt update该命令会刷新可用软件包列表。此过程可能需要几秒钟,你将看到更新过程的输出。
接下来,输入以下命令并按回车键来安装
nmap:apt install -y nmap-y参数会自动确认安装,无需手动干预。等待安装完成,这只需要很短的时间。你将看到安装进度的相关输出。nmap安装完成后,让我们对localhost(你自己的容器,IP 地址为127.0.0.1)进行一次基础扫描,这是一个安全的练习目标。输入以下命令并按回车键:nmap localhost该命令会扫描
localhost上最常见的端口。几秒钟后,你将看到类似以下的输出(实际输出可能有所不同):Starting Nmap 7.91 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http ... Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds在输出中,
Host is up确认目标是可达的。表格列出了开放端口、它们的状态(open表示可访问)以及关联的服务(如端口80上的http)。这些信息有助于你了解系统上运行的服务。
本步骤介绍了如何安装并使用 nmap 进行基础端口扫描。你已经通过识别安全目标上的开放端口,迈出了信息收集的第一步。在下一步中,我们将在此基础上学习如何保存扫描结果以供进一步分析。在继续之前,请确保你已熟练掌握 nmap 命令的使用。
将 Nmap 扫描结果保存到文件
既然你已经使用 nmap 执行了基础扫描,现在让我们学习如何将扫描输出保存到文件中以备后用。保存结果是信息收集中的一项重要技能,它允许你记录发现的内容并在稍后进行分析,而无需重新运行扫描。本步骤直接建立在前一步的基础上,因此请确保你已完成基础的 nmap 扫描后再继续。
Linux 中的输出重定向功能允许你将命令的结果保存到文件,而不是直接显示在终端中。这是通过 > 符号实现的,它会将输出写入指定文件,如果文件已存在则会覆盖。我们将把结果保存在 Kali Linux 容器内的 /root 目录中,这是你的默认工作区。
请按照以下说明保存你的 nmap 扫描结果:
对
localhost执行另一次nmap扫描,并将输出重定向到/root目录下一个名为nmap_scan.txt的文件中。在终端中输入以下命令并按回车键:nmap localhost > /root/nmap_scan.txt>符号将nmap localhost命令的输出重定向到了/root/nmap_scan.txt文件。由于结果已被保存到文件中,你将不会在终端中看到扫描结果。等待几秒钟让扫描完成。要确认输出已成功保存,请通过输入以下命令并按回车键来查看文件内容:
cat /root/nmap_scan.txt你应该会看到类似以下的输出(实际输出可能有所不同):
Starting Nmap 7.91 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http ... Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds这确认了扫描结果已成功保存到
/root/nmap_scan.txt。将输出保存到文件是记录信息收集任务中发现内容的实用方法。
在本步骤中,你学习了如何将 nmap 输出重定向到文件以进行记录。这项技能在进入下一步更高级的扫描技术时非常有用。在继续之前,请确保你能查看到文件中保存的结果。
使用 Nmap 脚本进行服务枚举
在掌握基础扫描技能的基础上,本步骤将介绍如何使用 nmap 脚本进行服务枚举,以收集有关开放端口上运行服务的详细信息。服务枚举是信息收集的关键部分,因为它有助于识别可能存在已知漏洞的特定服务版本。本步骤假设你已安装 nmap 并完成了之前的扫描。
服务枚举不仅仅是查找开放端口,其目标是识别这些端口上运行的确切软件及其版本。nmap 提供了一个名为 NSE(Nmap Scripting Engine)的脚本引擎,其中包含用于检测服务详情和潜在问题的预置脚本。在本步骤中,我们将使用 -sV 参数进行版本检测。
让我们按照以下说明对 localhost 进行服务枚举:
在
localhost上运行带有版本检测功能的nmap扫描。在终端中输入以下命令并按回车键:nmap -sV localhost-sV参数告诉nmap探测开放端口以获取详细的服务和版本信息。等待扫描完成;这可能比基础扫描多花几秒钟。你应该会看到类似以下的输出(实际输出可能有所不同):Starting Nmap 7.91 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Not shown: 997 closed ports PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) ... Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds在此输出中,你可以看到端口
80上运行的服务版本,例如Apache httpd 2.4.41。这些信息非常有价值,因为特定版本可能存在已知漏洞,可以进行进一步研究。将此版本检测扫描的结果保存到
/root目录下一个名为service_scan.txt的文件中。输入以下命令并按回车键:nmap -sV localhost > /root/service_scan.txt与之前一样,
>符号将输出重定向到指定文件。由于结果直接保存到了/root/service_scan.txt,你将不会在终端中看到结果。通过查看文件内容来确认输出已保存。输入以下命令并按回车键:
cat /root/service_scan.txt你应该会看到与上述相同的详细输出,现在已存储在文件中以备后用。
本步骤向你展示了如何使用 nmap 进行服务枚举,从而深入了解目标上运行的服务。在下一步中,我们将使用另一个工具探索 DNS 信息收集。在继续之前,请确保你了解如何运行版本检测扫描并保存输出。
安装并使用 dnsrecon 进行 DNS 查询
在本步骤中,我们将重点转向使用 dnsrecon 进行 DNS 信息收集,这是一个用于收集域名 DNS 信息的工具。DNS 枚举有助于识别子域名、邮件服务器和其他基础设施详情,这对于了解目标的在线状态至关重要。本步骤专为初学者设计,假设你正在 Kali Linux 容器 shell 中工作。
DNS(域名系统)将 example.com 等域名转换为计算机用于通信的 IP 地址。DNS 记录包含诸如主机 IP 地址(A 记录)、邮件服务器(MX 记录)等信息。dnsrecon 是一个查询这些记录以揭示域名配置详情的工具。在本实验中,我们将使用 example.com 作为安全的练习目标。
请按照以下说明安装并使用 dnsrecon:
更新软件包列表,确保能够安装最新版本的
dnsrecon。在终端中输入以下命令并按回车键:apt update这会刷新软件包列表。等待过程完成,你将看到更新进度的相关输出。
输入以下命令并按回车键来安装
dnsrecon:apt install -y dnsrecon-y参数会自动确认安装。等待安装完成,这只需要几秒钟。你将看到安装进度的相关输出。安装完成后,对
example.com运行基础 DNS 枚举。输入以下命令并按回车键:dnsrecon -d example.com-d参数指定要查询的域名。运行命令后,你将看到类似以下的输出(实际输出可能有所不同):[*] Performing General Enumeration of Domain: example.com [*] DNSSEC is not configured for example.com [*] SOA ns.icann.org 199.4.138.53 [*] NS ns.icann.org 199.4.138.53 [*] A example.com 93.184.216.34 [*] AAAA example.com 2606:2800:220:1:248:1893:25c8:1946 [*] MX example.com 0 . [*] TXT example.com "v=spf1 -all" [*] Enumeration Complete.此输出显示了
example.com的各种 DNS 记录,提供了对其配置的洞察:- SOA (Start of Authority,起始授权记录): 包含有关该区域的管理信息。
- NS (Name Server,域名服务器记录): 列出该域名的权威服务器。
- A (Address,地址记录): 将域名映射到 IPv4 地址。
- AAAA (IPv6 Address,IPv6 地址记录): 将域名映射到 IPv6 地址。
- MX (Mail Exchanger,邮件交换记录): 指定负责接收该域名邮件的服务器。
- TXT (Text,文本记录): 包含任意文本,通常用于验证目的,例如此处显示的 SPF(发件人策略框架,
v=spf1 -all)。
将 DNS 枚举结果保存到
/root目录下一个名为dns_results.txt的文件中。输入以下命令并按回车键:dnsrecon -d example.com > /root/dns_results.txt 2>&1>符号将输出重定向到指定文件,而2>&1将标准错误也捕获到同一个文件中。dnsrecon可能会将扫描详情打印到标准错误流,因此保存两个输出流可确保/root/dns_results.txt包含完整结果,而不是空文件。通过查看文件内容来确认输出已保存。输入以下命令并按回车键:
cat /root/dns_results.txt你应该会看到与上述相同的 DNS 枚举结果,现在已存储在文件中。
本步骤向你介绍了使用 dnsrecon 进行 DNS 信息收集,展示了如何获取关键的域名信息。在下一步中,我们将把所有发现的结果汇总到一个总结文件中。在继续之前,请确保你能查看到保存的 DNS 结果。
总结
在本实验中,你学习了使用 Kali Linux 工具进行信息收集的基本技术,以获取有关目标系统的相关信息。你首先安装并使用 nmap 对安全的本地目标(localhost)执行了基础端口扫描,识别出了开放端口以及我们安装的 Apache Web 服务器等关联服务。随后,你将这些结果保存到文件中以供记录。接着,你探索了使用 nmap 脚本进行服务枚举以揭示详细的版本信息,并使用 dnsrecon 对 example.com 进行了 DNS 信息收集,查询了其域名记录。这些在网络扫描和信息收集方面的基础技能,对于渗透测试和网络安全审计至关重要。


