AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WinVerifyTrust Hook Probleme

Offene Frage von "Sereby"
Ein Thema von Sereby · begonnen am 14. Okt 2008 · letzter Beitrag vom 23. Okt 2008
Antwort Antwort
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#1

WinVerifyTrust Hook Probleme

  Alt 14. Okt 2008, 15:17
Hoi,

ich habe hier folgendes Gefunden:
http://www.delphipraxis.net/internal...ct.php?t=48444

funktionuckelt auch soweit.

Nur habe ich jetzt schon etwas länger versucht die Wintrust funktion von windows zu hooken per madCodeHook (funzt auch) und dabei sind mir ungreimtheiten aufgefallen die ich mir leider nicht erklären kann.

Ziel:
sigverif.exe soll ALLE Dateien als Signiert anerkennen und bei "Signiert von" muss etwas von Microsoft stehen

1. Hook Versuch:
Bei CryptCATAdminCalcHashFromFileHandle einfach das Filehandle von einer anderen Datei wie z.B. NT5.CAT (%windir%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}) übergeben.
Funktioniert nicht!
Er Berechnet zwar den richtigen Hash aber sigverif.exe scheint da noch irgendwie anders abgesichert zu sein

2. Hook Versuch:
Delphi-Quellcode:
function WinVerifyTrustCallback(hwnd: THandle; pgActionID: PGUID; pWintrustData: PWINTRUST_DATA): Longint;
begin
  //So erkennt er alle Dateien als Signiert an!
  // - Allerdings verschwindet so das 'Signiert von'
  pWintrustData^.dwStateAction := WTD_STATEACTION_CLOSE;
  //Signatur Prüfung
  Result := WinVerifyTrustNext(hwnd, pgActionID, pWintrustData);}
end;
3. Hook Versuch:
Bei WinVerifyTrustCallback einen eigenen kompletten Signaturcheck zu machen für z.B. NT5.CAT. Also die im Artiekel erwähnte funktion "CheckFileTrust" aufrufen (abgeändert wegen ReturnCode) aber dabei ist mir durch Debuggen aufgefallen dass die funktion "CryptCATAdminEnumCatalogFromHash" IMMER 0 wiedergibt! Also er findet niemals einen Sicherheitskatalog bei der Funktion auch wenn definitiv einer Existiert.


Ich hoffe sehr dass mir da jemand weiterhelfen kann :/


Warum ich das will? z.B. Einfache Art um Windows Dateischutz zu "Deaktivieren" ohne irgendwelche Dateien Patchen zu müssen damit das allgemein gültig ist für jedes Windows-Betriebssystem
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#2

Re: WinVerifyTrust Hook Probleme

  Alt 16. Okt 2008, 04:55
Zitat von Sereby:
Warum ich das will? z.B. Einfache Art um Windows Dateischutz zu "Deaktivieren" ohne irgendwelche Dateien Patchen zu müssen damit das allgemein gültig ist für jedes Windows-Betriebssystem
Warum so kompliziert? Es gibt hundertmal einfachere Wege das zu erreichen was Du willst. Die Verwendung von API Hooks ist in dem Falle der sprichwörtliche Schuß auf Spatzen mit Kanonen.

1. SetSfcFileException erlaubt es Dir eine Minute lang eine beliebige Datei beliebig zu modifizieren. Danach wird eine Änderung nur erkannt, wenn ein Scan angeordnet wird. Wenn Dir das zu wenig ist, hindert Dich niemand daran Timer gesteuert die API alle 30 Sekunden neu aufzurufen um so auch einem manuellen Scan zu entgehen.
2. WFP benutzt Directory Notifications. Nichts hindert Dich daran Notification Handles zu schließen.
3. SfcTerminateWatcherThread im Kontext von WinLogon ausgeführt schaltet die WFP komplett ab bis zum Reboot. Über AppInit_DLLs, Logon Notification DLLs und ähnliche Spielereien kannst Du dafür sorgen, daß beim Start direkt ein SfcTerminateWatcherThread ausgeführt wird, die WFP also permanent deaktiviert ist.
4. SFC_OS.DLL patchen. Ich weiß, das willst Du nicht. Ist aber immer noch deutlich geringer ins System eingegriffen als madCodeHook. Letztlich lassen sich alle Versionen von sfc_os.dll patchen indem man nach 83F89D75078BC6 sucht und durch 83F89D75079090 ersetzt. Danach die Registry Settings setzen wie überall dokumentiert.
5. Die Dateiliste (SFCFILES.DLL) patchen. Einfach nach dem Filename suchen, das erste Byte des Dateinamens durch ein 0 Byte ersetzen (= End of String) und danach mit den entsprechenden Image Helper Funktionen die PE Checksumme neu berechnen lassen.

Die eleganteste Methode ist letztlich der Patch von SFCFILES.DLL, da man ohne das irgendetwas aktiv im Hintergrund laufen müsste, alle Dateien die man ändern möchte permanent von der Überwachung aus nimmt, auch wenn die eigene Anwendung nicht läuft. Der Code Umfang wäre wahrscheinlich weniger als ein Zehntel von dem was madCodeHook allein auf die Waage bringt.
Fridolin Walther
  Mit Zitat antworten Zitat
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#3

Re: WinVerifyTrust Hook Probleme

  Alt 16. Okt 2008, 06:41
es war nur ein beispiel mit dem SFC!

Ich brauch das auch noch für z.B. MS Hotfixes um eigene erstellte Setup .Inf Dateien zu erlauben, da ich selber Hotfixes erstelle (ich kombiniere die von MS damit ich nich alle einzelnd installieren muss). Da müsste ich sonst immer die update.exe oder in vista irgend eine dll cracken oder so. Aber da wäre das mit dem Hook am elegantesten und "einfachsten"

Das mit dem SFC wäre halt ein guter Nebeneffekt!

nur hab ich da halt die oben beschriebenen Probleme und weiss nich wie ich die lösen soll.
  Mit Zitat antworten Zitat
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#4

Re: WinVerifyTrust Hook Probleme

  Alt 23. Okt 2008, 08:27
keine irgendwie ne idee?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: WinVerifyTrust Hook Probleme

  Alt 23. Okt 2008, 08:50
Zitat von Sereby:
Ziel:
sigverif.exe soll ALLE Dateien als Signiert anerkennen und bei "Signiert von" muss etwas von Microsoft stehen
Willst du diese "Lösung" auch verteilen? Ich würde als Microsoft (oder als Normaler Anwender) sowas als Computersabotage ansehen. Denn solche Lösungen mit Verschleierung von Quellen sind doch primär für Viren/Wurm/Trojanerhersteller. Und ich hoffe das MS das gut abgesichert hat bzw. wenn es eine "Lösung" geben sollte diese mit Windows Update geschlossen wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: WinVerifyTrust Hook Probleme

  Alt 23. Okt 2008, 09:00
Auch wenn die Lösung nur privat ist, weiß ich nicht, ob man sie hier öffentlich diskutieren sollte,
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: WinVerifyTrust Hook Probleme

  Alt 23. Okt 2008, 10:12
Naja für Maleware bringt das Verfahren sicherlich nichts. Diese muss ja zuerst einmal gestartet werden, um die Zertifikate zu manipulieren. Das heißt das Zertifikat der Maleware würde noch ungefälscht erscheinen ..
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz