Danh sách tài khoản người dùng Windows ẩn / ảo


44

Tôi đang cố gắng tìm cách để có được danh sách toàn diện các tài khoản người dùng trên hệ thống Windows 7, bao gồm cả những tài khoản bị ẩn. Các User Accounts thoại ( >control userpasswords2) chỉ hiển thị các tài khoản người dùng bình thường, và thậm chí Local User and Groups biên tập chỉ cho thấy tài khoản người dùng bình thường và ẩn / người khuyết tật tiêu chuẩn như Administrator và Guest. Các Select Users or Groups hộp thoại có một Find Now nút mà trong đó kết hợp người dùng và nhóm, nhưng than ôi, nó có nội dung tương tự như các LUG.

Tôi đang tìm kiếm một danh sách toàn diện hơn bao gồm các tài khoản người dùng ảo / siêu ẩn của siêu sao như TrustedInstaller (hay chính xác hơn là NT Service \ TrustedInstaller Chú thích cho các miền khác nhau).

Tôi đã kiểm tra HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, nhưng SpecialAccountschìa khóa không tồn tại.

Tôi cũng đã kiểm tra HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListvà trong khi nó có các tài khoản SystemProfile, LocalService và NetworkService được liệt kê, nó không có các tài khoản khác (như TrustedInstaller và ilk của nó).

TrustedInstaller đặc biệt hơi khó hiểu vì đây là người dùng, dịch vụ và tệp thực thi. Tôi đang sử dụng nó như một ví dụ bởi vì nó là siêu ẩn ẩn trong đó nó dường như không được liệt kê trong bất kỳ loại danh sách người dùng nào. (Với tư cách là một thử nghiệm, tôi đã thử tìm kiếm toàn bộ sổ đăng ký cho tin cậy cài đặt trên máy tính để xem liệu tôi có thể tìm thấy một nơi được liệt kê là người dùng không, nhưng không tìm thấy.)

Để rõ ràng, những gì tôi đang tìm kiếm là một danh sách tất cả các tài khoản có thể được sử dụng trong trường nhập của người dùng, chẳng hạn như trong hộp thoại quyền hoặc làm runasđối số.


Câu trả lời:


43

Tôi không nghĩ có một danh sách cuối cùng của tất cả các tài khoản có thể.

Có nhiều loại tên khác nhau mà bạn có thể sử dụng trong trường nhập của người dùng, chẳng hạn như trong hộp thoại quyền.

Đầu tiên là Win32_Accounts tiêu chuẩn, để có danh sách đầy đủ, hãy mở phiên PowerShell và chạy:

get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName

Đây là những người dùng, nhóm và tài khoản dựng sẵn thông thường.

Kể từ Vista, có một loại tài khoản mới, được gọi là tài khoản ảo, vì chúng không hiển thị trong các công cụ quản lý thông thường. Đôi khi cũng có các tài khoản dịch vụ được gọi là và có ít nhất ba loại khác nhau trong số này:

  • Tài khoản dịch vụ Windows

Vì Vista, mọi dịch vụ Windows đều có một tài khoản ảo được liên kết với nó, thậm chí nó chạy dưới một tài khoản người dùng khác và ngay cả khi nó không chạy. Nó giống nhưNT Service\MSSQLSERVER

Để có được danh sách những người sử dụng:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • Hồ bơi ứng dụng IIS

Mỗi nhóm ứng dụng IIS chạy trong ApplicationPoolIdentity chạy trong một tài khoản đặc biệt có tên IIS APPPOOL\NameOfThePool

Giả sử bạn đã cài đặt các công cụ kịch bản quản lý IIS, bạn có thể chạy:

Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
  • Máy ảo Hyper-V

Trên Server 2008+ và Windows 8+ bạn có Hyper-V, mỗi máy ảo tạo tài khoản ảo riêng, trông giống như: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

để có được danh sách sử dụng:

get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}

Mặc dù các tài khoản này không được chấp nhận trong hộp thoại quyền, bạn có thể sử dụng chúng với icacls.exe để đặt quyền.

Ngoài ra còn có một nhóm đặc biệt NT Virtual Machine\Virtual Machines, không xuất hiện ở nơi khác. Tất cả các tài khoản máy ảo là thành viên của nhóm này, vì vậy bạn có thể sử dụng điều này để đặt quyền cho tất cả các tệp VM.

Những tên này là ngôn ngữ cụ thể, ví dụ trong tiếng Đức, nó được đặt tên NT Virtual Machine\Virtuelle Computer

  • Quản lý cửa sổ máy tính để bàn

Quá trình dvm.exe (Desktop Window Manager) chạy dưới một người dùng Windows Manager\DWM-1

Một lần nữa, bạn không thể sử dụng loại người dùng này trong hộp thoại quyền. Bạn thực sự không thể liệt kê những điều này vì một tồn tại cho mỗi 'Phiên máy tính để bàn', vì vậy khi sử dụng hai phiên RDP, bạn cũng có DWM-2DWM-3ngoài ra DVM-1. Vì vậy, có nhiều như có máy tính để bàn có sẵn.

  • Tên máy tính

