Autor |
Beitrag |
AHT
Beiträge: 207
|
Verfasst: So 12.04.09 08:39
Hab neulich etwas in XP rumgeschnüffelt und war doch sehr erstaunt, dass die API OpenProcess mit dem Flag PROCESS_DUP_HANDLE auf den Subsystemprozess CSRSS.EXE nicht funktionierte, obwohl SeDebugPrivilege aktiviert war.
Zuerst hatte ich M$ in verdacht, es stellte sich später aber heraus, das an diesem Blödsinn wohl der Treiber avipbb.sys von AntiVir 9 schuld ist. Kann jemand meine Beobachtungen bestätigen?
Kann sich jemand erklären, was dieser sowieso wirkungslose Blödsinn bezwecken soll? :roll: Moderiert von Narses: Topic aus Sonstiges (Delphi) verschoben am Fr 03.07.2009 um 12:01
Zuletzt bearbeitet von AHT am So 12.04.09 08:47, insgesamt 1-mal bearbeitet
|
|
jaenicke
Beiträge: 19275
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 12.04.09 08:47
AntiVir macht sowieso komische Sachen, da gab es schon einige Diskussionen darüber (Speicherlecks, offen gebliebene Handles und so was, genau kann ich mich da nicht mehr dran erinnern...). Ich selbst nutze es auch nicht mehr.
Ich müsste aber einen virtuellen PC mit AntiVir da haben, da könnte ich das mal testen.
|
|
AHT
Beiträge: 207
|
Verfasst: So 12.04.09 08:49
jaenicke hat folgendes geschrieben : | AntiVir macht sowieso komische Sachen, da gab es schon einige Diskussionen darüber (Speicherlecks, offen gebliebene Handles und so was, genau kann ich mich da nicht mehr dran erinnern...). Ich selbst nutze es auch nicht mehr.
Ich müsste aber einen virtuellen PC mit AntiVir da haben, da könnte ich das mal testen. |
Wäre nett - das mit den Zombieprozessen (Speicherlecks) kam auch von mir.
|
|
jaenicke
Beiträge: 19275
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 12.04.09 09:33
Ja, das muss wohl an AntiVir liegen, auf dem virtuellen PC damit funktioniert es nicht, hier unter Vista und mit Norton Internet Security z.B. funktioniert es.
Aber warum das so ist, weiß ich auch nicht, vielleicht will AntiVir damit den Zugriff auf Systemprozesse erschweren.
|
|
AHT
Beiträge: 207
|
Verfasst: So 12.04.09 09:34
Wer für den Test AntiVir nicht gleich deinstallieren möchte, kann den Rechner im abgesicherten Modus hochfahren, regedit starten, den Schlüssel
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\avipbb aufrufen und dort den Eintrag ImagePath von
System32\DRIVERS\avipbb.sys
in
;System32\DRIVERS\avipbb.sys
ändern und rebooten.
Zum Aktivieren von avipbb.sys einfach das Semikolon wieder entfernen und nochmals rebooten.
Was mich besonders an der Sache ärgert: Jemand, der Sicherheitsprogramme schreibt, und diese Funktionalität nutzt, macht sich in der Regel Gedanken darüber, mit welchen rechten er ein Handle öffnet - und das funktioniert dann nicht.
Einem Virenschrenschreiber ist es egal, ob er durch das Öffnen eines Handles weitere Sicherheitslöcher reißt - und dem ist es weiterhin möglich, das zu tun, was hier scheinbar wohl verhindert werden soll, nämlich AntiVir über TerminateThread zu beenden.
|
|
GTA-Place
Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 12.04.09 22:15
Vielleicht sollte man das den Entwicklern von AntiVir sagen und nicht uns
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
AHT
Beiträge: 207
|
Verfasst: So 12.04.09 22:37
|
|
AHT
Beiträge: 207
|
Verfasst: Mo 13.04.09 10:50
Habe in Vorbereitung für meine Fehlermeldung an Avira hier meinen Test-Quelltext als EXE hochgeladen, die sich unter Vista gleich die nötigen Adminrechte verschafft.
Hier noch ein Querlink: www.paules-pc-forum....e-bei-csrss-exe.html
|
|
AHT
Beiträge: 207
|
Verfasst: Di 14.04.09 10:19
Hab den Fehler gepostet - ob die da was ändern, weiß ich nicht. Wer für seine Anwendung Handles aus CSRSS bnötigt, sollte deshalb mit OpenProcess nicht PROCESS_DUP_HANDLE verwenden, sondern MAXIMUM_ALLOWED - das haut bislang auch mit AntiVir hin.
|
|
GTA-Place
Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Di 14.04.09 10:30
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
AHT
Beiträge: 207
|
Verfasst: Sa 02.05.09 15:56
So - hab schon mal die Bestätigung dafür, dass das wirklich an AntiVirs Prozessschutz liegt. Wenn die dort in ihrem Treiber was ändern, werden die aber wohl eher noch weiter sperren. Also Vorsicht! Techniken, die auf den aus CSRSS extrahierten Handles basieren, werden wohl auf Dauer zusammen mit AntiVir gar nicht mehr funktionieren!
Ich hoffe, das hilft hier dem ein oder anderen.
|
|
AHT
Beiträge: 207
|
Verfasst: Do 02.07.09 18:17
Es gibt hier scheinbar neue, sehr interessante, Ergebnisse.
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Do 02.07.09 18:36
Ums mal kurz zusammenzufassen:
OpenProcess bei der CSRSS mit PROCESS_DUP_HANDLE funktioniert nicht, aber mit MAXIMUM_ALLOWED schon?
Hab gerade mal dein Programm auf Vista SP1 getestet, mit AntiVir 8 haben sich beide Handles öffnen lassen und der Schutz (OpenProcess) hook war nicht aktiv. Na dann
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
AHT
Beiträge: 207
|
Verfasst: Fr 03.07.09 14:57
uall@ogc hat folgendes geschrieben : | Ums mal kurz zusammenzufassen:
OpenProcess bei der CSRSS mit PROCESS_DUP_HANDLE funktioniert nicht, aber mit MAXIMUM_ALLOWED schon? |
Ja so ist es!
Und genau das soll das Beenden der AntiVir Prozesse verhindern!!!
uall@ogc hat folgendes geschrieben : |
Hab gerade mal dein Programm auf Vista SP1 getestet, mit AntiVir 8 haben sich beide Handles öffnen lassen
|
Wenn ich mich richtig erinnere, erst ab Version 9.
uall@ogc] hat folgendes geschrieben : |
und der Schutz (OpenProcess) hook war nicht aktiv. Na dann |
Der Prozessschutz wurde bei dir scheinbar nicht richtig installiert. Nach einem Update machte Version 8 da öfters Mist (bis zum nächsten Reboot ungeschützt).
--- Moderiert von Narses: Beiträge zusammengefasst---
Ergänzung zur Zusammenfassung:
Scheinbar nutzen den gleichen Coden, den AntiVir hier zum Prozessschutz in Version 9 erfolglos verwendet, auch andere Programme... Wer den wohl geschrieben hat???
--- Moderiert von Narses: Beiträge zusammengefasst---
GTA-Place hat folgendes geschrieben : | Vielleicht sollte man das den Entwicklern von AntiVir sagen und nicht uns |
Ich denke mal: Gerade euch!
Wer für seine Anwendung Handles aus CSRSS benötigt, sollte CSRSS nicht mit PROCESS_DUP_HANDLE öffnen, sonder auf jeden Fall MAXIMUM_ALLOWED nehmen, da es sonst Komplikationen mit irgendwelcher Sicherheitssoftware geben kann. Gerade hier gibt es viele Leute, die richtig programmieren können und für die das ein wertvoller Hinweis sein könnte.
|
|
AHT
Beiträge: 207
|
Verfasst: Sa 04.07.09 10:30
Ein weiteres Programm, das diese ganz offensichtlich nicht funktionierende Technik nutzt, scheint das Sicherheitsprogramm Sandboxie zu sein...
|
|
Dezipaitor
Beiträge: 220
|
Verfasst: Sa 04.07.09 14:13
Mom, verstehe ich das richtig? Das duplicate Recht bekommt man nur, wenn man MAXIMUM_ALLOWED verwendet? Und was ist mit GENERIC_ALL ?
Denn MAXIMUM_ALLOWED is blödsinn! Wenn man etwas Bestimmtest mit dem Token machen will, dann sollte man auch nur diese Rechte in der OpenProcess angeben. Mit MAXIMUM_ALLOWED kann es gut sein, dass man ein benötigtes Recht nicht bekommt, aber die Funktion trotzdem ein Handle zurückgibt. Dann hat man eben eine Funktion später, die das Recht benötigt ein Problem.
Kannst du vielleicht mal mit RunAsSys dein Programm ausführen und prüfen, ob mit SYSTEM Rechten erlaubt wird auf den Prozess mit dem dup Recht zuzugreifen? Weil spätestens als SYSTEM-Dienst muss dies möglich sein, da sonst einige Programme nicht funktionieren, die fehlerhafte Implementationen von MS umgehen wollen.
Antivirprogramme dürfen nach meiner Meinung da eh nicht eingreifen, weil wenn ein Virus/Trojaner soweit gekommen ist, sollte man Windows neuinstallieren und nicht versuchen weiter zu prüfen.
PS.
Hast du schon NTOpenProcess versucht?
_________________ Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: blog.delphi-jedi.net = JEDI API LIB & Windows Security Code Library (JWSCL)
Zuletzt bearbeitet von Dezipaitor am Sa 04.07.09 15:15, insgesamt 1-mal bearbeitet
|
|
Dezipaitor
Beiträge: 220
|
Verfasst: Sa 04.07.09 15:01
SuRun funktioniet dann wohl auch nicht,
Konnte ich jetzt nicht nachvollziehen.
_________________ Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: blog.delphi-jedi.net = JEDI API LIB & Windows Security Code Library (JWSCL)
|
|
AHT
Beiträge: 207
|
Verfasst: So 05.07.09 05:21
Dezipaitor hat folgendes geschrieben : | Mom, verstehe ich das richtig? Das duplicate Recht bekommt man nur, wenn man MAXIMUM_ALLOWED verwendet? Und was ist mit GENERIC_ALL ?
|
Hast Recht! GENERIC_ALL geht auch, wenn SeDebugPrivilege aktiviert ist.
Dezipaitor hat folgendes geschrieben : |
Kannst du vielleicht mal mit RunAsSys dein Programm ausführen und prüfen, ob mit SYSTEM Rechten erlaubt wird auf den Prozess mit dem dup Recht zuzugreifen? Weil spätestens als SYSTEM-Dienst muss dies möglich sein, da sonst einige Programme nicht funktionieren, die fehlerhafte Implementationen von MS umgehen wollen.
|
Geht natürlich auch mit Systemrechten nicht!
Dezipaitor hat folgendes geschrieben : |
Antivirprogramme dürfen nach meiner Meinung da eh nicht eingreifen, weil wenn ein Virus/Trojaner soweit gekommen ist, sollte man Windows neuinstallieren und nicht versuchen weiter zu prüfen.
|
So ist es! Die Technik ist sowieso für den Müllkasten, denn sie verhindert gar nichts!!!!
Dezipaitor hat folgendes geschrieben : |
PS.
Hast du schon NTOpenProcess versucht? |
Nein, der Hook liegt aber im Kernel auf Zw/NtOpenProcess, das ist sicher - der Test ist also wohl nicht nötig.
Fazit: Sämtliche Programme, die OpenProcess mit Flag PROCESS_DUP_HANDLE auf CSRSS.exe verwenden, werden zusammen mit AntiVir nicht funktionieren!
|
|
Dezipaitor
Beiträge: 220
|
Verfasst: Mi 08.07.09 10:44
Teste das bitte mal mit Systemrechten!
_________________ Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: blog.delphi-jedi.net = JEDI API LIB & Windows Security Code Library (JWSCL)
|
|
AHT
Beiträge: 207
|
Verfasst: Mi 08.07.09 15:00
Dezipaitor hat folgendes geschrieben : | Teste das bitte mal mit Systemrechten! |
Was mit Systemrechten genau testen? Ich habe mein Testproggie mit Systemrechten gestartet - aber über eins meiner Programme (da habe ich eine Oberfläche und kann anklicken). Hab's noch einmal mit RunAsSys getestet und bin zum gleichen Ergebnis gekommen:
Zitat: |
AntiVir OpenProcess-Hook ist installiert!
ID des Subsystems meines Desktops: 628
OpenProcess mit Flag PROCESS_DUP_HANDLE:
Es konnte kein Handle auf CSRSS geöffnet werden!
Fehlercode beim Öffnen des Handles auf CSRSS: 5
OpenProcess mit Flag MAXIMUM_ALLOWED:
Das Öffnen des Handles auf CSRSS war erfolgreich!
OpenProcess mit Flag GENERIC_ALL:
Das Öffnen des Handles auf CSRSS war erfolgreich!
|
|
|
|