Dekripsi soal
We have located Monkey Business operator blog where they are leaking personal informations. We would like you to break into their system and figure out a way to gain full control.
Seperti biasa pertama kita scan dulu ip yang diberikan, untuk tau service apa saja yang berjalan pada server tersebut.
Terlihat ada 6 port yang terbuka, dari port tersebut terdapat service ssh, web server, kubernetes (8433 dan 10250), dan 2 service unknown.
3000 - Self-hosted git
30080 - Awx dashboard
Akses ke dashboard menggunakan kredensial yang sudah didapatkan, berikut tampilannya
Cara kerja awx kurang lebih seperti ini, pertama dia akan mendeploy sebuah pod pada kubenetes kemudian menjadikan pod tersebut sebagai runtime ansible playbook. Dengan cara kerja seperti itu kita bisa membuat sebuah playbook untuk mendapatkan kubernetes token pada pod untuk kemudian kita gunakan untuk mengakses kubernetes cluster.
Pertama kita buat user dan repository baru pada service gogs di port 3000, kemudian isi repository tersebut dengan ansible playbook kita yang membaca file /var/run/secrets/kubernetes.io/serviceaccount/token yang berisi token. Berikut ansible playbook yang saya gunakan.
Lalu kita buat job template dari project tersebut untuk menjalankan playbook.
Selanjutkan kita jalankan job tersebut, tapi ternyata mendapatkan error. Sepertinya file yang berisi token tidak ada pada pod yang dijalankan.
Setelah googling beberapa saat diketahui kemungkinan parameter automountServiceAccountToken bernilai false saat pod dijalankan. Pada awx kita bisa mengubahnya Instance Group -> pilih group -> customize pod configuration.
Sekarang jalankan kembali job yang sudah dibuat. Akhirnya berhasil mendapatkan token.
Selanjutnya kita coba jalankan kubectl pada pc kita menggunakan token yang sudah didapatkan.
Tapi ketika coba menjalankan command mendapatkan error permission. Sepertinya user token yang kita dapat memiliki priviledge yang rendah. Kita bisa menggunakan user yang kita tau yaitu awx-operator-controller-manager yang bisa kita tau dari file awx-operator.yaml pada pada awx-k8s-config. Kita bisa mengubahnya pada customize pod configuration.
Jalankan kembali job untuk mendapatkan token yang baru.
Sekarang coba jalankan kembali kubectl menggunakan token yang baru, disini saya coba cek permissionnya.
User yang didapat ternyata bisa untuk membuat pod, langsung aja buat manifest untuk menjalankan pod yang mount ke root / directory dari host. Berikut manifest yang saya gunakan.
Selanjutnya tinggal deploy pod dan masuk kedalam shellnya. Lalu tinggal cat flag.

.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
0 komentar:
Posting Komentar