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