Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSW#2: Task-15 #380

Open
10 tasks done
aw350m33d opened this issue Jun 18, 2024 · 7 comments
Open
10 tasks done

OSW#2: Task-15 #380

aw350m33d opened this issue Jun 18, 2024 · 7 comments
Assignees

Comments

@aw350m33d
Copy link

aw350m33d commented Jun 18, 2024

OSW#2: Task-15

Хакер получил доступ к ПК и приступил к вредоносной активности. Необходимо определить ее и написать детектирующее правило.

Файл с событиями можно скачать тут 🔗.

Проставляй галочки по ходу выполнения шагов:

  • Если тебе понравилась эта задача, то назначь её на себя. Для этого нажми на assign yourself в правой части экрана в разделе Assignees.

Если ты до этого не участвовал в спринтах Open Security Week, то напиши комментарий к этой задаче: "Беру эту задачу" и жди когда тебя добавят в группу для выдачи прав на редактирование issues. Это нужно чтобы иметь возможность назначать задачи на себя.

  • Переведи задачу из статуса Backlog в In Progress в разделе Projects справа.
  • Выполни подготовительные действия, описанные в разделе "Подготовка к спринту" правил участия.
  • Изучи атаку, события для которой сохранены в файле с событиями. Пойми как устроена атака, и сопоставь это с теми событиями, которые находятся в файле.
  • Открой локальную копию своего форка репозитория с правилами в VSCode.
  • Сразу отведи ветку под разработку текущего правила:
    git checkout -b feature/OSW-2-Task-15.
  • Придумай логику детектирования и напиши правило, используя плагин VSCode XP (eXtraction and Processing). Рекомендации по разработке см. в разделе "Советы по процессу разработки правил" правил участия.
  • Когда правило готово и протестировано, зафиксируй изменения в локальном репозитории и отправь их на сервер:
    git add *
    git commit -m "<ТУТ ЕМКОЕ ОПИСАНИЕ ИЗМЕНЕНИЙ>"
    git push --set-upstream origin feature/OSW-2-Task-15
  • Открой исходный репозиторий в браузере. Платформа предложит создать Pull Request (PR) из твоего форка в ветку master. Создайте PR с описанием содержимого и текстом Resolves #ISSUE_ID, где ISSUE_ID - идентификатор выбранной задачи. Этот текст автоматически свяжет созданный PR и задачу (подробнее см. Using keywords in issues and pull requests).
  • Переведи задачу из состояния In Progress в Done.

Следи за комментариями в созданном PR. Если нужно будет что-то поправить, изменения можно добавить в уже созданный PR. Для этого просто зафиксируй изменения в локальном репозитории и снова отправь все коммиты в GitHub.

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

Также по любым вопросам, связанными со спринтом, можно писать в чат или в дискуссии GitHub

@sn1permanky
Copy link

Беру эту задачу

@aw350m33d
Copy link
Author

Беру эту задачу

Приглашение отправил) После вступления в группу можешь назначить задачу на себя)

@sn1permanky sn1permanky self-assigned this Jun 18, 2024
@sn1permanky sn1permanky moved this from Backlog to In Progress in Open Security Week Jun 18, 2024
@aw350m33d
Copy link
Author

Привет!
Вижу, что по задаче нет изменений. Может быть есть вопросы или нужна какая-то помощь?

@sn1permanky
Copy link

Привет! Вижу, что по задаче нет изменений. Может быть есть вопросы или нужна какая-то помощь?

Главная проблема на данный момент полноценно понять что произвошло и каким образом выстроен механизм атаки)

Когда начал анализировать логи, наткнулся на Dirtynib почитал про него, вник в способ и попытался найди следы реализации в логах, но как-будто бы не оно)

В глаза бросается самый яркий индикатор - проверка статуса csrutil, после чего его запуск и чтение dyld библиотек Cryptexec.

Также явно странно ведет себя служба airportd и rinningboard

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

Пока самый яркий триггер для правила - это проверка статуса csrutil

Еще не до конца понимаю почему самба шарит по рабочему столу и папке /users/user

@Keks1993
Copy link

Привет. Дам подсказку, в этой задаче нужно сделать детект на сбор информации о системе.

@sn1permanky
Copy link

Привет. Дам подсказку, в этой задаче нужно сделать детект на сбор информации о системе.

Я максимально внимательно прочитал логи и нашел следующие закономерности:

Сначала проводится запуск Dirtynib.app.
После чего запуск нетипичного терминала - iTerm2

Далее файл reconnaissance читает:

/System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld
По данному пути лежит кэш всех встроенных библиотек (dyld - это точка входа для всех бинарников mac os)

/dev/dtracehelper
Получает информацию о системе

/private/tmp/guid
Не нашел однозначного понимания что может лежать в этой папке кроме того, что это tmp файлы гостевого пользователя

После чего он запускает команду на проверку статуса csrutil
sh -c csrutil status

И через /bin/bash осуществляется чтение /System/Volumes/Preboot/Cryptexes/OS/dyld
/dev/dtracehelper /usr/share/locale/UTF-8/LC_CTYPE
(тоже самое, что и выше, плюс тип локали, наверное для определение языков установленных на Мак ос(?))

После этого csrutil читает:
1./System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld,
2. /dev/dtracehelper
3. /Library/Preferences/Logging/com.apple.diagnosticd.filter.plist
4. /dev/autofs_nowait
5./Users/user/.CFUserTextEncoding

Далее происходит ряд действий, который я не уверен, что стоит разбирать детально (обращение к dirtynib, launchd, airportd и пр.)

Если я правильно понимаю, мне нужно задетектить сбор информации о системе через обращение к файлам:
/System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld
/dev/dtracehelper
/usr/share/locale/UTF-8/LC_CTYPE

  • использование Term2(?)

проверку статуса csrutil

запуск csrutil с дальнейшим обращением к:
/System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld
/dev/dtracehelper
/usr/share/locale/UTF-8/LC_CTYPE

Но я все же не до конца понимаю саму суть атаки.

Полагаю, что было перехвачено управление csrutil, но как?
Может быть его переписали через dirtynib?
Или здесь используется уязвимость dtracehelper?

@Keks1993
Copy link

Keks1993 commented Jul 3, 2024

Привет. Посмотрел внимательно на события и понял, что отправил не тот файл. Прошу прощения.
events.json

@sn1permanky sn1permanky moved this from In Progress to Done in Open Security Week Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

3 participants