sudo없이 루트가 소유 한 바이너리를 실행


12

면접에 대한 질문이 있습니다.

당신은 사용자와 (실행) 프로그램을 실행할 수있는 방법 user1이없는 sudo권한과 액세스 권한이없는 root계정 :

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program

답변:


17

읽기 권한이 있으므로 다음을 수행하십시오.

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

물론 이것은 자동적으로 당신에게 에스컬레이션 된 특권을 부여하지는 않습니다. 이 바이너리를 일반 사용자로 계속 실행하고 있습니다.


4
@ user2555595 네가 틀렸다는 것이 두렵다. 소유 한 파일에서 실행 비트를 제거하고 실행 해보 십시오. 실행 비트가 설정되지 않은 파일을 실행할 때 루트조차 "권한이 거부되었습니다".
Joseph R.

맞습니다, 정보 주셔서 감사합니다
user2555595

5
@ user2555595 바이너리가 아닌 스크립트 에만 적용됩니다 . 보다 구체적으로 bash또는 POSIX 쉘 스크립트 bash가 인터프리터로 호출 된 경우 .
Thomas Nyman

여러분의 정보, 감사합니다! 좋은 하루 보내세요!
inivanoff1

2
@ inivanoff1이 질문이 해결되었다는 것을 사람들이 알 수 있도록 답변 중 하나를 "허용됨"으로 표시하는 것을 잊지 마십시오.
Joseph R.

20

Linux 동적 링커 / 로더를 사용하여 직접 읽었지만 실행 권한이없는 ELF 실행 파일 을 직접 실행할 수 있습니다.

$ /lib/ld-linux.so.* /home/user1/binary_program

ELF 실행 파일이 일반적으로 실행될 때 .interp, 프로그램 코드 의 섹션에 저장된 동적 링커 가 사용됩니다. 동적 링커를 직접 (작업 인터뷰 외부) 호출하는 이유는 명령 행 옵션을 전달하여 동작을 수정하는 것입니다.

동적 링커의 실제 위치는 환경에 따라 매우 달라질 수 있습니다 (예 : 64 비트 우분투의 경우 링커 위치) /lib64/ld-linux-x86-64.so.2.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.