Apa Itu NFS
NFS adalah singkatan dari "Network File System" dan memungkinkan sistem untuk berbagi direktori dan file dengan yang lain melalui jaringan. Dengan menggunakan NFS, pengguna dan program dapat mengakses file pada sistem jarak jauh hampir seperti file lokal. Hal ini dilakukan dengan memasang semua atau sebagian sistem file pada server. Bagian sistem file yang dipasang dapat diakses oleh klien dengan hak istimewa apa pun yang ditetapkan untuk setiap file.
Enumeration NFS
Enumerasi didefinisikan sebagai "proses yang membangun koneksi aktif ke host target untuk menemukan vektor serangan potensial dalam sistem, dan hal yang sama dapat digunakan untuk eksploitasi sistem lebih lanjut." - Infosec Institute . Ini adalah fase kritis ketika mempertimbangkan cara menghitung dan mengeksploitasi mesin jarak jauh - karena informasi yang akan Anda gunakan untuk menginformasikan serangan Anda akan berasal dari tahap ini
Requirements
Untuk melakukan penghitungan lebih lanjut pada server NFS dan share, kita akan memerlukan beberapa alat. Yang pertama adalah kunci untuk berinteraksi dengan share NFS dari mesin lokal Anda:
NFS-Common
Penting untuk menginstal paket ini di mesin mana pun yang menggunakan NFS, baik sebagai klien maupun server. Paket ini mencakup program-program seperti: l ockd, statd , showmount , nfsstat, gssd , idmapd dan mount.nfs . Yang terutama, kami akan membahas "showmount" dan "mount.nfs" karena keduanya akan sangat berguna bagi kami saat mengekstrak informasi dari share NFS. Jika Anda ingin informasi lebih lanjut tentang paket ini, silakan baca:https://packages.ubuntu.com/jammy/nfs-common .
Anda dapat menginstal nfs-common menggunakan "
Mounting NFS shares
Sistem klien Anda memerlukan direktori tempat semua konten yang dibagikan oleh server host dalam folder ekspor dapat diakses. Anda dapat membuat
folder ini di mana saja di sistem Anda. Setelah Anda membuat titik pemasangan ini, Anda dapat menggunakan perintah "mount" untuk menghubungkan berbagi NFS ke titik pemasangan pada mesin Anda seperti ini:
.
.
.
.
.
Port Scanning
Langkah pertama enumerasi adalah melakukan pemindaian port, untuk mengetahui sebanyak mungkin informasi tentang layanan, aplikasi, struktur, dan sistem operasi mesin target.
contoh Command
Exploiting NFS
atau
membuat direktori pada komputer untuk me-mount share tersebut.
.
.
.
.
.
.
.
root_squash
Secara default, pada share NFS- Root Squashing diaktifkan, dan mencegah siapa pun yang terhubung ke share NFS memiliki akses root ke volume NFS. Pengguna root jarak jauh diberi pengguna “nfsnobody” saat terhubung, yang memiliki hak istimewa lokal paling sedikit. Bukan yang kita inginkan. Namun, jika ini dimatikan, ini dapat memungkinkan pembuatan file bit SUID, yang memungkinkan akses root pengguna jarak jauh ke sistem yang terhubung.
SUID
Jadi, apa itu file dengan bit SUID? Pada dasarnya, ini berarti bahwa file atau beberapa file dapat dijalankan dengan izin pemilik/grup file. Dalam hal ini, sebagai pengguna super. Kita dapat memanfaatkan ini untuk mendapatkan shell dengan hak istimewa ini!
Metode
Ini terdengar rumit, tetapi sebenarnya, asalkan Anda familier dengan cara kerja file SUID, ini cukup mudah dipahami. Kita dapat mengunggah file ke share NFS, dan mengendalikan izin file-file ini. Kita dapat mengatur izin apa pun yang kita unggah, dalam hal ini bash shell yang dapat dieksekusi. Kita kemudian dapat masuk melalui SSH , seperti yang kita lakukan pada tugas sebelumnya, dan mengeksekusi executable ini untuk mendapatkan root shell!
Yang Dapat Dieksekusi
Karena alasan kompatibilitas, kami akan memperoleh bash yang dapat dieksekusi langsung dari mesin target. Dengan kunci yang diperoleh pada tugas sebelumnya, kami dapat menggunakan SCP dengan perintah
Metode lain untuk mengatasi masalah kompatibilitas adalah dengan mendapatkan bash standar Ubuntu Server 18.04 yang dapat dieksekusi, sama seperti milik server - seperti yang kita ketahui dari pemindaian nmap. Anda dapat mengunduhnya di sini . Jika Anda ingin mengunduhnya melalui baris perintah, berhati-hatilah untuk tidak mengunduh halaman github alih-alih skrip mentah. Anda dapat menggunakan
Jalur yang Dipetakan:
Jika ini masih sulit diikuti, berikut ini adalah langkah demi langkah tindakan yang kami ambil, dan bagaimana semuanya saling terkait untuk memungkinkan kami mendapatkan cangkang akar:
Akses NFS ->
== Dapatkan Shell Hak Istimewa Rendah ->
=== Unggah Bash Executable ke share NFS ->
==== Tetapkan Izin SUID Melalui NFS Karena Root Squash yang Salah Dikonfigurasi ->
===== Masuk melalui SSH ->
====== Jalankan Bit SUID Bash yang Dapat Dieksekusi ->
======= Access Root
.
setelah kita Downloads file bash menggunkan wget
Login SSH kembali / ke TAB Ssh kembai