initial知识总结
提权
提权没有一个通法,要根据目标环境存在哪些可利用的应用/服务/命令/文件,在linux里其实命令就是可执行文件。不如统称为可执行文件吧,以下简称文件。
suid/sgid提权
set user id / set group id,直译就是设置为具备user执行权限和设置为具备用户组执行权限。设置suid位的文件具备文件所有者的执行权限,假如文件所有者是root或者其他高权限用户,那就能利用该文件以root权限执行命令。
实际使用例子
ls -l /usr/bin/vim #查看vim权限
-rwsr-xr-x root admin #第一位是文件类型,后面每三位分别是所属用户,用户组,其他用户的读写执行权限
当原本用户的x执行权限为s时就是被设置了suid位,这里我为方便给所有用户类型执行权限:当你拿到一台主机shell,发现vim具备suid,所有者是root且能被执行,那就直接通过vim提权.
vim #进入vim
!sh #表示执行外部shell命令
或!bash
那么执行后就得到了一个具备root权限的shell
sgid提权也类似
常用命令
find / -perm -4000 -type f 2>/dev/null #查找suid位文件
find / -perm -2000 -type f 2>/dev/null #查找sgid位文件
sudo提权
sudo 本身是属于root用户的suid位可执行文件,那么通过sudo执行的文件就是以root权限执行的。
sudo提权原理就是有一些文件具备sudo执行权限,那么找到这类文件,通过它们执行命令,就相当于以root权限执行命令。
在/etc/sudoers文件里定义了用户可以通过sudo 执行哪些命令。
标准内容
按用户授权
alice ALL = (ALL) /bin/bash
用户alice可以以任意用户身份执行bash
按用户组授权
%devops ALL = (ALL) NOPASSWD: /usr/bin/systemctl restart nginx
devops的所有成员可以不用密码就能重启nginx
提权示例
sudo -l #查看当前用户是否可以不用密码就执行文件
(root) NOPASSWD /usr/bin/mysql #显示不用密码执行mysql
接下来就利用mysql执行命令
sudo mysql -e '\! find / -type f -name '*flag*' 2>/dev/null' #找flag
sudo mysql -e '\! cat /root/flag/flag01.txt' #读文件
sudo mysql -e '\! 命令'
其他方式
此外还有利用
1.计划任务滥用
2.内核漏洞
3.可写关键文件 / 配置文件
/etc/passwd或/etc/shadow可写- SSH authorized_keys 可写
- 服务配置文件可写
4.环境变量劫持
- LD_PRELOAD 劫持
- PATH 劫持
5.容器逃逸 → 主机提权
6.服务特定提权(mysql udf)
7.Capabilities(能力机制)滥用
8.日志/临时文件竞争(TOCTOU)
9.硬件/虚拟化层提权(高级)
等其他特化方式,下次总结。
工具
LinPEAS
Linux Smart Enumeration (lse.sh)
unix-privesc-check
拿到 shell 后,优先运行 LinPEAS + sudo -l + find / -perm -4000 2>/dev/null
内网概述
内网是由防火墙或 NAT 设备保护的私有网络,默认禁止外网主动访问其内部主机,但允许内网主机向外发起连接(如 HTTP、DNS)。这种设计大幅增加外部攻击者直接入侵的难度
,但一旦内网任一主机失陷,攻击者可将其作为跳板向内网纵深渗透。
域概述
域(Domain)本质是一个集中式身份认证与策略管理系统(如 Windows Active Directory)。
域控制器(DC):运行 Kerberos KDC 和 LDAP 服务,存储所有用户/计算机账户及密码哈希。
服务器:提供数据库、文件共享等服务,通常使用特权服务账号运行。
普通主机:加入域的终端设备,用户使用域账号登录,受组策略(GPO)统一管理。
域通过 Kerberos 协议实现单点登录,所有认证请求由域控制器(DC)处理。域成员主机会定期与 DC 同步策略,并使用域账号登录。攻击者一旦控制 DC,即可伪造任意用户身份(如 Golden Ticket),完全接管整个域。
内网打法
| 阶段 | 关键动作 |
|---|---|
| 1. 初始访问 | 利用外网 Web 漏洞、钓鱼邮件等 getshell |
| 2. 权限提升 | 本地提权(SUID/sudo/内核漏洞)→ 获取 root/system |
| 3. 信息收集 | • 查看网络配置(ip a, route -n) • 枚举域信息( whoami /all, net config workstation) • 寻找凭证(内存 dump、配置文件、浏览器保存密码) |
| 4. 内网侦察 | • 扫描存活主机(arp-scan, nmap -sn) • 识别关键服务(SMB、RDP、MSSQL、LDAP) • 枚举域结构( BloodHound, ldapsearch) |
| 5. 横向移动 | • Pass-the-Hash / Pass-the-Ticket • 利用服务漏洞(如 SMBGhost、MS17-010) • 利用高权限账号(如域管、SQL 服务账号) |
| 6. 权限维持 & 数据窃取 | 创建隐藏账户、黄金票据、数据 exfiltration |
横向移动的核心是 凭证复用,而非单纯端口扫描
即使拿到 shell,也可能因 EDR 阻断、网络 ACL 限制、凭证加密等原因无法横向。
防御视角
- 网络微隔离(Zero Trust):即使在同一内网,主机间也需显式授权才能通信
- EDR/XDR 监控:检测异常进程(如 mimikatz)、可疑横向行为(如大量 SMB 登录)
- 凭证保护:
- Credential Guard(Windows)防止 LSASS 内存读取
- 禁用 NTLM,强制 Kerberos
- 最小权限原则:普通主机不应有域管权限,服务账号应使用 gMSA(组托管服务账号)

浙公网安备 33010602011771号