[Из песочницы] Взламывая ASOS
Привет, Хабр! Представляю вашему вниманию перевод статьи «Breaking Into ASOS» автора Michal Necasek.
Люблю старое железо, и мне хочется поделиться с вами любопытной историей изучения однго жёсткого диска из музея.
Музей OS/2 недавно приобрел жесткий диск Quantum Bigfoot TS в отличном состоянии. Диски Bigfoot, если кто не помнит, были довольно странными 5,25-дюймовыми носителями информации, популярными в 1990-х годах. Они дешево стоили, были довольно медленными и большими. Но по-своему необычными.
На диске была наклейка, из которой становилось понятно, что устройство когда-то находилось внутри машины Compaq. После подключения носителя к системе Linux выяснилось, что диск не пустой. Это уже было интересно. Однако далее выяснилось, что содержимое диска было совсем не характерно для Linux.
После подключения образа диска к виртуальной машине выяснилось, что диск не просто является загрузочным, он загружает какую-то, мягко говоря, причудливую вещь, которую когда-то придумали Compaq и SCO. Вот как выглядит экран при загрузке:
Какой-то сервер Microsoft/SCO/Compaq?
По большому счёту, там не на что смотреть. Вообще не на что. Но после переключения виртуального терминала (комбинацией Alt+F2, и у кого же Linux взял эту идею?) оказалось, что перед нам любопытная смесь готовой ОС с некоторыми пользовательскими настройками:
Compaq ASOS, настроенный SCO OpenServer
Как видно, это SCO OpenServer Release 5, но с некоторыми модификациями Compaq. Если хорошенько поискать в сети, то можно найти некоторые подробности. Оказывается, жесткий диск принадлежал Compaq Prosignia NeoServer, необычному сетевому серверу конца 1990-х годов. Это был маломощный и дешёвый компьютер Celeron с веб-сервером, файловым сервером, сервером печати и т.д. По какой-то причине Compaq решила использовать его. По правде сказать, NeoServer немного походил на шредер или мусорное ведро. Однако мы видим надпись »1999 год» и «network», так что работать все должно было как надо. Значительная часть функциональности NeoServer опиралась на продукт VisionFS, который был примерно похож на Samba.
Линейка NeoServer похоже, оказалась не слишком успешной, поэтому найти документацию непросто. Существует куча мёртвых ссылок. Даже на archive.org нет полного FTP-архива Compaq. Там нет всего /pub/supportinformation/techpubs/user_reference_guides
поддерева.
Кроме того, если верить одному старому сообщению на форуме, NeoServer был заблокирован, так что на самом деле невозможно войти в систему под root через консоль. Итак, как же пробиться на OpenServer?
ASOS настроен с полу-недокументированным параметром загрузки QUIET = YES. Это означает, что нет возможности прервать процесс загрузки. Мне не удалось найти способ получить какую-либо однопользовательскую загрузку на OpenServer, настроенном таким образом.
Очевидной альтернативой было бы подключение диска (образа) к Linux…, но это бесполезно, потому что Linux не поддерживает файловую систему OpenServer (HTFS). Единственная оставшаяся возможность — это использование установочного диска OpenServer.
Этот вариант не даёт очевидного способа получить доступ к командной строке, но на самом деле у нас есть два пути. Один из них — это нажатие клавиши F8 (не задокументировано) после загрузки установщика. Это вызывает экран отладки с опцией «Shell escape»:
Магия F8 призывает к жизни функцию отладки установщика
Другой вариант — добавить «инструменты» в меню загрузки установщика OpenServer, например:
Ещё немного загрузочной магии OpenServer
После загрузки установщик вместо установки ОС переходит в это меню:
Меню инструментов в OpenServer
Итак, мы добрались до командной строки и можем смонтировать файловую систему жесткого диска с помощью mount/mnt/dev/hd0root
. На этом этапе должна появиться возможность запуска команды passwd
, с помощью которой сбрасывается/удаляется пароль root. Увы, не всё так просто. Да, это должно так работать, и есть инструкции по сбросу пароля root. Однако на ASOS Compaq это не работает.
Проблема в том, что /etc/passwd
— это просто символическая ссылка на /rwroot/etc/passwd
. А я не знаю, где это находится. Концепция «rwroot» оказалась весьма своеобразной для ASOS, поскольку никаких ссылок по этой теме я не смог найти.
Заглянем внутрь корневой файловой системы, в каталог /idev
. Там есть /idev/rwroot
с младшим и старшими номерами от 1 до 43. Если попробовать mknod /dev/rwroot b 1 43
, а затем mkdir /rwroot
и в конце mount /dev/rwroot /rwroot
, то мы добьёмся нужного результата. И откроем, наконец, настоящий /etc/passwd
файл в vi:
Вот он, настоящий файл паролей ASOS
Конечно, настоящие пароли находятся в shadow-файле, но изменить то, что нужно нам, совсем не сложно. Одна перезагрузка … и дело в шляпе! Мы вошли:
Командная строка ASOS
Эта информация могла бы даже помочь кому-то 20 лет назад. А сейчас просто способ унять исследовательский зуд.
Спасибо за внимание. Источник.