Kinder nerven und Erziehung ist mühsam. Abhilfe versprechen der Kinderkanal, Ritalin und diverse Programme wie Kindersicherung 2006 alias Child Control 2006 von Salfeld.
Da ich mit dem neuen Process Monitor von Sysinternals mal irgendwas ausspionieren wollte, habe ich mir den Computer-Bild Testsieger, der laut Hersteller "Cracksicher" ist, angesehen.
Test
Kindersicherung 2006 Version 8.445.0.0 vs. Kind (ich)
Testumgebung: Windows XP Pro SP2

Funktionen
Kindersicherung 2006 kann für jeden Benutzer individuell einstellbar bestimmte Regeln erzwingen (bzw. versucht es). PC/Internet Lauf- und Sperrzeiten, erlaubte Programme, verbotene Verzeichnisse, verbotene Webseiten. Daneben gibt es unter "System / Sicherheit" einige allgemeine Einstellungen um den Task-Manager, den Registry Editor und andere echte oder vermeintliche Sicherheitsrisiken zu behandeln.
Das Programm führt ein Protokoll über diverse Benutzeraktivitäten, welches auch per E-Mail verschickt werden kann (unverschlüsselt).
Funktionsweise
Kisi installiert unter XP einen Dienst "Security_Service", der beim Start von Windows den Treiber mchInjDrv.sys (siehe unten) lädt. Der Treiber lädt die DLL tmr005.dll in alle Benutzerprozesse (DLL Injection). Diese DLL manipuliert mit Inline Hooks einige Systemfunktionen wie "TerminateProcess". Dadurch kann der Kisi-Prozess nicht mehr mit dem Task-Manager beendet werden. Das soll offenbar einen Selbstschutz darstellen.
Beim Login des Benutzers wird der Hauptprozess WinTmr.exe gestartet. Dieser Prozess startet zwei Tochterprozesse: Webtmr.exe und svsvr.exe. Diese drei Prozesse und das Einstellungsprogramm kisiset.exe beinhalten die gesamte Funktionalität.
Einstellungen und Protokolle werden zusammen in einer Datenbank gespeichert.
Der Programmteil "System / Sicherheit" ist eine Oberfläche für verschiedene Systemeinstellungen. Alle Einstellungen (und noch einiges mehr) können auch mit regedit.exe und unter XP Pro mit gpedit.msc vorgenommen werden.
Auch der Programmteil "Verzeichnisse schützen" ist nur eine einfache Oberfläche für Dateisystemberechtigungen. XP Pro hat den entsprechenden Editor eingebaut, unter XP Home kann man "FaJo XP File Security Extension" installieren (Freeware) oder cacls.exe benutzen.
Dateien
C:\WINDOWS\system32\TmrService.exe (Service, lädt den Treiber mchInjDrv.sys von madCodeHook)
C:\WINDOWS\system32\svsvr.exe (die Hauptprogramme)
C:\WINDOWS\system32\SWCTL.DLL (irgendeine Textdatei)
C:\WINDOWS\system32\bin\tmr005.dll (kann auch tmr004.dll heissen, wird durch madCodeHook in alle Benutzerprozesse injiziert, Hook für TerminateProcess u.a.)
C:\WINDOWS\system32\bin\* ("Backups" der Programmdateien und Uninstaller)
C:\WINDOWS\system32\tmr\WinTmr.exe (die Hauptprogramme)
C:\WINDOWS\system32\tmr\Webtmr.exe (die Hauptprogramme)
C:\Programme\Kisi\* (Voreinstellung, das eigentliche Programmverzeichniss)
Datenbanken (Format: Absolute Database für Delphi von ComponentAce, nicht verschlüsselt)
C:\WINDOWS\system32\dbfile.sdb (Programmtexte)
C:\WINDOWS\system32\msmaindb.dll oder C:\WINDOWS\system32\wtmr.dll (beinhaltet alle Benutzerdaten und Protokolle im Klartext. Auch E-Mail Passwort! Die Dateiberechtigungen erlauben es jedem die Datei zu verändern! Die Datei wird nur durch ein File Lock geschützt solange die Hauptprozesse laufen.)
Registry
Unter anderem Zweig in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Explorer\Shell. Passwort-Prüfsumme ist in Kisi\Ord.
Update: Seit Version 8.530 gibt es keine Prüfsumme mehr. Es wird (vermutlich) das komplette Password verschlüsselt unter Kisi\SID gespeichert.
Hinweis: Die Namen der Dateien und Registry-Schlüssel können sich in neueren Versionen ändern.
Kindersicherung umgehen
Und jetzt zum lustigen Teil. Kindersicherung 2006 hat zwei Sicherheitsfunktionen: Ein komischer Selbstschutz verhindert das Beenden durch den Task-Manager. Das Einstellungsprogramm ist durch ein Passwort geschützt. Beides läßt sich leicht aushebeln.
* Kindersicherung lahmlegen
Sysinternals Process Explorer starten. Rechtsklick auf WinTmr & Co. -> Suspend. Kindersicherung schläft ein. Administratorrechte sind nicht erforderlich. Alternative: PsSuspend (auch von Sysinternals). Dabei fällt die Kindersicherung komplett aus, es wird auch nichts mehr aufgezeichnet.
* Internet-Zensur überlisten
iexplore.exe kopieren nach foo.exe. IE mit anderem Dateinamen wird von Kisi nicht als Internetverbindung erkannt. Sowohl die Zensur, als auch die Zeitbegrenzung fallen aus.
K-Meleon benutzen (auch ansonsten empfehlenswert!). Die Zensur geht scheinbar nur mit IE, Firefox, Netscape und Opera. Die URL-Protokoll-Funktion fällt dann auch aus.
Wenn man IPs anstatt Domainnamen verwendet, fällt die Zensur auch beim normalen IE aus.
* Programmkontrolle überlisten
Wenn man eine beliebige Exe in WinTmr.exe umbenennt, kann man sie trotz Sperre in jedem Fall ausführen.
* Protokoll überlisten
type ProgrammA.exe > ProgrammB.exe:ProgrammA.exe
start .\ProgrammB.exe:ProgrammA.exe
Protokoll zeigt ProgrammB an, obwohl ProgrammA ausgeführt wird.
Wenn man die Prozesse killt, kann man das Protokoll in msmaindb.dll mit einem Hexeditor beliebig ändern. Wer zu viel Zeit hat, kann sich in Delphi mit dem kostenlosen Absolute Database Toolkit einen kompletten Editor basteln.
* Kindersicherung zerstören
Start -> Ausführen -> cacls "%SystemRoot%\system32\msmaindb.dll" /D Jeder
Administratorrechte sind nicht erforderlich. Kindersicherung ist danach nicht mehr zu gebrauchen und lässt sich nicht deinstallieren. Nach dem Reboot wird nur noch eine Fehlermeldung angezeigt. Hinweis: Bei neueren Versionen kann msmaindb.dll einen anderen Namen haben (siehe oben).
* E-Mail Passwort des Admins rauskriegen
Passwort steht in der Datei C:\WINDOWS\system32\msmaindb.dll. Mit Notepad oder Hexeditor öffnen und durchsuchen (nach pop/mail/smtp). Hinweis: Bei neueren Versionen kann msmaindb.dll einen anderen Namen haben (siehe oben).
* Passwort für Einstellungsprogramm
Die primitive Prüfsumme des Passworts wird in der Registry gespeichert. Die Formel ist x1 * 3 + summe(x2..xn-1) + xn * 3. Dieses Programm berechnet aus der Prüfsumme ein gültiges Passwort, mit dem man das Einstellungsprogramm aufrufen kann.

