Odzyskiwanie skasowanej binarki z aktywnego procesu szkodliwego oprogramowania
Napisał: Patryk Krawaczyński
17/06/2020 w Bezpieczeństwo Brak komentarzy. (artykuł nr 739, ilość słów: 212)
S
zkodliwe oprogramowanie na systemach Linux bardzo często usuwa swoje pliki binarne po uruchomieniu. Ma to na celu oszukanie skanerów oraz systemów kontroli integralności, które bazują na analizie plików. Dla przykładu takiego zachowania posłużymy się kopią polecenia sleep
:
cd /tmp cp /bin/sleep x ./x 3600 & rm x
Możemy teraz sprawdzić, czy rzeczywiście plik już nie istnieje:
root@darkstar:~# ls -al /tmp/x ls: cannot access /tmp/x: No such file or directory
Spójrzmy teraz na listę procesów:
root 1437 0.0 0.0 6176 780 pts/1 S 21:11 0:00 ./x 3600
Idąc tropem PID możemy sprawdzić informacje w /proc
root@darkstar:/tmp# ls -al /proc/1437/exe lrwxrwxrwx 1 root root 0 Jun 17 21:15 /proc/1437/exe -> '/tmp/x (deleted)'
System pokazuje nam skasowany obiekt w podanej ścieżce, ale system plików Linuksa tak naprawdę nie usunie tego pliku, dopóki uruchomiony proces ma go w stanie otwartym. Plik tam jest, ale po prostu nie jest nam pokazywany. Link symboliczny /proc/1437/exe z łatwością jest nam w stanie dostarczyć plik binarny, który uruchomił dany proces. Po prostu możemy go skopiować w dowolne miejsce, aby poddać go dalszej analizie:
root@darkstar:/tmp# cp /proc/1437/exe /tmp/y root@darkstar:/tmp# sha1sum /tmp/y bebcce23072c4d831ce8e2822a0858d6aa813067 /tmp/y root@darkstar:/tmp# sha1sum /bin/sleep bebcce23072c4d831ce8e2822a0858d6aa813067 /bin/sleep
Więcej informacji: How To Recover A Deleted Binary From Active Linux Malware