HackTheBox / Knife

knife
LinkDifficultyCreator
KnifeEasyMrKN16H

Scan / Enumeration

Makineye nmap taraması yaparak hangi portların açık olduğunu öğrenmeyi deniyorum.

nmap scan

Yalnızca 22 portunda SSH – Secure Shell – ve 80 portunda bir Apache Web server çalıştığını görüyorum. Web server’ı keşfetmek için gobuster tool’unu kullanarak bir dizin taraması yapıyorum. İşime yarayabilecek bir dizin bulamıyorum. Gobuster’a -x parametresini kullanarak dosya eklentileri veriyorum ve .php, .txt, .html, .db, .bak, .zip ve .rar uzantılı dosyaları da bulmaya çalışmasını istiyorum. Fakat buradan da bir sonuç alamıyorum. Websitesine attığım request’leri ve aldığım response’ları incelemeye başlıyorum ve burada X-Powered-By: PHP/8.1.0-dev header’ıyla karşılaşıp PHP/8.1.0-dev sürümü için zafiyet aramasına başlıyorum. User-Agentt header’ını kullanarak RCE zafiyetini sömürebileceğim bir exploit buluyorum.


Gain Shell

Direkt olarak bu exploit’i kullanmak yerine Firefox’un developer toollarını kullanarak server’a gönderdiğim requesti düzenliyorum. User-Agentt: zerodiumsystem('whoami; id; pwd'); header’ını requeste eklediğimde aldığım response ile server’da komut çalıştırabildiğimi anlıyorum.

firefox devtools

Makineye SSH bağlantısı ile erişebilmek için james kullanıcısının .ssh dizini altındaki id_rsa dosyasına erişiyorum. Bu dosyayı kullanarak james kullanıcısı ile makineye bağlanmayı deniyorum fakat başaramıyorum. Kendi bilgisayarımda ssh-keygen'i kullanarak kendime ait bir id_rsa ve id_rsa.pub dosyası yaratıyorum. Kendime ait olan id_rsa.pub dosyasındaki anahtarı hedef makinedeki /home/james/.ssh/authorized_keys dizinine yazıyorum ve kendi id_rsa dosyamı kullanarak makineye SSH bağlantısı sağlayabiliyorum.


Prilege Escalation

Makineye james kullanıcısı olarak bağlanıyorum ve sudo -l komutuyla james kullanıcısının sudo yetkilerini kontrol ediyorum. /usr/bin/knife isminde bir binary dosyasını sudo yetkisiyle çalıştırabildiğini görüyorum. Dosyayı okuduğumda bunun bir ruby dosyası olduğunu görüyorum ve ne için kullanıldığını anlamak için araştırma yapıyorum. Ruby’s Knife’ın şeytani varlıkları öldürmek için kullanılan mitolojik bir bıçak olduğunu öğreniyorum. Bununla birlikte gerçekten aradığım şeye dair bir dökümantasyona ulaşıyorum ve knife exec -E 'command' şeklinde istediğim komutu çalıştırabileceğimi öğreniyorum. sudo /usr/bin/knife exec -E 'system("/bin/bash")' komutunu kullanarak makinede root kullanıcısının yetkilerine erişiyorum.

knife binary exploit

Gev