1. 别急着背命令:先搞清楚 Kali 里哪些命令真正高频
1.1 Kali Linux 的定位,决定了它是"命令行为主"的系统
很多人第一次装完 Kali Linux,第一反应是打开图形界面找找"渗透测试按钮"。找一圈发现没有,然后就开始迷茫。其实这事从 Kali 的出身就能解释清楚:它本质上是 Debian 的一个定制发行版,预装了一大堆安全测试工具,但它没有为这些工具做一套统一的图形界面。每个工具要么是纯命令行的,要么是自带的 GUI 界面,彼此之间的参数风格、输出格式、帮助文档都各不一样。
这就带来一个很现实的问题:你想让 Kali Linux 干活,绕不开命令。图形界面能帮你点开工具,但工具真正怎么跑、跑哪些参数、输出怎么解读,全在命令行里。我见过太多新手,装好系统之后只会点鼠标,遇到需要组合多个工具的场景就卡住了。所以这份速查表的第一原则不是"背下来",而是"按使用阶段归档,用的时候能三秒找到"。
顺便提一句,网上搜"kali linux 安装教程""kali linux 官网""kali linux 源"这些的人特别多,说明很多读者还停留在环境搭建阶段。这没问题,但环境搭完之后,真正决定你水平的是命令熟练度,而不是你装了多少工具。
1.2 速查表的正确用法:按阶段归档,而不是按字母排序
我早期做过一件很蠢的事:把所有命令按字母顺序整理成一个大表,A 开头的一堆,S 开头的一堆。结果实战的时候根本查不动,因为你在打点的时候想的是"我现在要扫端口",而不是"我要找一个 n 开头的命令"。
正确的归档方式是按渗透测试流程走。一个完整的授权测试大致会经过这几个阶段:环境确认、信息收集、漏洞探测、漏洞利用、权限提升、后渗透与清理。命令按这些阶段分散归档,查询时先定位阶段,再在阶段里挑命令,效率完全不一样。这也符合人脑的检索习惯——按场景联想,而不是按字符串匹配。
1.3 一份命令速查表的三层结构
我自己的速查表是三层结构。第一层是"万能基础",就是不管做什么阶段都要用的,比如文件操作、文本处理、网络排查;第二层是"阶段专用",比如信息收集阶段的 nmap、目录枚举工具,Web 阶段的 curl、sqlmap;第三层是"救火专用",就是报错时用来排查的命令,比如看进程、看端口、看日志。
三层当中,第一层最容易被忽视,但它其实是使用频率最高的。举个最简单的例子,grep 和 awk 这两个命令,几乎会出现在每一次实战里——因为任何工具的输出你都要过滤和提取。很多人工具参数背得滚瓜烂熟,结果输出几百行数据不知道怎么看,这就是基础没打牢。
提示:速查表不要追求"全",要追求"顺手"。一份两百条但你能立刻定位的清单,价值远高于一份两千条但你找不到的清单。
接下来就按这个思路,从系统与网络层开始往下拆。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统与网络层:所有测试的地基
2.1 先摸清自己在哪台机器上
不管做什么,第一步永远是确认自己的环境。Kali 跑在物理机上、跑在虚拟机里、还是跑在容器里,能用的工具和能力是不一样的。下面这组命令是我开机基本都要过一遍的:
bash复制uname -a # 内核版本、架构、主机名一次看全
cat /etc/os-release # 发行版信息,确认是不是 Kali 以及代号
hostnamectl # 主机名、内核、架构、虚拟化环境
lscpu # CPU 核心数、是否支持虚拟化
free -h # 内存占用,跑内存吃紧的工具前先看一眼
df -h # 磁盘剩余空间,扫描结果日志很占地方
ip -br a # 简版网卡与 IP 列表,比 ifconfig 清爽
ip route # 默认路由,确认出口走哪张网卡
这里有个细节值得说:ip -br a 里的 -br 是 brief(简洁)模式,输出一行一个网卡,比传统 ifconfig 那种多行堆叠清楚得多。现代 Linux 里 ifconfig、netstat、route 这些老命令很多系统已经默认不装了,虽然 Kali 一般会保留,但养成用 ip、ss 系的习惯更稳。
再补一条判断虚拟化环境的技巧,就是看 systemd-detect-virt,它会直接告诉你现在跑在 kvm、vmware、hyperv 还是 bare(物理机)。为什么这个重要?因为虚拟机里的网卡模式和物理机差异很大,网卡混杂模式的设置、无线网卡的可用性都有区别。很多人问"Kali 里怎么扫 WiFi",这里就得说清楚:虚拟机里的无线网卡是通过宿主转发的,一般只能做常规联网,扫描 WiFi 需要把无线网卡(比如支持监听的型号)直通给虚拟机,或者干脆用物理机装 Kali,这不是命令能解决的,是硬件和虚拟化配置的问题。
2.2 网络连通性与配置排查
网络不通的时候,按"从下往上"的顺序排查,能省掉大量时间。链路层看 ARP,网络层看 ping 和路由,传输层看端口连通性。
bash复制ping -c 4 192.168.1.1 # 只发 4 个包,避免无限刷新
arp-scan -l # 扫本网段存活主机,依赖二层可达
arp -n # 查本机 ARP 缓存
ss -tulnp # 所有监听端口 + 进程名,替代 netstat
ss -tnp # 已建立的 TCP 连接及对应进程
traceroute 8.8.8.8 # 逐跳看路径,定位在哪一跳断掉
nc -zv 192.168.1.10 22 # 探单个端口通不通
nc -zv 192.168.1.10 20-25 # 探一个端口区间
ss 那个 -tulnp 我建议直接背下来:t 是 TCP,u 是 UDP,l 是监听状态,n 是不解析域名(快),p 是显示进程(需要权限)。这一条命令顶过去三四条老命令。
再说到一个容易产生歧义的命令:telnet。很多教程用 telnet ip port 来测端口通不通,这确实是经典用法,但要注意 telnet 是明文协议,用它做测试仅适合"连不连得上"的判断,别拿它传敏感数据。现代环境更推荐用 nc 或 curl -v 来替代。
关于 arpspoof,它属于 ARP 层面的中间人测试工具,只在你自己搭建的授权实验环境中使用,用来验证交换网络下的流量可见性。这里必须强调:任何针对非授权目标的流量劫持都是违法的,工具本身中性,用在哪里决定性质。
2.3 软件源与包管理:apt / dpkg 的高频姿势
Kali 是基于 Debian 的,包管理就是 apt 和 dpkg。工具装不上、源太慢、依赖冲突,这几类问题几乎每个新手都会遇到。
bash复制cat /etc/apt/sources.list # 查看当前源配置
sudo apt update # 刷新索引(不升级)
sudo apt full-upgrade # 升级已装包,Kali 建议用 full-upgrade
sudo apt install -y 包名 # 装软件,-y 跳过确认
sudo apt remove 包名 # 卸载但保留配置
sudo apt purge 包名 # 连配置一起删
apt search 关键词 # 不知道包名时先搜
apt show 包名 # 看版本、大小、依赖
dpkg -L 包名
