Изучение системы r_keeper

return_a

Пассажир
Сообщения
92
Реакции
573
banner2.png

r_keeper - это программно-аппаратный комплекс для автоматизации кафе и ресторанов.
:Popcorn11:
Цель данной статьи - найти и показать все возможные варианты атак (если данные действия можно так назвать) на рестораны использующие систему r_keeper (далее rk) с целью получения бесплатной еды.

ВНИМАНИЕ! Данная статья не справочник по "хакингу" вашего любимого фастфуда, а является лишь моим изучением данной системы с целью выявления в ней уязвимых мест и проведением N-го количества попыток получения заветных бесплатных бургеров.

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

По поводу источников информации - часть была взята из общения с менеджерами ресторанов, часть от общения с самими сотрудниками UCS (разработчик rk), часть из мануалов и конечно-же из мировой паутины.




Для начала расскажу основные интересные моменты данной системы, которые могут быть Вам интересны и полезны (вдруг?). Данный раздел будет пополняться по мере выявления плюшек.
У всех сотрудников (которые если верить rk разделены на несколько групп - кассир, официант, менеджер) имеется своя магнитная карта rk, с помощью которой он авторизуется в системе.
1620685102200.png
  • Запись производится на второй дорожке;
  • У всех карт rk префикс (начало) записи является символом ";" (точка с запятой);
  • Окончанием же записи является "Знак ENTER";
    Карты персонала (менеджер, кассир, официант и т.д.):

    Содержат между точкой с запятой и знаком ENTER - ЛЮБЫЕ 4 ДЕСЯТИЧНЫЕ ЦИФРЫ.
    В итоге запись, которую необходимо занести на вторую дорожку магнитной карты rk, будет выглядеть так (прошиваемый код):
    ;0024«ЗНАК ENTER» - запись для карточки под номером 24

    ;0567«ЗНАК ENTER» - запись для карточки под номером 567
    Персональные дебетовые карты (CARDSERV):
    Прошиваемый код:
    ;778=XXXXXXXX=YYYYY«ENTER»
    «778» - ID, что эта карта является персональной дисконтной (дебетовой, платежной, клубной) картой.
    ЗНАК «=» - исполняет роль некоего разделителя.
    «XXXXXXXX» - восьмизначный код ресторана из SYSTEM.DB, находящимся на кассовом сервере в каталоге DATABASE. На карточку заносится без точки (в SYSTEM.DB XXXX.XXXX ). Открыть SYSTEM.DB с помощью SETCODAT.EXE, это шестой пункт.
    «YYYYY» - номер карты, который затем заносится в PCARDS.EXE. Пятизначное число.
Я замечал, что номер часто пишут на самой карте. Это можно как-то использовать.


1. Изучение rk7 и формирование различных пакетов.
Для начала, что бы изучить как именно происходит процедура покупки того или иного товара в кафе я создал несколько виртуальных машин, каждая из которых играли свою роль:
  • Машина серверов (кассовый, сервер печати, сервер справочников и т.д.). Всё в соотвтетсвии с инструкцией об запуске rk7 из дистрибутива (не из инсталлера, так как мне попался дистрибутив прямо с ресторана).
  • Машина имитирующая кассу.​
  • Машина имитирующая терминал самообслуживания.​
  • Машина Фискального принтера и имитатора POS-терминала iPP320 (но вообще есть дрова для многих терминалов).
    1620688070400.png
Все машины были связанны в локальную сеть, которая была отрезана от WWW, так как я не знал полезет ли в сеть комплекс и что будет передавать. С настройкой и запуском пришлось повозиться, но мне таки удалось все сделать так, что бы у меня всё запустилось в той же конфигурации, что и в ресторане. По сути передо мной стояла задача сделать клон всей сети ресторана, чего я и добивался.

