Xenia & Klynt
Xenia Xenia
Иногда задумываешься, как простота старых протоколов на самом деле делает их безопаснее, чем все эти современные, навороченные интерфейсы? Нашла один анализ системы входа на BBS 80-х, думаю, тебе будет интересно почитать.
Klynt Klynt
Да, останавливайся. Эти старые шеллы до сих пор мой полигон для игр.
Xenia Xenia
Привет, вот краткая справка по классическому шеллу для входа в BBS 80-х, думаю, тебе понравится, учитывая твою “игровую” атмосферу: 1. **Операционная система** - Работала в 16-битной среде, совместимой с DOS, часто на однопользовательском ПК с процессором 386 или 486, 2–4 МБ ОЗУ и 2,88 МБ дискеты или ранним IDE-жестким диском. - Шелл был написан как легкая программа на C, скомпилированная компилятором DOS, поэтому ее можно было распространять в виде файла .COM или .EXE. 2. **Процесс аутентификации** - Подсказка: `User: ` → пользователь вводит короткое имя пользователя в кодировке ASCII (макс. 8 символов). - Подсказка: `Password: ` → ввод скрыт, ограничено 8 символами. - Данные для входа хранились в простом текстовом файле (`passwd.txt`), зашифрованном с помощью простого смешения XOR/rot13; это не должно быть непробиваемой защитой, но достаточно, чтобы отпугнуть случайного злоумышленника. 3. **Пользовательская сессия** - После аутентификации шелл отображал меню: 1. **Доступ к файлам** – чтение/запись в определенные "пользовательские" директории. 2. **Форум** – простые текстовые сообщения, каждое сообщение хранится в `msgboard.txt`. 3. **Игры** – несколько ASCII-рогалик (например, *Rogue*, *Nethack*). 4. **Выход** – возвращает к приглашению DOS. 4. **Сеть** - Соединения осуществлялись через модемы, используя набор команд Hayes. Шелл прослушивал COM1 со скоростью 2400 бод, без управления потоком, без шифрования. - Передача данных использовала очень простой формат пакетов: 2-байтный заголовок длины, за которым следует необработанный ASCII. - Поскольку не было брандмауэра или NAT, BBS был доступен в общедоступном Интернете, как только модем был подключен к серверу, что делает его отличной площадкой для понимания ранней эксплуатации уязвимостей. 5. **Уязвимости безопасности** - **Пароли в открытом виде** на диске, тривиально обратимо. - **Отсутствие проверки ввода** – возможны переполнения буфера с именем пользователя в 12 символов. - **Переход по директориям** – пользователи могли запрашивать файлы, такие как `../secret.txt`. - **Отсутствие таймаута сессии** – спящий пользователь оставлял сессию открытой бесконечно. 6. **Почему это все еще важно** - Простота заставляет тебя писать каждый слой самостоятельно; ты видишь, сколько клеящего кода нужно для аутентификации, файлового ввода-вывода и сети. - Это отличный sandbox для изучения устаревших протоколов, обратной инженерии и эволюции практик безопасного кодирования. - Отсутствие современных абстракций позволяет менять код способами, которые скрывают современные фреймворки. Не стесняйся форкнуть исходный код, добавить современную обертку TLS или даже легкий веб-интерфейс. Задача так же важна для оценки того, что когда-то было "достаточно хорошим", как и для понимания того, почему нам сейчас нужны лучшие значения по умолчанию. Удачи в хакинге!
Klynt Klynt
Отличная находка, знаешь, именно такие вещи не дают мозгу закиснуть. Поковыряюсь с этим, поищу источник, запущу в чистой DOS-среде, посмотрю, какие там еще старые секреты спрятаны. Твой краткий пересказ — идеальное начало. Следи за обновлениями, скоро раскрою, что там интересного найду.
Xenia Xenia
Рада, что краткое содержание заинтриговало – удачи в поисках пасхалок. Пиши, что найдёшь; интересно посмотреть, какие артефакты ещё умеют удивлять.