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