Laden...

WinNeustart ohne Passwort

Erstellt von userid3728 vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.944 Views
U
userid3728 Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren
WinNeustart ohne Passwort

Hallo!

Ich möchte ein Programm schreiben:


"Restart ohne PW"

1. Das Passwort von WinXP wird entfernt       // <- [b]hier brauche ich hilfe [/b]      // Das Passwort & Username wird zuvor vom User eingebeben...
2. WinXP neustart          // shutdown.exe -r -f -t 0
3. Das PW wieder "aktiviert"        // net user Benutzername Passwort


Gibt es eine andere/bessere Lösung? Wisst ihr wie ich das bekannte PW von WinXP löschen kann?

Ich bin für jede Hilfe dankbar,
agent

4.506 Beiträge seit 2004
vor 17 Jahren

Hallo agent043,

man kann Windows so hochfahren lassen, dass er einen zuvor gespeicherten Benutzernamen und sein dazugehöriges Passwort verwendet.

Das Passwort zu löschen, und nach einem Neustart wieder zu setzen halte ich für eine sehr schlechte Idee.

Ich kann Dir leider nicht sagen wie man das bei Windows realisiert, da solltest Du mal ein wenig googlen. (Stichworte automatische Benutzeranmeldung oder ähnlich).

Gruß
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

U
userid3728 Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren

Danke für die schnelle Antwort ich werd jetzt noch ein bisschen im Registery Tutorial "schmöckern".

Autologin: WinFaq
Registery: CodeProject

B
198 Beiträge seit 2005
vor 17 Jahren

Wenn du eine Antwort findest post sie bitte... Ich denk mir das Leute sowas sehr gerne in ihre Referenzen oder ähnliches aufnehmen würden

lg

U
userid3728 Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren

Lösung:

using Microsoft.Win32;

Der Benutzer drückt auf button2: Neustart ohne Passwort:



        private void button2_Click(object sender, EventArgs e)
        {
            AktiviereAutoLogin();
            AutoLoginPW(RecoverPW(@"C:\Programme\restart\smallfile.001"));      // <- dort steht das Passwort
            Restart();
        }

        private string RecoverPW(string pfad)
        {
            // toDo: ließt das das PW aus einer verschlüsselten Datei aus.

            return "123";  // <- das ist das aktuelle Systempasswort // Statt 123 eigenes Passwort eingeben
        }

        private void AutoLoginPW(string passwort) // Schreibe das Passwort in die Registery
        {
            RegistryKey lokaleMaschine = Registry.LocalMachine;
            RegistryKey regKey;
            string winlogon = @"Software\Microsoft\Windows NT\CurrentVersion\Winlogon";

            regKey = lokaleMaschine.OpenSubKey(winlogon, true);     // Öffne Unterschlüssel winlogon mit schreibrecht (true)

            regKey.DeleteValue("DefaultPassword", false);                       // Lösche DefaultPassword
            regKey.SetValue("DefaultPassword", passwort, RegistryValueKind.String);     // Setze DefaultPassword (ist das Passwort)    
        }

        private void AktiviereAutoLogin() // Setze Registeryschlüssel für Autologin
        {
            RegistryKey lokaleMaschine = Registry.LocalMachine;
            RegistryKey regKey;
            string winlogon = @"Software\Microsoft\Windows NT\CurrentVersion\Winlogon"; 

            regKey = lokaleMaschine.OpenSubKey(winlogon,true);     // Öffne Unterschlüssel winlogon mit schreibrecht (true)

            regKey.DeleteValue("AutoAdminLogon", false);                      // Lösche (AutoAdminLogon: Name) (false: bei nicht-vorhanden-sein keine Ausnahme werfen)
            regKey.SetValue("AutoAdminLogon", 1, RegistryValueKind.String);     // Setze (AutoAdminLogon: Name) (1:wert) (RegistryValueKind.String: Registerytyp REG_SZ)

            regKey.DeleteValue("DefaultDomainName", false);                // Lösche DefaultDomainName
            regKey.SetValue("DefaultDomainName", "Georg-VAIO", RegistryValueKind.String); // Setze DefaultDomainName (ist der Computername) // statt Georg-VAIO eigenen Computernamen eintragen

            regKey.DeleteValue("DefaultUserName", false);                    // Lösche DefaultUserName
            regKey.SetValue("DefaultUserName", "Admin", RegistryValueKind.String);  // Setze DefaultUserName (ist der Benutzername)   // Statt Admin eingenen Benutznamen eintragen         
        }

        private void Restart()      // restarted Windows
        {
            Process restart = new Process();
            restart.StartInfo.CreateNoWindow = true;
            restart.StartInfo.UseShellExecute = false;
            restart.StartInfo.RedirectStandardOutput = true;
            restart.StartInfo.FileName = @"C:\Windows\system32\shutdown.exe"; // <- evtl. noch anzupassen
            restart.StartInfo.Arguments = "-r -f -t 0";
            restart.Start();
            restart.WaitForExit();
            Environment.Exit(0);        // Ende des Programms
        }


Natürlich ist dann der Autologin weiterhin gesetzt -> muss nach jedem Neustart (oder wenn man es einbaut nur nach jedem Neustart ohne Passwort) dieses Programm ausgeführt werden:


