XspYroX Geschrieben 22. April 2013 Geschrieben 22. April 2013 Hi Hab da mal wieder ne Frage zum Thema Verschlüsselung. Und zwar möchte ich eine Exe-Datei erstellen, die an sich eher banale Dinge tut: Sie prüft in einem vordefinierten Zeitinterval (z.b. alle 10 sekunden), ob eine Datei auf einem Netzwerkpfad erreichbar ist. Ist diese Datei irgendwann erreichbar, so wird diese Datei mit adminrechten ausgeführt. Adminrechte bedeutet hier, mit dem konto "admin" und dem beispielkennwort "123456". Der User, der zu der zeit aktiv ist, hat keine adminrechte. Diese Datei soll zudem im autostart des users liegen. Also relativ einfach alles Die Frage ist jetzt: Wie bekomme ich dieses passwort so sicher wie möglich gesichert? Also gegen Reverse-engineering u.s.w.? Dass das Passwort nie 100% sicher ist, ist mir schon bewusst. Aber es sollte z.B. auch nicht mit der Microsoft Technet "strings.exe" ausgelesen werden können, oder mit einfachen decompilern. Ich weiß noch nicht, womit ich die Exe-Datei schreibe. Entweder mit batch (+ bat2exe-converter) oder Autoit oder .NET (VB). Würde es gegen mittelschweres reverse-engineering reichen, wenn ich das passwort in verschiedene variablen splitte und es dann aus diesen zusammensetzen lasse? =) Viele Grüße XspYroX Zitieren
flashpixx Geschrieben 22. April 2013 Geschrieben 22. April 2013 von diesem Vorgehen würde ich dringend abraten, das ist mehr ein "dirty hack". Installiere das Programm als Dienst mit den entsprechenden Rechten, d.h. der Dienst braucht die passenden Rechte. Ein normaler User hat nicht die Berechtigung Dienste zu verändern. Dein Programm braucht dann kein Passwort o.ä., da der Dienst von sich aus die passenden Rechte hat und damit auch das Programm. Wann der Deinst laufen soll, kannst Du in den Eigenschaften des Dienstes dann auch fest legen. Zitieren
Klotzkopp Geschrieben 22. April 2013 Geschrieben 22. April 2013 Würde es gegen mittelschweres reverse-engineering reichen, wenn ich das passwort in verschiedene variablen splitte und es dann aus diesen zusammensetzen lasse?Nein. Am Ende steht das zusammengesetzte Passwort im Klartext im Speicher. Da brauche ich kein Reverse-Engineering, da brauche ich mich nur mit einem Debugger oder Tracer an dein Programm zu hängen. flashpixx hat eigentlich alles gesagt, was dazu zu sagen ist, aber weil es so wichtig ist, nochmals: Die Lösung für dein Problem ist ein Dienst. Alles, was du selbst zusammenbastelst, ist ein fettes Sicherheitsproblem. Zitieren
Ragdalfius Geschrieben 15. Mai 2013 Geschrieben 15. Mai 2013 Schlag mich nicht, wenn ich mich irre, aber der Dienst darf dann nicht unter Local System ausgeführt werden, sondern braucht einen Benutzer mit Admin Rechten, weil er ja auf einen Netzwerkpfad zugreifen möchte, oder? Zitieren
Klotzkopp Geschrieben 15. Mai 2013 Geschrieben 15. Mai 2013 Schlag mich nicht, wenn ich mich irre, aber der Dienst darf dann nicht unter Local System ausgeführt werden, sondern braucht einen Benutzer mit Admin Rechten, weil er ja auf einen Netzwerkpfad zugreifen möchte, oder? Am saubersten ist es, wenn man für so einen Dienst einen eigenen Benutzer anlegt, der genau das darf, was er braucht, um seine Arbeit zu tun, nicht mehr. Zitieren
SilentDemise Geschrieben 15. Mai 2013 Geschrieben 15. Mai 2013 Am saubersten ist es, wenn man für so einen Dienst einen eigenen Benutzer anlegt, der genau das darf, was er braucht, um seine Arbeit zu tun, nicht mehr. Genau das. Dieser Service account wird entsprechend mit deny logon locally, logon as service / batch usw. per secpol konfiguriert. entsprechend hast du dann auch über DIESEN Benutzer das entsprechende audit login um mißbrauch protokollieren zu können. .NET sollte hier das mittel der Wahl sein, sämtliche script sachen enden in Sicherheitsproblemen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.