Jalankan biner yang dimiliki oleh root tanpa sudo

12

Saya punya pertanyaan tentang wawancara kerja:

Bagaimana Anda dapat menjalankan (menjalankan) program dengan pengguna user1tanpa sudohak istimewa dan tanpa akses ke rootakun:

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

Jawaban:

17

Karena Anda telah membaca izin:

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

Tentu saja ini tidak akan secara otomatis memberi Anda peningkatan hak istimewa. Anda masih akan menjalankan biner itu sebagai pengguna biasa.

Joseph R.
sumber
4
@ user2555595 Saya khawatir Anda salah. Coba hapus bit eksekusi pada file yang Anda miliki dan jalankan . Bahkan root mendapat "izin ditolak" ketika mengeksekusi file tanpa bit eksekusi set.
Joseph R.
Anda benar, terima kasih atas informasinya
user2555595
5
@ user2555595 Itu hanya berlaku untuk skrip , bukan binari. Lebih khusus hanya bashskrip shell POSIX jika bashdipanggil sebagai penerjemah.
Thomas Nyman
Terima kasih atas informasi Anda, semuanya! Semoga harimu menyenangkan!
inivanoff1
2
@ inivanoff1 Tolong jangan lupa untuk menandai salah satu jawaban "Diterima" sehingga orang tahu pertanyaan ini terpecahkan.
Joseph R.
20

Anda dapat menggunakan Linux dynamic linker / loader secara langsung untuk menjalankan executable ELF yang telah Anda baca, tetapi tidak mengeksekusi hak:

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

Ketika executable ELF dieksekusi secara normal, penghubung dinamis yang disimpan di .interpbagian kode program digunakan. Alasan untuk memohon penghubung dinamis secara langsung (di luar wawancara kerja) termasuk melewatinya opsi baris perintah untuk mengubah perilakunya.

Perhatikan bahwa lokasi sebenarnya dari tautan dinamis mungkin sangat tergantung pada lingkungan, misalnya di Ubuntu 64-bit yang terhubung /lib64/ld-linux-x86-64.so.2.

Thomas Nyman
sumber