AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

API von Reg.exe

Offene Frage von "richard_boderich"
Ein Thema von Metal_Snake2 · begonnen am 15. Jun 2008 · letzter Beitrag vom 25. Jun 2008
Antwort Antwort
Seite 1 von 3  1 23   
Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#1

API von Reg.exe

  Alt 15. Jun 2008, 19:22
Hallo,

ich bin gerade dabei das Programm "Reg.exe" welches Standartmäßig (zumindes in XP) dabei ist zu analysieren.
Es ist ein Kommandozeilen- basierendes 32-bit programm. Habe es schon mit Regmon, Procmon analysiert jedoch bekomme ich einach
nicht heraus wie es das Programm schaft Einträge anzuseigen die z.B. Regedit/Regedit32 nicht findet. Reg.exe scheint auch nicht dei Native- API zu benutzen. Bin gerade verwirrt, kann es sein das dass Programm mit NTSetInformationKey einpaar besondere flags setzt vor dem lesen der Schlüssel Werte? Danke für lesen, ich hoff echt das mir jemand weiter helfen kann.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: API von Reg.exe

  Alt 15. Jun 2008, 21:17
Was willst du denn machen?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#3

Re: API von Reg.exe

  Alt 15. Jun 2008, 23:05
Wie wäre es mit der gleichen Methode die auch bei Dateien funktioniert? Backup/Restore-Privileg um Dateien zu listen die man ansonsten nicht sehen kann? Immerhin gibt es Registry-APIs um ähnliches Backups von Schlüsseln und Hives anzufertigen, warum soll das hier nicht ähnlich funktionieren?

Die entsprechenden Funktionen werden auch importiert:

- AdjustTokenPrivileges
- LookupPrivilegeValueW
- OpenProcessToken
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: API von Reg.exe

  Alt 15. Jun 2008, 23:14
Es gibt einen Aufruf von MSDN-Library durchsuchenAdjustTokenPrivileges in der ganzen Binärdatei (habe die 32bit-Version von Vista SP1) und die Funktion welche den Aufruf enthält - welche ich mal spontan SetPrivilegeByName genannt habe - nur viermal aufgerufen. Alle vier Aufrufe bestätigen exakt meine oben gemachte Annahme.

Code:
.text:010079F4 078                 push   2               ; int
.text:010079F6 07C                push   offset Name    ; "SeBackupPrivilege"
.text:010079FB 080                 push   [ebp+lpSystemName] ; lpSystemName
.text:010079FE 084                 call   SetPrivilegeByName
Code:
.text:01007C75 074                 push   2               ; int
.text:01007C77 078                 push   offset aSerestoreprivilege ; "SeRestorePrivilege"
.text:01007C7C 07C                push   [ebp+lpSystemName] ; lpSystemName
.text:01007C7F 080                 call   SetPrivilegeByName
Code:
.text:01007DDE 070                 push   2               ; int
.text:01007DE0 074                 push   offset aSerestoreprivilege ; "SeRestorePrivilege"
.text:01007DE5 078                 push   [ebp+lpSystemName] ; lpSystemName
.text:01007DE8 07C                call   SetPrivilegeByName
Code:
.text:01007F37 070                 push   2               ; int
.text:01007F39 074                 push   offset aSerestoreprivilege ; "SeRestorePrivilege"
.text:01007F3E 078                 push   [ebp+lpSystemName] ; lpSystemName
.text:01007F41 07C                call   SetPrivilegeByName
  Mit Zitat antworten Zitat
Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#5

Re: API von Reg.exe

  Alt 16. Jun 2008, 13:44
Erstmal danke für die das Antworten!

Also ich glaub ich habe mich nicht genau genug ausgedrückt, deswegen hast du mich @Olli eventuell falsch verstanden.
Ich möchte keine Keys Laden, Speichern, Importieren oder Exportieren.

Ich mache es mal jetzt so konkret wie es nur sein kann weil ich echt am verzweifeln bin wie das funktioniert:

Also ich installiere mal aus spass den "Adramax Keylogger", der fügt einen Autostart eintrag in HKLM\...\Run hinzu.
Über dem Usermode per DLL- Injektion schaft er es indem er wie ich denke ziemlich viele Registry- WinAPIs hookt, den Autostart
Eintag für alle dei Anwendungen welche mit der DLL infiziert sind zu verstecken.

Mich wundert nun folgendes: Autorun, msconfig oder gar registrie Editoren welche auf dei Native API (NtQueryKey und co) aufsetzen
finden diesen Eintrag nicht! Wie schaft es das dieses kleinen prog "reg.exe" (ist meistens in System Verzeichnis)
über den Komandozeilenbefehl "Reg Query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run " trotzdem diesen versteckten Schlüssel Wert zu finden. Was natürlich sein könnte ist das es der Keylogger einfach nicht schaft seine DLL in den Adressraum von Reg.exe zu injezieren da es nur ein Komandozeilenbasierendes prog ist (ohne gui). Oder verwender reg.exe einpaar Tricks?

Edit: Ich hab gerad mir ProcMon nachgeschaut und es werden wirklich nicht die Dll in reg.exe injeziert.
Hmm und das ist jetzt wohl der vorteil von Reg.exe das es keine GUI...also Fenster hat?
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: API von Reg.exe

  Alt 16. Jun 2008, 14:42
Zitat von Metal_Snake2:
Erstmal danke für die das Antworten!

Also ich glaub ich habe mich nicht genau genug ausgedrückt, deswegen hast du mich @Olli eventuell falsch verstanden.
Ich möchte keine Keys Laden, Speichern, Importieren oder Exportieren.
Es klang so, als wölltest du wissen, wieso reg.exe etwas sehen kann, was einige andere Programme nicht sehen. Das Backup-Privileg ermöglicht exakt das.

