Я должен «захватить» некоторые уже зараженные рабочие станции и серверы Windows во время киберупражнений. План состоит в том, чтобы настроить, например. чистую рабочую станцию Windows 7 с последними исправлениями... затем обновите зараженную рабочую станцию 7 до последних исправлений... загрузите данные osquery (контрольные суммы файлов, владелец/группа файлов, разрешения и т. д.) и проверьте зараженную рабочую станцию на наличие этого ноу-хорошего «базовый уровень». Есть ли хороший способ сделать это с помощью osquery или вы порекомендуете другой инструмент для этой цели?
OSquery - Как предварительно загрузить данные для поиска зараженных файлов
Ответы (3)
Я не уверен, что именно вы подразумеваете под «загрузить данные osquery», но вы можете использовать osquery для точного запроса этой информации. Например, следующее позволит вам получить информацию о файле (включая разрешения, владельца и т. д.) для всех файлов в каталоге загрузки пользователя:
select * from file where path like '/Users/user/Downloads/%';
Если вам нужны хэши, вы можете запросить таблицу hash
:
select * from hash where path like '/Users/user/Downloads/%';
select * from hash where path = '<myfile> and md5 != '<known_hash>';
. Но у osquery нет функций для сравнения результатов с базовым уровнем.
- person fmanco; 10.03.2019
Это должно быть выполнимо, но ваш вопрос довольно широк. Получение базового представления о том, как выглядит известная хорошая система Windows 7, во многом зависит от того, что вас волнует. Я бы порекомендовал сделать несколько json-дампов таблиц, которые, по вашему мнению, могут иметь значение для вашего конкретного расследования, поэтому, возможно, что-то вроде:
PS C:\Users\thor\Desktop> osqueryi --json -A drivers
PS C:\Users\thor\Desktop> osqueryi --json -A programs
PS C:\Users\thor\Desktop> osqueryi --json -A users
PS C:\Users\thor\Desktop> osqueryi --json -A startup_items
PS C:\Users\thor\Desktop> osqueryi --json "select f.filename, f.path, h.md5, h.sha256 from file f, hash h where h.path = f.path and f.path like 'C:\Windows\%';"
PS C:\Users\thor\Desktop> osqueryi --json "select f.filename, f.path, h.md5, h.sha256 from file f, hash h where h.path = f.path and f.path like 'C:\Windows\system32\%%';"
PS C:\Users\thor\Desktop> osqueryi --json -A scheduled_tasks
PS C:\Users\thor\Desktop> osqueryi --json -A certificates
Обратите внимание, это определенно не исчерпывающий список, а лишь некоторые моменты, которые, возможно, стоит проверить. Я также рекомендую добавить в запросы @fmanco, упомянутые выше.
После того, как вы создали большой список больших двоичных объектов JSON с данными из базовой системы, вы можете запустить те же запросы к скомпрометированной системе и «сравнить» выходные данные json в поисках различий. Это может быть очень сложно, особенно при рассмотрении хэшей файлов C:\Windows\system32\%%, учитывая, что значения хеш-функций могут сильно различаться даже в одной и той же версии патча системы, просто к вашему сведению.
Надеюсь, это поможет!
Вы можете быть интересны в https://github.com/Netflix-Skunkworks/diffy
Это инструмент, предназначенный для сравнения различий между хостами.