Trong một số trường hợp nhất định, bạn cũng có thể sử dụng tên máy tính trong hộp thoại quyền, thường là khi là một phần của miền Active Directory.

  • Windows từ xa người dùng ảo

Khi sử dụng PowerShell và 'JEA (Quản trị vừa đủ)' và kết nối với máy chủ có phiên từ xa PS, người dùng ảo tạm thời có thể được tạo.

Chúng có định dạng sau:

winrm virtual users\winrm va_x_computername_username

và một SID bắt đầu bằng S-1-5-94-

'x' là một số nguyên.

Các tài khoản này có thể được sử dụng khi gán quyền NTFS, nhưng tôi không biết cách liệt kê tất cả những người dùng ảo có thể này.

Trong khi trong phiên JEA, bạn có thể sử dụng whoamiđể tìm ra tên tài khoản hiện tại.

  • cuối cùng:

Ngay cả những danh sách này cũng không cung cấp cho bạn mọi tài khoản có thể.

Ví dụ: bạn có thể tạo nhóm ứng dụng FooBarPoolsau đó xóa lại, bạn vẫn có thể sử dụng IIS APPPOOL\FooBarPooltrong hộp thoại quyền, do đó phải có một danh sách nội bộ ở đâu đó.


Rất đẹp! Truy vấn đầu tiên trở lại “người sử dụng” đặc biệt như everyone, restricted, vv, và thảo luận của bạn trong NT Service\*tài khoản giải thích khác như TrustedInstaller. Bạn cũng được bảo hiểm cho các trường hợp đặc biệt kỳ lạ hơn, nhưng có vẻ như tất cả những trường hợp phổ biến được tính đến.
Synetech

@Ahmed - Người dùng nào? Nếu bạn có một vấn đề, bạn nên tạo một câu hỏi mới và mô tả chi tiết vấn đề của bạn ở đó. Đây không phải là nơi dành cho nó.
Peter Hahndorf

Xin lỗi, tôi đã xóa cam kết của tôi. Đây là câu hỏi của tôi nếu tò mò.
Ahmed

3
Xin chào, mã PowerShell để liệt kê người dùng IIS App Pool không hoạt động với tôi nên cuối cùng tôi đã sử dụng Get-WebConfiguration system.applicationHost/applicationPools/add.
Tahir Hassan

1
Câu trả lời chính xác. Có thêm thông tin từ MS trên Tài khoản dịch vụ tại đây: docs.microsoft.com/en-us/windows/security/identity-protection/ trên
CJBS

10

Điều này là do TrustedInstaller là một dịch vụ chứ không phải đối tượng "người dùng". Với Vista, Dịch vụ hiện là hiệu trưởng bảo mật và có thể được gán quyền.

http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx


Đúng; đó chính xác là những gì tôi đang nói. Tôi đang tìm kiếm một danh sách toàn diện về những thứ có thể được cấp quyền là người dùng, dịch vụ hoặc những gì có bạn. Có một danh sách đầy đủ các hiệu trưởng an ninh của người Hồi giáo không?
Synetech

Tôi không nghĩ có một cách nào đó để tham gia vào các ACL và tìm thấy một danh sách HOÀN TOÀN của các hiệu trưởng bảo mật. Tôi không chắc chắn tại sao bạn muốn có một danh sách đầy đủ các hiệu trưởng bảo mật ngay từ đầu. Về mặt kỹ thuật, Trình cài đặt Mô-đun Windows (tên dịch vụ của TRUSTEDINSTALLER) chạy trong tài khoản HỆ THỐNG.
Surfasb

4
> Tôi không chắc chắn tại sao bạn muốn có một danh sách đầy đủ các hiệu trưởng bảo mật ngay từ đầu. Tò mò. (Có ai còn điều đó nữa trong những ngày này không?)
Synetech

Bạn có thể chỉ ra sự tò mò đó đối với thư viện MSDN.
Surfasb

7
  1. Đi tới bất kỳ tập tin nào trên ổ cứng của bạn, nhấp chuột phải và chọn thuộc tính.
  2. Chuyển đến tab bảo mật và nhấp vào Edit

    chỉnh sửa cài đặt bảo mật

  3. Nhấp chuột Add...
  4. Nhấp chuột Advanced...

    chọn người dùng hoặc nhóm

  5. Bấm Object Types...và bỏ chọn Groups, sau đó bấmOK

    loại đối tượng

  6. Nhấn vào đây Find Now. Điều này sẽ liệt kê tất cả người dùng thông thường và người dùng hệ thống tích hợp ("nguyên tắc bảo mật tích hợp", như Windows gọi cho họ).

    tìm ngay