Update: Seit Version 8.530.0.0 benutzt Kindersicherung 2006 eine völlig neue Verschlüsselung (lesen offensichtlich auch meinen Blog). Der Passwort Finder funktioniert nur bei älteren Versionen.
* Kindersicherung beenden
Wenn man einen der drei Prozesse killt, starten die anderen ihn neu (typisches Verhalten von Malware). Darum muss man alle gleichzeitig beenden. Wenn man eine Datei löscht, wird sie von den Kopien in C:\WINDOWS\system32\bin wiederhergestellt.
Durch die Vordertür: Zuerst den Selbstschutz mit dem mitgelieferten Programm beseitigen: Start -> Ausführen -> TmrService /uninject %SystemRoot%\system32\bin\tmr005.dll. Unter Umständen mit Process Explorer nachgucken ob die DLL anders heisst (View->Lower Pane View->DLLs).
Im Task-Manager (oder Process Explorer) Rechtsklick auf WinTmr.exe -> Prozessstruktur beenden.
Als Admin: Mit IceSword kann man die drei Prozesse killen. Mit Strg-Linksklick Prozesse markieren, Rechtsklick -> Terminate.
Ohne Administratorrechte: PIDs von WinTmr.exe, svsvr.exe und Webtmr.exe raussuchen (Task-Manager oder Process Explorer). CrashProcess 1668 && CrashProcess 900 && CrashProcess 1488. Geht so schnell, dass im Protokoll nichts zu sehen ist.
Anmerkungen
Die Internet-Zensur führt bei Opera zu diversen Fehlfunktionen.
Wikipedia steht auf der Whitelist, obwohl es zu jedem der Begriffe auf der Blacklist ausführliche Artikel gibt.
Im Verzeichniss C:\WINDOWS\system32\bin befindet sich der "versteckte" Uninstaller. Die Datei tmr010.bin umbenennen in tmr010.exe. Beim Start bietet der Uninstaller die Entfernung an (Prozesse müssen vorher gekillt werden!). Läuft ohne Fehler durch, funktioniert aber nicht richtig?
"Verzeichnisse schützen" ist schlecht gemacht, man kann auf die Dateien immer noch zugreifen, nur die Verzeichnissanzeige ist blockiert.
Die manipulierten Systemfunktionen (Hooks) haben die Namen WinTmr.exe und WebTmr.exe fest eingebaut. Jeder Prozess mit diesen Namen wird vor dem Beenden geschützt.
Das Datenbank-Locking ist vermutlich fehlerhaft, ich hatte aber keine Lust mehr das zu erforschen.
Update: MadCodeHook scheint ein paar Probleme zu machen. Der 103bees Search term analysis Dienst verrät mir gerade, dass die Leute Googlen nach
- security_service bluescreen
- der dienst "security_service" wurde aufgrund folgenden fehlers
FazitWer dachte, dass nach acht Jahren Entwicklungzeit die gröbsten Fehler raus sind, hat sich geirrt: Kindersicherung 2006 ist in etwa so durchdacht wie die Gesundheitsreform, allerdings wesentlich billiger. Und im Gegensatz zu
Veronica Mars lässt sich
Kisi leicht austricksen.
Die goldene Merkbefreiung am Band gibt es für das E-Mail Passwort im Klartext in einer für jedermann lesbaren Datei, obwohl die Datenbank Verschlüsselung unterstützt. Konsequenterweise wird dann auch auf sichere Authentifizierung verzichtet, damit die Hacker sich nicht überarbeiten.
Den Hein Blöd Ehrenpreis in der Kategorie "das merkt schon keiner" für einen Selbstschutz, der sich durch einen Aufruf des mitgelieferten (!) Programms tmrservice beseitigen lässt. Falls irgendjemand vergessen hat wie das Programm funktioniert, liefert "tmrservice /?" die Anleitung.
Die Do-it-yourself-Krypto Medaille in Platin gibt es für eine 2-Byte Passwort-Prüfsumme, die sich in fünf Minuten durch einfaches Kopfrechnen umdrehen lässt.
Den Harald Juhnke Demenz Orden in der Kategorie "Lebenswerk" für die standardmäßige Zugriffberechtigung der Hauptdatenbank "Vollzugriff für Jeder".
Und den Präsident Bush Preis für unfreiwillige Komik gibt es für die Kombination all dieser Spitzenleistungen in einem Programm.
Noch nie wurde ein einzelnes Programm so hoch prämiert.
Links