为什么打靶机
在安全合法的环境里,练习一些漏洞利用,模拟攻击,并且训练从信息收集到提权的完整思路,并不是单纯为了黑掉一台虚拟机
Linux提权的原理
原理其实很简单:在拿到低权限账号之后,但系统里有些“本该被限制”的地方没配置好或存在漏洞,让攻击者可以找到“以高权限执行、但是我们可以控制或影响”的东西,借他执行高权限命令
提权主要关注的点
| 分类 | 权限体系 | 概念 | 枚举命令 | 提权关注点 |
|---|---|---|---|---|
| ugo | DAC | 传统 Unix 权限,按属主/属组/其他人分配 rwx | ls -la、find / -writable |
敏感文件是否可读可写(/etc/passwd、/etc/shadow) |
| ACL | DAC 扩展 | 扩展 ugo,给特定用户/组单独授权 | getfacl -R / |
是否有低权限用户被额外授予敏感文件权限 |
| suid sgid | DAC 特殊位 | 特殊权限位,以文件所有者/组身份运行 | find / -perm -4000、find / -perm -2000 |
异常 SUID/SGID 程序可逃逸或执行命令 |
| Capabilities | 特权拆分 | 拆分 root 特权为细粒度能力 | getcap -r / 2>/dev/null |
带 cap_setuid、cap_dac_override 等危险能力 |
| AppArmor Selinux | MAC | 强制访问控制,策略限制进程资源访问 | aa-status、getenforce、sestatus |
策略是否过松或可绕过 |
SSRF和SSTI
二者对比
| 漏洞 | 全称 | 攻击位置 | 本质 | 常见危害 |
|---|---|---|---|---|
| SSRF | Server-Side Request Forgery | 服务器端 | 让服务器替你去访问别的地址 | 内网探测、读文件、打内网服务、云元数据泄露 |
| SSTI | Server-Side Template Injection | 服务器端 | 用户输入被当成模板代码执行 | 信息泄露、逻辑篡改、命令执行、RCE |
SSRF
定义:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
产生原因:SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
SSTI
定义:SSTI 就是服务器端模板注入(Server-Side Template Injection),是一种服务器端模板注入漏洞,发生在应用程序使用模板引擎渲染用户输入时未能正确过滤或转义用户提供的内容。
产生原因:服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。
user
- 扫目录:
dirsearch -u http://目标IP - 原理:利用 Web 或系统层面的漏洞,让靶机以某个普通用户身份替你执行命令,从而得到一个低权限 shell
- 常见的
| 方式 | 原理 | 典型结果 |
|---|---|---|
| Web RCE | 应用把用户输入当代码/模板/命令执行 | 直接拿到 www-data、apache 等 Web 用户 shell |
| 文件上传漏洞 | 上传的恶意脚本被服务器解析执行 | 上传 Webshell 后执行系统命令 |
| SQL 注入 | 注入查询拿到账号、密码哈希或后台入口 | 登录后台后再通过模板、上传拿 shell |
| 弱口令 / 凭据复用 | SSH、后台、数据库存在弱密码或配置泄露 | 直接登录某个普通用户 |
| CMS/框架已知漏洞 | CMS 或框架存在未修复远程代码执行漏洞 | 无需登录即可执行命令 |
| 服务漏洞 | SSH、Redis、数据库等服务配置错误或存在漏洞 | 通过服务直接获取低权限访问 |