T1070.003: Очистка истории команд

Помимо очистки системных журналов, злоумышленники могут очистить историю команд скомпрометированной учетной записи для скрытия действий, совершенных во время атаки. Различные интерпретаторы командной строки регистрируют команды, введенные в терминале, чтобы пользователи могли просмотреть или повторить их при необходимости.

В Linux и macOS доступ к истории команд можно получить различными способами. История команд пользователя, вошедшего в систему, регистрируется в файле, на который указывает переменная окружения HISTFILE. Когда пользователь выходит из системы, эта информация сбрасывается в файл ~/.bash_history, расположенный в домашнем каталоге пользователя. Преимущество этого метода заключается в том, что пользователи могут вернуться к командам, которые они использовали во время предыдущих сеансов.

Злоумышленники могут удалить команды пользователей из этих журналов, вручную очистив историю (history -c) или удалив файл истории команд bash: rm ~/.bash_history.

Для удаления истории команд с сетевых устройств злоумышленники также могут использовать интерпретаторы командной строки сетевых устройств (командыclear logging и (или) clear history).

В PowerShell на узлах под управлением Windows есть два источника истории команд: встроенная функция сохранения истории и модуль PSReadLine. Встроенная функция сохраняет только команды, введенные во время текущего сеанса. Эта история команд недоступна для других сеансов и удаляется при завершении текущего сеанса.

Модуль PSReadLine отслеживает команды, введенные во время всех сеансов PowerShell, и записывает их в файл (по умолчанию$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt). Этот файл истории доступен для всех сеансов и содержит всю историю команд, поскольку он не удаляется при завершении сеанса.

Команда PowerShell Clear-History удаляет всю историю команд текущего сеанса PowerShell. Тем не менее это не приводит к удалению или очистке файла ConsoleHost_history.txt. Злоумышленники могут также удалить файл ConsoleHost_history.txt или изменить его содержимое для скрытия выполненных ими команд PowerShell.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

unix_mitre_attck_defense_evasion: PT-CR-1659: Unix_Clear_Command_History: Очистка истории команд

Способы обнаружения

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

Отслеживайте подозрительные процессы, которые могут очищать историю команд скомпрометированной учетной записи, чтобы скрыть следы атаки.

Аналитика 1. Очистка истории команд в консоли PowerShell

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") AND (CommandLine="rm (Get-PSReadlineOption).HistorySavePath" OR CommandLine="del (Get-PSReadlineOption).HistorySavePath" OR CommandLine="Set-PSReadlineOption –HistorySaveStyle SaveNothing" OR CommandLine="Remove-Item (Get-PSReadlineOption).HistorySavePath" OR (CommandLine="del" AND CommandLine="Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt"))

IDDS0022Источник и компонент данныхФайл: Удаление файлаОписание

Отслеживайте нетипичные случаи удаления файлов с историей команд пользователя, включая ConsoleHost_history.txt, ~/.zsh_history и ~/.bash_history.

Аналитика 1. Удаление файлов с историей команд пользователя

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="23") OR (source="*WinEventLog:Security" EventCode="4663") FilePath LIKE '%ConsoleHost_history.txt%' AND ObjectType == "File" AND (UserAccessList LIKE '%1537%' OR UserAccessList LIKE '%DELETE%'))

IDDS0022Источник и компонент данныхФайл: Изменение файлаОписание

Отслеживайте неожиданные изменения в содержимом, правах доступа и атрибутах файлов с историей команд, включая ConsoleHost_history.txt, ~/.zsh_history и ~/.bash_history.

Аналитика 1. Изменение прав доступа для файлов с историей команд

(source="WinEventLog:Security" EventCode IN (4663, 4670) AND Path="ConsoleHost_history.txt" AND ObjectType="File") AND (UserAccessList="1539" OR UserAccessList="WRITE_DAC") OR (ObjectNewSd=";FA*" OR ObjectNewSd=";FW" OR ObjectNewSd=";BU")

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Отслеживайте выполнение команд с аргументами, которые могут использоваться для очистки истории команд, например Clear-History в Windows или clear logging / clear history в интерпретаторах командной строки сетевых устройств, которые регистрируются в журналах аутентификации, авторизации и аудита (ААА), а также команд с аргументами, которые могут использоваться для отключения записи истории команд, например history -c в bash/zsh.

Аналитика 1. Команды PowerShell

(source="*WinEventLog:Microsoft-Windows-Powershell/Operational" EventCode="4103") (CommandLine="Clear-History" OR (CommandLine="Remove-Item" AND CommandLine="ConsoleHost_history.text"))

IDDS0002Источник и компонент данныхУчетная запись пользователя: Аутентификация с помощью учетной записиОписание

Отслеживайте попытки доступа к сети или вычислительным ресурсам со стороны пользователей, в том числе путем предоставления учетных данных через удаленные службы терминалов, особенно если эти попытки не отражены в файле истории команд.

Меры противодействия

IDM1039НазваниеПредотвращение изменения переменных окруженияОписание

Если сделать переменные окружения, связанные с историей команд, доступными только для чтения, это может гарантировать сохранность истории.

IDM1029НазваниеУдаленное хранение данныхОписание

Передавайте журнальные или исторические данные в удаленное хранилище данных и решение для централизованной журнализации для сохранения исторических данных журнала командной строки.

IDM1022НазваниеОграничение разрешений для файлов и каталоговОписание

Запрет на удаление или запись определенных файлов может помешать злоумышленникам злонамеренно изменять файлы ~/.bash_history или ConsoleHost_history.txt.