RODGAR
  • Whoami
  • HackTheBox
    • Hard
      • ⛔HackTheBox Vintage
    • Medium
      • HackTheBox Cascade
      • HackTheBox TombWatcher
      • Copy of HackTheBox TombWatcher
      • HackTheBox Monteverde
      • HackTheBox Resolute
      • HackTheBox Administrator
      • HackTheBox Escape
      • HackTheBox Authority
    • Easy
      • HackTheBox Active
      • HackTheBox Sauna
      • HackTheBox Support
      • HackTheBox Forest
      • HackTheBox Cicada
      • HackTheBox Timelapse
      • HackTheBox Return
  • CTF WRITEUP's
    • TryHackme
      • TryHackme 0day
      • TryHackme Daily Bugle
      • TryHackme Blog
      • TryHackme Year of the Owl
      • TryHackme Wgel CTF
      • TryHackme Chill Hack
      • TryHackme Wonderland
      • TryHackne OhSINT
      • TryHackme Cold VVars
      • TryHackme Dav
      • TryHackme RootMe
      • TryHackMe Basic Pentesting
      • TryHackMe Simple-CTF
      • TryHackMe Vulnversity
      • Tryhackme Kenobi
    • Burp Suite
      • 1️⃣SQL Ijections
        • Laboratorio Uno
        • Laboratorio Dos
        • Laboratorio Tres
        • Laboratorio Cuatro
        • Laboratorio Cinco
        • Laboratorio Seis
        • Laboratorio Siete
    • VulnHub
      • Inferno
      • Election
      • SYMFONOS 3
      • SYMFONOS 2
      • DJinn-3
      • Durian 1
      • DarkHole 2
      • OffSec DC-9
      • OffSec Potato
      • OffSec Pwned1
      • OffSec VIKINGS
      • OffSec Tre
      • OffSec MoneyBox
      • OffSec DEATHNOTE
      • OffSec Gaara
      • OffSec NoName
      • OffSec Katana
      • OffSec Sick0s
    • The Hackers Labs
      • The Hackers Labs Offensive
      • The Hackers Labs Resident
      • The Hacker Labs Base
      • The Hackers Labs Statue
      • The Hackers Labs Luna
      • The Hackers Labs Templo
      • The Hackers Labs GOIKO
      • The Hackers Labs Microsoft
    • Hackmyvm
      • Hackmyvm UP
    • Pivoting
      • Pivoting
      • Internal TryHackme
      • Basic /Doctor
      • Pluck /Brain
  • Privilege escalation
    • Abuso de grupos de usuario especiales
      • Docker
      • LXD
      • ADM
    • Abuso de permisos incorrectamente implementados
    • Detección y explotación de Capabilities
    • Tareas Crom
    • Path Hijacking
    • Abusando de privilegios a nivel de Sudoers
    • Abusando de privilegios SUID
    • Linux Privilege Escalation
  • Shared Files
    • Share Windows Linux
      • Compartir de entre Windows y Linux
      • Compartir de Windows a linux [Impacket-Server]
    • Share Linux
      • Compartir de linux en [PHP]
  • OWASP TOP 10
    • SQL Injections
    • XSS
    • XXE
    • Path traversal Lab
    • LFI con Wrappers
    • Log Poisoning (LFI -> RCE)
    • Server-Side Template Injection (SSTI)
    • Ataque de oráculo de relleno (Padding Oracle)
    • Inyecciones LaTeX
    • Ataques de transferencia de zona (AXFR – Full Zone Transfer)
    • Enumeración y explotación de WebDAV
    • ShellShock
    • Enumeración y explotación de SQUID Proxies
    • Insecure Direct Object Reference (IDORs)
    • Json Web Token
    • Intercambio de recursos de origen cruzado (CORS)
    • Abuso de subidas de archivos
      • Laboratorio 1
      • Laboratorio 2
      • Laboratorio 3
      • Laboratorio 4
      • Laboratorio 5
      • Laboratorio 6
      • Laboratorio 7
      • Laboratorio 8
      • Laboratorio 9
  • Group 1
    • Recursos
Con tecnología de GitBook
En esta página
  1. CTF WRITEUP's
  2. The Hackers Labs

The Hackers Labs Resident

AnteriorThe Hackers Labs OffensiveSiguienteThe Hacker Labs Base

Última actualización hace 8 meses

Un puerto abierto.


