Я прекрасно понимаю, насколько захватывающим может быть исполнение функций злоумышленника в роли пентестера. Погоня за учетными записями администраторов домена и переход от системы к системе в стремлении расширить доступ к сети увлекают и затягивают. Иногда бывает трудно остановиться и сделать надлежащие записи в заметках о проникновении, особенно когда вы только что получили доступ к системе, содержащей учетные данные, которые, в свою очередь, позволяют получить доступ к другой системе, и впереди маячат ключи от королевства. Качественная работа пентестера предусматривает уборку следов взлома.
Потенциальные следы пентеста для удаления можно разделить на следующие:
- удаление активных соединений оболочки: 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
А что вы думаете по этому поводу?