![]() |
Bezpieczeństwo systemów Linux'owych |
Linux Security - Backdoor'y
|
|
![]() |
[1] [2] |
![]() |
Backdoor'y przeważnie stawiane są na TCP lub UDP, choć łatwo to wykryć, np. przy pomocy netstat'a. Dlatego zaawansowane backdoory nasłuchują
na protokołach niższego poziomu. Taki jest właśnie ICMP.
Jedną z funkcji ICMP jest sprawdzanie zdalnego hosta, czyli jeden host wysyła Echo Message a drugi na nie odpowiada. W ten sposób działa ping. Możemy zobaczyć jak to przebiega odpalając program netstat |
[tronix@localhost]$ netstat -aw Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State raw 0 0 *:icmp *:* 7 raw 0 0 *:tcp *:* 7 |
Widać że maszyna otworzyła raw socket'a i czeka na pingi. W ten sposób
można by np. odpalić program który czekać będzie na 2 pingi a następnie odpali jakiś inny program. Aby ktoś przypadkowo nie odpalił tego
backdoor'a można zrobić tak aby jeden rozmiar pinga był większy o dwa od drugiego.
Najpierw należy uruchomić backdoor'a najlepiej w tle aby przez cały czas nasłuchiwał pakiety ICMP BACKDOOR - kod źródłowy |
Po odpaleniu programu icmp wystarczy jako zwykły użytkownik z dwóch konsol uruchomić pinga:
|
Konsola 1 [tronix@localhost]$ ping -s 60 127.0.0.1 Konsola 2 [tronix@localhost]$ ping -s 58 127.0.0.1 |
Efektem tego będzie uruchomienie przez program icmp jakiegoś innego
programu. Może to też być jakieś polecenie np. chmod a+r /etc/shadow.
Przed skompilowaniem programu icmp.c trzeba zmienić jedną linijkę zaznaczoną na czerwono (należy tu podać scieżkę do własnego skryptu): |
[root@localhost]# vi icmp.c .. if((size-tmpsize)==1) system(""); tmpsize=size; .. |