Zitat von Metal_Snake2:
Mich wundert nun folgendes: Autorun, msconfig oder gar registrie Editoren welche auf dei Native API (NtQueryKey und co) aufsetzen
finden diesen Eintrag nicht! Wie schaft es das dieses kleinen prog "reg.exe" (ist meistens in System Verzeichnis)
über den Komandozeilenbefehl "Reg Query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run " trotzdem diesen versteckten Schlüssel Wert zu finden. Was natürlich sein könnte ist das es der Keylogger einfach nicht schaft seine DLL in den Adressraum von Reg.exe zu injezieren da es nur ein Komandozeilenbasierendes prog ist (ohne gui). Oder verwender reg.exe einpaar Tricks?
Wie startest du denn reg.exe? Von der Kommandozeile aus? Wenn ja, versuche mal folgendes. Schreibe ein kleines Programm und starte von dem aus via ShellExecute, ShellExecuteEx und WinExec jeweils einmal reg.exe und schau dir die Ausgabe an. Ein Verdacht wäre, daß der Keylogger nicht alle entsprechenden APIs hookt oder gar nur den Hook auf ShellExecute(Ex) registriert hat.

Zitat von Metal_Snake2:
Edit: Ich hab gerad mir ProcMon nachgeschaut und es werden wirklich nicht die Dll in reg.exe injeziert.
Hmm und das ist jetzt wohl der vorteil von Reg.exe das es keine GUI...also Fenster hat?
Das wiederum könnte darauf hinweisen, daß das Hooking über Fensterhooks initialisiert wird. Daß also Fensterhooks die Methode sind um anfangs in den Adreßraum des Prozesses zu kommen in dem manipuliert werden soll.
  Mit Zitat antworten Zitat
Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#7

Re: API von Reg.exe

  Alt 16. Jun 2008, 15:54
Also es liegt wirklich daran das die DLL nicht in Reg.exe indiziert werden konnte.

Also ich gehe jetzt mal einen schritt weiter und frage mich nun folgedes.

Wie schaft es das Autostart Manager Programm OSAM(Hier zu kriegen) ohne einen Kernelmode Treiber registry Einträge zu finden welche versteckt sind.

Ich mein ich habe mal zu testzwecken den "Elite Keylogger" runtergeladen und installiert, er verwendet einen "Low-Level" kernelmode- Treiber. Ok es werden einpaar SSDT- Funktionen gehookt und auch mehr, somit dürfte ja ein Programm welches nur im
Usermode rumspielt wie OSAM eigentlich keine chance haben an die Schlüssel ranzukommen. Aber irgendwie schaft es das Programm
die Einträge zu finden.

Ich hab mir folgendes überlegt:

Kann es sein das OSAM direkt von den Registry Hives auslies? Oder OSAM einen trick verwendet und ZW* Systemaufrufe vom Usermode ausführt, indem er die Methoden aus der NtDll verwendet, macht aber keinen unterschied zu NT* aufrufen.

Hab mich schon öfters gefragt wie das prog sowas schaft, ich hoffe Olli kannst mir weiterhelfen.

Danke
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: API von Reg.exe

  Alt 16. Jun 2008, 19:48
Zitat von Metal_Snake2:
Ich mein ich habe mal zu testzwecken den "Elite Keylogger" runtergeladen und installiert, er verwendet einen "Low-Level" kernelmode- Treiber. Ok es werden einpaar SSDT- Funktionen gehookt und auch mehr, somit dürfte ja ein Programm welches nur im Usermode rumspielt wie OSAM eigentlich keine chance haben an die Schlüssel ranzukommen. Aber irgendwie schaft es das Programm die Einträge zu finden.
Da muesste man sich den Treiber und das Programm welches schafft ihn zu umgehen angucken.

Zitat von Metal_Snake2:
Kann es sein das OSAM direkt von den Registry Hives auslies?
Unwahrscheinlich. Wenn ich mich recht entsinne, geht das nur unter ganz bestimmten Umstaenden.

Zitat von Metal_Snake2:
Oder OSAM einen trick verwendet und ZW* Systemaufrufe vom Usermode ausführt, indem er die Methoden aus der NtDll verwendet, macht aber keinen unterschied zu NT* aufrufen.
Zw* == Nt* im Usermode. Und da alle Aufrufe durch das Callgate in den Kernelmode fuehren, sollte SSDT-Hooking hier effektiv sein.
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#9

Re: API von Reg.exe

  Alt 16. Jun 2008, 20:37
@Metal Snake

Probier mal ob mein Testprogramm die Autostarteinträge findet. Würde mich mal interessieren. Von Adramax hab ich nur ein Keylogger light getestet und der wird gefunden. Einfach die Exe starten und auf Scan Komplett drücken.
Angehängte Dateien
Dateityp: exe test_761.exe (782,0 KB, 7x aufgerufen)
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#10

Re: API von Reg.exe

  Alt 18. Jun 2008, 16:03
@richard_boderich

ne dein Testprogramm findet nix, wie den auch...in dem Adressraum deines Progs. werden die DLLs von Adramax injeziert, also all deine Registry Aufrufe sind gehookt. Ich entnehme aus dem Registry-Pfad das du scheinbar mit der Nativen API arbeitest, aber auch die Funktionen hookt die DLL.

@Olli

Ich hab dem Autor vom OSAM geschrieben aber er antwortet nicht. Naja warum jetzt reg.exe die versteckten Einträge findet ist klar
aber wie es OSAM schaft ist mir schleierhaft.

Hat jemand ne idee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:14 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