После всех манипуляций (запуска и инициализации серверов) я наконец таки смог запустить святую-святых - Станцию Менеджера (далее СтМ). СтМ - головное ПО в управлении рестораном. В нём можно как почитать все логи (причём в любой конфигурации логирования, ДАЖЕ ЕСЛИ В CONFIG.INI СТОИТ ДРУГОЕ ЗНАЧЕНИЕ!!! учтите это!), так и наблюдать все что происходит в данный момент в ресторане, наблюдать VDU дисплей, редактировать меню, КУПОНЫ, цены и все все все остальное. Исходя из этого, можно предположить что для начала надо изучить как же работает данное приложение. Я сразу запустил Wareshark, и приготовившись увидеть там ужас стал ждать. Огромнейшее количество TCP пакетов летало между софтинами. Я не стал пока изучать пакеты и сопоставлять их с какими-то конкретными данными. Для начала я решил запустить все остальные сервера, которые были необходимы для работы - сервер печати, который непосредственно и занимается печатью нашего с вами "фантика" и сервер отчётов, который формирует отчёты (как я пока понимаю это по типу EventLogTable). Мне повезло и некоторые рестораны не закрывают доступ к серверу отчётов по непонятной мне причине и это дало мне возможность увидеть как он работает наяву. Но отложим пока сервер отчётов и вернемся к СтМ. В первую очередь советую ее сразу же русифицировать, так как имена переменных в описании каждого object все равно будут на инглише, а во вторых вся документация на русском.
При первом запуске СтМ надо будет ввести логин и пароль. Я долго искал их, пока не наткнулся
login: Администратор
pass: =
1620689362500.png
Я использую самую последнюю версию кипера, поэтому у меня обновления не было. Хотя как я позже выяснил многие заведения используют разные версии модулей/серверов. В общем то они совместимы (разница в UI). После авторизации мы попадаем в главный экран СтМ rk7.
1620691289100.png
Это заработало и ладненько.

Далее я решил набросать простенький интерфейс программы для работы с всем этим добром.
В первую очередь я сделал форму журнала отладки, куда будут посылаться все внутренние сообщения ()режим полного логирования). Вы конечно меня сейчас возможно закидаете тухлыми яйцами, но писал я всё на Borland C++ Builder.
Итак я сделал процедуру для формирования строки журнала. В качестве аргумента она принимает AnsiString и выводит её сразу в ListBox на форме журнала.
C++:
void JPS(int Inst,AnsiString Message){

AnsiString DirectSign;
if (Inst==0) DirectSign = "---"; else  // Сообщение без направления
if (Inst==1) DirectSign = "-->"; else  // Сообщение исходящие
if (Inst==2) DirectSign = "<--"; else  // Сообщение входящее
if (Inst==3) DirectSign = "<->";       // Сообщение двунаправленное (в обе стороны)

EventLogPage->LogListBox->Items->Add(+"["+Now().FormatString("hh.mm.ss.zzz")+"]  "+
DirectSign+" "+
Message);
EventLogPage->LogListBox->Perform(WM_VSCROLL,
                SB_LINEDOWN,0);
}

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

ЧТИВО :read:
Комплект мануалов по работе с rk7 -
 
Последнее редактирование:
Здравствуйте @return_a
Я работаю инженером в UCS. Один мой знакомый дал мне ссылку на эту статью и я хочу сказать что довольно рад, что вы делаете такие успехи в столь юном возрасте. Наш отдел СБ так или иначе найдёт данную статью, что очень жаль. Я конечно попробую этого не допустить.
Если у вас будут вопросы, пишите мне в лс.
Удачи!
Здравствуйте @UCS
Я клал на ваш отдел Службы Безопасности. По сути вы то и не виноваты в том, что я ломаю вас.
Виноват БургерКинг что делает цены такими большими, детский дом, что дне дает достаточно еды что бы я наелся и карманных денег, что бы я купил себе булочки и т.п. Покупать паштет и хлеб каждый день я не могу уже у меня изжога лютая из за этого. хочу салаты, супы, горячее и т.д.
К примеру сегодня на перемене я бегал на ресторанную помойку что бы пожрать и скажу вам вкусно так сегодня там покушал....видили бы вы глаза учинеков, которые со своими айфонами жрали чипсы на перемене))))))
Поэтому дойдя до пика я вынужден был подумать о воровстве еды.
Но так получилось, что БК оказались лютейшими лохами, просто адскими идиотами, которые неспособны были защитить свою сеть. Использовать ваше ПО они не умеют должным образом, если смотреть на их орагнизацию безопасности локальной сети.
Поэтому я выбрал обобрать БК. Вы уж извеняйте, но если вы хотите что бы я этим не занимался, то кормите меня каждый день вкусно и сытно. К примеру я хочу жрать каждый день в "столовой номер 1" по большой тарелке супа, пюре с котлетой. Вот чего я хочу. Это моё требование. Я непереговороспособен и давлю всё что мне мешает идти.
С вами я могу попредержать коней. Если готовы будете обеспечить мне сытное питание, то я буду рад.
Я сделаю себе BTC кошель, будете мне туда башлять каждый месяц 5-6К деревянных. Согласны? Нет? Ну тогда сорян....
Они сами виноваты, их никто не просил пускать меня в менеджерскую и давать доступ к пк, что бы я всю папку rk7 копипастнул себе на флешку. И я вам больше скажу они не одни такие. Много очень много ресторанов, куда меня пускают и где я могу безпрепядственно подойти к кассовому аппарату и сделать своё тёмное дело. Это СИ ребята. Даже к вам я могу втереться в доверие и в никогда этого не поймёте. Вы это поймёте, только тогда, когда ваш бугалтер выйдет из окна из за ооооогромнейшего несоответствия выручки и фактически бабла.
Вы мне ничего не можете сделать вообще. Вообще.
1 - Мне нет 18
2 - У меня всё неплохо с безопасностью и в сети нигде нет моих настоящих данных, так что забудьте про деанон. Деанон сделаю я вам если захочу.

