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. Pivoting

Pluck /Brain

AnteriorBasic /DoctorSiguientePrivilege escalation

Última actualización hace 1 año

Esta vez vamos a estar jugando con la maquina Pluck de y la maquina Brain de puede descargarla de los enlaces dados.

Primero que nada tenemos la maquina atacante que en este caso soy yo, la segunda es la maquina Pluck y la tercera la Brain.

De entrada como atacante solo llego hasta la maquina Pluck la 192.168.1.163 que asu vez esta misma osea Pluck tiene una segunda interfas donde estaria la tercera, la maquina Brain la 10.10.10.0/24.

Resumen Atacante solo tiene conectividad con Pluck la 192.168.1.163 y Brain tiene conectividad solamente con Pluck, osea que para llegar hasta la maquina Brain la 10.10.10.6 primero debemos hackear la maquina Pluck que es hasta donde llegamos la 192.168.1.163.

Hoy no vamos a ahorrar tiempo teniendo acceso ya a la primera, hackearemos las dos en este mismo POST.

Empezamos primeramente hacemos un ARP-Scan de nuestra red local, para encontrar la IP que le fue asignada a nuestra primera maquina la maquina Pluck la otra no nos deberia salir ya que no tenemos alcance desde nuestra maquina atacante solo tenemos alcance hasta la maquina Pluck.

Que ahora tenemos su direccion IP la 1.163.

Empezamos con lo basico un escaneo de los puertos que estan abiertos en la maquina donde observamos tres.

