Connection HackMyVM (Easy - Linux)

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-30 12:50 EDT
Nmap scan report for 192.168.28.23
Host is up (0.00062s latency).

PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 b7:e6:01:b5:f9:06:a1:ea:40:04:29:44:f4:df:22:a1 (RSA)
|   256 fb:16:94:df:93:89:c7:56:85:84:22:9e:a0:be:7c:95 (ECDSA)
|_  256 45:2e:fb:87:04:eb:d1:8b:92:6f:6a:ea:5a:a2:a1:1c (ED25519)
80/tcp  open  http        Apache httpd 2.4.38 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.38 (Debian)
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)
MAC Address: 08:00:27:AC:7F:8C (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: Host: CONNECTION; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-time: 
|   date: 2025-04-30T16:50:47
|_  start_date: N/A
|_nbstat: NetBIOS name: CONNECTION, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.9.5-Debian)
|   Computer name: connection
|   NetBIOS computer name: CONNECTION\x00
|   Domain name: \x00
|   FQDN: connection
|_  System time: 2025-04-30T12:50:47-04:00
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
|_clock-skew: mean: 1h19m57s, deviation: 2h18m34s, median: -3s

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

Veremos varios puertos interesantes, vamos a entrar en la pagina que esta alojada en el puerto 80 a ver que vemos.

Si entramos vemos un servidor de apache2 normal que viene por defecto, por lo que no veremos gran cosa, vamos a realizar un poco de fuzzing por el servidor SMB a ver si encontramos algo interesante.

enum4linux

Info:

Vemos que hay un recurso compartido llamado share pero poco mas, vamos a ver si podemos enumerarlo de forma anonima de la siguiente forma:

Info:

Vemos que efectivamente tiene un recurso compartido llamado share, vamos a ver si nos podemos conectar de forma anonima a dicho recurso.

Si dejamos la contraseña en blanco veremos que si podemos y si listamos veremos lo siguiente:

Vemos que hay una carpeta llamada html y dentro de la misma un index.html lo que podemos creer que puede estar compartiendo la pagina mediante el servidor SMB y lo que se nos ocurre que podriamos subir un archivo PHP para generarnos una reverse shell de la siguiente forma:

Escalate user www-data

Vamos a crear nuestro archivo webshell.php.

webshell.php

Vamos a intentar subir el archivo a la carpeta html dentro del servidor SMB de la siguiente forma:

Info:

Ahora vamos a ponernos a la escucha de la siguiente forma:

Vamos a irnos en la pagina a nuestro archivo webshell.php y si volvemos a donde tenemos la escucha veremos lo siguiente:

Veremos que ha funcionado y habremos obtenido una shell con el usuario www-data por lo que vamos a sanitizarla.

Sanitización de shell (TTY)

Escalate Privileges

Si listamos los permisos SUID de dicho usuario veremos lo siguiente:

Info:

Veremos esta linea bastante interesante:

Veremos que tenemos GDB con permisos SUID por lo que podremos realizar lo siguiente:

Info:

Con esto veremos que ha funcionado, por lo que seremos root y leeremos la flag de dicho usuario:

user.txt

root.txt

Last updated