Сразу после того как стало известно о возможности заполучить root-a без пароля, мне стало интересно, можно ли сделать это удалённо.
После долгих экспериментов получился следующий маловероятный, но все же осуществимый сценарий. Сначала опишу, как его воспроизвести, а далее, почему важен каждый из пунктов.
Обстоятельства должны сложиться таким образом, что:
- Жертва использует уязвимую версию 10.13.1
- У жертвы включен Screen Sharing.
- Жертва подключена проводом к сети (с выходом в Интернет или нет — не важно).
- Жертва прочитала в интернете о существовании уязвимости, попробовала на своем Mac-е и не предприняла никаких действий для ликвидации.
- Атакующий должен знать ip адрес жертвы или же найти её в списке устройств в сети.
Атака выглядит следующим образом:
- Атакующий подключается по VNC (Finder -> Cmd+K -> vnc://жертва -> root без пароля)
- Атакующий на Login Screen жертвы выбирает Other…
- Атакующий вводит root без пароля.
- Готово.
Теперь разберем, почему все так сложно.
- Тут очевидно.
- Screen sharing открывает доступ по vnc. По умолчанию он выключен, однако вероятность того, что пользователь когда-то его использовал и оставил включенным все же есть.
- Подключение по проводу важно. По Wifi VNC соединение оборвётся в тот момент, когда root пользователь только начинает логиниться. Видимо, это связано с тем, что у root-а нет доступа к keychain обычного админа. Уже работающее Wifi подключение root зачем-то обрывает, а переподключиться не может. По проводу соединение не обрывается.
- Самое маловероятное. Нужно, чтобы на компьютере жертвы был доступен логин для root-a. И без пароля. Этого эффекта, на данный момент можно добиться единственным известным мне способом — заэксплуатировать ту самую, оригинальную уязвимость. Нужно, чтобы жертва хотя бы раз открыла тот самый «замочек» root-ом с пустым паролем.
- Mac атакующего сам найдет жертву со включенным Screen Sharing в своей подсети. Однако, обычные способы обнаружения открытого vnc порта так же подойдут. nmap вам впомощь.
Во время атаки root с пустым паролем по сути работает дважды. Первый раз, когда vnc соединение только устанавливается. Второй раз на Login Screen жертвы.
Напоследок:
- Жертва видит индикатор, что Screen Sharing активен, и может в любой момент отключить атакующего. Хотя вряд ли ей это поможет.
- Если попытать провернуть атаку через wifi, на Mac-е жертвы останется залогиненый root. Его нужно будет разлогинить для последующей перезагрузки или выключения.
- У залогиненого рута «замочек» сразу открыт и никак не хочет закрываться.
- При установлении VNC подключения есть опция «Попросить экран текущего пользователя». Пользователь может вас пустить за свой экран. Что с этим делать — думайте сами.
Автор: konovalov_nik