# Nmap 7.94SVN scan initiated Fri Jan 26 18:29:50 2024 as: nmap -sCV -p22,80,3306 -oN target.txt 192.168.1.163
Nmap scan report for 192.168.1.163
Host is up (0.0011s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.3p1 Ubuntu 1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 e8:87:ba:3e:d7:43:23:bf:4a:6b:9d:ae:63:14:ea:71 (RSA)
|   256 8f:8c:ac:8d:e8:cc:f9:0e:89:f7:5d:a0:6c:28:56:fd (ECDSA)
|_  256 18:98:5a:5a:5c:59:e1:25:70:1c:37:1a:f2:c7:26:fe (ED25519)
80/tcp   open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Pluck
|_http-server-header: Apache/2.4.18 (Ubuntu)
3306/tcp open  mysql   MySQL (unauthorized)
MAC Address: 08:00:27:CD:1D:F0 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri Jan 26 18:29:58 2024 -- 1 IP address (1 host up) scanned in 7.19 seconds

Siguiendo usando Nmap observamos las versiones y servicios que corren para cada puerto.

Puerto 80

Si nos vamos al puerto 80 tenemos un panel de autentificacion, si observamos la URL nos da el nombre del recurso de donde se esta carganado en este caso admin.php.

Como podemos ver el recurso de donde se esta cargando podemos hacer uso de wrapper para ver como esta estructurado ese admin.php. de la siguiente manera que se observa en la URL.

Lo que le estamos diciendo es que todo el contenido de admin.php la codifique en una cadena de base64.

Ahora teniendo la cadena y desde la consola, la decodificamos y la pasamos a un formato legible para esos hermosos ojos que tienes; y bueno no se observa nada interesante de lo cual podriamos sacar provecho.

Y bueno si eres listo ya te diste cuenta que en la URL hay un parametro de consulta donde ?page= donde le podemos pasar un input y le pasamos el tipico el /etc/passwd, observamos que nos dan una pista de un backup que se almacena en /usr/local/scripts/.

Apuntamos a ese recurso, y nos dan otra pista donde nos dice que podemos descargar ese backup via tfpt.

Nos conectamos por tftp a la maquina y nos descargamos el backup; luego lo descomprimimos con tar.

Observamos que tenemos dos directorios home y var, vamos a hecharles un ojo.

Si hacemos un tree observamos que bajo el subdirectorio paul hay unas clave privada RSA y publicas. Vamos a probarlas haber si nos podemos conectar via SSH como el usuario paul.

Probandolas todas la id_key4 es la que me funciono, pero para que nos funcione hay que cambiarle los permisos.

Le cambiamos los permisos.

Ahora si la usamos nos conectamos a este especie de panel. Nos vamos al apartado de Edit File y le decimos que queremos leer el /etc/passwd y damos al enter.

Observamos que se nos abre con vim en vez de con nano, en GTFObins te dicen como lanzar una bash, y bueno lo hacemos :set shell=/bin/bash.

Luego la llamamos haciendo un :shell.

Ahora ya estamos operando en una terminal normal. Si hacemos un Ip a observamos que tenemos un segundo segmento de red en eth1 con direccion IP 10.10.10.7/24, en este segmento es donde esta operando la maquina Brain.

Tenemos acceso ya en la maquina pluck ahora debemos saltar a la maquina brain.

#!/bin/bash

function ctrl_c(){
	echo -e "\n\n[!] Saliendo......\n"
	tput cnorm; exit 1
}

for i in $(seq 1 254); do
	timeout 1 bash -c "ping -c 1 10.10.10.$i" &> /dev/null && echo "[+] El host 10.10.10.$i - ACTIVE" &
done; wait

tput cnorm

Primeramente nos creamos este script en la maquina pluck en el directorio /tmp le damos permisos de ejecucion.

Este pequeño script busca dispositivos activos en una red local enviando un mensaje de ping a cada posible dirección IP y mostrando un mensaje si recibe una respuesta.

Observamos que nos respondieron varias, una de estas se nos fue asignada a nuestra segunda maquina.

  • Como punto numero uno nos ejecutamos el chisel en nuestra maquina atacante, nos lo ejecutamos como servidor para ofrecer un servicio por el puerto 1234.

  • Ahora como punto numero dos en la maquina victima la maquina pluck nos ejecutamos el chisel como cliente, osea nos conectamos como cliente al servicio que ofrece la maquina atacante por el puerto 1234. con un R:socks para que se traiga todo lo que haya.

Ahora hay que configurar el proxychains en nuestra maquina local esto lo explico en este post.

Una vez configurado el proxychains y el navegador procedemos a la siguiente maquina.

La direccion IP que se nos asigno fue la 10.10.10.6.

Tonces ahora empezamos por lo basico un escaneo con Nmap para descubrir los puertos abiertos en esta siguiente maquina.

Recordar que ahora no tenemos conexion directa con esta maquina brain la IP 10.10.10.6 porque esta opera en un segundo segmento de red dentro de la maquina pluck.

Tonces cada cosa que le tiremos desde nuestra maquina el proxychains debe ir por delante, ya que gracias ah chisel tenemos un tunel creado para llegar hasta esta maquina.

Y bueno observamos que esta maquina tiene dos puertos abiertos.

# Nmap 7.94SVN scan initiated Fri Jan 26 19:32:17 2024 as: nmap -sT -Pn -sCV -p22,80 -oN target.txt 10.10.10.6
Nmap scan report for 10.10.10.6
Host is up (0.0071s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 32:95:f9:20:44:d7:a1:d1:80:a8:d6:95:91:d5:1e:da (RSA)
|   256 07:e7:24:38:1d:64:f6:88:9a:71:23:79:b8:d8:e6:57 (ECDSA)
|_  256 58:a6:da:1e:0f:89:42:2b:ba:de:00:fc:71:78:3d:56 (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.38 (Debian)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri Jan 26 19:32:54 2024 -- 1 IP address (1 host up) scanned in 37.19 seconds

Siguiendo tirando de Nmap observamos las versiones y servicios que corren para estos dos puertos.

Recordar que tenemos que tirar de proxychains para poder llegar.

Como tiene el puerto 80 abierto nos vamos a observar la pagina web y es algo simple.

Si fuzzeamos la web encontramos un directorio index.php.

Nota proxychains al incio del todo para pasar por nuestro tunel y poder llegar hasta la direccion 10.10.10.6.

Si nos vamos al directorio encontrado nos carga lo mismo. Pero ?page= podria estar pasando parámetro de consulta, pero aca no tenemos ningun admin.php login.php no sabemos nada.

En el el apartado de page no sabemos que existe ahi si page o otro recurso.

Tonces fuzzeamos especificamente ese apartado y encontramos un include.

Ahora si ya podemos proseguir.

Como ya sabemos la estructura correcta le pasamos la tipica una lectura del /etc/passwd y observamos usuario ben.

En el proc encontramos las credenciales para el usuario ben, ahora nos conectaremos via SSH.

Nos conectamos via SSH.

Nota proxychains al incio del todo para pasar por nuestro tunel y poder llegar hasta la direccion 10.10.10.6.

Observamos que nos logramos conectar como el usuario ben.

Ahora vamos a escalar nuestro privilegios a root, recordando ahora la primera maquina no la rutee 😂😂😂😂. Si hacemos un sudo -l observamos que el been puede correr como root wfuzz.

Buscando por archivos donde tenemos permisos de escritura el range.py tenemos permisos de escritura, asi que por aca le colaremos una instruccion para escalar a root y dejar de ser ben10.

Nos abrimos el range.py y le decimos.

Importame la libreria os, luego haga una llamada a nivel de sistema donde me otorgaras permisos SUID a la bash.

  • Ahora como punto numeor uno nos ejecutamos el wfuzz, cuando lo ejecutemos obviamente hara lo mismo pero como manipulado parte del codigo hara lo que le intruimos.

  • Luego segundo punto si hacemos un ls -l a la bash observamos que tenemos permisos SUID.

  • Tercero si hacemos un bash -p observamos que se nos otorga el privec y si hacemos un whoami somos root.

Ahora que somos root y con las dos maquinas vulneradas vamos por la flag de root.txt Y buenos maquinas resueltas FACIL.

Ahora nos descargamos el chisel en nuestra maquina local y luego nos la transferimos ah la maquina victima la maquina pluck puedes descargar el chisel aca .

GitHub
Vulnhub
Vulnyx
PivotingRODGAR
Logo