Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Umfrageergebnis anzeigen: Interesse an Erklärungen und Screenshot vom Vistatoken?
Ja, hätte Fragen zum Vista Token, aber kein Vista, und wäre für einen Screenshot dankbar. 2 33,33%
Ja, habe zwar Vista, doch davon keinen richtigen Einblick. 1 16,67%
Kein Interesse, finde dazu genug im Netz. 0 0%
Kein Interesse. Ist für mich alles klar, was da passiert. 0 0%
Kein Interesse. So etwas interessiert mich nicht und ist mir zu trocken. 3 50,00%
Brauche ich nicht, ist ja nur für spezielle Sachen. 0 0%
Nein, kein Interesse aus irgendeinem Grund. 0 0%
Teilnehmer: 6. Sie dürfen bei dieser Umfrage nicht abstimmen

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26.02.2009, 18:52   #1 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard "Screenshot" vom Token unter Vista - wie sieht der aus?

Als ich noch kein Vista hatte, habe ich mir oft gewünscht, mal einen Blick auf die einzelnen Token unter Vista werfen zu können - es hat sich dort ja so viel geändert, dass man gar nicht mehr genau sagen kann, ob etwas unter Vista läuft was man für XP geschrieben hat oder ob es nicht läuft.

Wer hat Interesse daran, mal einen "Screenshot" einiger Token unter Vista zu sehen und erklärt zu bekommen, wie sich die Änderungen auswirken?
Falls Interesse besteht, nehme ich mir mal etwas Zeit dafür...
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 28.02.2009, 21:33   #2 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Token des Internet Explorers im Adminaccount
Gruppen im Token:
Gruppennamen / Flags
None / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Jeder / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Administratoren / nur für Verbote, deaktiviert (16)
Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
INTERAKTIV / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Authentifizierte Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Diese Organisation / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
S-1-5-5-0-192418 / nicht abschaltbar + Logon ID, standardm. aktiviert + aktiviert (-1073741817)
LOKAL / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
NTLM-Authentifizierung / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Niedrige Verbindlichkeitsstufe / deaktiviert + aktivierter Integritätslevel (96)

Privilegien im Token:
Privilegienname / Status
SeShutdownPrivilege / deaktiviert
SeChangeNotifyPrivilege / aktiviert + standardmäßig aktiviert
SeUndockPrivilege / deaktiviert
SeIncreaseWorkingSetPrivilege / deaktiviert
SeTimeZonePrivilege / deaktiviert

Wichtige Infos über den Token:
Typ des Tokens: Primärer Token
Elevation Typ des Token (UAC): In den Rechten herabgesetzter Token {3}.
Privilegienstatus des Token: Privilegien sind nicht angehoben {0}.
Registry Virtualisation: aktivierbar, aktiviert
Integritätslevel: Niedrige Verbindlichkeitsstufe
String-SID des Integritätslevels: S-1-16-4096
Mandatory Policy Level: MIC eingeschaltet, IL des Kindprozesses ist der niedrigere aus Datei IL und IL des Parent Prozesses ($3).

_______________________________________________________________

Nicht angehobener Token im Adminaccount:
Gruppen im Token:
Gruppennamen / Flags
None / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Jeder / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Administratoren / nur für Verbote, deaktiviert (16)
Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
INTERAKTIV / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Authentifizierte Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Diese Organisation / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
S-1-5-5-0-192418 / nicht abschaltbar + Logon ID, standardm. aktiviert + aktiviert (-1073741817)
LOKAL / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
NTLM-Authentifizierung / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Mittlere Verbindlichkeitsstufe / deaktiviert + aktivierter Integritätslevel (96)

Privilegien im Token:
Privilegienname / Status
SeShutdownPrivilege / deaktiviert
SeChangeNotifyPrivilege / aktiviert + standardmäßig aktiviert
SeUndockPrivilege / deaktiviert
SeIncreaseWorkingSetPrivilege / deaktiviert
SeTimeZonePrivilege / deaktiviert

Wichtige Infos über den Token:
Typ des Tokens: Primärer Token
Elevation Typ des Token (UAC): In den Rechten herabgesetzter Token {3}.
Privilegienstatus des Token: Privilegien sind nicht angehoben {0}.
Registry Virtualisation: aktivierbar, aktiviert
Integritätslevel: Mittlere Verbindlichkeitsstufe
String-SID des Integritätslevels: S-1-16-8192
Mandatory Policy Level: MIC eingeschaltet, IL des Kindprozesses ist der niedrigere aus Datei IL und IL des Parent Prozesses ($3).

_______________________________________________________________

Angehobener Token im Adminaccount:
Gruppen im Token:
Gruppennamen / Flags
None / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Jeder / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Administratoren / nicht abschaltbar + kann Eigentümer sein, standardmäßig aktiviert + aktiviert (15)
Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
INTERAKTIV / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Authentifizierte Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Diese Organisation / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
S-1-5-5-0-192418 / nicht abschaltbar + Logon ID, standardm. aktiviert + aktiviert (-1073741817)
LOKAL / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
NTLM-Authentifizierung / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Hohe Verbindlichkeitsstufe / deaktiviert + aktivierter Integritätslevel (96)

Privilegien im Token:
Privilegienname / Status
SeIncreaseQuotaPrivilege / deaktiviert
SeSecurityPrivilege / deaktiviert
SeTakeOwnershipPrivilege / deaktiviert
SeLoadDriverPrivilege / deaktiviert
SeSystemProfilePrivilege / deaktiviert
SeSystemtimePrivilege / deaktiviert
SeProfileSingleProcessPrivilege / deaktiviert
SeIncreaseBasePriorityPrivilege / deaktiviert
SeCreatePagefilePrivilege / deaktiviert
SeBackupPrivilege / deaktiviert
SeRestorePrivilege / deaktiviert
SeShutdownPrivilege / deaktiviert
SeDebugPrivilege / deaktiviert
SeSystemEnvironmentPrivilege / deaktiviert
SeChangeNotifyPrivilege / aktiviert + standardmäßig aktiviert
SeRemoteShutdownPrivilege / deaktiviert
SeUndockPrivilege / deaktiviert
SeManageVolumePrivilege / deaktiviert
SeImpersonatePrivilege / aktiviert + standardmäßig aktiviert
SeCreateGlobalPrivilege / aktiviert + standardmäßig aktiviert
SeIncreaseWorkingSetPrivilege / deaktiviert
SeTimeZonePrivilege / deaktiviert
SeCreateSymbolicLinkPrivilege / deaktiviert

Wichtige Infos über den Token:
Elevation Typ des Token (UAC): In den Rechten angehobener Token {2}.
Privilegienstatus des Token: Privilegien im Token angehoben {1}!
Registry Virtualisation: nicht aktivierbar, nicht aktiviert
Integritätslevel: Hohe Verbindlichkeitsstufe
String-SID des Integritätslevels: S-1-16-12288
Mandatory Policy Level: MIC eingeschaltet ($1).

_______________________________________________________________

