====== Persistencia ======
===== Con_Metasploit_en_Windows =====
Lo primero será estar dentro de una máquina windows con un meterpreter y siendo
usuario administrador:
{{pasted_image_20230801122738.png|}}
Una vez hecho esto, usaremos el siguiente módulo, poniendo la sesión en segundo
plano y luego volviendo a cargarla:
use exploit/windows/local/persistence_service
{{pasted_image_20230801122857.png|}}
Ahora, por otra parte, nos ponemos a la escucha con metasploit para recibir una
nueva conexión en caso de reiniciar la máquina:
{{pasted_image_20230801123340.png|}}
Apagamos la máquina víctima:
{{pasted_image_20230801123445.png|}}
Pero en la otra ventana de metasploit habremos recibido la conexión una vez que
la máquina víctima se haya reiniciado:
{{pasted_image_20230801123520.png|}}
===== Con_RDP =====
Una vez dentro, tenemos que ser el usuario administrador y mirarnos al proceso
de explorer.exe:
{{pasted_image_20230801124356.png|}}
{{pasted_image_20230801124529.png|}}
Una vez migrado, tenemos que crear un usuario para el protocolo RDP y activarlo:
run getgui -e -u pinguino -p hack_123
{{pasted_image_20230801124656.png|}}
Una vez hecho esto, ya podremos entrar dentro del protocolo RDP usando estas
credenciales con la herramienta xfreerdp:
xfreerdp /u:pinguino /p:hack_123 /v:10.2.27.219
{{pasted_image_20230801124859.png|}}
===== SSH_con_clave_publica =====
Podemos pasarle el id_rsa de mi máquina de atacante a la máquina remota si le
pasamos el id_rsa dentro de su directorio .ssh. Por lo que primero en mi máquina
atacante creamos el id_rsa:
{{pasted_image_20230731213220.png|}}
Le cambiamos el nombre a authorized_keys:
{{pasted_image_20230731213251.png|}}
Y dentro de la máquina víctima eliminamos la clave pública que ya tenía:
{{pasted_image_20230731213346.png|}}
A continuación nos compartimos este fichero de authorized_keys con la máquina víctima:
{{pasted_image_20230731213422.png|}}
Y si iniciamos sesión, ya no debería de pedirnos la contraseña:
{{pasted_image_20230731213453.png|}}
===== Persistencia usando la clave privada id_rsa de la máquina víctima =====
También podemos capturar el id_rsa para entrar dentro de la máquina víctima sin
proporcionar credenciales:
{{pasted_image_20230801110146.png|}}
Tenemos la clave privada de la máquina víctima, donde tendremos que darle los
permisos:
{{pasted_image_20230801110236.png|}}
Y ahora si la usamos para iniciar sesión, no debería pedirnos credenciales:
{{pasted_image_20230801110311.png|}}
===== Persistencia ssh como root =====
Para realizar pivoting o conseguir una mejor persistencia puede ser muy útil
obtener un acceso como root vía ssh una vez hayamos escalado privilegios, por
tanto primero debemos ser usuario root:
{{pasted_image_20230830084514.png|}}
Y abrimos el fichero de configuración de ssh, donde debemos ver que el acceso
por ssh como root esté habilitado:
sudo nano /etc/ssh/sshd_config
{{pasted_image_20230830084706.png|}}
Ahora desde la máquina atacante, dentro del directorio de /root/.ssh debemos
crear una clave pública que enviaremos a la máquina víctima:
{{pasted_image_20230830084904.png|}}
{{pasted_image_20230830084945.png|}}
Este ''id_rsa.pub'' lo llamaremos ''authorized_keys'':
{{pasted_image_20230830085020.png|}}
Y nos compartimos el ''authorized_keys'' con la máquina víctima:
{{pasted_image_20230830085113.png|}}
{{pasted_image_20230830085258.png|}}
Y ahora si entramos vía ssh como root a la máquina víctima, ya hemos conseguido
persistencia como root:
{{pasted_image_20230830085344.png|}}
===== Tareas_Crontab =====
Comprobamos los procesos del sistema con el siguiente comando:
ps -ead
Y vemos que el crontab se está ejecutando:
{{pasted_image_20230801104244.png|}}
Pero perdemos la conexión al poco tiempo:
{{pasted_image_20230801105214.png|}}
Por lo que si entramos otra vez y rápidamente creamos en crontab una tarea para
que se cree un servidor http que aloje los archivos del directorio de la máquina
víctima con python:
echo "* * * * * cd /home/student/ && python -m SimpleHTTPServer" > cron # Esto en caso de usar python 2.
{{pasted_image_20230801104952.png|}}
Una vez fuera, si lanzamos un ''nmap'' vemos el puerto 8000 abierto:
{{pasted_image_20230801105339.png|}}
Y podemos obtener una flag:
{{pasted_image_20230801105408.png|}}