PDA

Просмотр полной версии : [Уязвимость] [Защита]Gemini.XFall


BopoHangel
15.02.2011, 18:46
Gemini.XFail - это моя реакция на волну глупости, поступающих от "XTeam", тупых детей из России.
Я даю её бесплатно, потому что я шокирован тем, как сайт Aluuuuu's был уничтожен, и все его работы растоптали. Я думаю, что никто не заслуживает такого.




Как эти тупые дети взламывали сервера?
Есть умные люди. Вот один из них нашёл, что существует недостаток в GroupServer.exe под названием SQL-Инъекция, и что любое значение в таблице, может быть изменено, путём изменения определенного пакета. (Пакет, что клиент и сервер использует для общения между собой).
Тогда этот человек сделал изменение клиента, который может отправить пакет на изменение GM прав. К несчастью этот человек, поделился с другом, тот с другим и так далее, в итоге, эта модификация клиента попала в общий доступ.
Таким образом, эти тупые дети из России даже не хакеры. Они просто личеры, которые используют изменение клиента, даже не зная, как она действительно работает.




Как я могу защитить свой сервер от этих изменений клиента?
Учитывая, что я сомневаюсь, что эти тупые дети из России, знают, как повторно изменить клиент, изменить запрос или параметр.
Я предложил несколько простых решений, которые может легко обойти, любой "профессионал", но, несомненно, оставит плакать XTeam и всех новичков.
Если вы не хотите использовать Gemini.XFail, вот другие рабочие решения, хотя они не дают 100% безопасности:

1) Изменения версии или порта клиента(Требуются знание HEX).
2) Изменения названия GM столбца(Требуются знание HEX и SQL).
3) Добавить ограничение, запрещающее обновление GM уровня(Требуется знание языка SQL).

Но так как я не знаю, смогут ли XTeam обойти эти простые защиты(хотя очень сомневаюсь), я предпочел более сложное решение:

1) Вручную исправить GroupServer.exe(Требуется отличное знание АНМ, которого у меня нет)
2) Фильтр пакетов (Легко)

Так, и появился на свет Gemini.XFail.




Как это работает?
Gemini.XFail является простым фильтром, который помещается между GateServer.exe и GroupServer.exe. Когда изменённый пакет приходит от клиента, он поступает в GateServer.exe который в дальнейшем передаст его в GroupServer.exe. Если Gemini.XFail поставить между ними, он будет проверять, был ли пакет изменен. Если пакет не был изменён, он будет передан в GroupServer.exe. Если он был изменен, Gemini.XFail устранит измененные данные, что делает SQL-Инъекцию неэффективной.




Как мне заставить работать Gemini.XFail?
Прежде всего, этот инструмент написан на C# 2.0, поэтому необходимо установить NET Framework версии 2.0 или выше. Если у вас его нету, вы можете скачать его тут.
Скачайте Gemini.XFail. Откройте Gemini.XFail.xml. Это файл конфигурации Gemini.XFail. Содержимое файла замените на:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<group address="127.0.0.1" port="1975"
/>
<gate address="127.0.0.1" port="1976"
/>
</configuration>

Далее откройте GroupServer.cfg и Listen_Port замените на 1975.

[Main]
Name =GroupServerAndor1
Listen_Port =1975
Listen_IP =0.0.0.0
KeepAlive =600
Version =103

Далее откройте GateServer.cfg и Port замените на 1976.

[GroupServer]
IP = 127.0.0.1
Port = 1976
EnablePing = 1800

Запускать сервер необходимо в следующие порядке:
-AccountServer
-GroupServer
-GateServer
-Gemini.XFail
-GameServer

Готово!

ВНИМАНИЕ: Если вы закроете GroupServer.exe или GateServer.exe в процессе их работы, Gemini.XFail закроется автоматически. Если вы закроете Gemini.XFail, он же завершит работу GateServer.exe и GroupServer.exe.


Скачать ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

©Heandel