Làm cách nào để tìm ngày tạo tài khoản người dùng cục bộ?


8

Tôi muốn lấy ngày tạo tài khoản người dùng cục bộ (Win 7 nếu có vấn đề). Tôi đã xem xét các đối tượng WMI sau (và tất nhiên là google):

Win32_UserAccount Win32_NetworkLoginProfile

Các đối tượng được trả về NetworkLoginProfilecó thời gian đăng nhập cuối cùng, nhưng không phải ngày tạo. Kiểm tra thuộc Date Createdtính của thư mục hồ sơ của họ chỉ đưa ra ngày mà thư mục đó được tạo, không nhất thiết phải là tài khoản.


2
Để thêm từ trò chuyện: Tôi có thể thấy tổ ong người dùng trong ngày tạo sổ đăng ký, nhưng điều đó chỉ dựa trên lần đăng nhập đầu tiên của họ, không phải ngày tạo tài khoản.
TheCleaner

Câu trả lời:


10

Dữ liệu nằm trong SAM nhưng dường như không được tài liệu công khai bởi Microsoft và tôi không tìm thấy API chính thức để truy xuất dữ liệu đó. Tôi có thể thấy, nhìn vào mã nguồn cho chntpwtiện ích mà giá trị được lưu trữ trong khóa đăng ký "F" cho mỗi tài khoản. Bỏ mã nguồn:

#define USER_F_PATH "\\SAM\\Domains\\Account\\Users\\%08X\\F"

struct user_F {
  ...
  char t_creation[8]; /* Time of account creation */
  ...
}

Các regripper dự án pháp y có một plugin, samparse rằng sẽ báo cáo ngày tạo tài khoản.

Một công cụ pháp y có thể không phải là những gì bạn muốn, nhưng có vẻ như Microsoft không làm cho nó dễ dàng.


Trong nghiên cứu này, tôi thấy thật thú vị khi Microsoft MVP không biết rằng dữ liệu tạo tài khoản được lưu trữ trong SAM . Với lợi ích của anh ta, có lẽ anh ta không rời khỏi chntpwtiện ích, đó là nơi tôi bắt đầu tìm kiếm thông tin về các cấu trúc SAM không có giấy tờ.


ý tưởng của bạn rất hấp dẫn với tôi và tôi muốn --- đăng ký nhận bản tin của bạn --- , ý tôi là học cách sử dụng công cụ này để tự mình thử. Bạn, có thể, có bất kỳ mối liên kết nào tôi có thể tận dụng cho đến cuối không? (Chết tiệt bạn markdown!)
HoplessN00b

Chỉ cần liên kết đến dự án regripper ở trên. Tôi đã không sử dụng nó, cá nhân, nhưng nó có vẻ dễ đối phó. Có vẻ như nó đã được đưa vào Kali Linux ngay bây giờ ( bug.kali.org/print_orms_page.php?orms_id=246 ) nếu bạn chỉ muốn khởi động CD trực tiếp so với cài đặt môi trường Perl để chạy regripper. Rõ ràng có một cuốn sách được viết xung quanh các công cụ này. Nó có vẻ đắt tiền: amazon.com/Windows-Registry-Forensics-Avised-Forensic/dp/NH Tôi có lẽ nên chơi xung quanh với các công cụ này vào một lúc nào đó-- Tôi chỉ không có cơ hội.
Evan Anderson

Tôi nghĩ Evan có thể nợ Richard Mueller một lời xin lỗi;)
charleswj81

Tôi đã không thử các công cụ. Bạn có thấy rằng ngày không được phổ biến?
Evan Anderson

Không chắc chắn nếu bạn đã thấy câu trả lời của riêng tôi bên dưới chưa, nhưng trường được gọi là "ngày tạo" thực sự là "mật khẩu thay đổi lần cuối", rõ ràng sẽ có cùng giá trị cho đến khi thay đổi mật khẩu tạo tài khoản sau lần đầu tiên.
charleswj81

3

Cách duy nhất để thực sự biết là kích hoạt kiểm toán quản lý tài khoản trên máy tính r khi tài khoản được tạo. Sau đó, bạn sẽ thấy EventID 4720 trong Nhật ký sự kiện vào ngày tạo. (Bài báo nói Active Directory, nhưng cũng áp dụng tương tự cho các tài khoản cục bộ; tôi đã kiểm tra.)

