Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prozess verstecken / Win7x64 (https://www.delphipraxis.net/173377-prozess-verstecken-win7x64.html)

Medium 20. Feb 2013 22:39

Prozess verstecken / Win7x64
 
Nabend!

Wir haben einige Panel-PCs bei unseren Kunden hängen, die nur und ausschließlich unser Programm zeigen sollen. Da die Panels zum Teil auch für Personen zugänglich sind, die daran nichts machen können sollen (innerhalb des Programms ist das durch Passwörter geschützt), haben wir das Problem, dass ein jeder daher kommen könnte, und unser Programm einfach via Taskmanager abschießt. Und somit Dinge tun könnte, die er/sie/es nicht tun können dürfen soll.

Ich habe bereits ein wenig recherchiert, und wie es scheint, ist es unter Win7x64 nicht mehr so ganz so trivial wie unter Win98 einen Prozess aus dem Taskmanager verschwinden zu lassen. Was ich bisher fand, waren Links zu dubiosen Programmen und DLLs, die ich nur mit großen Bauchschmerzen anfassen wollen würde. Wenig ließ sich darüber finden, ob und wie diese das Ziel erreichen. Hiervon hängt auch ab, ob ein potenzieller Kunde unsere Lösung akzeptieren würde, so dass ich doch sehr an einer Lösung interessiert wäre. Wenn also Bedenken bzgl. der mit so etwas anrichtbaren Schäden existieren, wäre ich im Zweifel auch an einer Konversation via PM interessiert. (In diesem Falle würde ich hier zumindest den Forschungsstatus ohne zu viele technische Details wiedergeben, damit der Thread an sich nicht völlig über ist.)

Ich bin mir darüber im Klaren, dass so etwas in böser Absicht einsetzbar wäre. In unserem Fall würde es der Sicherheit einer Industrieanlage dienen, die sicherlich keiner von uns gerne in falschen Händen sehen würde. (Ich sage das nur um potenziellen Unkenrufen vorzubeugen.)


Klar ist, dass man eine Menge via Policies abdecken kann. Wird auch gemacht. Aber gerade die neueren Windows versionen sind (glücklicherweise) ja deutlich weniger angreifbar, so dass ein Strg-Alt-Entf über eine Tastatur immer geht. Genau das ist unser Problem. Wer eine Tasta anstöpselt, kommt weiter. Und die Mainboards haben nun Mal USB, und die USB Subsysteme können wir nicht ganz abschießen, da u.a. der Touch-Screen daran hängt. Das Gehäuse bekommt man trotz Edelstahl sicherlich auch auf um etwas anzuschließen, wenn man es denn wirklich will.
Ich suche händeringend nach einer Lösung dafür. Besten Dank im Voraus!

Union 20. Feb 2013 22:45

AW: Prozess verstecken / Win7x64
 
Trotzdem Policies...

Code:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=1

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=1

jfheins 20. Feb 2013 22:49

AW: Prozess verstecken / Win7x64
 
Naja, also zuerst gilt: Wer ungehinderten Zugriff auf die Hardware hat, dem kannst du nichts mehr entgegensetzen.
Danach:
:arrow: Registriere dein programm als shell. Der Windows Explorer wird nicht mehr gestartet, keien Autostart mehr und dein programm ist das erste und einzige was läuft.
:arrow: Gruppenrichtlinien können Einfluss auf den Sperrbildschirm nehmen.
Benutzerkonfiguration -> Administrative Vorlagen -> System -> Strg+Alt+Entf (Optionen)
Da kannst du alles einstellen.

Dann muss "nur noch" dein Programm sicher sein :mrgreen:

Aphton 20. Feb 2013 22:57

AW: Prozess verstecken / Win7x64
 
Falls du absolut keine saubere Lösung findest, kannst du das ganze ja dreckig lösen.
Du setzt einen globalen DLL-Hook, der per API-Hook bestimmte APIs überwacht. Du müsstest dann alle Möglichkeiten bedenken, wie man eine Anwendung schließen kann - angefangen von TerminateProcess() bis zu CreateRemoteThread mit ExitProcess usw..
Wie schon gesagt - das ist nicht der beste Weg, funktionieren tuts aber..
Du kannst auch Enumerierungs-APIs hooken um so gar nicht erst im TaskMgr oÄ. zu erscheinen..
Hab das letztere selber mal implementiert.. Machbar ist es!

Medium 20. Feb 2013 23:15

AW: Prozess verstecken / Win7x64
 
Danke für die Ideen!

Den Taskmanager ganz zu sperren wäre ... zumindest mittelfristig etwas blöd, da wir via Fernzugriff über eine gesicherte Verbindung diesen doch ganz gut gebrauchen könnten. Was sich da via Policies noch weiter fein-einstellen ließe werde ich mal recherchieren.

Da Prgoramm als Shell laufen zu lassen, daran hatte ich auch schon mal gedacht. Wie schaut es da aus mit der Benutzung von weiteren Programmen und Diensten? Wir müssten z.B. Acrobat Reader starten, und auch drucken können. Inklusive der Dialoge und allem. Das habe ich nicht probiert - geht sowas dann alles noch? Oder anders: Kann ich dann noch immer alles so machen wie als wenn mein Programm "normal" läuft? ShellExecute, CreateProcess, Interaktion mit Diensten und der ganze Kladderedatsch? Wird ein PC-Anywhere Host dann auch immer noch gestartet beim Boot? Bisher habe ich mich immer davor gescheut die Shell zu ersetzten.

Union 21. Feb 2013 06:43

AW: Prozess verstecken / Win7x64
 
Vielleicht solltest Du unter dem Stichwort Kiosk-Modus was Passendes finden.

CCRDude 21. Feb 2013 06:47

AW: Prozess verstecken / Win7x64
 
Security through obscurity ist meiner Meinung nach nie eine gute Idee.

Nachdem ich das gesagt habe... madCodeHook enthält sogar ein Beispiel dafür, wie man per globalem Hook das Beenden eines Prozesses unterbindet. Über die gleiche Geschichte lässt sich auch das erwähnte Ausblenden des Prozesses aus der Prozessliste realisieren (mit dem Ergebnis, dass vermutlich jeder Rootkit-Scanner anschlagen wird).

Medium 21. Feb 2013 08:38

AW: Prozess verstecken / Win7x64
 
Dass das an sich keine 100%ige Nummer ist, sollte klar sein. Der Kunde hat allerdings da sehr rigide Werksvorschriften, und seiner Aussage nach würde ein Verschwinden aus der Liste diese dann ausreichend erfüllen. (Ich hätte da an ganz anderen Stellen angesetzt, und viele der Anforderungen sind auch meiner Meinung nach Mumpitz. Man müsste sich halt wirklich erst an der richtigen Stelle zerstörungsfrei durch ein Edelstahgehäuse sägen um eine Tastatur dran zu bekommen...)

AV Software müsste im Zweifel entsprechend konfiguriert werden, sprich Rootkit Schutz raus. Das Panel ist diesbzgl. auch nicht sonderlich gefährdet, da sind sich die Netzwerker des Kunden wieder sehr sicher. (Sie meinten sogar ein AV müsste überhaupt nicht drauf.)

Verstehen muss ich da auch nicht alles, aber wenn sie es so haben müssen, dann müssen wir das eben so bauen. (Sonst macht's ein anderer.)

Danke für die Ideen! Ich werde mal mit den Optionen spielen.

Dalai 21. Feb 2013 08:59

AW: Prozess verstecken / Win7x64
 
Mal ganz quer gedacht: Würde es nicht ausreichen, wenn das Programm unter einem anderen Benutzerkonto ausgeführt wird, sinnvollerweise einem mit höheren Rechten? Dann kann man gar nichts mehr killen, selbst wenn man wollte, denn anderer Benutzer Prozesse töten, dürfen nur Admins oder höher.

Dazu kommt, dass die Prozesse anderer Benutzer gar nicht im Taskmanager von Win7 auftauchen, dafür müsste man den Button "Prozesse aller Nutzer" klicken (was dann eine UAC-Meldung auslöst, sofern eingeschaltet).

MfG Dalai

Aphton 21. Feb 2013 20:05

AW: Prozess verstecken / Win7x64
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe dir ja schon unzählige PMs geschrieben und in einem dir ne kleine Demo mit Src gegeben..
Ich hab nun rausgefunden, wie genau TaskMgr die Prozesse ermittelt, die Demo angepasst - sie versteckt sich nun ^_^

Die Demo spuckt zu Anfang 2 ShowMessage Fenster aus...
Ich möchte nur ergänzen, dass es sehr wohl auch mit 64 bit funktioniert - dafür muss halt die Dll als 64 bit kompiliert werden, was mein Kompiler aber nicht kann :P

Edit: Getestet unter Windows 7 Starter 32 bit


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz