Keylogger Linux bez roota lub sudo! Czy jest to prawdziwe?

29

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.

Mike Rowave
źródło
Wierzę, że można to łatwo zrobić na poziomie X. Pomyśl tylko o programach z globalnymi skrótami.
Denis Nikolaenko,
Aby zapobiec keyloggerom systemu X Window, musisz zaimplementować SELinux dla X. O ile mi wiadomo, żadna szeroko rozpowszechniona dystrybucja Linuksa nie robi tego od razu. nsa.gov/research/_files/selinux/papers/x11/t1.shtml
Denis Nikolaenko
Czy znasz jakieś działające przykłady? Nie widząc, jak działa z pierwszej ręki, jestem sceptyczny. I nie wiedząc, że naprawdę możliwe jest zainstalowanie keyloggera bez uprawnień sudo / root, nie warto zajmować się złożonością konfigurowania AppArmor lub SELinux w celu obrony przed nim.
Mike Rowave,
3
Podsumuj ważne punkty filmu w swojej odpowiedzi. Można go usunąć lub serwer może stać się niedostępny. (Tak, jak piszę, YouTube nie działa.) Raczej niegrzeczne jest wymaganie, aby odwiedzający oglądali film, aby dowiedzieć się, o co chodzi w twoim pytaniu.
Gilles 'SO - przestań być zły'

Odpowiedzi:

29

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 .

Denis Nikolaenko
źródło
12

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

yardena
źródło
11

Tak to mozliwe.
Możesz wypróbować na swoim komputerze z podobnym oprogramowaniem lkl .

bbaja42
źródło
To przerażające, jeśli jest prawdziwe. Zamierzam skonfigurować maszynę wirtualną do testowania. Ale następną łamigłówką jest to, jak natychmiast ją wykryć, jeśli w jakiś sposób instaluje się za pomocą exploita przeglądarki lub czegoś takiego, lub przynajmniej proaktywnie blokuje przesyłanie czegokolwiek do Internetu, jeśli działa.
Mike Rowave,
Mam niewielką wiedzę w tej dziedzinie, ale wiki.ubuntu.com/SELinux może pomóc. Zaktualizuj oryginalne pytanie swoimi ustaleniami. : D
bbaja42,
1
Trudno powiedzieć mistyfikacja, prawdziwe lub mniej niż się wydaje z samego filmu. Mogę już myśleć o miejscach, w których chciałbym zacząć, gdybym chciał nakręcić film pokazujący ogromną lukę w zabezpieczeniach (sztuczki sido, limity czasu sudo, zafałszowane narzędzia systemowe itp. Ad nauseum). Linux w żaden sposób nie jest odporny na atak, aby twierdzić inaczej jest głupi. Ale nie można wyciągać wniosków na podstawie filmów z YouTube.
Andrew Lambert
@Zdziwiony ważny punkt, ale możesz zainstalować lkl i przetestować go na swoim komputerze.
bbaja42
1
Nie działało. Uruchomienie make installspowodowało błąd cannot create regular file '/usr/local/bin/lkl': Permission denied. Uruchomienie sudo make installnie dało błędu, ale próba uruchomienia lkl dała kolejny błąd Have to be root to perform a iopl()!.
Mike Rowave,
9

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

Gilles „SO- przestań być zły”
źródło
Zobacz przepis nr 1 .
Iszi
„Nie zezwalanie atakującemu na uruchamianie kodu na twoim komputerze” to świetny model bezpieczeństwa ... Myślę, że Windows staje się całkowicie bezpieczny, kiedy jest używany przez użytkownika Linuxa (który na pewno nie „zezwoliłby atakującemu na uruchomienie kodu”) ...
gbr
3

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

David McIlwraith
źródło
Pytanie brzmi „bez roota lub sudo”. Jak osoba atakująca zmodyfikowałaby program /binbez uprawnień?
G-Man mówi „Przywróć Monikę”
0

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.

Xenoactive
źródło
Przekręcasz słowa. Może być możliwe zainstalowanie oprogramowania w katalogu systemowym bez uruchamiania su lub sudo, ale exploit umożliwiający eskalację uprawnień dałby osobie atakującej root - inaczej „superużytkownik” lub „su”.
G-Man mówi „Przywróć Monikę”
0

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.

wzis
źródło
-3

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

GodOfWarWebMew
źródło
5
Do edycji pliku sudoers wymagane są uprawnienia root lub sudo.
Mike Rowave,