루트 EUID에서 루트 UID를 얻으십시오.

루트 EUID에서 루트 UID를 얻으십시오.

현재 상황은 이렇습니다. "user1"과 "root"라는 2명의 사용자가 있는 가상 시스템이 있습니다. 사용자 "user1"은 uid=1000인 sudoer가 아닌 일반 사용자이고, root는 uid=0인 일반 루트 사용자입니다.

user1이 시스템의 특정 취약점을 통해 euid=0을 얻을 수 있지만 그의 uid는 여전히 1000이라고 가정합니다. 이것은 그에게 몇 가지 기본 능력을 제공하지만 전부는 아닙니다. 예를 들어 /root에 액세스하면 루트가 그렇게 하려는 것처럼 작동하지만 "sudo" 또는 "su"를 실행하면 EUID가 아닌 UID를 기반으로 하는 것처럼 보입니다.

내 질문은: euid=0이므로 바이너리를 업로드하거나 /etc/shadow 또는 /etc/passwd를 변경하여 uid를 0으로 전환할 필요가 없는 우아한 방법이 있습니까? 메소드가 기본적으로 실행될 수 있고 특정 프로그램(예: gcc)이 있다고 가정하지 않는다면 좋을 것입니다.

지금까지는 어느 것이 꽤 좋은지 알아낼 수 있지만 python -c 'import pty; import os; os.setuid(0); pty.spawn("/bin/bash")'이는 Python이 시스템에 설치되어 있다고 가정합니다. 더 좋은 제안이 있나요?

답변1

이는 많은 기본 구성에 적용됩니다.

perl -MEnglish -e '$UID = 0; $ENV{PATH} = "/bin:/usr/bin:/sbin:/usr/sbin"; exec "su - root"'

그러면 uid가 설정되고 루팅됩니다.

Irkacho에서 빌려왔습니다.

관련 정보