参考:

思路

可能面对这一些方法不知道该如何使用,我在这里给出自己的一些见解

  1. 先查看自己是谁 id当前在那个目录 pwd查看文件夹必须是 ls后接 ls -al
  2. 然后查看 sudo -l``sudo -v $PATH``ip Capabilities
  3. 然后查看 / 是否存在一些特殊的文件夹就是以前没见过的, 到 /var/www/html查看网站内容是否有自己没找见的内容以及查看是否有配置文件以获取数据库密码, 然后到 /home查看用户家目录信息,是否可以访问等等信息
  4. 查看 定时任务``/etc/passwd``/etc/sudoers history 以及用户 history这类文件
  5. 之后查看 SUID SGID 驱动器
  6. 然后交给枚举脚本执行即可,记得保存枚举脚本的输出, 查看顺序: 定时任务, SUID, SUDO,驱动器,可执行文件,后台进程 —> 特殊文件 错误的配置 密码文件—> 进程, 端口情况—> 定时任务

枚举脚本

名称 描述
LinEnum Linux 枚举脚本
linux-exploit-suggester 检测 Linux 内核安全缺陷
linux-smart-enumeration Linux 枚举脚本
PEASS 探索在 Linux/Unix*/MacOS 主机上提升权限的可能路径
linuxprivchecker Linux 枚举脚本

系统信息

  • 操作系统信息
  • 检查路径,是否存在可写文件夹
  • 检查环境变量
  • 检查是否存在内核漏洞 (慎用,会危害操作系统)
  • 检查sudo 是否存在漏洞
  • 更多信息 (日期, 系统统计, CPU 信息, 打印机)
  • 防御措施

驱动器

  • 已经安装的驱动器
  • 任何未安装的驱动器
  • fstab 文件中是否包含凭证?

已安装的软件

  • 枚举已经安装的软件
  • 检查是否存在易受攻击的软件

进程

  • 是否存在未知的软件运行
  • 是否存在特殊权限运行的软件
  • 查找正在运行的进程漏洞
  • 是否可以修改正在运行进程的二进制文件
  • 监控进程,是否存在定时任务之类的进程
  • 是否可以读取一些进程内存 (可能保存密码的地方)

定时任务

  • 某些 cron 是否正在修改 PATH 环境变量,并且你可以在其中写东西?
  • 在定时任务作业中是否存在通配符
  • 是否存在可修改的脚本被执行,或者在可被修改的文件夹中
  • 是否存在定时任务

服务

  • 是否有可写的 .service 文件
  • 是否任何服务都在运行可写入的二进制文件?
  • 在 systemd 的 PATH 环境中是否有可写的目录?

定时器

  • 是否有可写的定时器?

Socket

  • 任何可写的 .socket问卷
  • 是否能够与其他 socket 通信?
  • 是否存在特殊的 socket

D-Bus

  • 是否能和 D-Bus 通信

网络

  • 查看网络获取当前位置
  • 查看是否存在只有内网可以访问的端口
  • 是否可以使用 tcpdump工具嗅探流量

用户

  • 查看用户/组
  • 利用所属组提权
  • 剪贴板数据
  • 密码策略
  • 尝试密码重用或者无密登录

可写的 PATH

  • 如果对 PATH 中某些文件存在写入权限,那么我们也可以提权

SUDO & SUID

GTFOBins

  • 是否可以以 SUDO 来执行命令
  • 是否存在 SUID 二进制文件
  • SUDO 命令受路径限制,是否可以绕过
  • SUDO/SUID 二进制文件没有注明路径
  • SUID 二进制文件指定了路径,如何绕过?
  • LD_PRELOAD 漏洞
  • SUID二进制文件却笑来自可写文件的 .so 库
  • 是否有可用的 SUDO 令牌?
  • 是否可以读取或修改 sudoers 文件
  • 是否可以修改 /etc/ld.so.conf.d/
  • OpenBSD DOAS 命令

Capabilities

  • 是否存在特殊的 Capabilities

ACLS

  • 是否存在特殊的 ACL

Open SSH sessions

  • screen
  • tmux

SSH

  • Debian OpenSSL Predictable PRNG - CVE-2008-0166
  • SSH 配置

特殊文件

  • 配置文件 (是否存在密码?)
  • passwd/shadow : 读取敏感数据? 权限提升?
  • 检查常见的特殊文件中的敏感数据
  • 特殊的文件, 是指我们拥有修改或访问这些文件的权限, 这些文件可能包含可执行文件
  • 最近修改的文件
  • 数据库文件
  • 隐藏文件 : ( .file -)
  • PATH 中的脚本或二进制文件
  • 网络文件
  • 备份文件
  • 已知的包含密码的文件 (浏览器, 软件 等等)
  • 搜索

可写文件

  • 是否可以修改 python 库来执行任意命令?
  • 是否可以修改日志文件?
  • 是否能够修改 /etc/sysconfig/network-scripts/ 文件?
  • 可以在 ini, int.d , sytemd, rc.d 文件中写入内容?

其他方法

  • 是否可以滥用 NFS 来提升权限
  • 需要从限制 SHELL 中逃脱