GNU/Linux >> Belajar Linux >  >> Linux

Mengapa "nodev" Di /etc/fstab Begitu Penting? Bagaimana Perangkat Karakter Digunakan Untuk Peretasan?

Saya belajar tentang keamanan linux dan berjuang untuk memahami mengapa stik USB dengan perangkat karakter di dalamnya berpotensi berbahaya.

Jika saya memiliki stik USB dengan executable bash yang memiliki root setuid di atasnya, bahayanya jelas:Siapa pun dengan stik USB semacam itu dapat memperoleh hak akses root di komputer saya jika saya memiliki entri seperti

/dev/sdb1 /media/usbstick auto defaults 0 0

di /etc/fstab saya karena defaults termasuk suid .

Tapi bagaimana dengan perangkat karakter? Bagaimana saya bisa menggunakan perangkat karakter untuk mendapatkan hak akses root atau merusak barang jika stik USB dengan perangkat karakter terpasang dengan dev atau defaults ?

Jawaban yang Diterima:

Karena akses ke perangkat yang mendasari hanya dikontrol oleh izin file secara default, jadi jika stik USB Anda berisi sistem file POSIX dengan node perangkat yang dapat ditulisi dunia yang sesuai dengan perangkat nyata dalam sistem, Anda dapat menggunakan node perangkat tersebut untuk mengakses yang sesuai perangkat sebagai pengguna "biasa". Bayangkan sebuah perangkat yang sesuai dengan salah satu perangkat audio, webcam Anda, /dev/sda (yang merupakan perangkat blok daripada perangkat karakter, tetapi argumennya sama)…

Berikut adalah contoh untuk membuat segalanya lebih jelas. Katakanlah Anda ingin mengakses /dev/sda (maka Anda dapat melakukan apa saja yang Anda inginkan dengan isi disk, termasuk menanam program yang memungkinkan Anda menjadi root; ini adalah perangkat blok tetapi masalahnya sama dengan perangkat karakter). Pada sistem target Anda, ls -l /dev/sda pertunjukan

brw-rw----  1 root disk      8,   0 Sep  8 11:25 sda

Ini berarti /dev/sda adalah perangkat blok (b di awal baris), dengan angka mayor 8 dan angka minor 0 (8, 0 di tengah garis). Perangkat hanya dapat diakses oleh root (baca/tulis) dan anggota disk grup (juga membaca/menulis).

Sekarang bayangkan pada sistem ini Anda tidak dapat menjadi root tetapi untuk beberapa alasan Anda dapat memasang stik USB sebagai pengguna tanpa nodev . Di sistem lain, di mana Anda berada root , Anda dapat membuat file khusus yang sesuai pada kunci USB Anda:

mknod -m 666 usersda b 8 0

Ini akan membuat file khusus bernama usersda , dapat dibaca dan ditulis oleh semua orang.

Pasang kunci pada sistem target Anda dan hei presto, Anda dapat menggunakan usersda perangkat dengan cara yang sama seperti /dev/sda , tetapi tanpa batasan akses…

Terkait:Menggunakan uniq pada teks unicode?

(Ini akan bekerja bahkan dengan sistem file terenkripsi, selama Anda dapat mengakses perangkat mapper yang didekripsi:buat perangkat yang cocok dengan /dev/mapper yang sesuai entri.)


Linux
  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Linux:Bagaimana Menemukan Driver Perangkat yang Digunakan Untuk Perangkat?

  3. Bagaimana cara memonitor file /etc/shadow dan /etc/passwd untuk perubahan dengan Auditd?

  1. CentOS / RHEL :Bagaimana memprioritaskan perangkat yang digunakan untuk partisi swap

  2. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  3. Cara mengatur ssh tanpa kata sandi dengan kunci RSA

  1. Bagaimana Membungkam Sepenuhnya Cronjob Ke /dev/null/?

  2. Mengapa pada beberapa sistem Linux, sistem file root muncul sebagai /dev/root bukan /dev/<real device node>di mtab?

  3. Untuk apa `/dev/console` digunakan?