Ir ao contido

Práctica Taller: Cap (HackTheBox) – Pentest completo paso a paso

De interese: Labs Hack The Box

  • Adventure Modei(modo sen guía): exploración libre da máquina, sen pasos nin checks. Ideal se queres probar por ti mesmo.
  • Guided Mode(modo guiado): pasos e pistas paso a paso que che levan desde o recoñecemento ata a obtención da “flag”. Mellor para principiantes.
  • Official Writeup — abre/descarga o informe oficial da máquina (se está dispoñible para esa máquina). Útil para revisar solucións e axudar no aprendizaxe.
  • Video Walkthrough — reproduce un vídeo con explicacións e demostracións da resolución (se existe para esa máquina).
  • Ás labs pódese acceder mediante PwnBox ou VPN.
    Fig. PwnBox ou VPN
  • As contas Free soamente poderán iniciar o PwnBox gratuíto 2 horas ao día. Debes abonarte para acceso ilimitado a PwnBox.
  • Se se accede por PwnBox xa conectas dende o propia navegador a unha máquina atacante, con moitas ferramentas preinstaladas, a cal posúe conectividade coa máquina vítima(lab).
  • Se se accede por VPN debes configurar a túa propia máquina para o ataque e conectar dende ela, por VPN, á máquina vítima(lab).
  • Usa a máquina desta lab como práctica inicial antes de abordar máquinas máis complexas.

Obxectivo

Realizar un test de intrusión completo (6 fases) sobre a máquina, desde enumeración ata explotación, persistencia e redacción do informe.


Pasos básicos

  1. Configurar en VirtualBox unha máquina Kali Linux coa rede en modo NAT.
    Fig. Configuración en VirtualBox

  2. Arrancar a máquina Kali Linux:

    • Acceder a HackTheBox e facer clic en Guided Mode
    • Conectar a Hack The Box a Play Machines mediante PwnBox ou VPN.
    • Arrancar a máquina facendo clic en Join Machine. Unha vez arrancada obterase a IP da máquina.
    • Detectar vulnerabilidades en servizos e/ou aplicacións.
    • Explorar un vector de ataque e conseguir acceso ao sistema.
    • Recoller información do sistema.
    • Conseguir contido ficheiro user.txt
    • Elevación de privilexios e conseguir acceso coma root.
    • Conseguir contido ficheiro root.txt
  3. Elaborar un informe final coas evidencias obtidas.

Fases dun test de intrusión (Pentest)

Fig. Fases Pentest


Fase 1: Recopilación de información

Prerrequisito

Arrancar a máquina Kali Linux na primeira opción de arranque.

1) Acceder a Cap - HackTheBox:
Fig. Cap - Join Room

2) Acceder mediante VPN

A primeira vez que un se conecta...

A. Picar en CONNECT TO HTB:
Fig. CONNECT TO HTB
B. Escoller en Machines:
Fig. Server VPN - Download file
C. Escoller OpenVPN:
Fig. Escoller OpenVPN
D. Escoller Servidor VPN para establecer a conexión VPN e picar en DOWNLOAD VPN para descargar o ficheiro de configuración VPN:
Fig. Conseguir ficheiro de configuración VPN

Unha vez descargado o ficheiro .vpn correspondente ao teu usuario abrir unha consola e executar:

setxkbmap es
sudo openvpn username.vpn
Conseguimos o acceso VPN a HTB:
Fig. HTB - Acceso VPN conseguido

sudo openvpn username.vpn

Lanza o cliente OpenVPN usando o ficheiro de configuración username.vpn. O que sucede en concreto:

  • sudo — require permisos de root para crear a interface de rede virtual (tun0) e modificar táboas de ruteo.
  • openvpn username.vpn — OpenVPN le o ficheiro .vpn (contén certificado/clave, servidor, portas, rutas, DNS, etc.) e establece a conexión coa infraestrutura de HTB.
  • Ao conectar: créase unha interface tun0 (ou similar), aplícanse rutas e DNS proporcionadas polo servidor, e o teu tráfico cara ás IPs do lab pasa pola VPN.
  • Resultado práctico: podes executar ping, nmap e acceder (ssh, web, etc.) ás máquinas da room como se estiveseches na mesma rede do lab.
  • Comprobación rápida noutra consola: ip a (ver tun0) e ip route / ping <IP-da-machine> para asegurarte de conectividade.
  • Para deter a conexión VPN: Ctrl+C na terminal onde corre OpenVPN (ou mata o proceso).

