Kali 中使用 Nmap 和 DNS 进行信息收集
介绍 在本实验中,你将学习使用 Kali Linux 进行信息收集的基础方法,重点掌握网络扫描与 DNS 查询技术。通过本次实战,你将了解如何使用强大的端口扫描工具 `nmap` 识别目标系统的开放端口和服务,并借助 `dnsrecon` 收集 DNS 相关信息。本实验面向初学者,提供在独立云
## 介绍
在本实验中,你将学习使用 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` 并执行基础扫描:
1. 先更新软件包列表,确保能够安装最新版本的 `nmap`。在终端中输入以下命令并按回车键:
```bash
apt update
```
这条命令会刷新可用的软件包列表。整个过程通常只需几秒钟,随后会显示更新输出。
2. 接着输入以下命令并按回车键,安装 `nmap`:
```bash
apt install -y nmap
```
其中 `-y` 参数会自动确认安装,无需手动输入确认。等待安装完成即可,这一步很快,屏幕上会显示安装进度。
3. `nmap` 安装完成后,对 `localhost`(也就是你自己的容器,IP 地址为 `127.0.0.1`)进行一次基础扫描,这是一个安全的练习目标。输入以下命令并按回车键:
```bash
nmap localhost
```
这条命令会扫描 `localhost` 上最常见的端口。几秒钟后,你会看到类似下面的输出(实际结果可能略有不同):
```bash
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` 扫描结果:
1. 对 `localhost` 执行另一次 `nmap` 扫描,并将输出重定向到 `/root` 目录下一个名为 `nmap_scan.txt` 的文件中。在终端中输入以下命令并按回车键:
```bash
nmap localhost > /root/nmap_scan.txt
```
`>` 的作用是将 `nmap localhost` 的输出重定向到 `/root/nmap_scan.txt`。由于结果已经写入文件,终端中不会直接显示扫描内容。执行后等待几秒,让扫描完成即可。
2. 想确认输出是否确实保存成功,可以输入下面的命令并回车,查看文件内容:
```bash
cat /root/nmap_scan.txt
```
正常情况下,你会看到类似下面的输出(实际内容可能会有差异):
```bash
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` 进行服务枚举:
1. 在 `localhost` 上运行带有版本检测功能的 `nmap` 扫描。在终端中输入以下命令并按回车键:
```bash
nmap -sV localhost
```
`-sV` 参数会告诉 `nmap` 探测开放端口,以获取更详细的服务和版本信息。等待扫描完成;这可能比基础扫描多花几秒钟。你应该会看到类似以下的输出(实际输出可能有所不同):
```bash
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`。这些信息非常有价值,因为特定版本可能存在已知漏洞,可用于进一步研究。
2. 将此版本检测扫描的结果保存到 `/root` 目录下一个名为 `service_scan.txt` 的文件中。输入以下命令并按回车键:
```bash
nmap -sV localhost > /root/service_scan.txt
```
与之前一样,`>` 符号会将输出重定向到指定文件。由于结果已直接保存到 `/root/service_scan.txt`,你不会在终端中看到扫描结果。
3. 通过查看文件内容来确认输出已保存。输入以下命令并按回车键:
```bash
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`:
1. 更新软件包列表,确保能够安装最新版本的 `dnsrecon`。在终端中输入以下命令并按回车键:
```bash
apt update
```
这会刷新软件包列表。等待过程完成后,你将看到更新进度相关的输出。
2. 输入以下命令并按回车键来安装 `dnsrecon`:
```bash
apt install -y dnsrecon
```
`-y` 参数会自动确认安装。等待安装完成,这只需要几秒钟。你将看到安装进度相关的输出。
3. 安装完成后,对 `example.com` 运行基础 DNS 枚举。输入以下命令并按回车键:
```bash
dnsrecon -d example.com
```
`-d` 参数用于指定要查询的域名。运行命令后,你会看到类似以下的输出(实际输出可能有所不同):
```bash
[*] 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`)。
4. 将 DNS 枚举结果保存到 `/root` 目录下一个名为 `dns_results.txt` 的文件中。输入以下命令并按回车键:
```bash
dnsrecon -d example.com > /root/dns_results.txt 2>&1
```
`>` 符号会将输出重定向到指定文件,而 `2>&1` 会把标准错误也写入同一个文件中。`dnsrecon` 可能会将扫描详情打印到标准错误流,因此同时保存两个输出流可确保 `/root/dns_results.txt` 包含完整结果,而不是空文件。
5. 通过查看文件内容来确认输出已保存。输入以下命令并按回车键:
```bash
cat /root/dns_results.txt
```
你应该会看到与上述相同的 DNS 枚举结果,现在已存储在文件中。
本步骤向你介绍了使用 `dnsrecon` 进行 DNS 信息收集的方法,并展示了如何获取关键的域名信息。在下一步中,我们将把所有发现的结果汇总到一个总结文件中。在继续之前,请确保你能够查看保存的 DNS 结果。
## 总结
在本实验中,你学习了使用 Kali Linux 工具进行信息收集的基础技术,以获取目标系统的相关信息。你首先安装并使用 `nmap` 对安全的本地目标(`localhost`)执行了基础端口扫描,识别出开放端口以及我们安装的 Apache Web 服务器等相关服务。随后,你将这些结果保存到文件中以便记录。接着,你学习了使用 `nmap` 脚本进行服务枚举,以发现更详细的版本信息,并使用 `dnsrecon` 对 `example.com` 进行了 DNS 信息收集,查询了其域名记录。这些网络扫描与信息收集的基础技能,对于渗透测试和网络安全审计都非常重要。
来源:https://labex.io/zh/tutorials/kali-kali-reconnaissance-with-nmap-and-dns-552298
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
修复漏洞导致蓝屏的原因及解决方法
计算机在修复系统漏洞后出现蓝屏问题,除了系统层面的因素外,也很可能与硬件故障有关。下面为您整理了几种常见原因及对应的解决方法:1 内存条接触不良可以先关闭电脑并断电,拔出内存条,对金手指部位进行轻微擦拭,同时清理主板内存卡槽中的灰尘,然后重新安装到位即可。这类接触不良问题,往往是电脑蓝屏的常见原因之
CentOS系统漏洞修复方法与安全加固指南
在CentOS系统中,如何修复Bash漏洞?具体操作方法如下。那么,在CentOS命令行环境下,应该怎样修复Bash安全漏洞呢?其实操作并不复杂,只需要执行以下命令,更新Bash软件包即可完成漏洞修复。yum clean all yum makecache yum -y update bash
CAD图纸数据加密方法有哪些及如何设置
CAD数据加密的方法与操作步骤1 首先,在电脑中打开需要加密的CAD文件;2 打开CAD文件后,在软件界面中使用快捷键“ctrl+shift+S”,将当前文件另存为一个新的副本;3 在弹出的“另存为”窗口中,选择CAD文件的保存位置;4 设置好文件保存路径后,在对话框右上角的“定制工具”中点击“密码
Linux安全漏洞修复方法与常见漏洞处理指南
在 Linux 系统中修复 Bash 安全漏洞的方法1 首先,在 Linux 命令行中执行以下命令检测并扫描 Bash 漏洞;env x= () { :;}; echo vulnerable bash -c "echo this is a test "2 当检测到 Bash 存在安全漏洞时,可在命令
IE浏览器漏洞修复方法与安全防护指南
修复IE浏览器漏洞的常用方法1 首先,在电脑中启动IE浏览器;2 打开IE浏览器后,点击浏览器右上角的“工具”选项,并在下拉菜单中选择“Internet选项”;3 在弹出的Internet选项对话框中,切换到“安全”选项卡;4 进入安全设置页面后,点击“自定义级别”按钮,并将相关设置进行重置;5 完