Token des Subsystems CSRSS:
Gruppen im Token:
Gruppennamen / Flags
Systemverbindlichkeitsstufe / deaktiviert + aktivierter Integritätslevel (96)
Jeder / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Authentifizierte Benutzer / nicht abschaltbar, standardmäßig aktiviert + aktiviert (7)
Administratoren / kann Eigentümer sein, standardmäßig aktiviert + aktiviert (14)

Privilegien im Token:
Privilegienname Status
SeCreateTokenPrivilege / deaktiviert
SeAssignPrimaryTokenPrivilege / deaktiviert
SeLockMemoryPrivilege / aktiviert + standardmäßig aktiviert
SeIncreaseQuotaPrivilege / deaktiviert
SeTcbPrivilege / aktiviert + standardmäßig aktiviert
SeSecurityPrivilege / deaktiviert
SeTakeOwnershipPrivilege / deaktiviert
SeLoadDriverPrivilege / deaktiviert
SeSystemProfilePrivilege / aktiviert + standardmäßig aktiviert
SeSystemtimePrivilege / deaktiviert
SeProfileSingleProcessPrivilege / aktiviert + standardmäßig aktiviert
SeIncreaseBasePriorityPrivilege / aktiviert + standardmäßig aktiviert
SeCreatePagefilePrivilege / aktiviert + standardmäßig aktiviert
SeCreatePermanentPrivilege / aktiviert + standardmäßig aktiviert
SeBackupPrivilege / deaktiviert
SeRestorePrivilege / deaktiviert
SeShutdownPrivilege / deaktiviert
SeDebugPrivilege / aktiviert + standardmäßig aktiviert
SeAuditPrivilege / aktiviert + standardmäßig aktiviert
SeSystemEnvironmentPrivilege / deaktiviert
SeChangeNotifyPrivilege / aktiviert + standardmäßig aktiviert
SeUndockPrivilege / deaktiviert
SeManageVolumePrivilege / deaktiviert
SeImpersonatePrivilege / aktiviert + standardmäßig aktiviert
SeCreateGlobalPrivilege aktiviert + standardmäßig aktiviert
SeRelabelPrivilege / deaktiviert
SeIncreaseWorkingSetPrivilege / aktiviert + standardmäßig aktiviert
SeTimeZonePrivilege / aktiviert + standardmäßig aktiviert
SeCreateSymbolicLinkPrivilege / aktiviert + standardmäßig aktiviert

Wichtige Infos über den Token:
Elevation Typ des Token (UAC): Mit keinem anderen Token verknüpft {1}.
Privilegienstatus des Token: Privilegien im Token angehoben {1}!
Registry Virtualisation: nicht aktivierbar, nicht aktiviert
Integritätslevel: Systemverbindlichkeitsstufe
String-SID des Integritätslevels: S-1-16-16384
Mandatory Policy Level: MIC eingeschaltet ($1).


Erst mal was, um einen blick drauf zu werfen, Erklärungen schiebe ich nach - wird an einigen Stellen bestimmt etwas interessanter werden und birgt wohl ein paar Überraschungen für die, denen das Thema zu trocken ist.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 28.02.2009, 22:10   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von X-MAN
 
Registriert seit: 05.12.2008
Ort: nahe Wernigerode
Beiträge: 1.354
Standard

Hallo @AHT,

unsere Leser werden bei deinen post's die Augen reiben....Du sprichst von "Token"! Kannst Du das Thema etwas allgemeiner darlegen? Es wäre Super, aber ohne viel Fach-Chinesisch...Token, was ist das?


Danke und Grüße an das XProfan-Team!
X-MAN
__________________
Grüße
X-MAN

X-MAN ist offline   Mit Zitat antworten
Alt 28.02.2009, 22:51   #4 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard a) Die kleine Registryfalle

Solange ein Programm normal gestartet wird, arbeitet es selbst in einem Account mit Adminrechten mit einem nicht angehobener Token. Wie man aus dem Screenshot erkennen kann, ist in so einem Token die Gruppe Administratoren deaktiviert. Ein solcher Token hat aber im Registryschlüssel HKEY_LOCAL_MACHINE nur Leserechte, denn Schreibrechte besitzt dort in der Regel nur die Gruppe Administratoren. Alle älteren Programme, die Schreibrechte in HKEY_LOCAL_MACHINE benötigen, sich aber beim Starten keine Adminrechte anmelden, würden unter Vista also gar nicht mehr funktionieren.
Damit ältere Programme trotzdem noch einigermaßen funktionieren, hat sich Microsoft das hier einfallen lassen: Registry Virtualisation
Was ist das aber genau? Ein Programm, bei dem im Token die "Registry Virtualisation" eingeschaltet ist (Standard für normal gestartete Programme), schreibt gar nicht in den Registryschlüssel HKEY_LOCAL_MACHINE, in den eigentlich geschrieben werden soll, sondern in einen extra dafür angelegten Unterschlüssel, nämlich in HKEY_CLASSES_ROOT\VirtualStore\MACHINE.
Beim Auslesen überprüft ein solches Programm dann zuerst diesen Schlüssel, bevor es aus HKEY_LOCAL_MACHINE liest. Das kann zu einer bösen Falle werden, denn solcher Code würde mit Adminrechten evtl. an einer ganz anderen Stelle lesen, als ohne:
Code:
Readini$("HKEY_2","Software\Test","Testeintrag")
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (28.02.2009 um 22:54 Uhr)
AHT ist offline   Mit Zitat antworten
Alt 01.03.2009, 02:09   #5 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Standard

...und hier noch eine Google-Adresse

http://de.wikipedia.org/wiki/Token_(EDV-Netzwerk)

Ich habe mich auch erst schlau gemacht -
Der Andreas überfährt einen ja mit seinem "Fachchinesisch"
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 01.03.2009, 07:54   #6 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Zitat:
Zitat von horsthorn Beitrag anzeigen
...und hier noch eine Google-Adresse

http://de.wikipedia.org/wiki/Token_(EDV-Netzwerk)

Ich habe mich auch erst schlau gemacht -
Der Andreas überfährt einen ja mit seinem "Fachchinesisch"
Ist kein Fachschinesich, sondern grundlegende Sachen die man wissen sollte, um überhaupt unter neueren Betriebsystemen noch Programme schreiben zu können. Unter XP arbeitete quasi jeder mit vollen Rechten, ab Vista ist das nicht mehr so.

Token: Unter Nt basierenden Systemen (NT, 2000, XP, Vista, ...) bekommt jeder Prozesse (also jedes laufende Programm) eine Art "Ausweis" verliehen, der darüber Auskunft gibt, wer es ausführt. Beim Öffnen eines Handles müssen oft Zugriffsrechte angegeben werden (zum Beispiel bei OpenProcess der erste Parameter). Dann wird vom OS anhand unter anderem anhand des Tokens überprüft, ob das anfragende Programm diese Rechte überhaupt besitzt es sie nicht, wird das Handle nicht geöffnet.

Security Descriptor: Ist das Gegenstück zum Token. Objekte, auf die ein Handle geöffnet werden kann (Dateien, Prozesse,...) haben eine solche "Sicherheitsbeschreibung", die angibt, welcher Token auf ein Objekt in welcher Art und Weise Zugriff haben darf.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (01.03.2009 um 20:27 Uhr)
AHT ist offline   Mit Zitat antworten
Alt 01.03.2009, 09:05   #7 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Lächeln

