Keylogger Linux senza root o sudo! È vero?


29

Qualcuno su Youtube afferma di avere un keylogger su Ubuntu che non è stato né eseguito né installato come root. Il link seguente mostra una demo del suo funzionamento.

http://www.youtube.com/watch?v=Y1fZAZTwyPQ

Nonostante le loro affermazioni contrarie, questa persona avrebbe potuto installarlo come root prima di dimostrarlo per il video. Esistono altre prove semi credibili che ciò sia realmente possibile senza root per l'installazione o l'esecuzione?

AGGIORNAMENTO: Il software a cui fa riferimento la risposta del 24 giugno non si installa senza sudo / root. Ho aggiunto una generosità a chiunque fornisca un collegamento a un software di keylogger Linux funzionante che può essere installato ed eseguito con privilegi utente regolari.


Credo che questo possa essere fatto facilmente al livello X. Basta pensare ai programmi con scorciatoie globali.
Denis Nikolaenko,

Per prevenire i keylogger del sistema X Window, devi implementare SELinux per X. Per quanto ne sappia, nessuna distribuzione Linux diffusa lo fa immediatamente. nsa.gov/research/_files/selinux/papers/x11/t1.shtml
Denis Nikolaenko

Conosci qualche esempio di lavoro reale? Senza vederlo funzionare in prima persona, rimango scettico. E senza sapere che è davvero possibile installare un keylogger senza i privilegi di sudo / root, non vale la pena occuparsi della complessità di configurare AppArmor o SELinux per difendersi da esso.
Mike Rowave,


3
Riassumi i punti importanti del video nella tua risposta. Potrebbe essere eliminato o il server potrebbe non essere disponibile. (Sì, mentre sto pubblicando, Youtube non funziona.) È anche piuttosto scortese richiedere ai visitatori di guardare un video per capire di cosa tratta la tua domanda.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


29

Sì, è reale. Se sei stato sfruttato tramite un browser e un utente malintenzionato può eseguire il codice con i tuoi privilegi utente, può registrare un programma tramite le funzionalità di avvio automatico di GNOME o KDE che eseguono programmi al login. Qualsiasi programma può ottenere codici di scansione dei tasti premuti in X Window System. È facilmente dimostrato con il comando xinput. Vedi il post sul blog sull'isolamento della GUI per i dettagli.


12

Il concetto in quel video è reale al 100% e il codice è molto semplice.

Identifica il tuo ID tastiera con: xinput --list

Registra i tasti con: xinput --test $id

Abbina i numeri ai tasti con: xmodmap -pke


11

Sì, è possibile.
Puoi provarlo sul tuo computer con un software simile lkl .


È spaventoso se è reale. Ho intenzione di impostare una macchina virtuale in cui testarlo. Ma poi il puzzle successivo è come rilevarlo immediatamente se si installa in qualche modo attraverso un exploit del browser o qualcosa del genere, o almeno impedirlo proattivamente dalla trasmissione di qualcosa a Internet se funziona.
Mike Rowave,

Ho poca conoscenza della zona, ma wiki.ubuntu.com/SELinux potrebbe aiutare. Sentiti libero di aggiornare la domanda originale con i tuoi risultati. : D
bbaja42

1
Difficile dire una bufala, reale o meno di quanto sembri da un solo video. Posso già pensare a dove iniziare se volevo realizzare un video supponendo di dimostrare un'enorme vulnerabilità (trucchi suid, timeout sudo, strumenti di sistema adulterati, ecc. Fino alla nausea). In nessun modo Linux è invulnerabile agli attacchi, per rivendicare il contrario è sciocco. Ma non si possono trarre conclusioni basate sui video di Youtube.
Andrew Lambert,

@Semplice punto stupito, ma sentiti libero di installare lkl e testarlo sul tuo computer.
bbaja42,

1
Non ha funzionato L'esecuzione ha make installprodotto l'errore cannot create regular file '/usr/local/bin/lkl': Permission denied. L'esecuzione sudo make installnon ha dato l'errore, ma poi provare a eseguire effettivamente lkl ha dato un altro errore Have to be root to perform a iopl()!.
Mike Rowave,

9

Non ho visto il video, quindi sto rispondendo all'impressione che ho di ciò che afferma dal thread SU piuttosto che dal video che citi.

Se un utente malintenzionato può eseguire il codice sul computer come utente, può registrare le pressioni dei tasti.

Bene, duh. Tutte le applicazioni in esecuzione hanno accesso ai tasti premuti. Se stai scrivendo elementi nel tuo browser, il tuo browser ha accesso ai tasti premuti.

Ah, dici, ma per quanto riguarda la registrazione dei tasti preme in un'altra applicazione? Finché l'altra applicazione è in esecuzione sullo stesso server X, possono comunque essere registrati. X11 non tenta di isolare le applicazioni, non è il suo lavoro. X11 consente ai programmi di definire scorciatoie globali, utile per i metodi di input, per definire macro, ecc.