Aviso/boas prácticas

Non deixes a VPN activa cando non a uses.
Usa isto só para labs autorizados (HackTheBox/CTF).

3) Estando en Cap - HackTheBox elixir Guided Mode e facer clic en Join Machine:
Fig. Cap - Join Room

Unha vez arrancada a máquina obteremos a súa IP

4) Agora xa podemos comezar coa máquina e resolver as Tasks.

Hints

Se algunha vez estás atascado nalgún HTB ofrece Pistas(Hints) que poden ser de axuda para saír dese atasco.

5) Comprobación de conectividade e detección do sistema operativo. Así, executar na anterior consola:

IP de HTB servida para esta máquina

No caso de execución deste procedemento a IP servida foi: 10.10.10.245, pero no voso caso pode variar. Tédeo en conta para o seguimento desta práctica.

ping -c1 10.10.10.245 -R

TTL

  • TTL ≃ 64 ⇒ GNU/Linux
  • TTL ≃ 128 ⇒ Microsoft Windows
    Como podemos observar na saída do comando ping estamos ante unha máquina obxectivo GNU/Linux. Fig. TTL

6) Task1 - Escaneo básico con Nmap:

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.10.245
Fig. Recoñecemento con nmap

Servizos atopados: 3(FTP, SSH e Apache)

Fase 2: Análise de vulnerabilidades

Identificación de servizos vulnerábeis:

  • Servizos atopados: FTP, SSH e Apache

Dende a máquina Kali GNU/Linux emprega varias ferramentas para obter información:
- whatweb é unha ferramenta de fingerprinting web que identifica tecnoloxías, cabeceras e versións dun servidor HTTP a partir dunha URL ou enderezo IP.

whatweb 10.10.10.245
Fig. whatweb IP
- dirb é unha ferramenta de descubrimento de directorios/ficheiros web que usa wordlists para forzar URLs e localizar rutas ocultas nun servidor HTTP.
dirb http://10.10.10.245
Fig. dirb IP

Task 2 - Con esta ferramenta atopamos rutas no servidor que podemos explorar, como: http://10.10.10.245/data/[id]
Fig. Task2

Voltamos a executar de novo o comando dirb sobre esa URL para seguir descubrindo directorios/ficheiros atopando, entre outras, a seguinte URL:

Task 3 e Task 4 - http://10.10.10.145/data/0 -> Atopamos a posibilidade de descargar un ficheiro .pcap que imos investigar.
Fig. Panel de Login

wfuzz - Outra ferramenta de Fuzzing

Tamén poderiamos empregar outra ferramenta de Fuzzing como wfuzz:
Fig. wfuzz IP

Descargamos ese ficheiro e abrímolo con "Wireshark" para estudalo:
Fig. wireshark

Task 5 - Atopamos unha conexión FTP, na cal conseguimos unhas credenciais:
Usuario: nathan
Password: Buck3tH4TF0RM3!
Fig. FTP - Credenciais

Fase 3: Explotación

Comprobamos o acceso FTP con esas credenciais e conseguimos o acceso ao sistema como usuario nathan:
Fig. FTP - acceso user nathan Fig. FTP

Fase 4: Post-explotación

Recolleita de información (datos sensibles):

Task 6 - Comprobamos que con esas credenciais tamén podemos acceder por SSH:
Fig. Acceso por SSH

Task 7 - Xa obtemos a flag user.txt Xa somos o usuario de sistema nathan, co cal executamos:

ls 
cat user.txt

Task 8 - Seguimos investigando e atopamos que un ficheiro executable posúe a capabilitie setuid:
Fig. Capabilities
Explotamos esa capabilitie conseguindo unha consola de root.
Fig. Flag de root

Task 9 - Xa conseguimos a flag de root
Xa somos root, co cal executamos:

ls -l /root
cat /root/root.txt

De interese


Fase 5: Persistencia

Aínda que as Flags xa se conseguiron...

Podemos intentar conseguir a Persistencia na máquina.

Engadir usuario permanente e ademais facelo root

useradd -m pentester -o -u 0 -g 0
echo 'pentester:abc123.' | chpasswd
id pentester
Fig. Novo usuario root

Non podemos reiniciar a máquina e gardar o estado actual, pero...

Unha vez reiniciada a máquina seriamos capaces de acceder mediante ssh co usuario root pentester

Fig. Novo usuario root

Fase 6: Informe final

Seguir o indicado en Informes de Pentesting para obter os informes.

Exemplos nas seccións