Короче в завершение скажу.
Я все равно сделаю так что получу свои бургеры. Если же у меня эито не получится я не остановлюсь на этом и найду другу равнозначную цель себе.
r_keeper я сломаю из принципа. Просто потому что могу. Потому что хочу.
А вы хоть лопните от злости.
Nothing can stop me now!
 
Здравствуйте @UCS
Я клал на ваш отдел Службы Безопасности. По сути вы то и не виноваты в том, что я ломаю вас.
Виноват БургерКинг что делает цены такими большими, детский дом, что дне дает достаточно еды что бы я наелся и карманных денег, что бы я купил себе булочки и т.п. Покупать паштет и хлеб каждый день я не могу уже у меня изжога лютая из за этого. хочу салаты, супы, горячее и т.д.
К примеру сегодня на перемене я бегал на ресторанную помойку что бы пожрать и скажу вам вкусно так сегодня там покушал....видили бы вы глаза учинеков, которые со своими айфонами жрали чипсы на перемене))))))
Поэтому дойдя до пика я вынужден был подумать о воровстве еды.
Но так получилось, что БК оказались лютейшими лохами, просто адскими идиотами, которые неспособны были защитить свою сеть. Использовать ваше ПО они не умеют должным образом, если смотреть на их орагнизацию безопасности локальной сети.
Поэтому я выбрал обобрать БК. Вы уж извеняйте, но если вы хотите что бы я этим не занимался, то кормите меня каждый день вкусно и сытно. К примеру я хочу жрать каждый день в "столовой номер 1" по большой тарелке супа, пюре с котлетой. Вот чего я хочу. Это моё требование. Я непереговороспособен и давлю всё что мне мешает идти.
С вами я могу попредержать коней. Если готовы будете обеспечить мне сытное питание, то я буду рад.
Я сделаю себе BTC кошель, будете мне туда башлять каждый месяц 5-6К деревянных. Согласны? Нет? Ну тогда сорян....
Они сами виноваты, их никто не просил пускать меня в менеджерскую и давать доступ к пк, что бы я всю папку rk7 копипастнул себе на флешку. И я вам больше скажу они не одни такие. Много очень много ресторанов, куда меня пускают и где я могу безпрепядственно подойти к кассовому аппарату и сделать своё тёмное дело. Это СИ ребята. Даже к вам я могу втереться в доверие и в никогда этого не поймёте. Вы это поймёте, только тогда, когда ваш бугалтер выйдет из окна из за ооооогромнейшего несоответствия выручки и фактически бабла.
Вы мне ничего не можете сделать вообще. Вообще.
1 - Мне нет 18
2 - У меня всё неплохо с безопасностью и в сети нигде нет моих настоящих данных, так что забудьте про деанон. Деанон сделаю я вам если захочу.

Короче в завершение скажу.
Я все равно сделаю так что получу свои бургеры. Если же у меня эито не получится я не остановлюсь на этом и найду другу равнозначную цель себе.
r_keeper я сломаю из принципа. Просто потому что могу. Потому что хочу.
А вы хоть лопните от злости.
Nothing can stop me now!
Снимаю шляпу)) :good:
 
