Codeby
35.4K subscribers
1.29K photos
91 videos
11 files
7.27K links
Крупнейшее ИБ сообщество ру-сегмента

Чат: @codeby_one
Форум: codeby.net
Обучение: codeby.school
Пентест: codeby.one
CTF: hackerlab.pro

VK: vk.com/codeby
YT: clck.ru/XG99c

Сотрудничество: @KinWiz
Download Telegram
📣 Хакеры любят SQL-инъекции — это один из самых старых, но всё ещё опасных методов атак. Всего пара лишних кавычек может открыть доступ к миллионам записей. Подробнее в карточках.

🔴Разобраться в SQL-инъекциях можно на курсе «SQL-Injection Master». Запись до 30 марта. Регистрация здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Semgrep 🔍

Инструмент статического анализа с открытым исходным кодом, который выполняет поиск в коде, находит ошибки и обеспечивает соблюдение безопасных ограничений и стандартов кодирования. Semgrep поддерживает более 30 языков и может работать в интегрированной среде разработки, в качестве проверки перед коммитом и в рамках рабочих процессов CI/CD.

🍏🖥 Установка:
# For macOS
brew install semgrep

# For Ubuntu/WSL/Linux/macOS
python3 -m pip install semgrep


Для запуска в автоматическом режиме необходимо перейти в корневой каталог проекта и использовать команду: semgrep --config "auto". Параметр config отвечает за выбор правил для сканирования. В режиме auto используются все публичные правила и сканирование начинается с текущей директории.

📋 Так же есть готовые наборы правил для проверки под разные задачи:
semgrep --config p/python
semgrep --config p/owasp-top-ten
semgrep --config p/cwe-top-25


Через параметр --exclude в командной строке можно исключить файлы или директории, которым не требуется сканирование.

🆒 Правила для Semgrep пишутся в формате YAML, что упрощает их создание и настройку. Можно использовать уже готовые правила, а можно создавать собственные. Пример использования кастомного правила для поиска операторов Python print():

Сохраняем этот файл с именем no_print.yaml и запускаем утилиту:
semgrep --config no_print.yaml <путь_к_коду>
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔽 dive 🐳

Инструмент для изучения образов Docker, содержимого слоёв и поиска способов уменьшить размер образа Docker/OCI.

💱 Установка:
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb


Для Windows можно использовать последнюю версию отсюда.

☄️ Основные возможности:
⏺️ Демонстрация содержимого изображения Docker в разбивке по слоям;
⏺️ Возможность видеть изменения в каждом слое;
⏺️ Оценка эффективного распределения места в образе;
⏺️ Быстрые циклы сборки / анализа засчёт возможности проведения сканирования при сборке образа.

🧐 Использование:
Для анализа образа Docker необходимо запустить инструмент и указать tag/id/digest:
dive <your-image-tag>


Также можно запустить инструмент непосредственно с помощью команды docker:
alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive <your-image-tag>

# for example
dive nginx:latest


Или создать свой образ и сразу перейти к его анализу:
dive build -t <some-tag>
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 dnstwist

Инструмент предназначен для анализа предоставленного доменного имени с помощью алгоритмов фаззинга и позволяющий найти похожие домены, которые могут быть использованы в фишинговых атаках.

💻 Последнюю версию можно установить клонировав репозиторий:
git clone https://github.com/elceef/dnstwist.git
cd dnstwist
pip install .


😮 Использование:

Обычно генерируются тысячи комбинаций доменов, поэтому целесообразно отображать только те, которые зарегистрированы:
dnstwist --registered domain.name


С помощью аргумента --nameservers можно указать внешний DNS-сервер, который будет обрабатывать запросы.

Через аргумент --dictionary передается файл со словарем в случае, если результатов фаззинга не будет хватать.

Для проверки, существуют ли домены с другими TLD, необходимо предоставить файл со списком TLD:
dnstwist --tld dictionaries/common_tlds.dict domain.name


Кроме того, можно указывать необходимые алгоритмы фаззинга перечисляя их:
dnstwist --fuzzers "homoglyph,hyphenation" domain.name


Для простых перестановок без поиска DNS, используется аргумент --format list.