@Andreas
Zitat:
Ist kein Fachschinesich, sondern grundlegende Sachen die man wissen sollte, um überhaupt unter neueren Betriebsystemen noch Programme schreiben zu können. Unter XP arbeite quasi mit vollen Rechten, ab Vista ist das nicht mehr so.
...ich weiß ja, dass du es gut meinst und dein Wissen und Können befinden sich auf einem sehr hohen Level. Aber du musst auch eines berücksichtigen:
Nicht jeder in diesem Thread oder im gesamten Forum hat das Grundwissen, die Ausbildung oder das Talent, alles, was du hier schreibst, auch "verdauen" zu können.
Was ich mit meiner Bemerkung "überfährt" sagen wollte:
Könntest du beim nächsten Mal die Fakten und Tatsachen in "hömoopathischen Dosen" verteilen ? Fast jeder hier (ich auch) wird froh sein, etwas zu lernen. Nur geht das nicht immer so schnell.
Ein schönes Wochenende wünscht
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist offline   Mit Zitat antworten
Alt 01.03.2009, 10:08   #8 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
Beim öffnen eines Handles müssen oft Zugriffsrechte angegeben werden (zum Beispiel bei OpenProcess der erste Parameter).
Da wird die Sache interessant. Erkläre doch mal, welche Unterschiede es zwischen XP und Vista dort gibt und wie man den ersten Parameter vista-sicher angibt?
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 01.03.2009, 20:23   #9 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Da wird die Sache interessant. Erkläre doch mal, welche Unterschiede es zwischen XP und Vista dort gibt und wie man den ersten Parameter vista-sicher angibt?
Du musst zum Beispiel ein Privileg aktivieren, um unter Vista überhaupt noch einen vernünftigen Taskmanager schreiben zu können, anders geht das gar nicht mehr. Da dein Taskmanager aber generell nicht mit Adminrechten läuft, musst du die dir erst mal holen, um überhaupt das Privileg aktivieren zu können. Werde das noch genau auseinandernehmen, auch warum das so ist.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 01.03.2009, 20:32   #10 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
Werde das noch genau auseinandernehmen, auch warum das so ist.
Vorzugsweise demonstriert durch einen Quellcode.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 02.03.2009, 11:15   #11 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Vorzugsweise demonstriert durch einen Quellcode.
Der Quelltext steht, meines Wissens nach, schon hier im Forum (was das Aktivieren von Privilegien angeht).
Adminrechte holt man sich in der fertigen EXE unter Vista so:
Code:
'Quelltext erstellt von AHT
@ShellExec(Par$(0),"RUNAS",1)
...oder noch besser durch Modifizierung des Manifests.
"RUNAS" spricht, genau so wie das Vista-Manifest, die UAC an und es erscheint ein Popup, in dem bestätigt werden muss, dass dem zu startenden Programm Adminrechte gewährt werden (Programm wird nicht gestartet, wenn man dies ablehnt).
Da aber noch mehr APIs beim Öffnen von Handles Zugriffsrechte benötigen (CreateFile, RegOpenKeyEx,...........) - es sind eigentlich alle APIs, die Handles öffnen - nützt einem Quelltext alleine eigentlich gar nichts, sondern man muss ganz grob und im Prinzip verstanden haben, worum es überhaupt geht.
Wie man unter a) Die kleine Registryfalle etwas weiter oben sieht, nützt es auch nichts, Programme unter Vista in Bezug auf ihre Lauffähigkeit nur mal kurz anzutesten, ohne im Prinzip verstanden zu haben, was da abläuft - denn manche Sachen sehen zwar so aus, als würden sie funktionieren, sie tun es aber nicht.
In diesem Sinne, hier nochmals etwas Grundlagenwissen, bevor es ans "Eingemachte" geht:

Privilegien: Privilegien sind nichts anderes als Rechte, bestimmte APIs ausführen zu dürfen. Bei solchen "eingeschränkten" APIs handelt es in der Regel um APIs, die (System-)Einstellungen setzen oder auslesen. Das Setzen der Zeit (SetSystemTime) ist zum Beispiel so eine API.
Privilegien können zwar auch nur einem bestimmten "User" zugeordnet werden, in der Regel sind sie aber den Gruppen zugeordnet, denen ein User angehört. Ist ein Privileg im Token vorhanden, reicht das aber nicht aus. In der Regel muss es vor der Benutzung der jeweiligen API erst einmal aktiviert werden. Manche APIs aktivieren ihr Privileg selbst, andere wiederum nicht.
Noch einmal als Beispiel die API SetSystemTime:
Schritt 1) Wird die API SetSystemTime aufgerufen, wird zuerst im Token des aufrufenden Programmes nachgesehen, ob das Privileg für diese API (SeSystemtimePrivilege) dort vorhanden ist. Ist es nicht vorhanden, gibt die API eine Fehlermeldung zurück und setzt die Systemzeit nicht.
Schritt 2)Ist es vorhanden, würde danach vom OS überprüft werden, ob das besagte Privileg aktiviert ist. Ist es nicht aktiviert, gibt die API eine Fehlermeldung zurück.
Da die API SetSystemTime aber beim Aufruf das Privileg SeSystemtimePrivilege selbst aktiviert, fällt Schritt 2 hier weg.


Was geschieht beim Öffnen eines Handles bis XP -> Beispiel OpenProcess:
So, jetzt schauen wir uns mal Parameter 1 von OpenProcess etwas näher an... Bei Parameter 1 muss hier angegeben werden, in welcher Art und Weise man das Handle öffnen möchte - was man also damit tun will. $1 wäre zum Beispiel "Prozess beenden", $400 wäre "Informationen auslesen". Beim Aufruf von OpenProcess schaut das OS nun nach, was im "Security Descriptor" des Prozesses steht, der geöffnet werden soll. Der "Security Descriptor" (übersetzt Sicherheitsbeschreibung) ist aufgebaut wie eine Liste mit vielen Einträgen. Unter jedem Eintrag sind einer Gruppe oder einem "User" Zugriffsrechte zugeordnet, die für diesen "User" oder die Gruppe maximal erlaubt sind.
Aus den Gruppen, die einem Prozess in dessen Token zugeordnet sind, ergiebt sich also das, was maximal beim Öffnen eines Handles für diesen Prozess überhaupt erlaubt ist. Standardmäßig sind jedem Prozess im Security Descriptor nur zwei Einträge zugeördnet:
a) Account / Gruppe "System": Hat Vollzugriff, im Account System laufen Services (Dienste).
b) Account / Gruppe "Administratoren": Hat in der Regel Vollzugriff.

...jetzt mal mit den Infos von oben einen Blick auf den Nicht angehobener Token im Adminaccount unter Vista werfen... Was ist da wohl beim Aufruf von OpenProcess noch erlaubt, wenn ein Programm "ganz normal" ausgeführt wird?
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (02.03.2009 um 11:20 Uhr)
AHT ist offline   Mit Zitat antworten
Alt 02.03.2009, 11:36   #12 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Standard

@Andreas
Mit deinem Code wird sogar unter...XP gefragt !

