Главная

Friday, 24 March 2023

Убирайте за собой.

Всем привет.

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

Потенциальные следы пентеста для удаления можно разделить на следующие:

  • удаление активных соединений оболочки: sessions -K для Metepreter;
  • удаление ненужных учетных записей пользователей: в файле /etc/passwd;
  • удаление различных файлов: копии кустов реестра, ключей SSH, ntds.dit;
  • отмена изменений конфигурации: отключение процедуры xp_cmdshell в MSSQL;
  • отключение анонимных общих файловых ресурсов;
  • удаление записей в crontab;
  • закрытие бэкдоров.

И вот Вы все это удалили или исправили. И вот тут то следует не забывать что ваши движения остаются в истории команд, поэтому следует в конце за собой почистить и ее.

В Linux файл bash_history обычно находится в домашнем каталоге пользователя /home/username/.bash_history:

$ cat /home/alex/.bash_history

Чтобы удалить одну строку из файла истории, используйте параметр -d. Например, если вы хотите очистить команду, в которой вы ввели открытый текстовый пароль, найдите номер строки в файле истории и выполните эту команду:

$ history -d 130

Чтобы удалить или очистить все записи из истории bash, используйте команду history ниже с опцией -c:

$ history -c

В качестве альтернативы, вы можете использовать команду приведенную ниже, чтобы удалить историю всех последних выполненных команд в файле навсегда:

$ cat /dev/null > ~/.bash_history

С Windows проще, но в некоторых местах сложнее.  Итак в cmd вы можете вывести историю команд в текущей сессии с помощью:

doskey /history

Т.е. сессию закрыли и история очищена. Замечательно.

Возможно некоторые вашы команды выполнялись Powershell. Для просмотра истории предыдущих команд в текущей сессии используется командлет Get-History. Чтобы вывести подробную информацию о ранее выполненных командах в текущей сессии PowerShell, в том числе время запуска/окончания команды:

Get-History | Format-List -Property *

Если вы закрыли консоль PowerShell, то история команд сбрасывается и список в Get-History очищается. По аналогии с cmd.

Однако это еще не все. PowerShell 5.1 и PowerShell Core также сохраняют последние 4096 команд в тестовом файле в профиле каждого пользователя

%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt .

Вы можете открыть этот файл и просмотреть историю команд в любом текстовом редакторе. Например, чтобы открыть файл с журналом команд с помощью блокнота:

notepad (Get-PSReadLineOption | select -ExpandProperty HistorySavePath)

Выведите текущие настройки истории команд PowerShell модуля PSReadLine:

Get-PSReadlineOption | select HistoryNoDuplicates, MaximumHistoryCount, HistorySearchCursorMovesToEnd, HistorySearchCaseSensitive, HistorySavePath, HistorySaveStyle

Командлет Clear-History позволяет очистить историю команд только в текущем сеансе PowerShell (очищается список предыдущих команд, которые выводит командлет Get-History).

Можно удалить из истории только одну предыдущую команду:

Clear-History -count 1 -newest

Или все команды по определенной маске:

Clear-History -CommandLine *Get-ad*

Чтобы полностью удалить историю предыдущих команд PowerShell, нужно удалить текстовый файл, в который они сохраняются модулем PSReadline. Проще всего это сделать командой:

Remove-Item (Get-PSReadlineOption).HistorySavePath

После этого закройте обязательно сессию Powershell.

Чтобы полностью отключить ведение истории команд PowerShell, выполните команду:

Set-PSReadlineOption -HistorySaveStyle SaveNothing

PSReadline может хранить историю команд для консоли Powershell и VisualStudio Code, но не для оболочки ISE. Разумеется об этом лучше позаботиться до ввода ваших команд на компьютере жертвы.  Также следует проверить включено ли транскрибирование в Powershell.

Следов вашего пребывания в Windows может быть намного больше. Как от них избавляться подробно рассказано здесь. Однако имейте ввиду что полная чистота работы в ОС -  это уже подозрительно.)

Удачи.

По материалам книги Ройса Дэвиса "Искусство тестирования на проникновение в сеть", 2021.

No comments:

Post a Comment

А что вы думаете по этому поводу?