Linux

從 Linux 確定 Windows 電腦上的登錄使用者

  • February 12, 2013

如何確定誰從 Linux 登錄到遠端 Windows XP 電腦?我在域或遠端電腦上沒有管理員訪問權限。

我可以使用 PsTools 在單獨的 Windows 電腦上執行PsLoggedOn -L \\computer操作

我試過使用nmblookup -A remotecomputer,但我只看到電腦和域的條目,而不是<03>使用者的條目。

我也試過在 wine 下執行 PsLoggedOn;我收到一個錯誤:

正在連接到 \\computer.company.com 的系統資料庫...
fixme:reg:RegConnectRegistryW 不支持連接到 L"computer.company.com"。

我開始研究winexe,但看起來我需要遠端電腦上的管理權限才能使其正常工作。

我發現瞭如何在 Linux 電腦上使用 Samba 來做到這一點。

我安裝並配置了 Kerberos 和 Samba 以訪問域。我修改了/etc/samba/smb.conf,/etc/krb5.conf/etc/hosts. net然後我使用了腳本中的一些命令(net是 Samba 的命令行界面):

net rpc registry enumerate 'HKEY_USERS' -S xpcomputer.ad.company.com -U 'username@AD.COMPANY.COM%password'

給出目前在系統資料庫中載入的使用者的安全標識符列表:

Keyname   = .DEFAULT
Modtime   = Thu, 02 Dec 2010 14:31:14 EST

Keyname   = S-1-5-19
Modtime   = Thu, 02 Dec 2010 14:31:16 EST

Keyname   = S-1-5-19_Classes
Modtime   = Thu, 02 Dec 2010 14:31:16 EST

Keyname   = S-1-5-20
Modtime   = Thu, 02 Dec 2010 14:31:16 EST

Keyname   = S-1-5-20_Classes
Modtime   = Thu, 02 Dec 2010 14:31:16 EST

Keyname   = S-1-5-21-8915387-325552579-1798637320-4573
Modtime   = Fri, 03 Dec 2010 22:53:39 EST

Keyname   = S-1-5-21-8915387-325552579-1798637320-7772
Modtime   = Wed, 08 Dec 2010 07:51:26 EST

Keyname   = S-1-5-21-8915387-325552579-1798637320-7772_Classes
Modtime   = Wed, 08 Dec 2010 07:51:26 EST

Keyname   = S-1-5-18
Modtime   = Thu, 02 Dec 2010 14:31:14 EST

然後我執行net ads sid命令以根據使用者 SID 查找活動目錄條目。這可能只適用於域使用者;我不確定它是否適用於使用本地帳戶登錄的使用者。似乎如果有多個 SID,唯一有效的是具有相應“_Classes”條目的 SID。

net ads sid 'S-1-5-21-8915387-325552579-1798637320-7772' -W COMPANY -U 'username@AD.COMPANY.COM%password'

這會產生一些錯誤,但仍會導致列印使用者的整個 Active Directory 資訊。它相當慢,可能是由於錯誤,所以我可能會記憶體 SID 到使用者名的映射。

[2010/12/08 10:03:00,  0] libads/kerberos.c:882(create_local_private_krb5_conf_for_domain)
 create_local_private_krb5_conf_for_domain: smb_mkstemp failed, for file /var/run/samba/smb_tmp_krb5.HpBqKJ. Errno Permission denied
[2010/12/08 10:03:02,  0] libads/kerberos.c:882(create_local_private_krb5_conf_for_domain)
 create_local_private_krb5_conf_for_domain: smb_mkstemp failed, for file /var/run/samba/smb_tmp_krb5.BCzT0T. Errno Permission denied
Got 1 replies

objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: [Lastname], [Firstname]
sn: [Lastname]
c: US
physicalDeliveryOfficeName: ...
telephoneNumber: ...
...(many more  fields)...
mailNickname: FLastname
...

mailNickname 欄位包含使用者名(至少對於我迄今為止測試過的使用者而言)。

引用自:https://serverfault.com/questions/195510