Autor Beitrag
AHT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: 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. :lupe:
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 user profile iconNarses: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: So 12.04.09 08:49 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: 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. :evil:
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. :roll:
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 12.04.09 22:15 
Vielleicht sollte man das den Entwicklern von AntiVir sagen und nicht uns :nixweiss:

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: So 12.04.09 22:37 
user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht sollte man das den Entwicklern von AntiVir sagen und nicht uns :nixweiss:

Das habe ich auch vor, mit einem Link in dieses Forum hier.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 14.04.09 10:30 

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Do 02.07.09 18:17 
Es gibt hier scheinbar neue, sehr interessante, Ergebnisse.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Fr 03.07.09 14:57 
user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:
Ums mal kurz zusammenzufassen:
OpenProcess bei der CSRSS mit PROCESS_DUP_HANDLE funktioniert nicht, aber mit MAXIMUM_ALLOWED schon?

Ja so ist es! :lol:
Und genau das soll das Beenden der AntiVir Prozesse verhindern!!! :oops:
user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:

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.
user profile iconuall@ogc] hat folgendes geschrieben Zum zitierten Posting springen:

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 user profile iconNarses: 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 user profile iconNarses: Beiträge zusammengefasst---

user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht sollte man das den Entwicklern von AntiVir sagen und nicht uns :nixweiss:

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Sa 04.07.09 10:30 
Ein weiteres Programm, das diese ganz offensichtlich nicht funktionierende Technik nutzt, scheint das Sicherheitsprogramm Sandboxie zu sein...
Dezipaitor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: So 05.07.09 05:21 
user profile iconDezipaitor hat folgendes geschrieben Zum zitierten Posting springen:
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. :lol:

user profile iconDezipaitor hat folgendes geschrieben Zum zitierten Posting springen:

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!
user profile iconDezipaitor hat folgendes geschrieben Zum zitierten Posting springen:

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!!!!
user profile iconDezipaitor hat folgendes geschrieben Zum zitierten Posting springen:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 08.07.09 15:00 
user profile iconDezipaitor hat folgendes geschrieben Zum zitierten Posting springen:
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!