# Распределённый мейнфрейм. Ретрофутуризм. \#reverse \#superReverse \#NSK_CTF_INSIDE_2019_v2 ## Прокат электроколясок от Tesla (handicarsharing) [для непосвящённых](https://www.google.com/search?&q=south%20park%20handicar) Коляски между собой образуют почти распределённую сеть. Управление одним отдельным узлом с помощью команд аля-BASIC подобными образца 1964г... Что-то вроде ```BASIC LET A = 10 LET B = 40 FOR I = 1 TO 5 LET B = A + B PRINT "HELLO, A+B=",B NEXT I ``` Добавим к этому разграничение доступа, получим суперпользователя. Права представим следующим образом: | Id | desc | | --- | ------------------ | | 0 | global super admin | | 1 | local admin | | - | mechanic | | 2 | user | (Возможны вариации) Система распределённая, надо это задействовать... Значит несколько соседей должны подтвердить, что ты global admin. Итого получаем нужные уязвимости: 1. Возможность выбрать соседей. 2. Возможность поднять себя до local admin. 3. Возможность ответить соседу, что пользователь в другой группе. 4. CMD injection, но только у global admin. (to WIN) Пока система не подключена как минимум к 3м соседям - она считается неактивированной и не работает. Максимальное количество соседей - 8. Возможность включить сервисный режим выставлением определённых параметров. Как пример: выключить двигатель, поставить ручник, нажать на 25-40% газ, 50-80% тормоз и подержать 5-7 секунд. Сервисный режим временно поднимает привелегии до mechanic. Механику доступно чтение параметров коляски. Их запрос происходит через командный интерфейс. Командный интерфейс механика связывается с основной прошивкой посредством tcp соединения, но основная прошивка содержит misc config в том, что слушает все соединения, таким образом, включив mechanic mode можно стать local admin. Кроме того, есть возможность выполнять несколько команд в одной строке. Проверка на read-only команд происходит только в первой, что позволяет во второй и последующих командах выполнять запросы как local_admin. Каждая коляска является элементов мэйнфрейма. Каждый имеет свой идентификатор. При создании нового пользователя, к его идентификатору добавляется идентификатор автомобиля. Таким образом можно опознать уникального пользователя и переносить параметры м/у автомобилями. Cоседи обмениваются информацией для системы антифрода, для противодействия угону, на случай аварии и всего такого. (пробег, бэкап, геопозиция, информация о пользователях) local_admin может модифицировать часть БД, где записана информация о соседях. Таким образом можно на 3х соседях указать, что ты global admin. У global admin доступна для выполнения команда SHELL.