Frage

Gibt es eine API der zur Zeit in Benutzername und Kennwort in Windows angemeldet werden?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Passwort: Nein, dies aus Sicherheitsgründen nicht beibehalten wird - es verwendet wird, dann verworfen. Sie könnten das verschlüsselte Passwort für diesen Benutzer aus der Registrierung, da ausreichende Berechtigungen abrufen, dann etwas mit entschlüsseln wie Rainbow-Tabellen , aber das extrem ist ressourcenintensiv und Zeit mit den aktuellen Methoden raubend. Viel besser, den Benutzer aufzufordern.

Alternativ, wenn Sie irgendeine Art von ‚Einzelanmeldung‘ System implementieren möchten, wie Novell tut, sollten Sie es über tun entweder eine GINA (pre-Vista) oder ein Credential Provider (Vista), die im Code führen wird die einzige Zeit, zu der angegebenen Benutzernamen und Passwort bei der Anmeldung das Kennwort zur Verfügung.

Benutzername, immer die Strom Benutzername (derjenige, der Code ausgeführt wird) ist einfach:. Die GetUserName Funktion in ADVAPI32.DLL tut genau das für Sie

Wenn Sie als Dienst laufen lassen, müssen Sie daran denken niemand da „angemeldete Benutzer“ ist: es jederzeit mehrere vorhanden sind, wie Localnetworkservice, SYSTEM und andere Konten, zusätzlich zu den eigentlichen Menschen . Dieser Artikel enthält einige Beispielcode und Dokumentation für das zu tun.

Andere Tipps

Ich würde es eine große Sicherheitslücke prüfen, ob das möglich wäre!

Sie können das Passwort eines Benutzers erhalten, da sein verschlüsselten (nicht zu erwähnen, dass es eine gängige Praxis keine Passwörter im Klartext zu speichern).

Für den Benutzernamen bekommen, können Sie GetUserName oder < a href = "http://msdn.microsoft.com/en-us/library/aa378803(VS.85).aspx" rel = "nofollow noreferrer"> NPGetUser

Beachten Sie sicher, wie es gemacht wird, aber "Network Password Recovery" Werkzeug von http: // www.nirsoft.net/utils/network_password_recovery.html scheint das Passwort von einem Cache zu erhalten.

Für die vielen Kommentatoren, die glauben, dass es nicht möglich ist, das Kennwort des aktuell angemeldeten Benutzers zu offenbaren, finden Sie unter Dump Klartext-Passwörter von angemeldeten Benutzer (n) , die zeigt, wie Sie mit mimikatz genau das zu tun:

mimikatz # privilege::debug
Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full
...
Utilisateur principal       : user
Domaine d'authentification  : domain
        kerberos :
         * Utilisateur  : user
         * Domaine      : domain
         * Mot de passe : pass

GetUserName werden Sie den Namen, aber das Passwort können Sie nicht bekommen. Es ist nicht einmal etwas Windows speichert, AFAIK -. Nur ein Hashwert Ihres Kennworts

Je nachdem, was Sie versuchen zu erreichen (Sie können uns sagen, ein bisschen mehr ..) es möglich ist, ein angemeldeter Benutzer zu verkörpern und zu tun Sachen auf seinem / ihrem Namen.

Ausführliche Informationen zu Authentifizierung in dem Windows-API können auf MSDN zu finden: http://msdn.microsoft.com/en-us /library/aa374735(VS.85).aspx

Ich weiß nicht, über die Windows-Passwort anmelden ... aber man kann definitiv Text-Kennwörter aus dem Referenz Manager ziehen. Zum Beispiel hier ist ein Programm, das Passwort für TFS zu ziehen. In den meisten Fällen ist dies das gleiche wie die Windows-Anmeldung.

namespace ShowPassword
{
    using Microsoft.TeamFoundation.Client;
    using System;
    using System.Net;

    class Program
    {
        static void Main(string[] args)
        {
            var tpc = new TfsTeamProjectCollection(new Uri("http://mycompany.com/tfs"));
            var nc = tpc.Credentials as NetworkCredential;
            Console.WriteLine("the password is " + nc.Password);
        }
    }
}

ich unter diese als "Konsole" app kompiliert vs 2015 mit Nuget Paket TeamFoundation ExtendedClient.

Sie können den Benutzernamen mit GetUserName (), aber Sie können das Passwort nicht erhalten; Dies würde für Dummies 101 verletzen Sicherheit.

re "Network Password Recovery" Werkzeug
Windows (bis XP) speichert eine Kopie des passwd mit einer einfacheren einfachen Verschlüsselung zu brechen - zu älteren Stil LanManager Netzwerkfreigaben zu verbinden. Die Werkzeuge generaly versuchen, alle möglichen Passwörter gegen diese, Rainbow-Tabellen mit (precaluted verschlüsselten Versionen Wörterbuch Wörter) beschleunigt dies auf.

In XPSP2 / 3 Vista ist diese Funktion entfernt. Die neue Verschlüsselung ist viel schwieriger zu knacken und braucht viele Stunden alle möglichen Werte, um zu versuchen, gibt es Online-Dienste, die es auf große Anzahl von Maschinen ausgeführt werden Ihnen eine schnelle Antwort für einen Preis zu geben.

das ursprüngliche Plakat zu beantworten - Sie speichern im Allgemeinen nicht das Passwort ein und vergleichen Sie es mit dem, was der Benutzer TYPD in Sie verschlüsseln (tatsächlich hash) dem eingegebenen Passwort und speichern.. Um ein Passwort zu überprüfen führen Sie die gleiche Verschlüsselung auf, was der Benutzer enetered und vergleichen Sie das. Im allgemeinen ist es unmöglich, aus der verschlüsselten Form gehen zurück in das realen Passwort.

Bearbeiten Ich vermute, dass Sie die falsche Frage stellen hier - warum Sie das Passwort wollen, was Sie versuchen, zu überprüfen und, wenn

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top