Dodano: czwartek, 17 listopad 2011r.
/usr/sbin/sshd
, /usr/bin/ssh
oraz /usr/bin/ssh-add
własnymi wersjami (w niektórych, nie wszystkich, przypadkach zamienił również sumy kontrolne owych plików, aby oszukać debsums
). Podmienione binarki wydają się być kompilowane specjalnie dla maszyny-celu, z różnymi kluczami szyfrującymi.
Z programów trojana usunięto obsługę libwrap oraz libselinux, zatem ochrona dawana przez /etc/hosts.deny
i podobne jest nieskuteczna. Do wszystkich trzech dodana za to została inna funkcja: zapisują one wszystkie wprowadzone hasła i przechowują je w pamięci współdzielonej. Objawia się to następująco w wyniku polecenia ipcs
:
------ Segmenty pamięci dzielonej ----
klucz id_shm właściciel uprawn. bajtów podłączeń stan
0x0000cf39 98304 root 666 2097220 0
0x0000cd38 131073 root 666 2097220 0
Jak widać segmenty są do zapisu i odczytu dla każdego (prawidłowe uprawnienia to 600
). Kolejnym znakiem rozpoznawczym są rozmiary — zależnie od architektury 2097220 lub 2097224 bajty.
Zapisane hasła są wysyłane na zewnętrzny serwer w pakietach DNS (a właściwie czymś je przypominającym). Ponadto podmieniony sshd
zawiera backdoory — pierwszy z nich pozwala na zalogowanie się bez podania hasła (fakt ten nie zostaje odnotowany w auth.log
), drugi odszyfrowuje i wyświetla informacje zapisane w pamięci współdzielonej (jednocześnie usuwa je z niej).
Steinar Gunderson nie wie w jaki sposób trojan się rozprzestrzenia — prawdopodobnie włamuje się przez SSH metodą siłową lub korzysta ze zgromadzonych na innych maszynach haseł.
Gunderson przygotował prosty, oparty na heurystyce, detektor pozwalający wykryć trojana. Ponadto stara się on odszyfrować informacje zapisane w pamięci podręcznej. Można go pobrać z http://storage.sesse.net/ebury.tar.gz
Wszystkim administratorom zaleca się sprawdzenie sum kontrolnych plików podmienianych przez trojana oraz sprawdzenie wyniku polecenia ipcs
.
Wpisy z bloga/ TOP