Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
- Telegram Web
Telegram Web
Channel created
Всем привет! 🙋🏻‍♂️
Мы - команда пентестеров Deiteriy Lab.
Запускаем наш канал, в котором будем делиться своим опытом и рассказывать об интересных вещах из мира ИБ.
Первый пост сразу суперполезный 😎

Делимся с вами ссылкой на статью о пентесте gRPC.
Эта статья - логическое продолжение доклада, с которым Илья выступал на OFFZONE 2023.

Приятного чтения!
Сегодня утром появилась новость о том, что доступ к DockerHub закрыт для российских IP-адресов.

Предлагаем решение проблемы 🦾

Вариант 1 - Настроить локальный прокси

[Linux]

1. Создать на вашем компьютере директорию: /etc/systemd/system/docker.service.d/

2. Положить в нее файл:http-proxy.conf

3. В файл записать следующие строки:

[Service]
Environment="HTTP_PROXY=http://test:test@[PROXY-IP]:3128/"
Environment="HTTPS_PROXY=https://test:test@[PROXY-IP]:3128/"


Вместо [PROXY-IP] указываем IP-адрес нашего зарубежного сервера, на котором развернут Proxy. Вместо test:test - ваш логин и пароль.

4. Перезапустить сервис:
sudo systemctl daemon-reload


5. Проверить, что переменные прописались:
sudo systemctl show --property Environment docker


6. Перезапустить докер:
sudo systemctl restart docker


[Mac/Windows]

1. Запустить Docker Desktop и открыть настройки ( Settings… )
2. Во вкладке Resources → Proxies прописать URL Proxy-сервера в поля для HTTP и HTTPS

Вариант 2 - Настроить Cache Proxy на вашем Docker Registry

Для настройки через Docker Compose вам потребуется создать или отредактировать файл .env расположенный рядом с файлом docker-compose.yml:

HTTP_PROXY=http://test:test@[PROXY-IP]:3128
HTTPS_PROXY=https://test:test@[PROXY-IP]:3128
REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io


Где вместо [PROXY-IP] указываем IP-адрес зарубежного сервера, на котором развернут Proxy. Вместо test:test - логин и пароль.

Далее потребуется перезапустить контейнер с Docker Registry.

На своем компьютере необходимо настроить параметр registry-mirrors в файле/etc/docker/daemon.json.

{
"registry-mirrors": [
"https://[REGISTRY-DOMAIN]"
]
}


Также вы можете использовать общедоступные зеркала, например:

{
"registry-mirrors" : [
"https://mirror.gcr.io",
"https://daocloud.io",
"https://c.163.com/",
"https://huecker.io/",
"https://registry.docker-cn.com"
]
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы наверняка слышали про уязвимость IIS, которая позволяет через IIS Short File Name (SFN - схема именования файлов 8.3) раскрывать наличие тех или иных файлов на сервере.

Для проверки наличия данной уязвимости можно использовать утилиту shortscan.

Например, так:


shortscan http://example.org/


На одном из наших проектов в заголовке сервера возвращался nginx, но за ним обнаружился IIS, который был уязвим и в корне сервера были найдены файлы c SFN.

Поэтому стоит проверять наличие таких файлов, даже если кажется, что перед вами не IIS, ведь он может скрываться за прокси 🥷🏻
🗣Продвинутое использование crt.sh

Вы наверняка слышали про crt.sh - инструмент, который позволяет искать и просматривать публичные записи о цифровых сертификатах, зарегистрированные в различных удостоверяющих центрах (CA).

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

Обойти это ограничение можно, например, утилитой которая подключается напрямую к БД PostgesSQL от crt.sh:
https://github.com/cemulus/crt

Аргументы:
-l - ограничение вывода (По умолчанию: 1000)
-s - получение всех поддоменов
-json - вывод результата в JSON формате

Получить все сертификаты по домену:

crt -l 999999 example.com


Получить все поддомены из всех сертификатов:

crt -s -l 999999 example.com


Вариант использования утилиты для составления словаря поддоменов из БД crt.sh:

crt -s -l 999999 -json example.com | jq -r '.[].subdomain' | sort | uniq
Please open Telegram to view this post
VIEW IN TELEGRAM
Недавно стало известно об уязвимости SSH с идентификатором CVE-2024-6387, которая может позволить потенциальному злоумышленнику получить удаленное выполнение кода на сервере.

Уязвимые версии:
• OpenSSH < 4.4p1
• 8.5p1 <= OpenSSH < 9.8p1.

Для этой уязвимости уже есть PoC:
https://github.com/acrono/cve-2024-6387-poc.

Как узнать версию?

dpkg -l | grep ssh

Как можно пофиксить данную уязвимость?

Вариант 1 - Обновиться:


apt update
apt install -y build-essential zlib1g-dev libssl-dev
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -xzf openssh-9.8p1.tar.gz
cd openssh-9.8p1/
./configure --prefix=/ --exec_prefix=/usr --sysconfdir=/etc/ssh
make
make install
service sshd restart


Вариант 2 - Если по каким-то причинам у вас не получится обновиться, то можно хотя бы не допустить RCE:

Для этого необходимо в файле sshd_config установить значение LoginGraceTime равное 0.
У этого метода есть недостаток:


Finally, if sshd cannot be updated or recompiled, this signal handler
race condition can be fixed by simply setting LoginGraceTime to 0 in the
configuration file. This makes sshd vulnerable to a denial of service
(the exhaustion of all MaxStartups connections), but it makes it safe
from the remote code execution presented in this advisory.
👀 Недавно на одном из проектов мы наткнулись на интересную находку - файл конфигурации Debezium Mysql коннекторов.

Debezium — это сервис для захвата изменений в базах данных и отправки их на обработку в другие системы.

Было обнаружено, что при обращении по URL http://ip:8083/connectors/, можно получить информацию обо всех запущенных и подключенных Debezium Mysql коннекторах, то есть получить полную их конфигурацию с явками и паролями пользователей от БД.

✍🏻 Как найти коннекторы в инфраструктуре и вытянуть информацию об их конфигурации?

Стандартный порт для коннекторов - 8083. Перебором директорий можно найти тот самый файл “connectors”, в котором содержится список всех рабочих коннекторов.

Далее можно обратиться по конкретному имени коннектора и получить его конфигурацию.

Запрос на получение всех коннекторов:


curl http://ip:8083/connectors/ | jq "."


Для получения конфига необходимо обратиться к конкретному коннектору, указав его имя:


curl http://ip:8083/connectors/name | jq "."


Полученную информацию можно использовать для подключения к базе данных 😎
Упрощаем пентест GraphQL

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

Это не проблема, поскольку некоторые серверы GraphQL, например Apollo Server, по умолчанию имеют механизм подсказок методов.

На первом скриншоте можно увидеть, как выглядят такие подсказки.

Как это можно использовать?

Существует готовое автоматизированное решение для восстановления схемы из подсказок — Clairvoyance.

Для удобной работы с полученной схемой можно использовать расширение InQL для Burp Suite.

Во вкладке InQL выбираем Scanner, указываем в строке URL эндпоинт GraphQL атакуемого веб-приложения, загружаем ранее полученный файл схемы и нажимаем Analyze.

В результате мы получим список методов, которые можно использовать для последующего анализа приложения.
2025/01/08 08:49:36
Back to Top
HTML Embed Code: