Alternativen zu LogonUser für Netzwerk-Identitätswechsel (C++)

Gibt es alternativen zu LogonUser und für die Identität gegeben Konto, um Zugriff auf Netzwerk-Ressourcen? Ich bin auf der Suche nach der Methode der Imitation, die die würde lassen Sie mich schließen, um die Maschine in fremden Domäne (oder Arbeitsgruppe Maschinen für die gleiche Sache).

Für die ersten Daten die ich habe: Computer-Namen, Benutzernamen (oder Domäne\Benutzername), Klartext-Passwort.

Ich weiß, es gibt einen Weg, um eine Verbindung herzustellen, verwenden Sie WNetAddConnection, um ein \\Computername\ipc$, dann sind die meisten Netzwerk-Funktionen laufen in einem Zusammenhang mit diesem Konto, jedoch win2008 Hinzugefügt eine neue Wendung, und einige Funktionen noch den account, dieser thread läuft unter.

Ich bin mir auch bewusst, dass es einige Weg, um ein identitätstoken Verwendung von SSPI. Hat jemand experimentiert mit diesen Token, sind Sie gut für den Zugriff auf Aktien -, SCM -, remote registry und so? Ist, was WNetAddConnection ist mit?

EDIT: Zu klären, den Grund kann ich nicht verwenden LogonUser ist, weil ich brauchen, um die Identität von Benutzer in einer nicht vertrauenswürdigen Domäne oder Arbeitsgruppe

EDIT2: eine Weitere Klärung: der Artikel, den ich versuche zu implementieren ist ähnlich wie psexec, z.B.:

  • Programm sollte sich nicht ändern-Hosts oder der active directory-Konfiguration (z.B.: temporäre lokale Benutzer, etc). Außerdem Annahme nicht gemacht werden kann, dass es läuft auf DC oder nicht
  • es können keine Annahmen darüber gemacht, welche software ist vorinstalliert auf dem remote-host, nur die Bedingung gegeben ist, dass die windows-Dateifreigabe aktiviert ist, auf den Gegner
  • Konto/Kennwort bekannt ist, arbeiten am Ziel, aber Ziel-Maschine kann in der lokalen Domäne, fremde Domäne nicht in der domain überhaupt.

EDIT3: ich würde wirklich gerne mehr darüber hören SSPI InitializeSecurityContext - /AcquireCredentialsHandle-option. Ist es jemand, der gearbeitet hat mit dieser API ausgiebig? Ist es möglich das Token zurückgegeben mit dem Identitätswechsel, so dass ein thread Zugriff auf Netzwerk-Freigaben und Dateien kopieren, etc? Kann jemand post ein funktionierendes code-snippet?

EDIT4: Dank Marsh Ray, problem aber behoben. Wenn jemand sucht, um zu sehen, proof-of-concept-code, es ist hier

InformationsquelleAutor galets | 2009-07-20
Schreibe einen Kommentar