Lưu ý rằng không phải tất cả các tài khoản xuất hiện trên trang này đều có thể được sử dụng trong lệnh Run-As, mặc dù tất cả chúng đều có thể được sử dụng trong hộp thoại quyền.


4
Tôi quen thuộc với hộp thoại đó và đã đề cập đến nó trong câu hỏi: Hãy tìm ngay bây giờ. Lưu ý rằng trong khi người dùng trên mạng SYSTEMthì có (hoặc ít nhất nên có) trong đó, TrustedInstaller thì không .
Synetech

Xin lỗi, tôi nghĩ rằng bạn đang đề cập đến find nownút trong bảng điều khiển Người dùng và Nhóm, tương tự nhưng hơi khác nhau. Theo hiểu biết của tôi, tài khoản duy nhất không xuất hiện ở đây là TrustedInstaller. Điều này là do Microsoft cố gắng hết sức để ngăn bạn làm bất cứ điều gì đến / với tài khoản TrustedInstaller. Tôi sẽ cho bạn biết nếu tôi nghĩ ra bất kỳ cách nào khác để làm điều này.
nhinkle

Đó là lý do tại sao tôi hỏi; Tôi đang tự hỏi những gì người dùng không có giấy tờ khác tồn tại trên mạng
Synetech

Có một bài viết của Microsoft TechNet với thông tin về hầu hết trong số họ, nhưng TrustedInstaller không có ở đó. support.microsoft.com/kb/243330
nhinkle

1
đừng quên cài đặt Locations...vào máy tính của bạn nếu bạn ở trong một miền (nhưng chỉ muốn máy tính của bạn).
n611x007

4

Từ Windows Vista trở đi, các dịch vụ được coi là người dùng. Đó là, Mã định danh bảo mật (SID) được gán cho mọi dịch vụ. Điều này không dành riêng cho dịch vụ TrustedInstaller . Bạn có thể xem SID được gán cho bất kỳ dịch vụ nào bằng sc showsidlệnh:

SỬ DỤNG: sc showsid [name]

MÔ TẢ : Hiển thị chuỗi SID dịch vụ tương ứng với một tên tùy ý. Tên có thể là tên của một dịch vụ hiện có hoặc không tồn tại.

Lưu ý rằng không cần dịch vụ tồn tại trên hệ thống. Ví dụ:

C:\> sc showsid TrustedInstaller
NAME: TrustedInstaller
SERVICE SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464

hoặc, đối với dịch vụ Windows Management instrumentation ( Winmgmt):

C:\> sc showsid Winmgmt
NAME: Winmgmt
SERVICE SID: S-1-5-80-3750560858-172214265-3889451188-1914796615-4100997547

và cuối cùng, cho một dịch vụ giả mạo:

C:\> sc showsid FakeService
NAME: FakeService
SERVICE SID: S-1-5-80-3664595232-2741676599-416037805-3299632516-2952235698

Lưu ý rằng tất cả các SID bắt đầu bằng S-1-5-80, nơi 80được gán cho SECURITY_SERVICE_ID_BASE_RIDcơ quan phụ. Hơn nữa, nhiệm vụ này mang tính quyết định: Không có RID nào được sử dụng và SID sẽ giống nhau trên tất cả các hệ thống (xem các tài liệu tham khảo ở cuối bài này để biết thêm thông tin).

Ví dụ, tôi sẽ chỉ định NT Service\Winmgmtdịch vụ, viết quyền cho một số tệp:

nhập mô tả hình ảnh ở đây

Windows gạch chân tên Winmgmt, xác nhận rằng đó là danh tính hợp lệ:

nhập mô tả hình ảnh ở đây

Bây giờ, bấm OK, và sau đó gán quyền ghi:

nhập mô tả hình ảnh ở đây

Điều này xác nhận rằng bất kỳ tên dịch vụ nào cũng có thể được sử dụng làm nhận dạng người dùng. Do đó, tôi sẽ không gọi chúng là các tài khoản "siêu ẩn": D

Để biết thêm thông tin, xin vui lòng đọc các bài viết sau:


1
Rất thú vị. Cảm ơn vì thông tin!
Synetech

1

Bạn có thể sử dụng NetQueryDisplayIn information API, kết hợp với kiểm tra bitwise trên cờ thông tin người dùng. Tôi có chính xác yêu cầu tương tự, vì vậy tôi nấu một mã mẫu (được sửa đổi từ truy vấn MSDN GROUP).

Cờ người dùng tôi đã sử dụng là UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> điều này đảm bảo chúng tôi nhận được tài khoản Con người, tài khoản Con người luôn yêu cầu mật khẩu.

mã làm việc tại: http://www.cceye.com/list-system-n normal-user-account-only /


Vui lòng mở rộng câu trả lời của bạn để trực tiếp chứa thông tin liên quan đến câu hỏi. Nếu liên kết này ngừng hoạt động, câu trả lời của bạn sẽ không hữu ích.
Mxx
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.