Post

StartUp Writeup - Try-Hack-Me

namp

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
27
28
29
30
31
32
33
PORT   STATE SERVICE REASON         VERSION
21/tcp open  ftp     syn-ack ttl 63 vsftpd 3.0.3
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to 10.8.203.6
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| drwxrwxrwx    2 65534    65534        4096 Nov 12  2020 ftp [NSE: writeable]
| -rw-r--r--    1 0        0          251631 Nov 12  2020 important.jpg
|_-rw-r--r--    1 0        0             208 Nov 12  2020 notice.txt
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 b9:a6:0b:84:1d:22:01:a4:01:30:48:43:61:2b:ab:94 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAzds8QxN5Q2TsERsJ98huSiuasmToUDi9JYWVegfTMV4Fn7t6/2ENm/9uYblUv+pLBnYeGo3XQGV23foZIIVMlLaC6ulYwuDOxy6KtHauVMlPRvYQd77xSCUqcM1ov9d00Y2y5eb7S6E7zIQCGFhm/jj5ui6bcr6wAIYtfpJ8UXnlHg5f/mJgwwAteQoUtxVgQWPsmfcmWvhreJ0/BF0kZJqi6uJUfOZHoUm4woJ15UYioryT6ZIw/ORL6l/LXy2RlhySNWi6P9y8UXrgKdViIlNCun7Cz80Cfc16za/8cdlthD1czxm4m5hSVwYYQK3C7mDZ0/jung0/AJzl48X1
|   256 ec:13:25:8c:18:20:36:e6:ce:91:0e:16:26:eb:a2:be (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOKJ0cuq3nTYxoHlMcS3xvNisI5sKawbZHhAamhgDZTM989wIUonhYU19Jty5+fUoJKbaPIEBeMmA32XhHy+Y+E=
|   256 a2:ff:2a:72:81:aa:a2:9f:55:a4:dc:92:23:e6:b4:3f (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPnFr/4W5WTyh9XBSykso6eSO6tE0Aio3gWM8Zdsckwo
80/tcp open  http    syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
| http-methods: 
|_  Supported Methods: OPTIONS GET HEAD POST
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Maintenance
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kerne

con nuestra primera enumeracion de nmap podemos observar que los puertos 80,22 y 21 estan abiertos. el puerto 21 tiene una missconfiguration en la cual se puede ingresar al puerto con las credenciales de anonymous.

entramos al puerto fpt. cuando nos pide el nombre ponemos anonimos y cuando pide clave le damos enter y la dejamos en blanco img

una ves dentro hacemos un dir para enumerar los directorios img despues podemos hacer un mget * para descargar todos los archivos a nuestra maquina

obtenemos esto: img

tenemos dos archivos uno .txt y otro es una imagen .jpg. nuestro archivo txt nos dice que existe un usuario llamado maya asi que ya podemos agregar esta informacion a nuestra enumeracion.

vamos a hacer fuzzing a la pagina web para poder enumerar directorios en busca de algo que nos sea ultil

comando

1
gobuster dir -u http://10.10.219.247 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

img

por el momento podemos observar que existe un direcctorio llamado /files asi que echemos un vistazo

img

en este direcctorio tenemos los mismos archivos que hemos conseguido enumerando el puerto ftp ademas podemos ver la carpeta ftp que tambien podemos ver desde el pierto ftp. esto es interesante.

ok hemos enumerado el puerto 21(ftp) y el puerto 80 (http) nos faltaria enumerar el puerto 22 (ssh) hemos conseguido un usuario llamado maya asi que podemos aplicar fueza bruta sobre ese usuario.

img

bueno parece que no podremos hacer fuerza bruta sobre este usuario. vamos a ingresar de nuevo al puerto ftp para echar un vistazo a esa carpeta ftp.

img

vale. podemos ingresar en la carpeta ftp que se muestra en nuestro navegado. podriamos intentar subir algun archivo malosioso en esta carpeta de manera que cuando lo llamemos desde la web nos ejecute una reverse shell.

vamos a buscar pentestmonkey/php-reverse-shell (github.com) esta pagina nos proporciona un codigo php el cual nos podria ejecutar una reverse shell. solo debemos modificar la ip y el puerto

img

aqui debemos poner nuestra ip de atacante y en port usaremos un puerto por donde estaremos en escucha posteriormente.

para llamar al archivo desde el servicio ftp hacemos un “put + nombre del archivo” despues de esto vamos a la pagina y lo buscamos en la carpeta que se llama ftp y hacemos click para que se ejecute. tendremos una shell.

somos el usuario www-date asi que probablemente trendremos que hacer movimiento.

img con este comando intentaremos enumerar los permisos SUID del usuario actual(no encontramos nada)

buscamos en la carpeta raiz( / ) del sistema

img tenemos una carpeta llamada incidents img dentro tenemos un archivo .pcapng. vamos a descargarnos este archivo montando un servidor en python de la siguiente manera:

1
2
3
4
5
6
7
	-maquina victima-
	
	python3 -m http.server 9090
	
	-maquina atacante-
	
	nc -lvnp 9090

los archivos .pcapng son archivos de trazado de paquetes. en este caso podemos abrirlo con wireshark para mirar las trazas de paquetes y de esa manera inpeccionar las trazas en busca de informacion

abrimos wireshak vamos a file > open> y seleccionamos nuestro archivo img

en este caso las trazas de paquetes desde el numero 39 al 45 parecen responder a una peticion que se ha echo asi que vamos a inpeccionarlos

podemos dar click derecho > follow > TCP Stream img

parece que alguien a entrado a esta maquina y ha intentado una contraseña con el usuario www-data pero es incorrecta. en la carpeta /home tenemos el usuario lennie. podriamos intentar esta contraseña para ese usuario.

perfecto ha funcionano. ahora somos el usuario lennie img

ahora podemos escalar privilegios para conseguir usuario root.

navegando con el usuario lennie podemos conseguir 2 archivos y una carpeta llamada Documents img dentro de Documents img

vale primero miraremos en el direcctorio scripts porque realmente es raro tener eso asi que podria ayudarnos a escalar privilegios

img vamos a ver los permisos de estos archuvos y tambien vamos hacer un cat de planner.sh img parece que el archivo planner.sh esta en la ruta /etc/print.sh y pertenece al usuario root pero el usuario lennie tiene permisos de ejecucion. asi que vamos a editar este archivo para poder conseguir una bash como el dueño del archivo. en este caso root

img en este caso usaremos el oneliner mas basico para probar si nos da alguna informacion. nos pondremos en escucha en el puerto 4444 y ejecutaremos el planner.sh

al ejecutar el archivo planner.sh nos envia una shell como lannie. esto me hace pensar que esto es una tarea crontab. lennie no tiene ninguna tarea crontab asi que debe ser una tarea crontab del usuario root. vamos a esperar un par de minutos

crontab -l para ver las tareas.

img

WE ARE ROOT

This post is licensed under CC BY 4.0 by the author.

Trending Tags