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; .. |