![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
| 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 | |||
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
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 |
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
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 |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.12.2008
Ort: nahe Wernigerode
Beiträge: 1.354
|
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 |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
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) |
|
|
|
|
|
#5 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
|
...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) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#6 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
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) |
|
|
|
|
|
|
#7 (Direktlink) | |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
|
@Andreas
Zitat:
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 ? Ein schönes Wochenende wünscht
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#8 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#9 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
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 |
|
|
|
|
|
#10 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
|
#11 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
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) "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 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) |
|
|
|
|
|
#12 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
|
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
#13 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
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 |
|
|
|
|
|
#14 (Direktlink) | ||||
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
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)
Zitat:
Startet man den obigen Code mit Adminrechten, sieht das ganze dann so aus... Zitat:
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)
Die Rückgabe sieht dann so aus, was schon mal einen ganz anderen Eindruck macht: Zitat:
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT Geändert von AHT (02.03.2009 um 17:17 Uhr) |
||||
|
|
|
|
|
#15 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
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:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ä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 |