Здравствуйте @UCS
Я клал на ваш отдел Службы Безопасности. По сути вы то и не виноваты в том, что я ломаю вас.
Виноват БургерКинг что делает цены такими большими, детский дом, что дне дает достаточно еды что бы я наелся и карманных денег, что бы я купил себе булочки и т.п. Покупать паштет и хлеб каждый день я не могу уже у меня изжога лютая из за этого. хочу салаты, супы, горячее и т.д.
К примеру сегодня на перемене я бегал на ресторанную помойку что бы пожрать и скажу вам вкусно так сегодня там покушал....видили бы вы глаза учинеков, которые со своими айфонами жрали чипсы на перемене))))))
Поэтому дойдя до пика я вынужден был подумать о воровстве еды.
Но так получилось, что БК оказались лютейшими лохами, просто адскими идиотами, которые неспособны были защитить свою сеть. Использовать ваше ПО они не умеют должным образом, если смотреть на их орагнизацию безопасности локальной сети.
Поэтому я выбрал обобрать БК. Вы уж извеняйте, но если вы хотите что бы я этим не занимался, то кормите меня каждый день вкусно и сытно. К примеру я хочу жрать каждый день в "столовой номер 1" по большой тарелке супа, пюре с котлетой. Вот чего я хочу. Это моё требование. Я непереговороспособен и давлю всё что мне мешает идти.
С вами я могу попредержать коней. Если готовы будете обеспечить мне сытное питание, то я буду рад.
Я сделаю себе BTC кошель, будете мне туда башлять каждый месяц 5-6К деревянных. Согласны? Нет? Ну тогда сорян....
Они сами виноваты, их никто не просил пускать меня в менеджерскую и давать доступ к пк, что бы я всю папку rk7 копипастнул себе на флешку. И я вам больше скажу они не одни такие. Много очень много ресторанов, куда меня пускают и где я могу безпрепядственно подойти к кассовому аппарату и сделать своё тёмное дело. Это СИ ребята. Даже к вам я могу втереться в доверие и в никогда этого не поймёте. Вы это поймёте, только тогда, когда ваш бугалтер выйдет из окна из за ооооогромнейшего несоответствия выручки и фактически бабла.
Вы мне ничего не можете сделать вообще. Вообще.
1 - Мне нет 18
2 - У меня всё неплохо с безопасностью и в сети нигде нет моих настоящих данных, так что забудьте про деанон. Деанон сделаю я вам если захочу.

Короче в завершение скажу.
Я все равно сделаю так что получу свои бургеры. Если же у меня эито не получится я не остановлюсь на этом и найду другу равнозначную цель себе.
r_keeper я сломаю из принципа. Просто потому что могу. Потому что хочу.
А вы хоть лопните от злости.
Nothing can stop me now!
Бро, если ты и правда так молод, как пишешь, ты просто гений!
Читая твои сообщения, невозможно поверить, что ты еще школьник, а не взрослый дядя))
Желаю тебе, чтобы твой интерес никогда не угасал, а всегда двигал тебя вперед))
 
Браво!Не по годам умен!Но главное конечный результат,это стать богатым!Дерзай малой,у тебя все получиться!Удачи!
Мне кажется, стать богатым в данном случаее - скорее побочный эффект) Такой человек должен ставить себе более возвышенные цели, а деньги - это слишком просто)
 
Каков профит?
 

Похожие темы

Форумный пост о мессенджере SimpleX SimpleX — почему я перешёл и почему вы всё ещё сидите в Telegram Ладно, буду говорить прямо. Я три года убеждал людей переходить на Signal, ещё год уговаривал попробовать Briar. Потом наткнулся на SimpleX и понял, что все предыдущие разговоры были про...
Ответы
5
Просмотры
172
В дарк-среде годами спорят, что лучше: старый, как мир, Jabber (XMPP) или модный и навороченный Matrix? Одни топят за «дедовскую надёжность», другие — за современные фичи. Сегодня мы без фанатизма разберём оба протокола, чтобы ты сам решил, какой инструмент подходит под твою задачу. Что общего...
Ответы
1
Просмотры
591
Привет, коллеги. CyberSec RuTOR на связи. 5 лет назад я арендовал небольшой VPS для своего первого проекта. Всё работало, клиенты были довольны. А потом в один «прекрасный» день сайт просто лёг. Страницы грузились по минуте, а потом и вовсе перестали открываться. Я зашёл в терминал, набрал top...
Ответы
1
Просмотры
380
Мне 30 лет. Имею опыт работы куратором, аналитиком и корпоративным трейдером. В мои обязанности входило ведение курьеров, обучение сотрудников, закупка материалов для работы, расчёт заработной платы и организация работы магазина. Также выполнял составление отчётов, формирование документов и...
Ответы
1
Просмотры
129
Доброго времени суток, Уважаемые продавцы. Хочу предложить свою кандидатуру на вакансию оператора. Не буду много глаголить, скажу всё по факту и без воды. Имею более трёх лет опыта работы оператором / куратором на площадках Kraken, Mega, BlackSprut, iClad / Лига. Обработка входящих сообщений...
Ответы
2
Просмотры
89
Назад
Сверху Снизу