# Nmap 7.94SVN scan initiated Tue Oct  8 10:48:00 2024 as: nmap -sCV -p80 -oN target.txt 172.16.241.196
Nmap scan report for 172.16.241.196
Host is up (0.00072s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.62 ((Debian))
|_http-title: Iniciar Sesi\xC3\xB3n
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.4.62 (Debian)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Oct  8 10:48:13 2024 -- 1 IP address (1 host up) scanned in 13.42 seconds

Version y servicio que corren para ese puerto.


Si fuzzeamos encontramos dos archivos uno que es mas comun.


Si le lanzamos un curl al robots tenemos un nombre de usuario y una contraseña en base64 por el formato que se le ve.


Lo vamos a pasar por el decoder de Burp Suite, primero lo pasamos ah base64 y luego lo pasamos ah url y obtenemos un hash que parece md5 por el formato.


Si nos vamos a la wen ah intentar iniciar session con las credenciales del admin y hash como contraseña nos dice que algo es incorrecto.


Si pasamos el hash por esta pagina nos dice lo que deciamos antes es md5 de 31 caracteres.


Pero si le preguntamos ah san google nos dice que md5 posee 32 caracteres, es decir que falta un caracter, asi que hay que averiguarlo.


# [+] Autor: R0dgar

import sys

def generate_dict(base_hash):
    charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
    with open('hashes.txt', 'w') as f:
        for char in charset:
            f.write(f"{base_hash}{char}\n")
    print("Diccionario generado en hashes.txt")

if __name__ == "__main__":
    if len(sys.argv) != 2 or len(sys.argv[1]) != 31:
        print("Uso: python3 generate.py <md5_31_caracteres>")
        sys.exit(1)

    generate_dict(sys.argv[1])
  • Nos creamos un script en python3 para intentar averiguar el ultimo caracter que igualmente lo podes fuzzear con Burp Suite pero es algo mas lento.

  • El script es tal que asi de la a-z en minuscula y de la A-Z en mayuscula del 0-9, lo que hace el script es agregar en minuscula y mayuscula de la a a la z y un numero del 0 al 9. Asi completar los 32 caracteres.

Lo ejecutamos y tenemos algo asi.


Ahora con el diccionario que creamos usamos hydra para hacer fuerza bruta y bingo encontramos una combinacion correcta.


Entramos a un dashboard y un panel tiene un XSS de vuln.


El siguiente panel es vulnerable ah SSRF, vamos a pasar esto por Burp Suite a ver que tal se comportan.


Observamos que atraves del SSRF podemos lograr un Path Traversal y leer el passwd de la maquina.


Observamos que podemos leer los logs de apache, lo que podriamos derivar a un Log Poisoning un RCE, envenenar los logs de apache.


Si intento atraves del User-Agent envenear no deja me da un codigo de estado 500.


Observamos que si le paso otro parametro diferente al cmd si me lo interpreta la maquina, osea tenemos un RCE en el User-Agent. Observamos que tenemos ahi un connect.php lo que quiere decir que eso se estaria usando para conectar a la base de datos.


Usaremos el User-Agent para enviarnos una revershell a nuestra maquina atacante.


Obtemos acceso y leemos el archivo anterior que decia el connect.php y tenemos un usuario y contraseña para conectar a la base de datos, si se reutilizan las podriamos usar.


Afirma existe un usuario llamado simple con contraseña simple.


  • Este usuario tiene en su directorio de trabajo un cp.sh lo que hace es copiar un archivo llamado password.txt desde el directorio /home/ram y lo envia ah /tmp.

  • Lo ejecutamos y vamos a /tmp y tenemos un hash con el usuario.


[+] Autor: R0dgar

import hashlib
import crypt

def crack_password(hash_to_crack, dictionary_path):
    with open(dictionary_path, 'r', encoding='latin-1') as dict_file:
        for word in dict_file:
            word = word.strip()  # Eliminar espacios y saltos de línea
            # Comparar el hash de la contraseña con el hash proporcionado
            if crypt.crypt(word, hash_to_crack) == hash_to_crack:
                return word
    return None

if __name__ == "__main__":
    hash_to_crack = "$y$j9T$v3fiA7W1LOJmdyVZGUfIp0$TF7qqhsJ1SnWH8caDijOlxCjIo2VXgurTgq6DIlxmE1"
    dictionary_path = "/usr/share/wordlists/rockyou.txt"
    
    found_password = crack_password(hash_to_crack, dictionary_path)
    
    if found_password:
        print(f"¡Contraseña encontrada! Es: {found_password}")
    else:
        print("Contraseña no encontrada en el diccionario.")

Yo me cree un script en pytho3 porque se me hizo imposible con John o hashcat.


Y wala tenemos contraseña del usuario ram.


Y bueno ram tiene todo usuario y el root y maquina resuelta.