Jump to content

Sicherheitslücke in Vista RC1 gefunden ?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hi,

Ich bin auf ein Phänomen gestossen, was mir

1. einige Kopfschmerzen bereitet

2. eine SIcherheistlücke zu sein scheint.

 

Ich verwende seit ein paar Jahren zum Scripten AutoIt.

AutoIt 3.2.01 lies sich problemlos unter Vista Build 5600 installieren. Auch kompilierte AutoIt Scripte laufen meist recht gut unter Vista.

Bei einem Script ist mir nun etwas aufgefallen:

 

Starte ich ein Script, dass Daten nach C:\Program Files kopieren möchte unter normalen Userrechten scheitet das Script beim einkopieren der Daten in dieses Verzeichnis (was vollkommen OK ist)

 

Aber: Das Verzeichnis wird erstellt (unter nicht Administratorrechten) und kann in dem Programm genutzt werden, um zB INI-Datein oder Logdateien zu schreiben, etc.

 

Das merkwürdige dabei ist, dass das eben erstellt Verzeichnis nicht mit dem Windows Explorer sichtbar ist (auch nicht mit DIR über die Eingabeaufforderung)

Ich benutzte den Editor PDPad, der einen brauchbaren Dateieditor hat, dort ist das frische Verzeichnis sichtbar.

 

Wird das Script unter Administrator ausgeführt verhält sich alles wie gewohnt.

 

#cs ----------------------------------------------------------------------------

AutoIt Version: 3.2.0.1
Author:         Nathan von Alemann, GST Informationmanagement GmbH

#ce ----------------------------------------------------------------------------

; Script Start

$Dir = @ProgramFilesDir & "\Test\"
$file = @ScriptDir & "\calc.exe" # sollte im ScriptDir lvoriegen

If DirCreate($Dir) Then
    msgBox(4096,"DirCreate","Creation of dir: " & $Dir & " successfully!")
Else
    msgBox(4096,"DirCreate","Creation of dir: " & $Dir & " FAILED!")
EndIf

If FileExists($Dir) Then
   MsgBox(4096, "FileExists", $Dir & " exists.")
Else
   MsgBox(4096,"FileExists", $Dir & " does not exist.")
EndIf

If FileExists($file) Then
   MsgBox(4096, "FileExists", $file & " exists.")
Else
   MsgBox(4096,"FileExists", $file & " does not exist.")
EndIf

If FileCopy($file,$Dir) Then
   MsgBox(4096, "FileCopy", "Copy of " & $file & " to " & $Dir & " successfully.")
Else
   MsgBox(4096,"FileCopy", "Copy of " & $file & " to " & $Dir & " FAILED.")
EndIf

 

 

Kann sich das jemand erklären?

Erstellen eines Verzeichnisses, dass im Dateisystem nicht mehr unter normalen Umständen sichtbar ist und eigentlich nicht unter den Benutzerrechten hätte angelegt werden dürfen ?

 

Gruß Nathan

Geschrieben

Ich hoff das ich jetzt nicht komplett was Falsches erzähle :D

 

Aber wenn ich mich richtig an die letzten Big-Day's erinnere "it's not a bug, it's a feature", bietet Vista eine Funktion um Programme welche Administrative rechte benötigen in einem Modus zu starten, das dem betreffenden Programm vorgeschwindelt wird das es die Betreffenden rechte besitzt um die gewünscht Operation durchzuführen.

 

Es soll als wie einen weiteren Layer vor der Datenschicht handeln und die betreffenden Operation abfangen und in einem getrenten bereich ausführen.

 

Ein effektives löschen der Datei sollte nicht funktioneren und ob es Dauerhaft ist weiß ich auch nicht . Eventuell findet man im googel oder im msdn was

Geschrieben

Wenn ich mich recht erinnere, ist das ein Feature von Vista. Das soll wohl hartnäckige Programme lauffähig machen, die z.B. unbedingt INI-Dateien nach C:\Programme schreiben wollen oder aus anderen Gründen nur mit Adminrechten laufen. Diese Dateien sind dann aber nur im jeweiligen Usercontext sichtbar. Der USer hat aber keine Möglichkeit Dateien ohne Berechtigung zu überschreiben.

 

Sorry mir fällt der Name dazu nicht ein. Vielleicht kennt sich einer meiner Kollgen damit schon besseraus.

 

-Zahni

Geschrieben

Das Feature heisst Virtual Store

 

Windows Vista Deployment Enhancements :

file and registry redirection. [..] Windows Vista enables these applications to run in a protected user environment by redirecting the writes to a virtual store, thus "tricking" the applications into thinking they are still running with full administrative privileges.

 

c't 17/2005, S. 20: Windows Vista :

So scheint das System nichts dagegen zu haben, wenn etwa eine Anwendung versucht, ins Windows-Verzeichnis zu schreiben. In Wirklichkeit verweigert es den Zugriff jedoch, mosert aber deswegen nicht rum, sondern leitet den Schreibvorgang kurzerhand und für die Anwendung transparent in einen anderen Ordner um („Virtual Store\<Konto-SID>\Windows“), dessen Inhalt es wiederum in den Windows-Ordner einblendet.

 

Das von dem Script erstellte Verzeichniss liegt unter:

C:\Users\<USERNAME>\AppData\Local\VirtualStore\Program Files\Test

 

Danke und Gruß,

Nathan

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...