Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-05 11:51 EDT
Nmap scan report for 172.17.0.2
Host is up (0.000079s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u5 (protocol 2.0)
| ssh-hostkey:
| 256 69:15:7d:34:74:1c:21:8a:cb:2c:a2:8c:42:a4:21:7f (ECDSA)
|_ 256 a7:3a:c9:b2:ac:cf:44:77:a7:9c:ab:89:98:c7:88:3f (ED25519)
5000/tcp open http Werkzeug httpd 2.2.2 (Python 3.11.2)
|_http-server-header: Werkzeug/2.2.2 Python/3.11.2
|_http-title: Restaurante Balulero - Inicio
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.83 seconds
Veremos que hay un puerto 5000 abierto, en el que se aloja una pagina web, si entramos dentro veremos una pagina web de un restaurante normal, pero si nos vamos a Ver carta -> Admin veremos un login, por lo que vamos a probar las credenciales por defecto tipicas:
User: admin
Pass: admin
Veremos que si nos autenticamos, pero no veremos gran cosa por fuera, si probamos a inspeccionar el codigo veremos lo siguiente:
<!-- Backup de acceso: sysadmin:backup123 -->
Podemos ver que pueden ser unas credenciales para el puerto SSH por lo que vamos a probar ha realizar lo siguiente:
ssh sysadmin@<IP>
Metemos como contraseña backup123 y veremos que estamos dentro.
Escalate user balulero
Si listamos la carpeta en la que nos encontramos de la home de dicho usuario y leemos el archivo app.py para inspeccionar el codigo veremos lo siguiente al principio:
from flask import Flask, render_template, redirect, url_for, request, session, flash
import sqlite3
from functools import wraps
app = Flask(__name__)
app.secret_key = 'cuidaditocuidadin'
DATABASE = 'restaurant.db'
...........................<RESTO DE CODIGO>......................................
Veremos que hay una clave secreta la cual puede ser la contraseña de uno de los usuarios del sistema: