Уязвимость BungeeCord Exploit: как хакеры подключаются к бекендам в обход прокси
Введение: дыра в прокси
BungeeCord и Velocity защищают бекенд-серверы, принимая игроков только через прокси. Но если бекенд неправильно настроен, хакер может подключиться к нему напрямую, минуя прокси, и выдать себя за любого игрока — в том числе администратора. Эта уязвимость известна как «BungeeCord Exploit» или «Direct Connection Exploit». В этой статье — как она работает и как защитить бекенды.
Как работает атака
- Хакер узнаёт IP и порт бекенд-сервера (через сканирование портов, утечку информации или инсайд).
- Бекенд настроен с
online-mode=false(проверка лицензии отключена, так как её выполняет прокси). - Бекенд настроен с
bungeecord: trueв spigot.yml. - Хакер подключается к бекенду напрямую с поддельным ником (например, «Admin») и поддельным UUID.
- Бекенд доверяет данным от хакера, потому что думает, что они пришли от прокси.
- Хакер заходит под ником администратора со всеми его правами и инвентарём.
Почему это работает
BungeeCord передаёт данные игрока (ник, UUID) бекенду в специальном handshake-пакете. Бекенд доверяет этому пакету, потому что предполагает, что он пришёл от прокси, а не от игрока. Если игрок подключается напрямую и отправляет такой же handshake-пакет — бекенд не отличает его от прокси.
Как защитить бекенды
Метод 1: Брандмауэр (самый надёжный)
Настройте брандмауэр так, чтобы порты бекендов (25566, 25567...) были доступны ТОЛЬКО с IP прокси-сервера. Если прокси и бекенды на одной машине — разрешить только localhost (127.0.0.1).
Linux (iptables):
iptables -A INPUT -p tcp --dport 25566 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 25566 -j DROP
Windows (брандмауэр): Создать правило, разрешающее порт 25566 только для IP 127.0.0.1.
Метод 2: BungeeGuard (плагин)
BungeeGuard добавляет секретный токен в handshake-пакет. Бекенд проверяет этот токен. Если токен не совпадает — подключение отклоняется. Хакер не знает токен и не может его подделать.
Установка:
- Установите BungeeGuard на прокси и на все бекенды.
- В конфиге прокси сгенерируется токен. Скопируйте его.
- Вставьте токен в конфиг BungeeGuard на всех бекендах.
- Перезапустите прокси и бекенды.
Метод 3: Velocity Modern Forwarding
Velocity использует современный протокол forwarding с ключом. В paper.yml на бекендах настройте:
settings:
velocity-support:
enabled: true
online-mode: true
secret: 'ваш-секретный-ключ'
Бекенд будет принимать подключения только от Velocity с правильным ключом.
💡 Совет профи
Никогда не публикуйте IP-адреса бекендов. Используйте DNS-записи только для прокси. Бекенды должны быть доступны исключительно по локальной сети (localhost или внутренний IP). Если бекенды на разных VDS — настройте VPN (WireGuard) между ними и закройте порты бекендов от внешнего мира. И обязательно проверьте, чтоonline-modeна бекендах установлен вfalse— но ТОЛЬКО в сочетании с BungeeGuard или Velocity secret.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!