Проблема

Необходимо определить время последнего успешного входа пользователя в систему для целей аудита, форензики или выявления несанкционированного доступа.

Причины

- Подозрение на компрометацию учетной записи.
- Требования внутреннего аудита или расследования инцидентов.
- Проверка активности сотрудников или подозрительных сессий.
- Необходимость анализа временных меток в рамках OSINT-расследования.

Решение


Windows (командная строка с правами администратора)

Определение времени последнего входа в систему windows:
cmd
net user %USERNAME% | findstr /C:"Last logon"

Для всех пользователей:
cmd
net user | more

Или через PowerShell (полный лог последних входов):
powershell
Get-LocalUser | Select-Object Name, LastLogon, PasswordLastSet

Проверка через Event Viewer (Security log, ID 4624):
powershell
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} -MaxEvents 10 | Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}


Linux

Проверка истории входов в linux (файл /var/log/wtmp):
bash
last -w | head -20

Только для конкретного пользователя:
bash
last username

Последний вход:
bash
lastlog -u username

(Если файл wtmp очищен — данные недоступны.)

macOS

bash
last | head -10

Или через `log show`:
bash
log show --predicate 'eventMessage contains "Authentication" and process == "loginwindow"' --last 1d


Форензика (анализ образа диска)

Смонтировать раздел (только чтение), извлечь файлы логов:
- Windows: `C:\Windows\System32\winevt\Logs\Security.evtx`
- Linux: `/var/log/wtmp`, `/var/log/auth.log`
- Анализ утилитами `log2timeline` (plaso) или `EvtxeCmd`.

Примечание: Время хранится в UTC. Локальное смещение учитывайте отдельно. Для точной привязки (даже при смене таймзоны) — сверяйте с записями в реестре Windows (SYSTEM\CurrentControlSet\Control\TimeZoneInformation).