Wie fälsche / verspotte ich ein Verzeichnis, das von einer Binäranwendung als anderes Verzeichnis verwendet wird?

9

Angenommen, es gibt eine binäre Anwendung, in die ihre Daten immer geschrieben werden /tmp.

Wie könnte ich /tmpfür diese Binärdatei wie ein anderes Verzeichnis (z. B. home/tmp) fälschen / verspotten ?

Nehmen wir an, ich habe keine Möglichkeit, diese Binärdatei zu ändern, um sie zur Verwendung eines anderen Verzeichnisses zu zwingen.

Nobilis
quelle

Antworten:

11

Sie können die Anwendung in einer chrootUmgebung ausführen, dh /die Anwendung sieht nicht die tatsächliche /. Sie erstellen eine komplett neue Dateisystemhierarchie und mounten ( --bind) alles, was Sie brauchen. Der relevante Punkt ist: Sie die reale mounten kann ~/tmpauf die /tmpin der chrootUmgebung.

Anstatt zu verwenden chroot(was Superuser-Berechtigungen erfordert), können Sie mit Linux-Containern ( lxc) mehr oder weniger dasselbe tun . Ich bin nicht vertraut, lxcaber da es sich um einen normalen Benutzerprozess für das Hostsystem handelt, müssen Sie nicht der Superuser für solche Konfigurationen innerhalb des Containers sein.

Hauke ​​Laging
quelle
Große Antwort hatte , hörte ich nicht entweder chrootoder , lxcdies zu tun fähig ist. Es ist auch sehr schön zu wissen, dass es einen Weg gibt, dies zu erreichen, ohne ein Superuser zu sein.
Nobilis
3
@Nobilis 98 fehlende Gegenstimmen, damit dies als gute Antwort erkannt wird ...
Hauke ​​Laging
2
Bedenken Sie jedoch, dass eine chrootzusätzliche Einrichtung erforderlich (Sie ganz ersetzen /, nicht nur /tmp, um jeden Zugang zu /etc, /varusw., wird auch innerhalb der „Gefängnis“ sein) und schafft Sicherheit Anliegen ihrer eigenen (der „eingesperrt“ Programm kann Sie können Teile des Dateisystems manipulieren, die normalerweise nicht zulässig sind, wenn Sie beim Einrichten Ihrer Fälschung nicht auf die Berechtigungen achten /.
IMSoP
@IMSoP Würde es Ihnen etwas ausmachen, detaillierter zu erklären, dass "möglicherweise Teile des Dateisystems manipuliert werden können, die normalerweise nicht zulässig sind"?
Hauke ​​Laging
@HaukeLaging Wenn das Neue /nicht nur von geschrieben werden rootdarf, kann der "inhaftierte" Benutzer Dateien erstellen oder ersetzen, die sich anscheinend an wichtigen Systempositionen befinden, z /etc/passwd. Dies kann dann für die Eskalation von Berechtigungen verwendet werden, die außerhalb der USA nicht möglich wäre chroot. Viele Linux-FTP-Server, die traditionell chrootzum Ausblenden des restlichen Dateisystems verwendet werden, lehnen dies jetzt ab, wenn das Verzeichnis von einem Nicht-Root-Benutzer beschreibbar ist.
IMSoP
8

Die meisten POSIX-kompatiblen Programme würden die Umgebungsvariable TMPDIR berücksichtigen , z

env TMPDIR=~/mytmp  /path/to/application
HBruijn
quelle