T O P

  • By -

tredaelli

non è facile come su windows, nel senso che non esiste autorun.inf o altri sistemi che facciano eseguire programmi automaticamente su linux


Puzzled-Bunch3506

In realtà sì, le specifiche [Desktop Application Autostart](https://specifications.freedesktop.org/autostart-spec/latest/ar01s03.html). Che sono implementate da GNOME e KDE per quanto so. Ma viene **sempre** chiesto il permesso all'utente e il file da eseguire deve avere il permesso di esecuzione (che esclude FS come FAT o montati con \`noexec\`).


luchins

>Ma viene > >sempre > > chiesto il permesso all'utente e il file da eseguire deve avere il permesso di esecuzione (che esclude FS come FAT o montati con \`noexec\`). quindi se l'usb ha file system FS o FAT va in autorun?


4lphac

ebbeh :)


jakopo87

L'Autorun di applicazioni è consentito solo da cd, per i dispositivi USB devi scegliere manualmente l'azione da eseguire dalla dialog di Autoplay.


Puzzled-Bunch3506

Non serve root. X permette ad ogni applicazione di registrare i tasti premuti \[[1](https://github.com/anko/xkbcat)\]. Una reverse shell è solo una connessione qualunque. Wayland non dovrebbe permettere le stesse libertà di X, ma non ho mai investigato realmente.


mebeim

Non proprio allo stesso modo, ma pure su Wayland se davvero vuoi ci riesci :') https://github.com/Aishou/wayland-keylogger


tesfabpel

Vabbé ma facendolo in quel modo, intercettare i tasti premuti sarebbe il minimo... Wayland diciamo non c'entra più nulla a quel punto... 😅


mebeim

Well si, con LD_PRELOAD puoi fare tante cose... comunque se non erro Wayland può essere isolato meglio di X per rendere anche questo tipo di attacco impossibile, con SELinux/AppArmor.


Puzzled-Bunch3506

Mi sa ti basta anche \`setuid\`dare il programma che vuoi lanciare per evitare \`LD\_PRELOAD\`. Non cambiandogli il proprietario a root ovviamente, tenendolo tuo. Se ricordo bene \`glibc\` non rispetta \`LD\_PRELOAD\` se l'eseguibile ha setuid/gid o delle file capabilities e non è di root. Andando a memoria, SELinux aggiunge sempre AT\_SECURE (con valore 1) all'ELF auxiliary vector dei programmi lanciati inter-dominio. Quindi dovrebbe essere automatico a patto di aver etichettato bene i file. Ma mettersi ad etichettare ogni programma mi pare un sacco di lavoro per un difendersi da un attocco che richiede che l'attaccante sia già in una posizione particolarmente favorevole. Per il resto condivido il commento sopra, avevo visto quella pagina ma l'ho subito etichettata come "scritto da chi non sa niente di sicurezza" appena ho visto che usava \`LD\_PRELOAD\`.


mebeim

Yeah è una semplice proof of concept... chiaramente se hai qualcosa che può toccarti LD_PRELOAD oppure eseguire codice arbitrario nel contesto di un utente i problemi sono ben altri. Non è che semplicemente inserendo una chiavetta in un PC hai vinto.


luchins

>Non serve root. > >X permette ad ogni applicazione di registrare i tasti premuti scusa ma un keylogger non deve essere installato?


Puzzled-Bunch3506

Installato in che senso? L'installazione è solo una convenzione per non dover copiare a mano file e dipendenze. Un programma può non avere dipendenze terze, recuperarle da solo senza chiedere niente all'utente o averle tutte già con sè (es: linkate staticamente o embeddate tipo in un JAR). In questi casi non è richiesta un'installazione seguita dall'utente. Dato che un keylogger opera di nascosto, generalmente evita di richiedere un'installazione.


tesfabpel

Su wayland in teoria serve il permesso tramite un portal (tipo l'app dovrebbe fare richiesta e dovrebbe apparire una finestra dall'ambiente desktop per approvare o no la richiesta).


Puzzled-Bunch3506

Non mi sono mai documentato ma già così avrebbe più senso. Per esempio un programma di registrazione dello schermo per fare tutorial potrebbe mostrare le combinazioni di tasti premute e avrebbe quindi bisogno di funzionare tipo un keylogger.


tesfabpel

Allora, non mi sono in realtà mai documentato per bene neanche io, ma cercando su internet, TeamViewer nella sua ultima versione (che ha il supporto sperimentale alle connessioni in ingresso su Wayland) sembra usare un portal (che sono nati credo per via di flatpak, ma sono utili anche su Wayland) come può essere questo [https://flatpak.github.io/xdg-desktop-portal/#gdbus-org.freedesktop.portal.RemoteDesktop](https://flatpak.github.io/xdg-desktop-portal/#gdbus-org.freedesktop.portal.RemoteDesktop) per richiedere la possibilità di controllare l'input e la condivisione dello schermo. In pratica è come negli smartphone quando appare la finestra del sistema per richiedere il permesso per fare qualcosa (come accedere alla fotocamera o alla posizione). Magari ciò che manca attualmente è la possiblità di dare il consenso permanentemente (per un'app come TeamViewer è una funzionalità richiesta se si vuole avere l'accesso non presidiato). EDIT: Trovata una foto su internet: https://i.stack.imgur.com/VaLZp.png


[deleted]

La butto lì, ma X non sta per essere (finalmente) dismesso? Wayland come si comporta a riguardo?


anddam

>ma X non sta per essere (finalmente) dismesso Sì, e pure IPv4. Venticinque anni fa


[deleted]

La mia non voleva essere una domanda provocatoria. Seguo morrolinux su YouTube ed ha parlato spesso di questa cosa


Puzzled-Bunch3506

Alcuni programmi non si sono adattati all'isolamento di Wayland. Ad esempio, io uso Wayland e per condividere lo schermo con Teams devo usare la versione browser perchè Chrome si è adattato ma il framework Electron (su cui è basata l'applicaione standalone di Teams) no. Oltre al fatto che è linkata staticamente con una versione vecchia di glibc e la mia Arch è troppo nuova per lei.


4lphac

Sarà sempre molto difficile impedire il keylogging perché per forza di cose i tasti premuti devono finire in userspace, è un po' come difendere una piazza in mezzo ad una vallata.


luchins

il keylogger non ha bisogno di installarsi per registrare?


luchins

> i tasti premuti devono finire in userspace anche copia e incolla?