🚨Обнаружение фишинга:
Ручная проверка каждого доменного имени на предмет того, что оно ведёт на фишинговый сайт, может занять много времени. Для решения этой проблемы, dnstwist использует нечёткие хэши — концепция, которая позволяет сравнивать два входных параметра (HTML-код) и определять базовый уровень сходства и перцептивный хэш — отпечаток, полученный на основе визуальных характеристик изображения (скриншот веб-страницы).
dnstwist --lsh domain.name
dnstwist --phash domain.name
Please open Telegram to view this post
VIEW IN TELEGRAM
revsocks

Утилита, написанная на Go, которая реализует обратный SOCKS5 туннель с поддержкой SSL/TLS и прокси (без аутентификации прокси и с базовой/NTLM аутентификацией прокси. Поддерживается на всех ОС, есть поддержка туннелирования DNS, автоматическая генерация сертификата SSL / TLS, если не указано иное.

🚀 Установка:
# Build for Linux
git clone https://github.com/kost/revsocks
export GOPATH=~/go
go get github.com/hashicorp/yamux
go get github.com/armon/go-socks5
go get github.com/kost/go-ntlmssp
go build
go build -ldflags="-s -w" && upx --brute revsocks


⚙️ Принцип работы:
⏺️На сервере RevSocks запускается с параметром -listen, указывающим порт, на котором сервер будет принимать соединения от клиента и параметром -socks, задающим адрес SOCKS5-сервера (сервер ожидает входящего соединения от клиента и одновременно предоставляет SOCKS5-интерфейс для внешних подключений).
⏺️На клиенте инструмент запускается с параметром -connect, указывающим на адрес и порт сервера.
⏺️Клиент устанавливает исходящее TCP-соединение к серверу, которое мультиплексируется с помощью Yamux для обработки множества потоков.
⏺️SOCKS5-запросы от сервера передаются через туннель к клиенту, который выполняет их и возвращает данные.


💻 Использование:
Обратное TCP соединение с шифрованием TLS:
# Start on VPS
revsocks -listen :8443 -socks 127.0.0.1:1080 -pass SuperSecretPassword -tls
# Start on client
revsocks -connect clientIP:8443 -pass SuperSecretPassword -tls


DNS туннель:
# Start on the DNS server
revsocks -dns example.com -dnslisten :53 -socks 127.0.0.1:1080 -pass <pass>
# Start on the target
revsocks -dns example.com -pass <pass>
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 6 способов защиты кода, о которых должен знать каждый разработчик

Тестирование безопасности — это не только сканеры и отчеты. В статье разбираем:
🔸 Тестирование на проникновение (пентест) прямо в процессе разработки
🔸 Как DAST и SAST находят разные классы уязвимостей
🔸 Фаззинг API - почему это must have для современных приложений
🔸 IAST — "золотая середина" между статикой и динамикой
🔸 Как APSM помогает поддерживать безопасность на постоянной основе

🔴Читать статью полностью
🔴Хотите больше практики? 65 реальных заданий по взлому — стартуем 3 апреля. Регистрация здесь.

🚀 Пишите @Codeby_Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
🧦 resocks

Утилита, осуществляющая обратный/реверсивный прокси-туннель SOCKS5, который можно использовать для маршрутизации трафика через систему, к которой нельзя получить прямой доступ (например, из-за NAT). Канал защищён взаимно доверенным TLS с автоматически сгенерированными сертификатами на основе ключа подключения.

Актуальную версию можно скачать здесь.

Использование:

1⃣ Запускаем листенер в системе, которая служит точкой входа в туннель SOCKS5 (атакующая машина):
# Оn proxy entry point system with IP 1.2.3.4
resocks listen


2⃣ В устройстве находящемся за NAT (скомпрометированное устройство) запускаем утилиту и передаем ключ:
# Оn remote relay system with IP 10.0.0.1
resocks 1.2.3.4 --key $CONNECTION_KEY


3⃣ Теперь необходимо настроить использование локального сервера SOCKS5, там где запущен листенер и передать IP цели, доступ к которой требуется получить:
curl --proxy 'socks5://127.0.0.1:1080' 'http://10.0.0.2'


В сравнении с другими инструментами (сhisel, ligolo и т.д.) resocks выделяется благодаря акценту на взаимной аутентификации через mTLS и удобству использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
🚩 Новые задания на платформе HackerLab!

🕵️ Категория ФорензикаСекреты Олега

🌍 Категория ВебДосье X

Приятного хакинга!
Please open Telegram to view this post
VIEW IN TELEGRAM
Исследователи Pillar Security обнаружили новый опасный вектор атаки на цепочки поставок Rules File Backdoor. Эта техника позволяет злоумышленникам незаметно компрометировать код, созданный ИИ, внедряя скрытые вредоносные инструкции в, казалось бы, безобидные файлы конфигурации, используемые Cursor и GitHub Copilot.

⚙️ В ходе атаки используется несколько технических механизмов:
🌟 Контекстная манипуляция: встраивание инструкций, которые выглядят как легитимные, но направляют ИИ на изменение поведения при генерации кода
🌟 Обфускация в Unicode: использование символов нулевой ширины, маркеров двунаправленного текста и других невидимых символов для сокрытия вредоносных инструкций
🌟 Семантическое похищение: использование понимания ИИ естественного языка с помощью тонких лингвистических шаблонов, которые перенаправляют генерацию кода на уязвимые реализации
🌟 Межагентная уязвимость: атака работает на разных помощниках по написанию кода на основе ИИ, что указывает на системную уязвимость

Особенно опасен этот бэкдор тем, что попадая в репозиторий проекта, он влияет на все последующие сеансы создания кода членами команды.

🧩 Детали атаки:
Создание вредоносного файла правил, который кажется безобидным для проверяющих специалистов, но на самом деле содержит невидимые Unicode символы, который полностью читаем моделями ИИ и скрывает в себе вредоносные инструкции. После создания необходимо добавить его в нужный репозиторий и ждать пока им воспользуются разработчики.

Полезная нагрузка использует повествовательную структуру, чтобы обойти этические ограничения ИИ, представив вредоносные действия как требование безопасности‍. В инструкциях ИИ прямо указано не упоминать об изменениях кода в своих ответах, чтобы удалить все логи из окна чата агента, которые могут вызвать подозрения у разработчика.
Please open Telegram to view this post
VIEW IN TELEGRAM
Wapiti - инструмент для тестирования безопасности веб-приложений

🦌 Wapiti — это инструмент для тестирования безопасности веб-приложений с открытым исходным кодом, написанный на Python. Он помогает выявлять уязвимости, такие как SQL-инъекции, XSS, проблемы с аутентификацией и конфиденциальностью.


🫎 Особенности Wapiti
- Командная строка - Wapiti использует командную строку для настройки и автоматизации тестов.
- Типы атак - проверяет уязвимости, такие как SQL-инъекции, XSS, LFI, RFI и другие.
- Отчеты - генерирует отчеты в форматах HTML, XML, JSON для анализа уязвимостей.
- Аутентификация - поддерживает сайты с аутентификацией, сессиями и куки.


🫎 Установка Wapiti
Для установки Wapiti достаточно выполнить несколько простых команд в терминале. Убедитесь, что у вас установлен Python 3.x, а также установите необходимые зависимости.
pip install wapiti3



🫎 Пример использования Wapiti
После установки Wapiti можно использовать команду для сканирования веб-сайта на наличие уязвимостей. Вот пример простого запуска сканера на URL:
wapiti http://example.com

Файл начнет сканирование сайта http://example.com на уязвимости, проверяя формы, ссылки и параметры URL.


🫎 Генерация отчетов
После завершения сканирования можно сгенерировать отчет. Например, для создания отчета в формате HTML используется команда:
wapiti -u http://example.com -o report.html

Wapiti создаст отчет в формате HTML, который можно просмотреть в браузере.
Please open Telegram to view this post
VIEW IN TELEGRAM
🟢 Как взламывают роутеры, Bluetooth и даже оперативку? Разбираем в карточках.

🔴На курсе «Устройства для тестирования на проникновение» разбираем аппаратные атаки, о которых не пишут в мануалах. Стартуем 21 апреля. Регистрация здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM