Быстрая регистрация


» » » Взлом сервера Counter Strike 1.6
22
окт
2013

Взлом сервера Counter Strike 1.6 

Категория: Статьи, Автор: SniFFeR, Просмотров: 3504

Взлом сервера Counter Strike 1.6

Наткнулся на интересную статью на Habrahabr про безопасность сервера CS 1.6. Подробнее под катом.


Текст не мой, речь ведется от лица автора.
________________________________________________________________________________________


Добрый день.
В с появлением различных сервисов, предоставляющих услуги хостингов игровых серверов, появилось много желающих сделать свой сервер, при этом, в ряде случаев, вопросы безопасности остаются проигнорированными.
Пару месяцев назад, просматривая список серверов в поисках «где бы поиграть», я обнаружил сервер, в названии которого содержатся угрозы к тем, кто будет использовать читы.

Зайдя на сервер с администраторской учёткой и обнаружив, что у меня есть доступ к amx_rcon я уже было подумал, что получил доступ к учётке главного администратора, однако, всё прояснилось несколько позже.
Небольшое отступление по поводу прав доступа в Counter Strike
Есть права, которые предоставляются модулем AmxModX, они выставляются флагами (a-u), флаг z — обычный игрок.
Какой флаг за что отвечает, можно посмотреть здесь.
Администратор с флагом amx_kick, amx_ban, и т. д. и т. п., не может как-либо воздействовать на игрока, у которого стоит флаг иммунитета.
Также, есть доступ, предоставляемый RCON-паролем (Remote Console, насколько я понимаю). Думаю, здесь будет уместна аналогия с ssh-ключом. В общем, давать его всем подряд — не самая хорошая мысль.
Это, фактически, прямой доступ к к консоли сервера.
Команда amx_rcon несколько облегчает использования Rcon-a, но и имеет «обратную сторону медали». Администратор, имеющий доступ к этой команде имеет доступ и к amx_showrcon, с помощью которой можно узнать RCON-пароль. Отличаются они тем, что amx_rcon не выводит результат выполнения в консоль, а amx_showrcon — выводит.


Прочитать то, что написал сервер у себя в консоли и вывести обратно игроку средствами AmxModX не представляется возможым.

Команда amx_showrcon фактически заменяет 2 стандартные команды, за которые отвечает движок, и для работы которых не нужны модули:




То есть, после использования этой команды, достаточно посмотреть, каким стало значение rcon_password, чтобы узнать RCON-пароль сервера.


Посмотрев командой amx_who какие права кому выданы… в общем, это была не учётка главного администратора. Они всем администраторам ставили все доступные флаги.
В качестве теста я решил кикнуть одного администратора, который громко ругался на сервере и мешал играть, написав в причине «помолчи». Об этом «инциденте» им тут же была создана тема в группе сервера, мол «меня кто-то кикает».
Главный администратор не придумал ничего лучшего, чем снять со всех администраторов доступ к amx_kick.
Так как подделать SteamID достаточно просто, я решил написать об этом главному администратору, который занимался выставлением прав доступа. В ответ получил «Раз ты такой умный, почему ты до сих пор не купил у нас админку?». (Действительно...)
В общем, после наглядной демонстрации возможности кикать администраторов, используя rcon, вместо того, чтобы как-то ограничить у администраторов доступ к amx_rcon он выдал мне бан по IP-адресу, «чтобы не лез, куда не надо».
Это так у нас теперь благодарят за найденную уязвимость.

Ну что же, пишем небольшой скрипт, который кикает всех игроков с сервера и закрывает сервер паролем. Весело, надёжно.
Опять таки, вместо того, чтобы убрать у админов доступ к Rcon-паролю, главный админ решил перевести их на доступ по комбинации ник- пароль
Про то, чтобы поменять RCON-пароль никто так и не подумал.

Часть вторая, получаем доступ к MySQL от AmxBans сервера


Сейчас стало модно держать отдельную веб-страничку со списком игроков, забаненных на сервере.
Этот список формируется из MySQL таблицы, данные в которую заносит плагин AmxBans.
Так же, AmxBans позволяет хранить информацию о админах не в файле users.ini, а в той же самой БД.
Данные для доступа к этой базе прописываются в кварах(CVar) сервера. Их можно прочитать командой rcon amxx cvars

Нас интересуют значения:


В качестве способа общения с БД, я традиционно использую SQLYog
База принадлежала игровому хостингу и была настроена на доступ только с доверенных IP-адресов.
SQLYog может использовать HTTP-туннель для доступа к базе, для этого достаточно закинуть SQLyogTunnel.php на нужный ресурс и указать к нему путь.
Пришлось немного раскошелиться и купить на этом же хостинге сервер и страничку для AmxBans. На всё про всё- 200 рублей.

В базе данных AmxBans все пароли хранятся в виде MD5 хешей. Всего их там было около 50, при этом практически все были раскодированы с помощью сервиса по декодированию различных хешей так как состояли из 7-8 цифр без использования каких-либо буквенных символов.

Выставлением прав доступа прямым редактированием БД мало кто занимается, поэтому на веб-странице AmxBans можно залогиниться под администраторской учёткой и выставлять права через удобный веб-интерфейс.
Там было 3 администратора. Их пароли так же хранятся в виде MD5 хешей, но у одного был длинный и с виду надёжный пароль, но он состоял из часто встречаемых слов и года, у другого — дата рождения. Пароль третьего был расшифрован где-то через час.

Сообщать об этом администрации, я, разумеется, уже не буду, более того, когда я сообщил о уязвимости первый раз, мне было сказано, что из-за того, что я нашёл уязвимость и сообщил о ней администрации — «сам понимаешь доверие пропадает». (Ну да, действительно, надо было пользоваться и ни кому о ней не говорить :) )

 P.S

Вернуться   Комментарии (20)
Как Защитить Steam Id Игроков
Как Защитить Steam Id Игроков? Наверное каждый, кто держит Свой
Регистрация ника через Web
Система призвана реализовать полноценную идентификацию игроков.
AMXX Protect 1.0
AMXX Protect - это защита вашего выделенного сервера от различного
HLSW
Описание: HLSW - удобная программа для администрирования игровых
Amx Subnet Ban v2.0
Достали читеры с меняющимся IP? Новый чумовой бан

Комментарии к Взлом сервера Counter Strike 1.6



Публикаций: 5
Комментов: 246


0
Комментарий #1 | Добавлен: 22 октября 2013 20:27
1. Если через дпрото стоит генерация СтимИд каждому игроку, то изменить СтимИд реально, а вот подделать нет
З.Ы: Незнаю что за нубло будет выдавать все права + по стимИД
2. Обычно нормальные люди ставят БДщные плагины на свою БД от сайта.
Вуаля, вот мы и защитили свой сервер

         


Публикаций: 418
Комментов: 734


0
Комментарий #2 | Добавлен: 22 октября 2013 20:29
Цитата: De30Kcu
1. Если через дпрото стоит генерация СтимИд каждому игроку, то изменить СтимИд реально, а вот подделать нет
З.Ы: Незнаю что за нубло будет выдавать все права + по стимИД
2. Обычно нормальные люди ставят БДщные плагины на свою БД от сайта.
Вуаля, вот мы и защитили свой сервер


Статья для тех, кто только начинает работать с CS серверами





         


Публикаций: 5
Комментов: 246


0
Комментарий #3 | Добавлен: 22 октября 2013 20:30
Цитата: De30Kcu
1. Если через дпрото стоит генерация СтимИд каждому игроку, то изменить СтимИд реально, а вот подделать нет
З.Ы: Незнаю что за нубло будет выдавать все права + по стимИД
2. Обычно нормальные люди ставят БДщные плагины на свою БД от сайта.
Вуаля, вот мы и защитили свой сервер

Цитата: SniFFeR

Статья для тех, кто только начинает работать с CS серверами

+ способы защиты

         


Публикаций: 32
Комментов: 323


0
Комментарий #4 | Добавлен: 22 октября 2013 21:53
C хабра скомуниздил =)

         


Публикаций: 418
Комментов: 734


+1
Комментарий #5 | Добавлен: 22 октября 2013 22:13
Цитата: spixe
C хабра скомуниздил =)

Наткнулся на интересную статью на Habrahabr...

Так точно капитан, плывем дальше!





         


Публикаций: 4
Комментов: 108


0
Комментарий #6 | Добавлен: 22 октября 2013 22:18
Цитата: De30Kcu
1. Если через дпрото стоит генерация СтимИд каждому игроку, то изменить СтимИд реально, а вот подделать нет

Извини, что?

         


Публикаций: 10
Комментов: 209


0
Комментарий #7 | Добавлен: 23 октября 2013 04:46
Есть такая простая штука - ставить в параметре .ini только для чтения. Потом хоть загенерируйся, ничего не выйдет.




Переезжаю на свой сайт=)
         


Публикаций: 0
Комментов: 137


0
Комментарий #8 | Добавлен: 23 октября 2013 08:34
Цитата: Rejuvenation
Есть такая простая штука - ставить в параметре .ini только для чтения. Потом хоть загенерируйся, ничего не выйдет.

Ещё один нуб который совершенно не понимает о чём речь.
Тёма +1.

         


Публикаций: 0
Комментов: 10


0
Комментарий #9 | Добавлен: 23 октября 2013 09:16
eeemmm... backdoor?

         


Публикаций: 10
Комментов: 209


0
Комментарий #10 | Добавлен: 23 октября 2013 13:54
Цитата: Freedo.m
Цитата: Rejuvenation
Есть такая простая штука - ставить в параметре .ini только для чтения. Потом хоть загенерируйся, ничего не выйдет.

Ещё один нуб который совершенно не понимает о чём речь.
Тёма +1.

Идиот...
Для того и ставят параметр чтения в свойстве серверных файлов, чтобы такие мегахацкеры не пёрли rcon_
В случае с mysql вообще абсурд - нормальный администратор его ставить не будет, ибо нахрен не нужно знать, кто забанен, а кто нет. Бан - перманент, без разбана.
Про генерацию SteamID админа - лапшу на уши вешайте другим...
Можно, но не таким способом.




Переезжаю на свой сайт=)
         


Публикаций: 4
Комментов: 108


0
Комментарий #11 | Добавлен: 23 октября 2013 14:39
Цитата: Rejuvenation
Цитата: Freedo.m
Цитата: Rejuvenation
Есть такая простая штука - ставить в параметре .ini только для чтения. Потом хоть загенерируйся, ничего не выйдет.

Ещё один нуб который совершенно не понимает о чём речь.
Тёма +1.

Про генерацию SteamID админа - лапшу на уши вешайте другим...
Можно, но не таким способом.

Какую лапшу? Давай конкретней.
P.S. на RevEmu можно сгенерировать конкретный SteamID, а не только рандомный.

         


Публикаций: 10
Комментов: 209


0
Комментарий #12 | Добавлен: 23 октября 2013 15:01
Цитата: PRoSToTeMa
P.S. на RevEmu можно сгенерировать конкретный SteamID, а не только рандомный.


P.S. А у нас вообще принято выдавать права только по IP.
Го генерировать IP адрес^_^
Решение этого случая мне намного интереснее.




Переезжаю на свой сайт=)
         


Публикаций: 4
Комментов: 108


0
Комментарий #13 | Добавлен: 23 октября 2013 15:03
Цитата: Rejuvenation
Цитата: PRoSToTeMa
P.S. на RevEmu можно сгенерировать конкретный SteamID, а не только рандомный.


P.S. А у нас вообще принято выдавать права только по IP.
Го генерировать IP адрес^_^
Решение этого случая мне намного интереснее.

Причём тут IP?!

         


Публикаций: 10
Комментов: 209


0
Комментарий #14 | Добавлен: 23 октября 2013 15:09
Цитата: PRoSToTeMa
Цитата: Rejuvenation
Цитата: PRoSToTeMa
P.S. на RevEmu можно сгенерировать конкретный SteamID, а не только рандомный.


P.S. А у нас вообще принято выдавать права только по IP.
Го генерировать IP адрес^_^
Решение этого случая мне намного интереснее.

Причём тут IP?!


Ну а как ты взломаешь таким образом сервер, если в старых ревизиях нет SteamID?
Например с 19-29 патча.




Переезжаю на свой сайт=)
         


Публикаций: 4
Комментов: 108


0
Комментарий #15 | Добавлен: 23 октября 2013 15:13
Ты ушёл от темы, мы обсуждали чисто генерацию SteamID.
Дезокси сказал, что подделать SteamID нельзя, я опроверг его слова.

         


Публикаций: 10
Комментов: 209


-1
Комментарий #16 | Добавлен: 23 октября 2013 15:20
Цитата: PRoSToTeMa
Ты ушёл от темы, мы обсуждали чисто генерацию SteamID.
Дезокси сказал, что подделать SteamID нельзя, я опроверг его слова.


Я не ушёл от темы, я написал, что это чистый бред по взлому.

Админки раздаются по IP - кто с динамическим, курят, либо получают по нику с паролем.

SteamID - на старых nonsteam клиентах и серверах вообще такого нет.




Переезжаю на свой сайт=)
         


Публикаций: 4
Комментов: 108


0
Комментарий #17 | Добавлен: 23 октября 2013 15:21
Цитата: Rejuvenation
Админки раздаются по IP - кто с динамическим, курят, либо получают по нику с паролем.

setinfo украсть можно :D

         


Публикаций: 0
Комментов: 137


0
Комментарий #18 | Добавлен: 24 октября 2013 02:22
Rejuvenation
Какая хрупкая натура, запилил мне минус за то что я указал на факты.

         


Публикаций: 10
Комментов: 209


0
Комментарий #19 | Добавлен: 24 октября 2013 08:35
Цитата: Freedo.m
Rejuvenation
Какая хрупкая натура, запилил мне минус за то что я указал на факты.

Яйцо лезет учить курицу.
Какие факты придурок? То что SteamID нет на nonSteam серверах? Или все сервера нынче на RevEmu со Steam серверами? Ты же даже калькулятор от системника не отличишь, а ещё лезешь в тему взлома. Давай дасвиданья!




Переезжаю на свой сайт=)
         


Публикаций: 0
Комментов: 2


0
Комментарий #20 | Добавлен: 19 февраля 2014 10:19
А у меня защитка стоит на сервере лагеров в на кидает))) этот метод там не катит

         

Информация


Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.