__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist offline   Mit Zitat antworten
Alt 02.03.2009, 13:18   #13 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Zitat:
Zitat von horsthorn Beitrag anzeigen
@Andreas
Mit deinem Code wird sogar unter...XP gefragt !
Das weiß ich, unter Vista erscheint bei einem Admionaccount aber das UAC Popup (nicht dieses Popup), das auch erscheint, wenn man eine EXE über das Kontextmenü des Explorers mit Adminrechten ausführen will.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 02.03.2009, 16:54   #14 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard b) Kein vernünftiger Vista-Taskmanager ohne SeDebugPrivilege!?

Zitat:
Zitat von AHT Beitrag anzeigen
Was ist da wohl beim Aufruf von OpenProcess noch erlaubt, wenn ein Programm "ganz normal" ausgeführt wird?
Habs mal mit folgendem Quelltext unter Vista getestet (normal gestartet, ohne extra Adminrechte anzumelden).
Code:
'#############################################################################################
'######################          Quelltext erstellt von AHT      #############################
'#############################################################################################
Def GetModuleFileNameEx(4) !"Psapi","GetModuleFileNameExA"
Def CreateToolhelp32Snapshot(2) !"Kernel32", "CreateToolhelp32Snapshot"
Def Process32First(2) !"Kernel32", "Process32First"
Def Process32Next(2) !"Kernel32", "Process32Next"
Def CloseHandle(1) !"Kernel32", "CloseHandle"
Def GetCurrentProcessID(0) !"Kernel32", "GetCurrentProcessId"
Def OpenProcess(3) !"Kernel32", "OpenProcess"
DEF LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA"
DEF AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges"
DEF OpenProcessToken(3) !"advapi32","OpenProcessToken"
DEF GetCurrentProcess(0) !"KERNEL32","GetCurrentProcess"
DEF CopyMemory(3) !"kernel32","RtlMoveMemory"
Declare Entry#, err&, handle&, cpid&, text$, text2$, PHandle&, Filename#
Declare TOKEN_PRIVILEGES#, LUID#, Fehler&
Struct PROCESSENTRY32=dwSize&, \
cntUsage&, \
th32ProcessID&, \
th32DefaultHeapID&, \
th32ModuleID&, \
Threads&, \
th32ParentProcessID&, \
pcPriClassBase&, \
dwFlags&, \
szExeFile$(260)
Dim Entry#,PROCESSENTRY32
Entry#.dwSize& = SizeOf(Entry#)
Proc FillProcessList
   DIM Filename#, 514
   cpid& = GetCurrentProcessID()
   handle& = CreateToolhelp32Snapshot(2,0)
   If handle&
      err& = Process32First(handle&, Entry#)
      If err&
         text$ = Str$(Entry#.th32ProcessID&)
         text2$ = Entry#.szExeFile$
         Clear Filename#, PHandle&
         PHandle& = OpenProcess($400 | $10, 0, Entry#.th32ProcessID&)
         IF PHandle& > 0
          GetModuleFilenameEx(PHandle&, 0, Filename#, 513)
          Closehandle(PHandle&)
         endif
         ADDSTRING "PID: " + text$ + " | Prozessname: " + text2$ + " | Prozesspfad: " + String$(Filename#,0)
         Repeat
            err& = Process32Next(handle&, Entry#)
            If err&
               text$ = Str$(Entry#.th32ProcessID&)
               text2$ = Entry#.szExeFile$
               Clear Filename#, PHandle&
               PHandle& = OpenProcess($400 | $10, 0, Entry#.th32ProcessID&)
               IF PHandle& > 0
                GetModuleFilenameEx(PHandle&, 0, Filename#, 513)
                Closehandle(PHandle&)
               endif
               ADDSTRING "PID: " + text$ + " | Prozessname: " + text2$ + " | Prozesspfad: " + String$(Filename#,0)
            EndIf
         Until err& = 0
         CloseHandle(handle&)
      EndIf
   EndIf
   Dispose Filename#
EndProc
ClearList
FillProcessList
EditBox("Prozesse",1)
Das ganze gibt folgende Rückmeldung:
Zitat:
PID: 0 | Prozessname: [System Process] | Prozesspfad:
PID: 4 | Prozessname: System | Prozesspfad:
PID: 404 | Prozessname: smss.exe | Prozesspfad:
PID: 472 | Prozessname: csrss.exe | Prozesspfad:
PID: 524 | Prozessname: wininit.exe | Prozesspfad:
PID: 536 | Prozessname: csrss.exe | Prozesspfad:
PID: 568 | Prozessname: services.exe | Prozesspfad:
PID: 584 | Prozessname: lsass.exe | Prozesspfad:
PID: 592 | Prozessname: lsm.exe | Prozesspfad:
PID: 660 | Prozessname: winlogon.exe | Prozesspfad:
PID: 788 | Prozessname: svchost.exe | Prozesspfad:
PID: 836 | Prozessname: nvvsvc.exe | Prozesspfad:
PID: 864 | Prozessname: svchost.exe | Prozesspfad:
PID: 904 | Prozessname: svchost.exe | Prozesspfad:
PID: 1012 | Prozessname: svchost.exe | Prozesspfad:
PID: 1080 | Prozessname: svchost.exe | Prozesspfad:
PID: 1132 | Prozessname: svchost.exe | Prozesspfad:
PID: 1176 | Prozessname: audiodg.exe | Prozesspfad:
PID: 1212 | Prozessname: SLsvc.exe | Prozesspfad:
PID: 1268 | Prozessname: rundll32.exe | Prozesspfad:
PID: 1276 | Prozessname: svchost.exe | Prozesspfad:
PID: 1452 | Prozessname: svchost.exe | Prozesspfad:
PID: 1684 | Prozessname: spoolsv.exe | Prozesspfad:
PID: 1708 | Prozessname: sched.exe | Prozesspfad:
PID: 1720 | Prozessname: svchost.exe | Prozesspfad:
PID: 1908 | Prozessname: avguard.exe | Prozesspfad:
PID: 1956 | Prozessname: lxdjcoms.exe | Prozesspfad:
PID: 264 | Prozessname: svchost.exe | Prozesspfad:
PID: 448 | Prozessname: RichVideo.exe | Prozesspfad:
PID: 464 | Prozessname: SbieSvc.exe | Prozesspfad:
PID: 1524 | Prozessname: svchost.exe | Prozesspfad:
PID: 1728 | Prozessname: SearchIndexer.exe | Prozesspfad:
PID: 2028 | Prozessname: XAudio.exe | Prozesspfad:
PID: 1384 | Prozessname: hpqWmiEx.exe | Prozesspfad:
PID: 2512 | Prozessname: taskeng.exe | Prozesspfad:
PID: 2740 | Prozessname: taskeng.exe | Prozesspfad: C:\Windows\system32\taskeng.exe
PID: 2776 | Prozessname: dwm.exe | Prozesspfad: C:\Windows\system32\Dwm.exe
PID: 2832 | Prozessname: explorer.exe | Prozesspfad: C:\Windows\Explorer.EXE
PID: 3024 | Prozessname: SynTPStart.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPStart.exe
PID: 3040 | Prozessname: QPService.exe | Prozesspfad: C:\Program Files\Hp\QuickPlay\QPService.exe
PID: 3052 | Prozessname: QLBCTRL.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Quick Launch Buttons\QLBCTRL.exe
PID: 3068 | Prozessname: SynTPEnh.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPEnh.exe
PID: 3084 | Prozessname: MSASCui.exe | Prozesspfad: C:\Program Files\Windows Defender\MSASCui.exe
PID: 3100 | Prozessname: HPWAMain.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Wireless Assistant\HPWAMain.exe
PID: 3116 | Prozessname: WiFiMsg.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Wireless Assistant\WiFiMsg.exe
PID: 3128 | Prozessname: avgnt.exe | Prozesspfad: C:\Program Files\Avira\AntiVir PersonalEdition Classic\avgnt.exe
PID: 3144 | Prozessname: VCDDaemon.exe | Prozesspfad: C:\Program Files\VirtualCloneDrive\VCDDaemon.exe
PID: 3152 | Prozessname: hpwuSchd2.exe | Prozesspfad: C:\Program Files\Hp\HP Software Update\hpwuSchd2.exe
PID: 3160 | Prozessname: lxdjamon.exe | Prozesspfad: C:\Program Files\Lexmark 1400 Series\lxdjamon.exe
PID: 3180 | Prozessname: jusched.exe | Prozesspfad: C:\Program Files\Java\jre6\bin\jusched.exe
PID: 3284 | Prozessname: WmiPrvSE.exe | Prozesspfad:
PID: 3368 | Prozessname: SteganosHotKeyService.exe | Prozesspfad: C:\Program Files\Steganos Safe Home\SteganosHotKeyService.exe
PID: 3392 | Prozessname: rundll32.exe | Prozesspfad: C:\Windows\System32\rundll32.exe
PID: 3436 | Prozessname: sidebar.exe | Prozesspfad: C:\Program Files\Windows Sidebar\sidebar.exe
PID: 3504 | Prozessname: HPAdvisor.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Advisor\HPAdvisor.exe
PID: 3532 | Prozessname: ehtray.exe | Prozesspfad: C:\Windows\ehome\ehtray.exe
PID: 3540 | Prozessname: SbieCtrl.exe | Prozesspfad: C:\Program Files\Sandboxie\SbieCtrl.exe
PID: 3556 | Prozessname: wmpnscfg.exe | Prozesspfad: C:\Program Files\Windows Media Player\wmpnscfg.exe
PID: 3820 | Prozessname: soffice.exe | Prozesspfad: C:\Program Files\OpenOffice.org 3\program\soffice.exe
PID: 3848 | Prozessname: ehmsas.exe | Prozesspfad: C:\Windows\ehome\ehmsas.exe
PID: 3896 | Prozessname: soffice.bin | Prozesspfad: C:\Program Files\OpenOffice.org 3\program\soffice.bin
PID: 3936 | Prozessname: wmpnetwk.exe | Prozesspfad:
PID: 2460 | Prozessname: HpqToaster.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\Shared\HpqToaster.exe
PID: 3464 | Prozessname: PresentationFontCache.exe | Prozesspfad:
PID: 3232 | Prozessname: SynTPHelper.exe | Prozesspfad:
PID: 3856 | Prozessname: ieuser.exe | Prozesspfad: C:\Program Files\Internet Explorer\ieuser.exe
PID: 2964 | Prozessname: HPHC_Service.exe | Prozesspfad:
PID: 1116 | Prozessname: iexplore.exe | Prozesspfad: C:\Program Files\Internet Explorer\iexplore.exe
PID: 668 | Prozessname: profed32.exe | Prozesspfad: C:\Program Files\XProfan9\profed32.exe
PID: 3316 | Prozessname: Profan.exe | Prozesspfad: C:\Program Files\XProfan9\PROFAN.EXE
Wie man hier sieht, wird bei vielen Prozessen noch nicht einmal der Pfad zur EXE angezeigt. Kein Wunder, denkt man sich, denn mein Programm hat ja, ohne dass ich sie vorher anmelde, ja gar keine Adminrechte (Admingruppe ist ja in einem nicht angehobenen Admintoken deaktiviert)!
Startet man den obigen Code mit Adminrechten, sieht das ganze dann so aus...
Zitat:
PID: 0 | Prozessname: [System Process] | Prozesspfad:
PID: 4 | Prozessname: System | Prozesspfad:
PID: 404 | Prozessname: smss.exe | Prozesspfad:
PID: 472 | Prozessname: csrss.exe | Prozesspfad:
PID: 524 | Prozessname: wininit.exe | Prozesspfad:
PID: 536 | Prozessname: csrss.exe | Prozesspfad:
PID: 568 | Prozessname: services.exe | Prozesspfad:
PID: 584 | Prozessname: lsass.exe | Prozesspfad:
PID: 592 | Prozessname: lsm.exe | Prozesspfad:
PID: 660 | Prozessname: winlogon.exe | Prozesspfad:
PID: 788 | Prozessname: svchost.exe | Prozesspfad:
PID: 836 | Prozessname: nvvsvc.exe | Prozesspfad:
PID: 864 | Prozessname: svchost.exe | Prozesspfad:
PID: 904 | Prozessname: svchost.exe | Prozesspfad:
PID: 1012 | Prozessname: svchost.exe | Prozesspfad:
PID: 1080 | Prozessname: svchost.exe | Prozesspfad:
PID: 1132 | Prozessname: svchost.exe | Prozesspfad:
PID: 1176 | Prozessname: audiodg.exe | Prozesspfad:
PID: 1212 | Prozessname: SLsvc.exe | Prozesspfad:
PID: 1268 | Prozessname: rundll32.exe | Prozesspfad:
PID: 1276 | Prozessname: svchost.exe | Prozesspfad:
PID: 1452 | Prozessname: svchost.exe | Prozesspfad:
PID: 1684 | Prozessname: spoolsv.exe | Prozesspfad:
PID: 1708 | Prozessname: sched.exe | Prozesspfad:
PID: 1720 | Prozessname: svchost.exe | Prozesspfad:
PID: 1908 | Prozessname: avguard.exe | Prozesspfad:
PID: 1956 | Prozessname: lxdjcoms.exe | Prozesspfad:
PID: 264 | Prozessname: svchost.exe | Prozesspfad:
PID: 448 | Prozessname: RichVideo.exe | Prozesspfad:
PID: 464 | Prozessname: SbieSvc.exe | Prozesspfad:
PID: 1524 | Prozessname: svchost.exe | Prozesspfad:
PID: 1728 | Prozessname: SearchIndexer.exe | Prozesspfad:
PID: 2028 | Prozessname: XAudio.exe | Prozesspfad:
PID: 1384 | Prozessname: hpqWmiEx.exe | Prozesspfad:
PID: 2512 | Prozessname: taskeng.exe | Prozesspfad:
PID: 2740 | Prozessname: taskeng.exe | Prozesspfad: C:\Windows\system32\taskeng.exe
PID: 2776 | Prozessname: dwm.exe | Prozesspfad: C:\Windows\system32\Dwm.exe
PID: 2832 | Prozessname: explorer.exe | Prozesspfad: C:\Windows\Explorer.EXE
PID: 3024 | Prozessname: SynTPStart.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPStart.exe
PID: 3040 | Prozessname: QPService.exe | Prozesspfad: C:\Program Files\Hp\QuickPlay\QPService.exe
PID: 3052 | Prozessname: QLBCTRL.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Quick Launch Buttons\QLBCTRL.exe
PID: 3068 | Prozessname: SynTPEnh.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPEnh.exe
PID: 3084 | Prozessname: MSASCui.exe | Prozesspfad: C:\Program Files\Windows Defender\MSASCui.exe
PID: 3100 | Prozessname: HPWAMain.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Wireless Assistant\HPWAMain.exe
PID: 3116 | Prozessname: WiFiMsg.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Wireless Assistant\WiFiMsg.exe
PID: 3128 | Prozessname: avgnt.exe | Prozesspfad: C:\Program Files\Avira\AntiVir PersonalEdition Classic\avgnt.exe
PID: 3144 | Prozessname: VCDDaemon.exe | Prozesspfad: C:\Program Files\VirtualCloneDrive\VCDDaemon.exe
PID: 3152 | Prozessname: hpwuSchd2.exe | Prozesspfad: C:\Program Files\Hp\HP Software Update\hpwuSchd2.exe
PID: 3160 | Prozessname: lxdjamon.exe | Prozesspfad: C:\Program Files\Lexmark 1400 Series\lxdjamon.exe
PID: 3180 | Prozessname: jusched.exe | Prozesspfad: C:\Program Files\Java\jre6\bin\jusched.exe
PID: 3284 | Prozessname: WmiPrvSE.exe | Prozesspfad:
PID: 3368 | Prozessname: SteganosHotKeyService.exe | Prozesspfad: C:\Program Files\Steganos Safe Home\SteganosHotKeyService.exe
PID: 3392 | Prozessname: rundll32.exe | Prozesspfad: C:\Windows\System32\rundll32.exe
PID: 3436 | Prozessname: sidebar.exe | Prozesspfad: C:\Program Files\Windows Sidebar\sidebar.exe
PID: 3504 | Prozessname: HPAdvisor.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Advisor\HPAdvisor.exe
PID: 3532 | Prozessname: ehtray.exe | Prozesspfad: C:\Windows\ehome\ehtray.exe
PID: 3540 | Prozessname: SbieCtrl.exe | Prozesspfad: C:\Program Files\Sandboxie\SbieCtrl.exe
PID: 3556 | Prozessname: wmpnscfg.exe | Prozesspfad: C:\Program Files\Windows Media Player\wmpnscfg.exe
PID: 3820 | Prozessname: soffice.exe | Prozesspfad: C:\Program Files\OpenOffice.org 3\program\soffice.exe
PID: 3848 | Prozessname: ehmsas.exe | Prozesspfad: C:\Windows\ehome\ehmsas.exe
PID: 3896 | Prozessname: soffice.bin | Prozesspfad: C:\Program Files\OpenOffice.org 3\program\soffice.bin
PID: 3936 | Prozessname: wmpnetwk.exe | Prozesspfad:
PID: 2460 | Prozessname: HpqToaster.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\Shared\HpqToaster.exe
PID: 3464 | Prozessname: PresentationFontCache.exe | Prozesspfad:
PID: 3232 | Prozessname: SynTPHelper.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPHelper.exe
PID: 3856 | Prozessname: ieuser.exe | Prozesspfad: C:\Program Files\Internet Explorer\ieuser.exe
PID: 2964 | Prozessname: HPHC_Service.exe | Prozesspfad:
PID: 1116 | Prozessname: iexplore.exe | Prozesspfad: C:\Program Files\Internet Explorer\iexplore.exe
PID: 668 | Prozessname: profed32.exe | Prozesspfad: C:\Program Files\XProfan9\profed32.exe
PID: 200 | Prozessname: Tasks and Token.exe | Prozesspfad: C:\EIGENES\Tasks and Token\Tasks and Token.exe
PID: 3228 | Prozessname: dllhost.exe | Prozesspfad:
PID: 2316 | Prozessname: dllhost.exe | Prozesspfad:
PID: 2856 | Prozessname: Prozesse_listen_3.exe | Prozesspfad: C:\EIGENES\Tests\Prozesse_listen_3.exe
Selbst mit Adminrechten fehlen hier Leserechte!
Aber warum? Die Prozesse, die hier fehlen, sind die Services (Dienste), die im Systemaccount laufen. Normalerweise hat die Admingruppe - laut des Security Descriptors - hier auch unter Vista Vollzugriff... Warum kann man also keine Prozessdaten lesen?

Dafür verantfortlich ist folgender Eintrag im Token: Integritätslevel
Was ist das genau und wie wirkt sich das aus? Neben den normalen Zugriffsrechten wurde unter Windows Vista diese neue Art von Zugriffsbeschränkung eingeführt. Jedem Prozess wird dabei ein sogenannter Integritätslevel verliehen - je priveligierter ein Prozess, desto höher dieser Level. Auch erzeugte Objekte (in unsetem Fall Prozesse - aber auch Dateien, Registryschlüssel,...) können einen solchen (M)IL erhalten. Versucht nun ein Prozess ein Objekt zu öffnen, das mit einem höheren MIL versehen ist als der des Prozesses, wird der Zugriff verweigert, auch wenn die Zugriffsrechte dies erlauben würden (das ist so nur grob umrissen, mehr muss man aber erst mal nicht wissen).

Wie man an diesem Eintrag im Token sieht Mandatory Policy Level, lässt sich dieses Verhalten aber auch abschalten - das muss aber vor der Erzeugung des jeweiligen Tokens geschehen - ist also wohl eher "Expertensache" (siehe Tool MILStarter: Integritätslevel eines Prozesses und Vista setzen und MIC für Prozess abschalten.)

Was kann - oder muss - man also tun, um überhaupt vernünftig Prozessinfos unter Vista auslesen zu können?

Es gibt da ein nettes Privileg, SeDebugPrivilege. Ist dieses Privileg im Token vorhanden und aktiviert, kann auch gegen die bestehenden Zugriffsrechte ein Handle auf einen Prozess erlangt werden.

Hier nochmals Code zum Testen:
Code:
'#############################################################################################
'######################          Quelltext erstellt von AHT      #############################
'#############################################################################################
Def GetModuleFileNameEx(4) !"Psapi","GetModuleFileNameExA"
Def CreateToolhelp32Snapshot(2) !"Kernel32", "CreateToolhelp32Snapshot"
Def Process32First(2) !"Kernel32", "Process32First"
Def Process32Next(2) !"Kernel32", "Process32Next"
Def CloseHandle(1) !"Kernel32", "CloseHandle"
Def GetCurrentProcessID(0) !"Kernel32", "GetCurrentProcessId"
Def OpenProcess(3) !"Kernel32", "OpenProcess"
DEF LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA"
DEF AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges"
DEF OpenProcessToken(3) !"advapi32","OpenProcessToken"
DEF GetCurrentProcess(0) !"KERNEL32","GetCurrentProcess"
DEF CopyMemory(3) !"kernel32","RtlMoveMemory"
Declare Entry#, err&, handle&, cpid&, text$, text2$, PHandle&, Filename#
Declare TOKEN_PRIVILEGES#, LUID#, Fehler&
Struct PROCESSENTRY32=dwSize&, \
cntUsage&, \
th32ProcessID&, \
th32DefaultHeapID&, \
th32ModuleID&, \
Threads&, \
th32ParentProcessID&, \
pcPriClassBase&, \
dwFlags&, \
szExeFile$(260)
Dim Entry#,PROCESSENTRY32
Entry#.dwSize& = SizeOf(Entry#)
Proc Set_Privilege_Status
 Parameters Privilege_name$,Aktive&
 Declare NewState&,AH_Token_Handle&,LU_SYSTEM$
 DIM TOKEN_PRIVILEGES#,16
 DIM LUID#,8
 Clear LUID#,LU_SYSTEM$
 @LookupPrivilegeValue(@ADDR(LU_SYSTEM$),@ADDR(Privilege_name$),LUID#)
 CLEAR AH_Token_Handle&
 LET FEHLER&=@OpenProcessToken(@GetCurrentProcess(),$20,@ADDR(AH_Token_Handle&))
 LONG TOKEN_PRIVILEGES#,0=1
 LET NewState&=TOKEN_PRIVILEGES#
 @CopyMemory(NewState&+4,LUID#,8)
 LET NewState&=Aktive&
 Clear Aktive&
 IF @or(NewState&,$2)=NewState&
  LET Aktive&=@or(AKTIVE&,$2)
 Endif
 IF @or(NewState&,$80000000)=NewState&
  LET Aktive&=@or(AKTIVE&,$80000000)
 Endif
 LONG TOKEN_PRIVILEGES#,12=Aktive&
 LET FEHLER&=@AdjustTokenPrivileges(AH_Token_Handle&,0,TOKEN_PRIVILEGES#,0,0,0)
 If AH_TOKEN_Handle&<>0
  @CLOSEHANDLE(AH_Token_Handle&)
 endif
 Dispose TOKEN_PRIVILEGES#
 Dispose LUID#
endproc
Proc FillProcessList
   DIM Filename#, 514
   cpid& = GetCurrentProcessID()
   handle& = CreateToolhelp32Snapshot(2,0)
   If handle&
      err& = Process32First(handle&, Entry#)
      If err&
         text$ = Str$(Entry#.th32ProcessID&)
         text2$ = Entry#.szExeFile$
         Clear Filename#, PHandle&
         PHandle& = OpenProcess($400 | $10, 0, Entry#.th32ProcessID&)
         IF PHandle& > 0
          GetModuleFilenameEx(PHandle&, 0, Filename#, 513)
          Closehandle(PHandle&)
         endif
         ADDSTRING "PID: " + text$ + " | Prozessname: " + text2$ + " | Prozesspfad: " + String$(Filename#,0)
         Repeat
            err& = Process32Next(handle&, Entry#)
            If err&
               text$ = Str$(Entry#.th32ProcessID&)
               text2$ = Entry#.szExeFile$
               Clear Filename#, PHandle&
               PHandle& = OpenProcess($400 | $10, 0, Entry#.th32ProcessID&)
               IF PHandle& > 0
                GetModuleFilenameEx(PHandle&, 0, Filename#, 513)
                Closehandle(PHandle&)
               endif
               ADDSTRING "PID: " + text$ + " | Prozessname: " + text2$ + " | Prozesspfad: " + String$(Filename#,0)
            EndIf
         Until err& = 0
         CloseHandle(handle&)
      EndIf
   EndIf
   Dispose Filename#
EndProc
ClearList
Set_Privilege_Status "SeDebugPrivilege",$2
FillProcessList
EditBox("Prozesse",1)
Dieser Code muss natürlich mit Adminrechten ausgeführt werden, um überhaupt erst einmal das besagte Privileg zu haben.
Die Rückgabe sieht dann so aus, was schon mal einen ganz anderen Eindruck macht:
Zitat:
PID: 0 | Prozessname: [System Process] | Prozesspfad:
PID: 4 | Prozessname: System | Prozesspfad:
PID: 404 | Prozessname: smss.exe | Prozesspfad: \SystemRoot\System32\smss.exe
PID: 472 | Prozessname: csrss.exe | Prozesspfad: C:\Windows\system32\csrss.exe
PID: 524 | Prozessname: wininit.exe | Prozesspfad: C:\Windows\system32\wininit.exe
PID: 536 | Prozessname: csrss.exe | Prozesspfad: C:\Windows\system32\csrss.exe
PID: 568 | Prozessname: services.exe | Prozesspfad: C:\Windows\system32\services.exe
PID: 584 | Prozessname: lsass.exe | Prozesspfad: C:\Windows\system32\lsass.exe
PID: 592 | Prozessname: lsm.exe | Prozesspfad: C:\Windows\system32\lsm.exe
PID: 660 | Prozessname: winlogon.exe | Prozesspfad: C:\Windows\system32\winlogon.exe
PID: 788 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 836 | Prozessname: nvvsvc.exe | Prozesspfad: C:\Windows\system32\nvvsvc.exe
PID: 864 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 904 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\System32\svchost.exe
PID: 1012 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\System32\svchost.exe
PID: 1080 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\System32\svchost.exe
PID: 1132 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 1176 | Prozessname: audiodg.exe | Prozesspfad:
PID: 1212 | Prozessname: SLsvc.exe | Prozesspfad: C:\Windows\system32\SLsvc.exe
PID: 1268 | Prozessname: rundll32.exe | Prozesspfad: C:\Windows\system32\rundll32.exe
PID: 1276 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 1452 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 1684 | Prozessname: spoolsv.exe | Prozesspfad: C:\Windows\System32\spoolsv.exe
PID: 1708 | Prozessname: sched.exe | Prozesspfad: C:\Program Files\Avira\AntiVir PersonalEdition Classic\sched.exe
PID: 1720 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 1908 | Prozessname: avguard.exe | Prozesspfad: C:\Program Files\Avira\AntiVir PersonalEdition Classic\avguard.exe
PID: 1956 | Prozessname: lxdjcoms.exe | Prozesspfad: C:\Windows\system32\lxdjcoms.exe
PID: 264 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\system32\svchost.exe
PID: 448 | Prozessname: RichVideo.exe | Prozesspfad: C:\Program Files\CyberLink\Shared Files\RichVideo.exe
PID: 464 | Prozessname: SbieSvc.exe | Prozesspfad: C:\Program Files\Sandboxie\SbieSvc.exe
PID: 1524 | Prozessname: svchost.exe | Prozesspfad: C:\Windows\System32\svchost.exe
PID: 1728 | Prozessname: SearchIndexer.exe | Prozesspfad: C:\Windows\system32\SearchIndexer.exe
PID: 2028 | Prozessname: XAudio.exe | Prozesspfad: C:\Windows\system32\DRIVERS\xaudio.exe
PID: 1384 | Prozessname: hpqWmiEx.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\Shared\hpqwmiex.exe
PID: 2512 | Prozessname: taskeng.exe | Prozesspfad: C:\Windows\system32\taskeng.exe
PID: 2740 | Prozessname: taskeng.exe | Prozesspfad: C:\Windows\system32\taskeng.exe
PID: 2776 | Prozessname: dwm.exe | Prozesspfad: C:\Windows\system32\Dwm.exe
PID: 2832 | Prozessname: explorer.exe | Prozesspfad: C:\Windows\Explorer.EXE
PID: 3024 | Prozessname: SynTPStart.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPStart.exe
PID: 3040 | Prozessname: QPService.exe | Prozesspfad: C:\Program Files\Hp\QuickPlay\QPService.exe
PID: 3052 | Prozessname: QLBCTRL.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Quick Launch Buttons\QLBCTRL.exe
PID: 3068 | Prozessname: SynTPEnh.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPEnh.exe
PID: 3084 | Prozessname: MSASCui.exe | Prozesspfad: C:\Program Files\Windows Defender\MSASCui.exe
PID: 3100 | Prozessname: HPWAMain.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Wireless Assistant\HPWAMain.exe
PID: 3116 | Prozessname: WiFiMsg.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Wireless Assistant\WiFiMsg.exe
PID: 3128 | Prozessname: avgnt.exe | Prozesspfad: C:\Program Files\Avira\AntiVir PersonalEdition Classic\avgnt.exe
PID: 3144 | Prozessname: VCDDaemon.exe | Prozesspfad: C:\Program Files\VirtualCloneDrive\VCDDaemon.exe
PID: 3152 | Prozessname: hpwuSchd2.exe | Prozesspfad: C:\Program Files\Hp\HP Software Update\hpwuSchd2.exe
PID: 3160 | Prozessname: lxdjamon.exe | Prozesspfad: C:\Program Files\Lexmark 1400 Series\lxdjamon.exe
PID: 3180 | Prozessname: jusched.exe | Prozesspfad: C:\Program Files\Java\jre6\bin\jusched.exe
PID: 3284 | Prozessname: WmiPrvSE.exe | Prozesspfad: C:\Windows\system32\wbem\wmiprvse.exe
PID: 3368 | Prozessname: SteganosHotKeyService.exe | Prozesspfad: C:\Program Files\Steganos Safe Home\SteganosHotKeyService.exe
PID: 3392 | Prozessname: rundll32.exe | Prozesspfad: C:\Windows\System32\rundll32.exe
PID: 3436 | Prozessname: sidebar.exe | Prozesspfad: C:\Program Files\Windows Sidebar\sidebar.exe
PID: 3504 | Prozessname: HPAdvisor.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\HP Advisor\HPAdvisor.exe
PID: 3532 | Prozessname: ehtray.exe | Prozesspfad: C:\Windows\ehome\ehtray.exe
PID: 3540 | Prozessname: SbieCtrl.exe | Prozesspfad: C:\Program Files\Sandboxie\SbieCtrl.exe
PID: 3556 | Prozessname: wmpnscfg.exe | Prozesspfad: C:\Program Files\Windows Media Player\wmpnscfg.exe
PID: 3820 | Prozessname: soffice.exe | Prozesspfad: C:\Program Files\OpenOffice.org 3\program\soffice.exe
PID: 3848 | Prozessname: ehmsas.exe | Prozesspfad: C:\Windows\ehome\ehmsas.exe
PID: 3896 | Prozessname: soffice.bin | Prozesspfad: C:\Program Files\OpenOffice.org 3\program\soffice.bin
PID: 3936 | Prozessname: wmpnetwk.exe | Prozesspfad: C:\Program Files\Windows Media Player\wmpnetwk.exe
PID: 2460 | Prozessname: HpqToaster.exe | Prozesspfad: C:\Program Files\Hewlett-Packard\Shared\HpqToaster.exe
PID: 3464 | Prozessname: PresentationFontCache.exe | Prozesspfad: C:\Windows\Microsoft.Net\Framework\v3.0\WPF\PresentationFontCache.exe
PID: 3232 | Prozessname: SynTPHelper.exe | Prozesspfad: C:\Program Files\Synaptics\SynTP\SynTPHelper.exe
PID: 3856 | Prozessname: ieuser.exe | Prozesspfad: C:\Program Files\Internet Explorer\ieuser.exe
PID: 2964 | Prozessname: HPHC_Service.exe | Prozesspfad: c:\Program Files\Hewlett-Packard\HP Health Check\hphc_service.exe
PID: 1116 | Prozessname: iexplore.exe | Prozesspfad: C:\Program Files\Internet Explorer\iexplore.exe
PID: 668 | Prozessname: profed32.exe | Prozesspfad: C:\Program Files\XProfan9\profed32.exe
PID: 200 | Prozessname: Tasks and Token.exe | Prozesspfad: C:\EIGENES\Tasks and Token\Tasks and Token.exe
PID: 2856 | Prozessname: Prozesse_listen_3.exe | Prozesspfad: C:\EIGENES\Tests\Prozesse_listen_3.exe
PID: 2724 | Prozessname: Integrity.exe | Prozesspfad: C:\EIGENES\Integrity\Integrity.exe
PID: 1328 | Prozessname: winhlp32.exe | Prozesspfad: C:\Windows\winhlp32.exe
PID: 2712 | Prozessname: SearchProtocolHost.exe | Prozesspfad: C:\Windows\system32\SearchProtocolHost.exe
PID: 1896 | Prozessname: SearchFilterHost.exe | Prozesspfad: C:\Windows\system32\SearchFilterHost.exe
PID: 648 | Prozessname: dllhost.exe | Prozesspfad: C:\Windows\system32\DllHost.exe
PID: 3884 | Prozessname: dllhost.exe | Prozesspfad: C:\Windows\system32\DllHost.exe
PID: 1592 | Prozessname: Prozesse_listen_2.exe | Prozesspfad: C:\EIGENES\Tests\Prozesse_listen_2.exe
Ich hoffe, das ist so verständlich. Noch Fragen zu dieser Sache?
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (02.03.2009 um 17:17 Uhr)
AHT ist offline   Mit Zitat antworten
Alt 02.03.2009, 19:14   #15 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Ich denke, ich habs jetzt ziemlich verstanden.

Der zweite Code erreicht auch unter XP bessere Ergebnisse, unter Vista kann ich es nicht testen.
Wer es nicht testen kann unter XProfan 11: Einfach die profalt.inc einbinden...

Zitat:
Noch Fragen zu dieser Sache?
Wie kann ein Programm eigentlich prüfen, welche Adminrechte es besitzt? Sicher existiert dafür auch eine API.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mouse "hackt" unter Vista ts201 Hardware - Problemlösungen 0 25.03.2007 18:45
was "sieht" der admin? Cage Netzwerke 6 04.12.2005 16:55
Killagent.exe "für mich sieht sie aus wie ein Virusprog jensi Windows 95/98/ME/2000/NT 4 30.11.2005 13:17
"Screenshot Maker" M@rtin Software - Allgemein 8 21.11.2005 16:53
suche "screenshot" vom nforce 2 bios, die CPU sett J.C.Denton Allgemein 0 20.11.2004 00:30



Alle Zeitangaben in WEZ +2. Es ist jetzt 05:59 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2