Skip to content

Linux 权限提升

Linux 提权简介

枚举

枚举是提权的关键。存在几个帮助程序脚本(例如LinEnum)来帮助枚举。尽管如此,了解要查找的信息以及能够手动执行枚举也很重要。当您获得对主机的初始 shell 访问权限时,检查几个关键细节很重要。

系统版本: 了解发行版(Ubuntu、Debian、FreeBSD、Fedora、SUSE、Red Hat、CentOS 等)将使您了解可能可用的工具类型。这也将识别可能存在公共漏洞的操作系统版本。

内核版本:与操作系统版本一样,可能存在针对特定内核版本中的漏洞的公共漏洞利用。内核漏洞利用会导致系统不稳定甚至完全崩溃。小心在任何生产系统上运行这些,并确保在运行之前完全了解漏洞利用和可能的后果。

运行服务: 了解主机上正在运行哪些服务很重要,尤其是那些以 root 身份运行的服务。以 root 身份运行的配置错误或易受攻击的服务很容易获得权限提升。在许多常见服务中发现了缺陷,例如 Nagios、Exim、Samba、ProFTPd 等。其中许多存在公共漏洞利用 PoC,例如 CVE-2016-9566,这是 Nagios Core < 4.2.4 中的本地权限提升漏洞。

列出当前进程

$ ps aux | grep root

root         1  1.3  0.1  37656  5664 ?        Ss   23:26   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    23:26   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    23:26   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    23:26   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S<   23:26   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    23:26   0:00 [kworker/u8:0]
root         7  0.0  0.0      0     0 ?        S    23:26   0:00 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    23:26   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    23:26   0:00 [migration/0]

<SNIP>

Installed Packages and Versions:与运行服务一样,重要的是要检查是否有任何可能很容易被用来提升权限的过时或易受攻击的包。一个例子是 Screen,它是一个常见的终端多路复用器(类似于 tmux)。它允许您启动一个会话并打开多个窗口或虚拟终端,而不是打开多个终端会话。Screen 版本 4.05.00 存在提权漏洞,可以轻松利用该漏洞提权。

Logged in Users:了解哪些其他用户已登录系统以及他们在做什么可以更好地了解可能的本地横向移动和特权升级路径。

列出当前进程

$ ps au

USER            PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root            1256  0.0  0.1  65832  3364 tty1     Ss   23:26   0:00 /bin/login --
cliff.moore     1322  0.0  0.1  22600  5160 tty1     S    23:26   0:00 -bash
shared          1367  0.0  0.1  22568  5116 pts/0    Ss   23:27   0:00 -bash
root            1384  0.0  0.1  52700  3812 tty1     S    23:29   0:00 sudo su
root            1385  0.0  0.1  52284  3448 tty1     S    23:29   0:00 su
root            1386  0.0  0.1  21224  3764 tty1     S+   23:29   0:00 bash
shared          1397  0.0  0.1  37364  3428 pts/0    R+   23:30   0:00 ps au

User Home Directories: 是否可以访问其他用户的主目录?用户主文件夹还可能包含 SSH 密钥,可用于访问其他系统或包含凭据的脚本和配置文件。找到包含可用于访问其他系统甚至进入 Active Directory 环境的凭据的文件并不少见。

主目录内容

darkinga@htb[/htb]$ ls /home

backupsvc  bob.jones  cliff.moore  logger  mrb3n  shared  stacey.jenkins