Как не остаться голодным или безлимитный проход в столовую

в 13:00, , рубрики: intercepter-ng, взлом, еда, информационная безопасность, сетевая безопасность, столовая

Как не остаться голодным или безлимитный проход в столовую
Всем привет.

Хочу поделиться одной ситуационной проблемой, которая возникла в ходе моего пребывания на проходящем в Калининградской области международном форуме и ее решением в стиле голодного IT'шника.

Пост будет о том, как удалось обойти лимит на одну порцию, установленную в столовой.

Предисловие

Совсем недавно я в очередной раз побывал в качестве участника на международный форуме, ежегодно проходящий у нас в Калининградской области, на берегу Балтийского моря.

Основная задача нашего потока на DevCamp была за время пребывания разработать и презентовать концепцию какого-либо IT-проекта.
Однако, помимо работы над основным проектом, появилось желание немного отвлечься в сторону…

Проблема: одной порции явно мало

В этом году на территории столовой форума было нововведение: пройти покушать можно было только 1 раз (один раз на завтрак, один на обед и один на ужин).
Контроль осуществлялся на входе с помощью специально обученного человека и МК со считывателем, к которому нужно прикладывать персональный бейджик с rfid меткой.

Если загорался зеленый светодиод — пропускали покушать, если красный — нет.

Как не остаться голодным или безлимитный проход в столовую
Рис.1 (Микроконтроллер ответственный за пропуск)

Мне захотелось повлиять на данную ситуацию, и у меня это получилось.

Анализ алгоритма принятия решения пропуска к еде

Первое, на что я обратил внимание, это патчкорд, который выходил из МК. Я немного прогулялся по пути его следования.
Это привело меня в дальний угол столовой, где висел роутер.

Как не остаться голодным или безлимитный проход в столовую
Рис.2 (Роутер в углу шатра столовой)

Когда время кормежки кончилась, и столовая освободилась от людей, я подключился к свободному порту в надежде достать пароль от WiFi сети, чтобы продолжить свои исследования, не привлекая лишнего внимания — подальше от столовой. Оказалось, что роутер перепрошит в DD-WRT и стандартные пароли в его админку поменяны, по этой причине мне пришлось продолжить, сидя в столовой.

Сканирование сети

DHCP на роутере был предположительно выключен, либо стояли фильтры, т.к моему ноутбуку адрес не выдавался. Как оказалось, адресация устройств была стандартная.

Как не остаться голодным или безлимитный проход в столовую
рис.3 (Результат сканирования сети)

Не сложно было догадаться, какие адреса могут иметь МК (их два, один с левого и один с правого входа в столовую).
Кандидатов было три: 192.168.1.130,192.168.1.120 и 192.168.1.112.

Анализ трафика

Используя технологию ARP-Poisoning, я замитмил трафик между шлюзом и предполагаемым МК через себя. И очень быстро смог поймать нужный пакет.

Как не остаться голодным или безлимитный проход в столовую
рис.4 (Оригинальный диалог между МК и сервером)

Как оказалось, за принятие решения ответственен сервер erp.labadabadoo.ru. МК шлет HEAD запрос в формате /skud/meal/?id={идентификатор rfid метки}. Сервер в ответ шлет либо код «200» и на МК загорается зеленый светодиод, либо «403» — тогда загорается красный.

Влияем на ситуацию

Для этого был установлен Apache и применена атака типа DNS-Spoofing. Теперь хостнейм erp.labadabadoo.ru резолвился как 192.168.1.99 (мой ноутбук) и мой локальный Apache всегда отвечал «200».

Как не остаться голодным или безлимитный проход в столовую
рис.5 (DNS-Spoofing в действии)

Итоговый результат можно увидеть ниже. Прошу прощения за горизонтальное видео.

Дисклеймер: ни один борщ в ходе исследований не пострадал

Хочу сказать спасибо Intercepter за инструмент, который не позволит остаться айтишнику голодным.

В ходе исследования лишняя еда не была съедена, зато морально я был сыт.

Автор: AndreyKu

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js