Kali 基础网络工具

LinuxBeginner
立即练习

介绍

使用扫描器之前,你需要区分地址、名称、网络路径与服务端口。这些是不同的观察结果,某一层成功不代表另一层也成功。

本实验在 Kali 环境内提供本地 DNS 服务器与 Web 服务。你将查看网络、解析训练名称并检查其 TCP 监听器,无需扫描网关或依赖公共目标。

查看地址、路由与回环可达性

本步骤中,你将查看 Kali 容器的网络,并测试一条范围有限的本地连接路径。

进入准备好的 shell 并选择工作区:

kali
cd /home/labex/project

IP 地址标识网络端点。接口是系统连接网络的通道;路由描述发往某个地址的流量应去往哪里。容器拥有自己的网络视图,因此要查看当前环境,不要假定它与宿主机设置相同。

ip 用于查看 Linux 网络。-brief 选项请求显示简洁的接口地址视图:

ip -brief address

找到回环接口 lo 和 127.0.0.1。回环流量留在当前网络环境内。其他接口和地址可能不同。/8 或 /16 之类的前缀描述地址的网络范围,不是服务端口。

查看路由:

ip route

如果存在 default 条目,当没有更具体的路由匹配时就会使用它。无需扫描网关或更改任何路由。

ping 发送可达性探测。-c 3 将测试限制为三次探测,使其自动结束:

ping -c 3 127.0.0.1

你应收到回复和最终数据包统计。具体时间会有所不同。ping 回复说明这些探测收到了响应,并不能证明某个 TCP 服务正在监听。

使用已学过的输出重定向,保存接口观察结果:

ip -brief address > interfaces.txt
cat interfaces.txt

保存的视图应包含回环接口及其地址。

使用训练 DNS 服务器解析名称

本步骤中,你将通过本地 DNS 服务器区分名称解析与服务连通性。

DNS 将名称转换为记录。A 记录存放 IPv4 地址。本实验提供位于 127.0.0.1 的 DNS 服务器,端口为 5353,并提供本地名称 training-web.test;无需公共 DNS 服务。

dig 查询 DNS。@127.0.0.1 选择服务器,-p 5353 选择非默认 DNS 端口,下一个参数是名称,A 请求 IPv4 地址记录:

dig @127.0.0.1 -p 5353 training-web.test A

应答区域应显示名称与地址 127.0.0.1。DNS 也使用端口:这里的端口 5353 属于训练 DNS 服务器,而非应答所指向的 Web 服务。

显示选项 +short 只打印应答数据。保存这一更简短的结果:

dig @127.0.0.1 -p 5353 +short training-web.test A > dns-answer.txt
cat dns-answer.txt

预期输出:

127.0.0.1

系统名称查找也可能使用本地文件,而非直接查询 DNS。getent hosts 通过系统配置的主机查找机制查询名称:

getent hosts localhost

输出将 localhost 与回环地址关联起来,可能是 IPv6 地址 ::1。这与使用 dig 显式查询提供的 DNS 服务器不同。名称解析成功会给出地址;你仍需检查所需服务是否在该地址可用。

查看监听器并测试 TCP 端口

本步骤中,你将把地址与具体传输协议及服务端口联系起来。

端口标识某地址上的传输端点。TCP 建立连接;UDP 发送数据报,没有相同的连接握手。仅凭服务端口号无法证明具体应用或漏洞的存在。

ss 显示套接字信息。-l 选择监听套接字,-t 选择 TCP,-n 保留数字地址和端口号:

ss -ltn

找到本地端点 127.0.0.1:8080。它属于提供的训练 Web 服务。该地址将服务限制在容器内的回环接口上。用 -u 替换 -t,单独查看 UDP 套接字:

ss -lun

训练 DNS 端点使用端口 5353。TCP 和 UDP 拥有各自独立的端口空间;两个协议可以使用相同数字。

只保存练习服务的 TCP 监听行。模式包含端口前的冒号和末尾空格,以便与更长的数字区分:

ss -ltn | grep ':8080 ' > service-listener.txt
cat service-listener.txt

该行应显示 LISTEN 和 127.0.0.1:8080;间距与队列数值可能不同。

Ncat 能在不发送应用数据的情况下测试 TCP 连接。-v 打印状态,-z 请求连接检查,而非交互式数据会话:

ncat -vz 127.0.0.1 8080

状态应报告连接成功。这证明选定 TCP 端口此刻接受连接,但尚未验证 HTTP 响应。你将在后续实验中检查 HTTP 本身。

总结

你查看了接口与路由,发送了次数有限的可达性测试,查询了本地 DNS,查看了 TCP 与 UDP 监听器,并测试了一次 TCP 连接。你区分了成功解析、网络可达性与应用层行为。