Saya menyiapkan akun pengguna terbatas untuk pengguna ricardo
, pengguna bermasalah di sistem saya. Saya ingin memberinya hak untuk membuat direktori menggunakan sudo
, yang kadang-kadang perlu dia lakukan. Saya mempertimbangkan aturan ini di /etc/sudoers
file saya :
ricardo ALL=(root) NOPASSWD: /bin/mkdir
Hanya menggunakan aturan ini, adakah cara ricardo dapat dengan sengaja atau tidak sengaja membahayakan sistem?
Jawaban:
Saya menduga serangan seperti ini akan berhasil, di mana «sesuatu» adalah modul kernel yang akan mencoba memuat setelah rootfs di-mount:
Perhatikan juga bahwa Anda dapat menggunakan nama lain, tergantung pada alias yang dinyatakan dalam modul. Saya kira itu tidak akan dimuat sampai depmod dijalankan, yang akan terjadi pada saat berikutnya ada pembaruan kernel-sehingga
mkdir
bahkan tidak akan ditampilkan baru-baru ini di log sudo.Ada banyak hal di / etc yang membaca semua file dalam direktori, terkadang secara rekursif. Lebih buruk lagi, beberapa direktori tersebut tidak ada secara default, dan satu-satunya cara untuk mengetahuinya adalah dengan membaca halaman manual, skrip init, dll. Untuk program yang menggunakannya. Beberapa, bahkan lebih buruk, sudah usang hal-hal kompatibilitas, dan bahkan mungkin tidak didokumentasikan lagi.
sunting: Memikirkan beberapa direktori lagi, ini dalam
/usr/local
:/usr/local/lib/perl/5.14.2
(berbeda tergantung pada versi Perl, cobalahperl -V
untuk mencari tahu). BuatFile
subdirektori di sana, dan letakkanFind.pm
di dalamnya. Sekarang setiap kali ada yang menggunakanFile::Find
, mereka akan menggunakan versi penyerang. Demikian pula, lakukan hal yang sama denganGetopt::Long
. Utilitas sistem sering ditulis dalam Perl, jadi ini mungkin memberikan root. (Cobaack-grep --color -a 'use.+::' /usr/sbin | less -R
)/usr/local/include
.sumber
sudo mkdir
untuk membuat direktori baru di mana ia bisa.Dengan menjalankan
mkdir
sebagai root, pengguna dapat memblokir proses / pengguna lain dari membuat file dan direktori baru dengan membuat direktori dengan nama yang identik (dan / atau hak yang salah) sebelumnya.Ini bisa menjadi keamanan yang relevan terutama dengan file log dan kunci .
Seperti yang dicatat jordanm , jumlah maksimal inode juga dapat digunakan yang dapat memblokir seluruh sistem.
Dengan menambahkan pengguna ke grup tertentu (atau menggunakan ACL ), Anda harus dapat menyelesaikan masalah tanpa memberikan hak apa pun melalui
sudo
.sumber
mkdir
daftar perintah ricardo diizinkan untuk digunakan.for((i = 0;; i++)); do touch $i; done
akan baik-baik saja (bashism, maaf; tetapi Anda mendapatkan ide).sudo
perintah lain yang dipertimbangkan OP dapat memungkinkan inode yang melelahkan juga; OP perlu mengetahui vektor DoS itu.Anda harus mengarahkannya ke penjara chroot. Atau bahkan lebih baik, untuk VM kecil, bahwa ia dapat crash sekali dalam satu jam. Yang perlu Anda lakukan adalah memberikan salinan baru.
sumber
Ada kemungkinan karena dapat membuat direktori dengan akses tulis. Dengan
mkdir -m 777 blah
iniricardo
pengguna bisa menulis apapun yang mereka suka ke direktori baru. Anda akan memerlukan proses pada sistem yang sudah berjalan sebagai pengguna lain yang akan mengulang pohon direktori untuk memuat konfigurasi, skrip atau modul. Kemudian pengguna mungkin dapat menambahkan barang-barang mereka sendiri untuk dimuat atau dijalankan. Hal pertama yang dapat saya pikirkan adalah jika Anda menjalankan server web yang dapat menjalankan php atau cgi. Anda kemudian dapat menjalankan skrip sebagai pengguna itu. Saya berjuang untuk menghasilkan lebih banyak contoh dunia nyata, terutamaroot
yang tapi saya yakin mereka tentang.ssh adalah contoh dari daemon yang memerangkap skenario semacam ini. Jika Anda membuat
.ssh
direktori untuk pengguna yang tidak memilikinya dan letakkanauthorized_hosts
file Anda sendiri di tempatnya.sshd
pemberitahuan bahwa izin direktori terlalu terbuka dan mengabaikan kunci publik.Anda pasti bisa membuat gangguan pada diri sendiri membuat direktori di mana file diharapkan muncul (seperti transient tmp atau swap file) yang banyak program tidak akan menangani dengan baik.
Anda dapat membuat banyak grup, tetapi sepertinya Anda tidak melakukan apa-apa dengannya. Anda mungkin bisa membawa sistem ke lutut setidaknya. Butuh sekitar 10.000 cgroup pada sebuah kotak dengan 256 juta untuk OOM killer untuk mengeluarkan sshd.
Jika Anda mengontrol
-m
opsi untukmkdir
dan UMASKsudo
lingkungan saya pikir itu kembali menjadi gangguan saja.sumber