Ktoś na Youtube twierdzi, że ma keylogger na Ubuntu, który nie został ani uruchomiony ani zainstalowany jako root. Poniższy link pokazuje wersję demonstracyjną.
http://www.youtube.com/watch?v=Y1fZAZTwyPQ
Pomimo ich twierdzeń przeciwnych, osoba ta mogła zainstalować go jako root przed demonstracją wideo. Czy jest jakiś inny półwiarygodny dowód, że jest to naprawdę możliwe bez rootowania w celu instalacji lub wykonania?
AKTUALIZACJA: Oprogramowanie wymienione w odpowiedzi z 24 czerwca nie zainstalowałoby się bez sudo / root. Dodałem nagrodę każdemu, kto poda link do działającego oprogramowania keyloggera dla Linuksa, które można zainstalować i uruchamiać ze zwykłymi uprawnieniami użytkownika.
Odpowiedzi:
Tak, to prawda. Jeśli zostałeś wykorzystany przez przeglądarkę, a atakujący może uruchomić kod z uprawnieniami użytkownika, może zarejestrować program za pomocą funkcji autostartu GNOME lub KDE, które uruchamiają programy podczas logowania. Każdy program może uzyskać kody skanowania naciśniętych klawiszy w systemie X Window. Można to łatwo zademonstrować za pomocą polecenia xinput. Szczegółowe informacje można znaleźć w blogu na temat izolacji GUI .
źródło
Koncepcja tego filmu jest w 100% prawdziwa, a kod jest bardzo prosty.
Zidentyfikuj swój identyfikator klawiatury za pomocą:
xinput --list
Rejestruj naciśnięcia klawiszy za pomocą:
xinput --test $id
Dopasuj liczby do kluczy za pomocą:
xmodmap -pke
źródło
Tak to mozliwe.
Możesz wypróbować na swoim komputerze z podobnym oprogramowaniem lkl .
źródło
make install
spowodowało błądcannot create regular file '/usr/local/bin/lkl': Permission denied
. Uruchomieniesudo make install
nie dało błędu, ale próba uruchomienia lkl dała kolejny błądHave to be root to perform a iopl()!
.Nie obejrzałem tego filmu, więc odpowiadam na wrażenie, jakie mam na temat tego, co twierdzi z wątku SU, a nie z cytowanego przez ciebie filmu.
Jeśli osoba atakująca może uruchomić kod na komputerze jako użytkownik, może zarejestrować naciśnięcia klawiszy.
No cóż. Wszystkie uruchomione aplikacje mają dostęp do naciśnięć klawiszy. Jeśli piszesz rzeczy w przeglądarce, przeglądarka ma dostęp do naciśnięć klawiszy.
Ach, mówisz, ale co z logowaniem naciśnięć klawiszy w innej aplikacji? Tak długo, jak inna aplikacja działa na tym samym serwerze X, można je nadal rejestrować. X11 nie próbuje izolować aplikacji - to nie jest jego zadanie. X11 pozwala programom definiować globalne skróty, co jest przydatne w metodach wprowadzania, do definiowania makr itp.
Jeśli atakujący może uruchamiać kod jako użytkownik, może także czytać i modyfikować pliki oraz powodować wszelkiego rodzaju inne szkody.
To nie jest zagrożenie. Jest to część normalnych oczekiwań działającego systemu. Jeśli zezwolisz atakującemu na uruchamianie kodu na twoim komputerze, twój komputer nie będzie już bezpieczny. To tak, jakbyś otworzył drzwi wejściowe i wpuścił do środka mordercę siekiery: jeśli zostaniesz rozszczepiony na pół, to nie dlatego, że twoje drzwi wejściowe są niepewne.
Keylogger może rejestrować tylko klawisze naciśnięte przez zainfekowanego użytkownika. (Przynajmniej tak długo, jak zarażony użytkownik nie wpisze hasła sudo).
źródło
Jest to możliwe w 100%. W przypadku ttys / ptys (tryb tekstowy) najprostszym sposobem jest dodanie podkładki do / bin / {ba, da, a} sh (np. Drugiego segmentu .code, RX) i zmiana punktu wejścia (podobnie jak ELF wirus mógłby). Z wyjątkiem tego, w tym przypadku można zmodyfikować ~ / .profile lub ~ / .bashrc (itp.), Aby, jako bardzo prosty hipotetyczny model:
exec ~ / .malicious_programme
który może załadować dynamiczny kod współdzielonego obiektu, aby ukryć złośliwy program (przykład: zezwól na odczyt i modyfikację pliku .profile, ale ukryj wiersz. i / lub ukryj program).
Następnie można użyć systemu pty (7) UNIX98 lub nawet po prostu potoku (2), aby zapisać wszystkie dane wejściowe w rozwidlonej powłoce, zakładając, że fd nie jest oznaczony FD_CLOEXEC, a nawet zmienić dane wejściowe użytkownika w powłoce.
W X11, chociaż kdm / gdm / xdm działa jako setuid root (lub odpowiednik możliwości [patrz setcap (8)] lub inny model zabezpieczeń, którego używasz, jeśli nie jest domyślny), sprawy stają się oczywiście bardziej skomplikowane. Czy można podnieść uprawnienia? iopl (2) lub ioperm (2) ułatwia życie dzięki bezpośredniemu dostępowi do portów klawiatury 0x60 / 0x64 na x86. Ponieważ zakładamy, że nie możesz, musimy poszukać alternatywnej trasy. Znam kilka, ale nie jestem do końca pewien, czy chcesz rozprawy, w jaki sposób jest to możliwe i jakie są związane z tym interfejsy.
Wystarczy powiedzieć, że trojany z pierścieniem 3, nie będące superużytkownikami, są całkiem możliwe na * nix, pomimo izolacji procesu, w wyniku różnych problemów (szczególnie z X), które dodały funkcje dla demonów trybu użytkownika w celu zapewnienia np. Tekstu -to-mowa obsługa wszystkich aplikacji bez narażania bezpieczeństwa systemu. Już nakreśliłem taki, który działa analogicznie do ttysnoops (który już dawno wygasł) i nie wymaga rootowania. Mam przykładowy kod dla tego przypadku (który zawierałby wewnętrzne terminale w X), ale jak dotąd nie opublikowałem go. Jeśli chcesz uzyskać więcej informacji, skontaktuj się ze mną.
źródło
/bin
bez uprawnień?Tak, możliwe jest instalowanie oprogramowania bez uprawnień su lub sudo; jednak zwykle dzieje się tak poprzez exploit eskalacji uprawnień. To wideo całkiem nieźle radzi sobie z możliwościami tego keyloggera, ale pomija trochę szczegółów na temat instalacji keyloggera. Może tu być trochę podstępu, ale trudno jest stwierdzić na podstawie samego filmu.
źródło
su
lubsudo
, ale exploit umożliwiający eskalację uprawnień dałby osobie atakującej root - inaczej „superużytkownik” lub „su”.Do celów testowych stworzyłem keylogger TTY, który może dynamicznie dołączać się do tty użytkownika, a program nie musi być instalowany przez root i może być używany z dowolnego konta. Po podłączeniu rejestruje dane wejściowe pasujące do wzorca podanego w wierszu poleceń podczas uruchamiania programu.
źródło
Jest to możliwe w systemach takich jak Crunchbang (dystrybucja oparta na Debianie), po prostu dodaj uprawnienia do pliku sudoers za pomocą nano visudo w terminalu i dodaj keylogger do autostartu, takiego jak logkeys dla Linuksa, na przykład logkeys --start --output /home/user/.secret /log
Powodzenia
źródło