提权学习之旅—基础篇
字数 1733 2025-08-19 12:41:11
提权学习之旅—基础篇
0x00 什么是提权
提权是指提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。简单来说就是权限提升。
- Windows: User >> System
- Linux: User >> Root
0x01 什么情况下使用提权
一般产生提权的原因是因为当前权限无法做到某些我们需要做到的事情,以下情况会产生提权需求:
- Webshell权限不足
- 数据库权限(如拿到数据库的user权限)
- 普通用户权限受限
0x02 Windows下的权限划分
Windows是一个支持多用户、多任务的操作系统,权限设置基于用户和进程:
- Administrators: 管理员组,拥有不受限制的完全访问权
- Power Users: 高级用户组,可执行除Administrators保留任务外的其他任务
- Users: 普通用户组,无法进行有意或无意的改动
- Guests: 来宾组,限制比普通用户更多
- Everyone: 所有用户
0x03 Linux下的权限划分
Linux系统中用户角色通过UID和GID识别:
- 超级用户(0): root用户,UID和GID都是0,拥有最高管理权限
- 普通用户(1~499): 系统中大多数用户,一般使用普通用户操作,需要时用sudo提升权限
- 虚拟用户(500~65535): 系统正常运行必需,大多数默认不能登录系统
0x04 Windows基础命令
query user // 查看用户登陆情况
whoami // 当前用户权限
systeminfo // 查看当前系统版本与补丁信息
ver // 查看当前服务器操作系统版本
Net start // 查看当前计算机开启服务名称
# 添加管理员用户
net user username password /add // 添加普通用户
net localgroup administrators username /add // 添加到管理员组
net localgroup "Remote Desktop Users" username /add // 添加远程桌面组
netstat -ano // 查看端口情况
tasklist // 查看所有进程占用的端口
taskkill /im 映像名称.exe /f // 强制结束指定进程
taskkill -PID pid号 // 结束某个pid号的进程
0x05 Linux基础命令
# 查看发行版
cat /etc/issue
cat /etc/*-release
# 查看内核版本
uname -a
0x06 常用提权方法
Webshell提权方向
- 系统漏洞提权
- 第三方软件提权
- 数据库提权
- 配置错误提权
- 计划任务提权
数据库权限提权方法
- MySQL UDF提权
- MSSQL xp_cmdshell提权
- Oracle Java提权
普通用户提权方向
- 密码破解
- 内核漏洞利用
- SUID/SGID提权
- 环境变量提权
- sudo配置不当提权
实践—基于密码破解的提权
0x01 环境准备
实验环境: Windows Server 2003
0x02 Windows密码原理
Windows使用两种方法对用户密码进行哈希处理:
- LAN Manager(LM)哈希
- NTLAN Manager(NTLM)哈希
Windows系统密码hash格式:
用户名:RID:LM-HASH值:NT-HASH值
在线破解网站:
- http://cracker.offensive-security.com/index.php
- https://www.objectif-securite.ch/ophcrack
0x03 抓取hash及暴力破解
获取hash的方法:
- 导出导入SAM、system文件
- gethashs导出
- Pwdump导出
- Wce导出
常用工具:
-
Quarks PwDump
QuarksPwDump -dh1 // 导出本地哈希值 QuarksPwDump -dhdc // 导出内存中域账户哈希值 QuarksPwDump -dhd // 导出域哈希值(指定NTDS文件) -
WCE
wce -a // 获取所有账户哈希值
暴力破解工具:
- Saminside字典破解
- Ophcrack加载彩虹表破解
0x04 Windows明文密码抓取
- WCE明文密码获取
- Mimikatz明文密码获取
privilege::debug sekurlsa::logonpasswords - Getpass明文密码获取
0x04 Linux密码原理
重要文件:
/etc/passwd# 用户信息/etc/shadow# 密码信息
Linux密码文件存放位置:
- Linux:
/etc/shadow - AIX3:
/etc/security/passwd - HP-UX:
/.secure/etc/passwd
加密算法标识:
$1: Md5加密算法$2: Blowfish加密算法$5: sha-256加密算法$6: sha-512加密算法- 其他: 标准DES加密算法
0x05 Linux密码破解
使用john工具破解步骤:
-
合并passwd和shadow文件
unshadow /etc/passwd /etc/shadow > shadow -
使用字典暴力破解
john --wordlist=/usr/share/john/password.lst --rules shadow -
查看破解结果
john --show shadow
横向渗透与纵向渗透
横向渗透
已经拿到内网中部分主机,利用这些主机作为跳板进一步攻击内网中其他主机。密码破解主要运用在横向渗透中。
纵向渗透
- 匿名访问
- 进入后台
- 拿到webshell
- 最终拿到系统权限
总结
掌握基础知识后,可进一步学习:
- Windows操作系统提权
- Linux操作系统提权