Keeper - WriteUp
🎯 Machine Info
Máquina Linux
NMAP:
1
2
3
4
5
6
7
8
9
10
11
12
13
# Nmap 7.94SVN scan initiated Sat Nov 25 16:49:44 2023 as: nmap -sCV -p 22,80 --stylesheet=https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/stable/nmap-bootstrap.xsl -oN targeted -oX targetedXML 10.129.133.129
Nmap scan report for 10.129.133.129
Host is up (0.058s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 35:39:d4:39:40:4b:1f:61:86:dd:7c:37:bb:4b:98:9e (ECDSA)
|_ 256 1a:e9:72:be:8b:b1:05:d5:ef:fe:dd:80:d8:ef:c0:66 (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
HTTP
Agregamos el dominio de virtual hosting y volvemos a acceder. En este caso agregaremos tickets.keeper.htb y keeper.htb.
Al entrar nos llama la atención esto:
Buscando información en internet, leemos que las credenciales por defecto son root:password.
https://github.com/bestpractical/rt
Las probamos, por si acaso.
Increíble pero funciona. Ahora debemos investigar cómo acceder al sistema.
Vemos una lista de correos enviados a root desde la cuenta de Lisa Norgaard:
Existe una base de datos de Keepass pero la ha movido a su carpeta de usuario por seguridad.
Si nos vamos a usuario y abrimos la ficha de Lise, encontramos un password en texto plano.
Apuntamos las credenciales:
1
lnorgaard:Welcome2023!
Vamos a proba estas credenciales por SSH.
1
$ ssh lnorgaard@keeper.htb
Y para adentro, además tiene correo pendiente de leer… peor no tiene nada.
Registramos la primera bandera y seguimos.
Como decía en el correo tiene la base de datos en fomrato keepass en un archivo ZIP en su directorio home. Como la máquina dispone de Python, nos vamos a compartir por http su carpeta y nos vamos a traer el archivo a nuestra máquina.
1
2
3
4
5
$ unzip RT30000.zip
Archive: RT30000.zip
inflating: KeePassDumpFull.dmp
extracting: passcodes.kdbx
Vamos a usar a nuestro amigo john para intentar romper la contraseña de la BBDD de KeePass
1
2
$ keepass2john passcodes.kdbx
passcodes:$keepass$*2*60000*0*5d7b4747e5a278d572fb0a66fe187ae5d74a0e2f56a2aaaf4c4f2b8ca342597d*5b7ec1cf6889266a388abe398d7990a294bf2a581156f7a7452b4074479bdea7*08500fa5a52622ab89b0addfedd5a05c*411593ef0846fc1bb3db4f9bab515b42e58ade0c25096d15f090b0fe10161125*a4842b416f14723513c5fb704a2f49024a70818e786f07e68e82a6d3d7cdbcdc
Copamos el hash en un archivo que llamaremos “hash.keepass” y se lo daremos amablemente a john
Así podemos estar mil años para romper la contraseña y por algo se nos ofrece el dump. Así que vamos a investigar un poco.
Encontramos en internet un exploit de KeePass que emplea el archivo .dump para romper la contraseña (CVE-2023–32784)
https://github.com/vdohney/keepass-password-dumper
Nos clonamos el repositorio y lo ejecutamos:
1
$ dotnet run ../KeePassDumpFull.dmp
Tenemos una palabra en Danés posiblemente y una letra que no ha logrado descifrar. Vamos a hacer una búsqueda en San Google para ver si nos la completa.
Es el nombre de un postre y la letra que nos faltaba es la “r”.
Tenemos la contraseña: rødgrød med fløde
Vamos a abrir la base de datos con keepass
Tenemos la contraseña y un archivo ppk de certificado para Putty
Nos copiamos la clave de Putty y lo guardaremos en un archivo con extensión .ppk, por ejemplo keepass.ppk
Ahora debemos convertir este archivo en un archivo de clave privada SSH para que nos sirva para conectar a la máquina como root.
Más info https://www.baeldung.com/linux/ssh-key-types-convert-ppk
Ahora con puttygen haremos la conversión que necesitamos.
1
$ puttygen keepass.ppk -O private-openssh -o id_rsa
Y para acabar, entramos como root…
1
$ ssh -i id_rsa root@keeper.htb
Registramos bandera de root y reto conseguido!
Última actualización: 2025-02-23
Autor: A. Lorente
Licencia: Creative Commons BY-NC-SA 4.0













