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

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...