Se l'utente malintenzionato può eseguire il codice come utente, può anche leggere e modificare i file e causare altri tipi di danni.

Questa non è una minaccia. Fa parte delle normali aspettative di un sistema funzionante. Se consenti a un utente malintenzionato di eseguire codice sul tuo computer, il tuo computer non sarà più sicuro. È come se aprissi la tua porta d'ingresso e permettessi a un assassino di ascia di entrare: se poi ti fendi in due, non è perché la tua porta d'ingresso è insicura.

Il keylogger può registrare solo i tasti premuti dall'utente infetto. (Almeno finché l'utente infetto non digita la password sudo.)


Vedi la legge n . 1 .
Iszi,

"Non consentire a un utente malintenzionato di eseguire codice sul tuo computer" è un ottimo modello di sicurezza ... Immagino che Windows diventi perfettamente sicuro quando viene utilizzato da un utente Linux (che sicuramente non "consentirebbe a un utente malintenzionato di eseguire codice") ...
martedì

3

È possibile al 100%. Per ttys / ptys (modalità testo), il modo più semplice è aggiungere uno shim a / bin / {ba, da, a} sh (ad es. Un secondo segmento .code, RX) e cambiare il punto di ingresso (proprio come un ELF virus sarebbe). Escludendo l'accesso a questo in questo caso, si può modificare ~ / .profile o ~ / .bashrc (ecc.) In, come un modello ipotetico molto semplice:

exec ~ / .malicious_programme

che può caricare il codice dinamico di oggetti condivisi per nascondere il programma dannoso in questione (esempio: consentire la lettura e la modifica di .profile, ma nascondere la riga. E / o nascondere il programma.)

Si può quindi usare il sistema UNIX98 pty (7) o anche semplicemente pipe (2) per registrare tutti gli input in una shell biforcuta, supponendo che fd non sia contrassegnato con FD_CLOEXEC e persino cambiare l'input dell'utente nella shell.

In X11, sebbene kdm / gdm / xdm funzionino come setuid root (o l'equivalente in capacità [vedi setcap (8)] o qualunque modello di sicurezza stai usando se non predefinito), le cose diventano più complicate, ovviamente. Se uno può elevare i privilegi? iopl (2) o ioperm (2) semplificano la vita con l'accesso diretto alle porte della tastiera 0x60 / 0x64 su x86. Dato che supponiamo che tu non possa, dobbiamo cercare una strada alternativa. Ne conosco diversi, ma non sono del tutto sicuro che tu voglia una tesi su come sia possibile e sulle interfacce coinvolte.

Basti dire che l'anello 3, i trojan non superutente sono abbastanza possibili su * nix, nonostante l'isolamento del processo, a causa di vari problemi (in particolare con X) che ha aggiunto funzionalità per i demoni in modalità utente per fornire, ad esempio, testo supporto vocale per tutte le app senza compromettere la sicurezza del sistema. Ne ho già delineato uno che funziona in modo analogo a ttysnoops (che è molto più avanti della sua data di scadenza), e non richiede root. Ho un codice di esempio per questo caso (che includerebbe terminali interni in X), ma non l'ho ancora pubblicato. Se desideri maggiori informazioni, non esitare a contattarmi.


La domanda dice "senza root o sudo". In che modo un utente malintenzionato modifica un programma /binsenza privilegi?
G-Man dice "Ripristina Monica" il

0

Sì, è possibile installare software senza i privilegi su o sudo; tuttavia, ciò avviene in genere tramite un exploit di escalation di privilegi. Quel video fa un buon lavoro sulle capacità di quel keylogger, ma lascia un po 'di dettagli sull'installazione del keylogger. Potrebbe esserci un po 'di inganno qui, ma è difficile da dire solo dal video.


Stai contorcendo le parole. Potrebbe essere possibile installare il software in una directory di sistema senza eseguirlo su o sudo, ma un exploit di escalation di privilegi darebbe il privilegio di root dell'attaccante, ovvero il privilegio "superutente" o "su".
G-Man dice "Ripristina Monica" il

0

A scopo di test, ho creato un keylogger TTY che può collegarsi dinamicamente al tty di un utente e il programma non deve essere installato da root e può essere utilizzato da qualsiasi account. Una volta collegato, registrerà gli input che corrispondono allo schema indicato sulla riga di comando all'avvio del programma.


-3

È possibile con sistemi come Crunchbang (distro basato su Debian) basta aggiungere permessi al file sudoers usando nano visudo nel terminale e aggiungere keylogger per l' avvio automatico come logkey per Linux, ad esempio logkey --start --output /home/user/.secret / log

In bocca al lupo


5
È necessario il privilegio di root o sudo per modificare il file sudoers.
Mike Rowave,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.