it-swarm-eu.dev

Warum müssen Sie Administrator sein, um einen Symlink in Windows zu erstellen?

Unter Linux kann jeder Benutzer Symlinks erstellen, aber unter Windows benötige ich eine Admin-Befehlszeile, oder mklink schlägt fehl. Warum ist das so?

71
ripper234

Standardmäßig können nur Administratoren symbolische Links erstellen, da sie die einzigen sind, die über die Berechtigung SeCreateSymbolicLinkPrivilege verfügen, die unter Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\ gewährt.

Aus Microsoft TechNet: Sicherheitsrichtlinieneinstellungen neu für Windows Vista :

Symbolische Links (Symlinks) können Sicherheitslücken in Anwendungen aufdecken, die nicht für den Umgang mit symbolischen Links ausgelegt sind.

23
ordag

Dies ist nicht mehr ganz (siehe unten) der Fall ab Windows 10 Insider Build 14972 (Windows 10 Creators Update ~ 1703).

Aus den Kommentaren unter dem Blog-Beitrag geht jedoch hervor, dass Bedenken hinsichtlich der in den anderen Antworten genannten Probleme weiterhin bestehen. Um dieses neue Verhalten nutzen zu können, müssen Sie Folgendes tun:

  • aktivieren Sie den Entwicklermodus auf Ihrem Computer
  • pass a SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE Flag zur CreateSymbolicLink API
8
MayeulC

Linux hat eine unterteilte Datei-/Benutzerstruktur. Das bedeutet, dass "Programm A" "Aufgabe B" nur ausführen kann, wenn es sich auf "Speicherplatz C" bezieht. Symlinks wirken sich also logistisch nicht wirklich auf die Risikodurchdringung aus, da das gesamte Betriebssystem von der Annahme einer Aktion-> Berechtigung abhängt.

Oder anders ausgedrückt: Wenn Sie ein Hacker sind, der nur über Berechtigungen auf niedriger Ebene verfügt, hilft es Ihnen nicht, eine Unmenge von Symlinks zu erstellen. Unter Linux oder MacOS hilft es Ihnen also nicht.

Unter Windows gibt es jedoch kein "Programm A", das ein anderes Programm als die angemeldete Person ausführt. Die angemeldete Person kann also "Aufgabe B" ausführen, wo immer sie möchte. Es hilft Ihnen also ENDGÜLTIG, auf die Ebene der Symlinks vorzudringen, da Sie häufig gefundene echte Dateien mit viraler Nutzlast überschreiben und verbergen können, dass Sie es getan haben.

Ohne die Schutzstufe symlink könnte ein Virus Sie infizieren und als Nutzlast viele Symlinks ausführen, um beispielsweise "Explorer.exe" Zu einer Fälschung "exactly-as-windows-made-it-except-with-a-payload Explorer.exe Umzuleiten. ".

Warum würdest du das tun? Ganz ehrlich, es sind die Schlüssel zum Königreich. Sie könnten diesen Computer zuverlässig für einen Bot rekrutieren, der theoretisch seinen Weg in die Zukunft usw. aktiviert. Es gibt eine Million Möglichkeiten, warum dies besser ist als nur "eine Infektion zu haben", da die meisten Leute sie entfernen, wenn sie sie sehen, und dies könnte verborgen sein.

5
Mr Heelis

Ich habe den Grund gefunden, als Vista gestartet wurde. Der angegebene Grund nur für Administratoren ist sehr einfach. Es handelt sich nicht um nicht spezifizierte Sicherheitsprobleme, sondern um Tausende von Softwareteilen, die aktualisiert werden müssen, um API-Aufrufe zu verwenden, die vor dem Hinzufügen buchstäblich nicht vorhanden waren, um Sicherheitslücken beim Durchlaufen symbolischer Links zu vermeiden.

Windows ist schrecklich anfällig für symbolische Linkrennen. Es gibt Möglichkeiten, dies zu vermeiden, aber praktisch keine Anwendungen verwenden die APIs überhaupt so. Selbst Microsoft akzeptiert keine Sicherheitslücken, die symbolisches Link-Racing beinhalten. Ich habe gerade vor drei Monaten versucht, einen zu melden.

4
Joshua

Hardlinks und Verzeichnisverbindungen befinden sich nur innerhalb einer Partition (es kann keine feste Verbindung von einem Laufwerk zu einem anderen oder sogar zu einem Netzwerkspeicherort bestehen).

SymLinks können andererseits auch von einem Ort im System, der "sicher" erscheint, zu einem Netzwerkstandort verlinken.

1
StefanA