# Распределённый мейнфрейм. Ретрофутуризм.
\#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.