RegistryKey lokaleMaschine = Registry.LocalMachine;
            RegistryKey regKey;
            string winlogon = @"Software\Microsoft\Windows NT\CurrentVersion\Winlogon";

            regKey = lokaleMaschine.OpenSubKey(winlogon, true);     // Öffne Unterschlüssel winlogon mit schreibrecht (true)

            regKey.DeleteValue("DefaultPassword", false);                       // Lösche DefaultPassword
            regKey.DeleteValue("AutoAdminLogon", false);                      // Lösche AutoAdminLogon
            regKey.SetValue("AutoAdminLogon", 0, RegistryValueKind.String);     // Setze AutoAdminLogon auf 0
            Environment.Exit(0);

Mfg agent

V
52 Beiträge seit 2006
vor 17 Jahren

Eigentlich is das mit dem Passwort recovern und setzen doch unnötig oder?
Mit autologin dürfte er es ja nich abfragen.

Falls du es doch ändern willst:
Das Passwort als solches kannst du nich ändern.
Aber es gibt einen RegKey der einen verschlüsselten hash des Unicode Passworts enthält
nähere Infos: http://board.protecus.de/t12708.htm

achso: der key is natürlich geschützt
d.h. du hast auch als admin keinen zugriff
das kannst du aber ändern
hab das aber noch nich gemacht

U
userid3728 Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren

Original von v1vec
Eigentlich is das mit dem Passwort recovern und setzen doch unnötig oder?
Mit autologin dürfte er es ja nich abfragen. Nein er verlangt nach dem richtigen PW, sonst macht er beim Hochfahren eine Fehlermeldung und danach ein normales Login
Falls du es doch ändern willst:
Das Passwort als solches kannst du nich ändern.
Aber es gibt einen RegKey der einen verschlüsselten hash des Unicode Passworts enthält
nähere Infos:
>

Ich habe mich wohl falsch ausgedrückt. Ich meine ich schreibe das Passwort (davor vom Benutzer eingegeben) als solches verschlüsselt auf die Festplatte, damit der Benutzer nicht jedes Mal das Passwort neu eingeben muss.

4.506 Beiträge seit 2004
vor 17 Jahren

Hallo agent043,

es kommt drauf an, wie sicher das Passwort gespeichert werden soll. Ich nehme z.B. für Passwörter, die nicht wichtig sind, also einfach nur nicht lesbar sein sollen, immer die String64 Methode, dann kann man das nicht mehr lesen.

Wenn natürlich jemand versucht das zu knacken, dann ist der Schutz natürlich gleich null.

Ansonsten musst Du ein Verschlüsselungsverfahren wählen, das auch aus dem Verschlüsselten wieder das original zaubern kann. Aber auch da liegt der Schlüssel wohl wahrscheinlich mit auf dem selben PC und ist auch dann kein so wirklicher Schutz.

Im Prinzip kann man alles knacken, ist nur eine Frage des Aufwands 😉

Gruß
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

U
userid3728 Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren

Original von norman_timo

Ja, das stimmt wenn man sich benüht kann man es natürlich knacken, aber ich habe es mit einer einfachen Verschlüsselung gesepichert, sodass es nicht Klartext ist.

Aber um das original Windows XP Passwort zu knacken braucht man mit entsprechender Software weniger als 5mins. (PSPR).

MfG agent

S
709 Beiträge seit 2005
vor 17 Jahren

Hallo!

Ich hab mal Ophcrack mein Windows Passwort knacken lassen. Das Programm hatte das in ca. 1 Minute, wobei mein Passwort recht kurz war. Irgendwie beängstigend, vor allem, da ichs über ne Live Cd versucht habe.

Also: Computer starten, CD einlegen, ein paar Minuten warten und Passwort haben 8o (Wenn das Passwort nicht zu lang ist)

Gruß,
SimonKnight6600

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo SimonKnight6600,

wenn ich mich richtig entsinne werden längere Windows-Passworte in Gruppen zu sieben Buchstaben gespeichert, die sich einzeln knacken lassen. Weiß nicht, ob das durch XP oder ein ServicePack behoben wurde. Aber dadurch konnte man auch Passworte in Maximallänge in sehr kurzer Zeit knacken.

herbivore

S
709 Beiträge seit 2005
vor 17 Jahren

Hallo herbivore!

Soweit ich weiß hängt das damit zusammen, dass Windows 98 und ältere Versionen sonst nicht mehr zusammen mit Windows XP funktionieren würden. Es gibt aber glaub ich eine Einstellungsmöglichkeit in der Systemsteuerung, die dieses "Feature" ausschaltet. Weiß nur leider grad nicht wo...

Gruß,
SimonKnight6600

H
704 Beiträge seit 2003
vor 17 Jahren

Original von herbivore
Hallo SimonKnight6600,

wenn ich mich richtig entsinne werden längere Windows-Passworte in Gruppen zu sieben Buchstaben gespeichert, die sich einzeln knacken lassen. Weiß nicht, ob das durch XP oder ein ServicePack behoben wurde. Aber dadurch konnte man auch Passworte in Maximallänge in sehr kurzer Zeit knacken.

herbivore

LANMan Hashes sind das. Nicht nur das das Password als 7-Byte-Chunks gespeichert wurden, der Hash ist auch Case-Insensitive(Der Hash wird als Uppercase des Passwortes berechnet). Windows XP verwendet dern NT-Hash Algrorithmus der diese beiden Schwächen beseitigt.

@SimonKnight6600: How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases

[last.fm](http://www.last.fm/user/hauptmanAlpha/)