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 aroute -n
• 枚举域信息(whoami /allnet config workstation
• 寻找凭证(内存 dump、配置文件、浏览器保存密码)
4. 内网侦察 • 扫描存活主机(arp-scannmap -sn
• 识别关键服务(SMB、RDP、MSSQL、LDAP)
• 枚举域结构(BloodHoundldapsearch
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(组托管服务账号)
posted @ 2025-12-24 22:45  L3yNn3H  阅读(1)  评论(0)    收藏  举报