---
# System prepended metadata

title: Распределённый мейнфрейм. Ретрофутуризм.

---

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