OSquery - Как предварительно загрузить данные для поиска зараженных файлов

Я должен «захватить» некоторые уже зараженные рабочие станции и серверы Windows во время киберупражнений. План состоит в том, чтобы настроить, например. чистую рабочую станцию ​​Windows 7 с последними исправлениями... затем обновите зараженную рабочую станцию ​​7 до последних исправлений... загрузите данные osquery (контрольные суммы файлов, владелец/группа файлов, разрешения и т. д.) и проверьте зараженную рабочую станцию ​​на наличие этого ноу-хорошего «базовый уровень». Есть ли хороший способ сделать это с помощью osquery или вы порекомендуете другой инструмент для этой цели?


person Pat    schedule 03.03.2019    source источник


Ответы (3)


Я не уверен, что именно вы подразумеваете под «загрузить данные osquery», но вы можете использовать osquery для точного запроса этой информации. Например, следующее позволит вам получить информацию о файле (включая разрешения, владельца и т. д.) для всех файлов в каталоге загрузки пользователя:

select * from file where path like '/Users/user/Downloads/%';

Если вам нужны хэши, вы можете запросить таблицу hash:

select * from hash where path like '/Users/user/Downloads/%';
person fmanco    schedule 04.03.2019
comment
возможно, для уточнения: я хочу создать информацию о файле OSquery (хэш, размер, разрешения и т. д.) в чистой, свежеустановленной системе и использовать эти данные для поиска измененных/троянизированных файлов в другой системе (обе системы имеют одинаковый OS/patch_level конечно). это вообще возможно...? - person Pat; 04.03.2019
comment
Вы можете использовать osquery для запроса информации о чистой машине, а затем создавать запросы для поиска различий, скажем, запросить хеш-таблицу, например 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\%%, учитывая, что значения хеш-функций могут сильно различаться даже в одной и той же версии патча системы, просто к вашему сведению.

Надеюсь, это поможет!

person Muffins    schedule 04.03.2019

Вы можете быть интересны в https://github.com/Netflix-Skunkworks/diffy

Это инструмент, предназначенный для сравнения различий между хостами.

person seph    schedule 18.03.2019