Không có điều đó, gần nhất bạn có thể đến là bằng cách kiểm tra ngày tạo trên hive registry, ntuser.dattệp, thư mục hồ sơ người dùng, v.v., nhưng như đã đề cập trong các bình luận, điều này chỉ chính xác về lần đăng nhập đầu tiên của người dùng, vì đó là khi những điều đó xảy ra được tạo ra.

Thật không may cho bạn, đây là một trường hợp "nếu bạn không đăng nhập nó, thì thông tin đó không tồn tại."


1

Tôi đã định cung cấp cho bạn một tập lệnh POC PowerShell để trích xuất và phân tích thời gian tạo, nhưng tôi nhận ra rằng chntpwlogic đó không chính xác. Giá trị mà nó gọi là thời gian tạo thực sự là mật khẩu được đặt lần cuối, mặc dù các giá trị này giống nhau khi tạo tài khoản ban đầu. Xem ở đây để mô tả đầy đủ về SAM.

samparseMặc dù , liên kết thứ hai của Evan có thể hiểu đúng. Nhìn vào nó thực sự làm việc. Nếu bạn xem nguồn của nó ở đây , dòng 99:

$c_date = $create->get_timestamp();

bạn sẽ thấy nó gọi get_timestamptừ Perl's Parse::Win32Registry. Tôi khá chắc chắn rằng đó thực sự là thời gian viết cuối cùng của khóa. Vì có vẻ như khóa cụ thể ( HKLM\SAM\SAM\Domains\Account\Users\Names\<USERNAME>) chỉ giữ một con trỏ tới khóa RID tương ứng, nên nó không thay đổi sau khi tạo và thời gian ghi cuối cùng sẽ bằng với thời gian tạo.

Tôi muốn gắn bó với nhiều công cụ tích hợp hơn, đây là một loạt các bài viết về Scripting Guy giải thích về cách thông qua PowerShell:

Sử dụng PowerShell để truy cập Sổ đăng ký Thời gian sửa đổi lần cuối

Sử dụng lại mã thời gian đăng ký PowerShell

Tạo một chức năng proxy để hiển thị tem thời gian khóa đăng ký

Tận dụng tem thời gian khóa đăng ký thông qua PowerShell


-3

Lệnh này trong powershell nên thực hiện thủ thuật:

systeminfo | findstr /C:"Install Date"

1
Làm thế nào điều này có liên quan? Bạn đã đọc câu hỏi chưa?
Sven

-5

Điều hướng qua Máy tính của tôi để

C: \ Người dùng và bạn sẽ thấy tất cả các tài khoản người dùng được liệt kê trên máy cục bộ. Bạn có thể nhấp chuột phải vào tài khoản người dùng phù hợp và đi đến các thuộc tính và nó sẽ hiển thị cho bạn một ngày được tạo, điều này sẽ giống như việc tạo tài khoản người dùng

Chỉ 2 xu của tôi


2
-1 - Điều đó cho bạn thấy khi thư mục hồ sơ được tạo. Điều đó không cho bạn biết khi nào tài khoản được tạo vì thư mục hồ sơ có thể bị xóa và được tạo lại bất cứ lúc nào sau khi tài khoản được tạo.
Evan Anderson

Trong khi điều đó là có thể, 99% thời gian sẽ chính xác và điều này là đủ tốt cho hầu hết
Kevin

Tôi luôn được yêu cầu giữ cho nó đơn giản ... dường như cả hai chúng tôi đều nhận được cùng một câu trả lời, bạn phải viết một chương trình và tôi chỉ lấy dữ liệu đã có sẵn trước mặt bạn
Kevin

2
Xin lỗi Kevin, gần như không cắt nó cho giải pháp cụ thể này. Cụ thể, điều này phải được thực hiện cho các máy tính trong phòng thí nghiệm, trong đó các thư mục hồ sơ phải được xóa thường xuyên để giữ thời gian đăng nhập chấp nhận được và lãng phí dung lượng, vì vậy giải pháp này không có lý do gì, vì ngày đó chỉ là ngày tạo thư mục, không phải ngày tạo hồ sơ người dùng .
MDMoore313

1
@Kevin Câu trả lời "giữ cho nó đơn giản" là của tôi, điều này không thể thực hiện được, trừ khi việc kiểm tra được kích hoạt trước khi tạo tài khoản, mặc dù việc tạo sổ đăng ký của người dùng, tệp ntuser.dat hoặc thư mục hồ sơ người dùng có thể cung cấp một xấp xỉ. Câu trả lời phức tạp là của EvanAnderson, thực sự có tác dụng, làm tôi ngạc nhiên.
HoplessN00b
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.