Thread Remote User authentifizieren - AuthenticateUser (35 answers)
Opened by LukeStriker at 2010-05-19 15:21

LukeStriker
 2010-05-20 11:21
#137368 #137368
User since
2010-04-21
69 Artikel
BenutzerIn
[default_avatar]
Guest wer
im Paket "Win32:LSA" wird mit "Win32::API::Interface" aus "Advapi32.dll" die Funktionen "LogonUserA", "ImpersonateLoggedOnUser" und "RevertToSelf" unter den Namen "logon_user", "impersonate_as" und "revert" in den Namespace importiert. "Win32::API::Interface" als Basisklasse für das Paket verwendet.

Dann erzeugt er ein neues Objekt aus dem Paket "Win32:LSA" und nutzt die gerade importierten Funktionen.


Danke das hat mir sehr geholfen.

Mein leicht modifizierter Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package Win32::LSA;
use base qw/Win32::API::Interface/;

use strict;
use warnings;

__PACKAGE__->generate( "Advapi32.dll", "LogonUserA", "PPPIIP", "I", "logon_user" );
__PACKAGE__->generate( "Advapi32.dll", "ImpersonateLoggedOnUser", "P", "I", "impersonate_as" );
__PACKAGE__->generate( "Advapi32.dll", "RevertToSelf", "", "I", "revert" );

1;

use Win32 ();
my $token = "\0" x 4;

print "######LOGIN-INFOS######\n";
print 'Domain: ';
chomp(my $domain = <STDIN>);
print 'User: ';
chomp(my $user = <STDIN>);
my $password=&getpassword();

my $lsa = Win32::LSA->new;
#my $rc = $lsa->logon_user( $ENV{USER}, $ENV{DOMAIN}, $ENV{PASS}, 5, 0, $token);
my $rc = $lsa->logon_user( $user, $domain, $password, 5, 0, $token);
die Win32::FormatMessage( Win32::GetLastError ) unless $rc;

print "Logon success:\n";
$rc = $lsa->impersonate_as( $token );
die Win32::FormatMessage( Win32::GetLastError ) unless $rc;
print "Impersonate success.\n";

# hier dein code 

$rc = $lsa->revert;
die Win32::FormatMessage( Win32::GetLastError ) unless $rc;



sub getpassword {
#----------------------------------------------------
# getpassword
# Passwort eingabe ohne das diese in der Comandozeile angezeigt wird
#----------------------------------------------------
use Term::ReadKey;
print 'Password: ';
ReadMode 'noecho';
my $password = ReadLine; 
ReadMode 'normal';
chomp $password;
return $password;
}


Fehlermeldung:
Quote
Anmeldung fehlgeschlagen: Dem Benutzer wurde der angeforderte Anmeldetyp auf diesem Computer nicht erteilt.


Anmeldetyp?

View full thread Remote User authentifizieren - AuthenticateUser