Come falsificare / deridere una directory utilizzata da un'applicazione binaria come un'altra directory?


9

Supponiamo che ci sia un'applicazione binaria che scrive sempre i suoi dati /tmp.

Come potrei spoofare / deridere /tmpper il bene di questo binario come qualche altra directory (es. home/tmp)?

Supponiamo che non ho alcun modo di modificare questo binario per forzarlo a utilizzare una directory diversa.

Risposte:


11

È possibile eseguire l'applicazione in un chrootambiente, ovvero /l'applicazione che vede non è reale /. Crei una nuova gerarchia di file system completa e mount ( --bind) tutto ciò di cui hai bisogno. Il punto rilevante è: È possibile montare il vero ~/tmpal /tmpnel chrootnell'ambiente.

Invece di usare chroot(che richiede il privilegio di superutente) puoi fare più o meno lo stesso con i contenitori Linux ( lxc). Non ho familiarità, lxcma poiché si tratta di un normale processo utente per il sistema host, non è necessario essere il superutente per tali configurazioni all'interno del contenitore.


Grande risposta, non aveva sentito parlare di uno chrooto di lxcessere in grado di fare questo. È anche bello sapere che esiste un modo per realizzarlo senza essere un superutente.
Nobilis,

3
@Nobilis 98 voti mancanti perché questo venga riconosciuto come un'ottima risposta ...
Hauke ​​Laging,

2
Attenzione, però, che chrootrichiede una configurazione aggiuntiva (si sta sostituendo l'intero /, e non solo /tmp, in modo che qualsiasi accesso a /etc, /var, ecc, sarà anche all'interno del "carcere") e crea problemi di sicurezza del proprio (il programma "imprigionato" può essere in grado di manipolare parti del file system che normalmente sarebbero vietate se non si è attenti alle autorizzazioni durante l'impostazione del falso /).
IMSoP

@IMSoP Ti dispiacerebbe spiegare "potrebbe essere in grado di manipolare parti del file system che normalmente sarebbero vietate" in modo più dettagliato?
Hauke ​​Laging,

@HaukeLaging Se il nuovo /non è limitato alla sola scrittura root, l'utente "imprigionato" può creare o sostituire file che sembrano trovarsi in posizioni chiave del sistema, come /etc/passwd; questo può quindi essere utilizzato per l'escalation dei privilegi che non sarebbe possibile al di fuori di chroot. Molti server FTP Linux, che tradizionalmente usano chrootper nascondere il resto del filesystem, ora si rifiutano di farlo se la directory è scrivibile da un utente non root.
IMSoP

8

La maggior parte dei software compatibili con POSIX onorerebbe la variabile d'ambiente TMPDIR , ad es

env TMPDIR=~/mytmp  /path/to/application
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.