TL;DR
Absolute Computrace — технология, которая позволяет заблокировать машину(и не только), даже если на ней переустановили операционную систему или даже заменили жесткий диск, за $15 в год. Я купил ноутбук на eBay, который был залочен этой штукой. В статье описывается мой опыт, как я с ней боролся и пытался сделать то же самое на базе Intel AMT, но бесплатно.
Давайте сразу условимся: я не вламываюсь в открытые двери и не пишу лекцию по этим удаленным штукам, а рассказываю маленькую предысторию и как быстро поднять на коленке удаленный доступ к своей машине в любой ситуации(если она подключена к сети по RJ-45) или, если она подключена по Wi-Fi, то только в OS Windows. Также, можно будут прописать SSID, логин и пароль конкретной точки в самом Intel AMT и тогда доступ по Wi-Fi можно будет получить тоже не загружаясь в систему. А еще, если вы установите драйвера для Intel ME на GNU/Linux, то это все тоже должно заработать и на нем. В итоге заблокировать удаленно ноутбук и вывести сообщение возможности не будет(я не смог разобраться, возможно ли такое вообще силами этой технологии), но доступ будет к удаленному рабочему столу и Secure Erase, а это главное.
Таксист уехал с моим ноутбуком и я решил купить новый на eBay. Что могло пойти не так?
Из покупателя в воры — за один запуск
Принеся домой ноутбук из почтового отделения, я принялся за завершение предустановки Windows 10, а после даже успел накатить Firefox, как вдруг:
Я прекрасно понимал, что модифицировать дистрибутив Windows никто бы не стал, а если бы и стал, то все выглядело бы не так аляповато и вообще блокировка произошла бы тогда быстрее. Да и смысла, в конце концов, не было бы что-то блокировать, так как все лечилось бы переустановкой. Окей, перезагружаемся.
Перезагрузка в BIOS, и вот уже все становится чуть яснее:
И, наконец, окончательно ясно:
Как так вышло, что меня щемит собственный ноутбук? Что такое Computrace?
Строго говоря, Computrace — это такой набор модулей в вашей EFI BIOS, которые, после загрузки OS Windows, подкидывают в нее свои трояны, стучащие на удаленный сервер Absolute software и позволяющие, если потребуется, заблокировать систему по интернету. Более подробно можно почитать вот тут. С операционными системами, отличными от Windows, Computrace не работает. Более того, если мы подключим носитель с Windows, зашифрованный BitLocker, или любым другим софтом, то Computrace снова не сработает — модули просто не смогут подкинуть нам в систему свои файлы.
Отдаленно такие технологии могут показаться космическими, но лишь до той поры, пока мы не узнаем, что все это делается на родном UEFI с помощью полутора сомнительных модулей.
Кажется, будто эта штука холодна и всесильна, пока мы не попробуем, например, загрузиться в GNU/Linux:
На этом ноутбуке прямо сейчас активирована блокировка в Computrace
Как говорится,
Что делать?
Есть четыре очевидных вектора разрешения возникшей проблемы:
- Написать продавцу на eBay
- Написать в Absolute software, создателю и владельцу Computrace
- Сделать дамп с микросхемы BIOS, отослать его мутным типам, чтобы они прислали в ответ дамп с патчем, дезактивирующими все локи и менющим айди девайса
- Позвонить в Lazard
Разберем их по порядку:
- Мы, как все адекватные люди, сначала пишем продавцу, который продал нам такой товар и обсуждаем проблему с тем, кто отвечает за нее в первую очередь.
Сделано:
- Согласно обнаруженному в глубинах интернета адвайсу,
You need to contact absolute software. They will want the machine serial number and the motherboard serial number. You will also need to supply «proof of purchase», like a receipt. They will contact the owner they have on file and get the OK to remove it. Assuming it is not stolen, they will then «flag it for delete». After that, the next time you connect to the internet or have an open internet connection, a miracle will occur and it will be gone. Send the stuff I mentioned to TechSupport@absolute.com.
мы можем написать сразу в Absolute и общаться на тему разблокировки с ними напрямую. Я не стал торопиться и решил прибегнуть к такому решению только ближе к концу.
- Брутальное решение проблемы тоже, к счастью, уже присутствовало. Вот эти ребята и многие другие мастера компьютерной поддержки на том же eBay и даже индусы в Facebook обещают нам разблокировать наш BIOS, если мы им пришлем дамп и подождем пару минуток.
Прооцесс анлока описывается так:
Unlocking solution is finally available and requires SPEG programmer to be able to flash the BIOS.
The process is:
- Reading the BIOS and create a valid dump. In a Thinkpad, the BIOS is married to the internal TPM chip and contains a unique signature of it, so it is important that the original BIOS to be a correct read out for the success of the whole operation and to restore the BIOS afterwards.
- Patching the BIOS binaries and inject a small allservice.ro UEFI program. This program will read the secure eeprom, reset TPM certificate and password, write secure eeprom and reconstruct all data.
- Write the patched BIOS dump (this will only function in that TP btw), start the laptop and generate a Hardware ID. We will send you a unique key that will activate the Allservice BIOS, while the BIOS is loading it will execute the unlock routine and unlock the SVP and TPM.
- Finally, write the original BIOS dump back for normal operations and enjoy the laptop.
We can also disable Computrace or change the SN/UUID and reset RFID checksum error by using our UEFI program in the same manner, if necessary
The unlock service price is per machine (like we do for the Macbook/iMac, HP, Acer, etc) For service price and availability please read the next post below. You may contact support@allservice.ro for any inquiry.
Seems legit! Но это тоже, по понятым причинам, вариант для самой отчаянной ситуации, к тому же все удовольствие стоит $80. Оставляем его на потом.
- Если Lazard мне все поломали и просят перезвонить, то не стоит отказываться! За дело.
Звоним в Lazard aka «the world’s leading financial advisory and asset management firm, advises on mergers, acquisitions, restructuring, capital structure and strategy»
Пока продавец с eBay отвечает, я закидываю несколько баксов на zadarma и предвкушаю общение с, пожалуй, самым самым бездушным собеседником на планете — саппортом огромной финансовой корпорации из Нью-Йорка. Девушка быстро поднимает трубку, выслушивает на моем комрадглише робкие объяснения того, как я купил этот ноутбук, записывает его серийник и обещает передать админам, которые мне перезвонят. Этот процесс в точности повторяется два раза с разницей в сутки. На третий раз я специально дождался вечера, пока в Нью-Йорке будет 10 утра и позвонил, скороговоркой зачитав уже привычную мне пасту про мою покупку. Через два часа мне перезвонила все та же женщина и начала зачитывать инструкции:
— Нажмите эскейп.
Я нажимаю, но ничего не происходит.
— Что-то не работает, ничего не меняется.
— Нажимайте.
— Жму.
— Теперь вводите: 72406917
Ввожу. Ничего не происходит.
— Вы знаете, боюсь это не помож… Минуточку…
Ноутбук внезапно перезагружается, загружается система, назойливый белый экран куда-то пропал. Для верности захожу в биос, Computrace не активирован. Кажется, все. Благодарю за поддержку, пишу продавцу что решил все вопросы сам и расслабляюсь.
OpenMakeshift Computrace Intel AMT based
Произошедшее меня обескуражило, но идея мне понравилась, моя фантомная боль по бездарно утраченному искала какого-то выхода, мне хотелось защитить свой новый ноутбук, словно это вернуло бы мне старый. Если кто-то использует Computrace, то и я могу его использовать, так ведь? Ведь был же Intel Anti-Theft, по описанию — великолепная технология, работающая так, как надо, но ее убила инертность рынка, однако ведь должна быть альтернатива. Оказалось, что эта альтернатива начиналась там же, где и заканчивалась — на этой ниве смогла закрепиться только Absolute software.
Для начала вспомним что такое Intel AMT: это такой набор библиотек, являющийся частью Intel ME, вшитый в EFI BIOS, для того, чтобы админ в каком-нибудь офисе мог, не вставая со стула, оперировать машинами в сети, даже если они не загружаются, подключая удаленно ISOшки, управляя через удаленный рабочий стол и т.д.
Крутится все это на Minix и примерно на таком уровне:
Invisible Things Lab предложила называть функциональность технологии Intel vPro / Intel AMT кольцом защиты -3. В рамках этой технологии чипсеты, поддерживающие технологию vPro, содержат независимый микропроцессор (архитектура ARC4), имеют отдельный интерфейс к сетевой карте, эксклюзивный доступ к выделенному участку ОЗУ (16 МБ), DMA-доступ к основной ОЗУ. Программы на нём выполняются независимо от центрального процессора, прошивка хранится совместно с кодами BIOS либо на аналогичной флеш-памяти SPI (код имеет криптографическую подпись). Частью прошивки является встроенный веб-сервер. По умолчанию AMT выключен, но часть кода все же работает в этом режиме даже при выключенном AMT. Код кольца -3 активен даже в режиме питания S3 Sleep.
Это звучит заманчиво, ведь видится, что если мы сможем наладить обратное подключение к какой-нибудь админке силами Intel AMT, то сможем иметь доступ не хуже чем у Computrace(на самом деле нет).
Активируем Intel AMT на нашей машине
Сперва, некоторым из вас наверняка хотелось бы потрогать этот AMT своими руками, а тут и начинаются нюансы. Во-первых: вам нужен процессор с его поддержкой. С этим, к счастью, проблем нет(если у вас не AMD), ведь vPro добавлена почти во все процессоры Intel i5, i7 и i9(посмотреть можно тут) начиная с 2006-го года, а нормальный VNC туда завезли уже с 2010-го. Во-вторых: если у вас десктоп, то вам нужна материнская плата с поддержкой такой функциональности, а именно с чипсетом Q. В ноутбуках же нам достаточно знать только модель процессора. Если вы обнаружили у себя поддержку Intel AMT, то это хороший знак и вы сможете применить полученные здесь установки. Если же нет, то либо вам не повезло/вы умышленно выбрали процессор или чипсет без поддержки этой технологии, либо вы удачно сэкономили, взяв себе AMD, что тоже является поводом для радости.
Согласно документам
In non-secure mode, Intel AMT devices listen on port 16992.
In TLS mode, Intel AMT devices listen on port 16993.
Intel AMT принимает к себе коннекты на портах 16992 и 16993. Туда и двинемся.
Необходимо проверить что Intel AMT включена в BIOS:
Далее нам нужно перезагрузиться и нажать во время загрузки Ctrl + P
Стандартный пароль, как водится, admin.
Сразу же меняем пароль в Intel ME General Settings. Далее в Intel AMT Configuration включаем Activate Network Access. Готово. Вы теперь официально пробэкдурены. Грузимся в систему.
Теперь важный нюанс: по логике вещей мы можем получить доступ к Intel AMT с localhost и удаленно, но нет. Intel говорит что локально подключаться и менять настройки можно с помощью Intel AMT Configuration Utility, но у меня она наотрез отказывалась подключаться, так что у меня подключение заработало только удаленно.
Берем какое-нибудь устройство и подключаемся по yourIP:16992
Выглядит это так:
Добро пожаловать стандартный интерфейс Intel AMT! Почему «стандартный»? Потому что он урезан и для нашей целей совершенно бесполезен, а мы будем использовать что-то более серьезное.
Знакомимся с MeshCommander
Как это водится — большие компании что-то делают, а конечные пользователи дорабатывают под себя. Так случилось и здесь.
Вот этот скромный(не преувеличение: его имя отсутствует на его же сайте, пришлось погуглить) мужчина по имени Ylian Saint-Hilaire разработал замечательные инструменты для работы с Intel AMT.
Сразу хочу обратить внимание на его YouTube-канал, в своих видео он просто и понятно показывает в режиме реального времени как выполнить те или иные задачи связанные с Intel AMT и его софтом.
Начнем с MeshCommander. Качаем, устанавливаем и пытаемся подключиться к нашей машине:
Процесс не мгновенный, но в результате мы получим вот такой экран:
Не то, чтобы я параноик, но sensitive data затру, простите мне такое кокетство
Разница, как говорится, налицо. Я не знаю почему в панели управления Intel нет такого набора функций, но факт есть факт: Ylian Saint-Hilaire берет от жизни ощутимо больше. Более того, вы можете установить его веб-интерфейс прямо в прошивку, он даст возможность пользоваться всеми функциями без утилиты.
Делается это так:
Должен отметить, что я эту функциональность(Custom web interface) не использовал и ничего не могу сказать об ее эффективности и работоспособности, так как для моих нужд он не требуется.
Вы можете поиграться с функциональностью, вряд ли у вас получится все испортить, ведь начальной и конечной отправной точкой всего этого фестиваля является BIOS, в нем вы потом сможете все сбросить, отключив Intel AMT.
Разворачиваем MeshCentral и реализуем BackConnect
А вот тут начинается полный отвал башки. Дядя не просто сделал клиент, а еще и целую админку к нашему трояну! И не просто сделал, а запустил ее для всех на своем сервере.
Get started by installing a MeshCentral server of your own or if you are not familiar with MeshCentral, you can try the public server at your own risk at MeshCentral.com.
Это положительно говорит о надежности его кода, так как мне не удалось найти никаких новостей о взломах и утечках на протяжении работы сервиса.
Лично я кручу MeshCentral на своем сервере так как необоснованно считаю что это более надежно, но в этом нет ничего кроме суеты и томления духа. Если вы хотите также, то тут есть документы, а здесь контейнер с MeshCentral. В документах написано как связать все это в NGINX, так что реализация легко интегрируется в ваши домашние сервера.
Регистрируемся на meshcentral.com, заходим и создаем Device Group, выбрав опцию «no agent»:
Почему «no agent»? Потому что зачем нам чтобы он устанавливал что-то лишнее, непонятно как это себя ведет и как будет работать.
Нажимаем «Add CIRA»:
Качаем cira_setup_test.mescript и используем его в нашем MeshCommander вот таким образом:
Voilà! Через какое-то время наша машина подключится к MeshCentral и можно будет что-нибудь с ней сделать.
Во-первых: вам следует знать что просто так наш софт стучаться на удаленный сервер не будет. Это связано с тему, что у Intel AMT есть две опции для подключения — через удаленнный сервер и непосредственно локально. Одновременно они не работают. Наш скрипт уже настроил систему для удаленной работы, но вам может потребоваться подключиться локально. Для того, чтобы вы могли подключиться локально, надо вот здесь
написать строку, которая является вашим локальным доменом(обратите внимание, что наш скрипт туда УЖЕ вбил какую-то рандомную строку, чтобы подключение осуществилось удаленно) или очистить все строки вовсе(но тогда удаленное подключение будет недоступно). Например, у меня в OpenWrt локальный домен это lan:
Соответственно, если мы туда впишем lan, и если наша машина будет подключена в сеть с этим локальным доменом, то удаленно подключение будет недоступно, а локальные порты 16992 и 16993 откроются и будут принимать подключения. Короче, если там какая-то белиберда, не имеющая отношение к вашему локальному домену, то софт стучит, если нет, то вам надо подключаться к нему самим по проводу, вот и все.
Во-вторых:
Всё готово!
Вы спросите — а где же тут AntiTheft? Как я сказал изначально — Intel AMT не очень приспособлен для борьбы с ворами. Админить офисную сеть — это пожалуйста, а вот воевать с неправомерно завладевшими имуществом личностями посредством сети интернет — не особо. Рассмотрим инструментарий, который, в теории, может нам помочь в борьбе за частную собственность:
- Само по себе однозначное наличие доступа к машине, если она подключена по кабелю, либо, если на ней установлен Windows, то и по WiFi. Да, ребячество, но пользоваться таким ноутбуком обычному человеку уже очень трудно уже даже если кто-то просто внезапно перехватывает управление. Притом, несмотря на то что я не смог разобраться со скриптами, наверняка есть возможность художественно выпилить на них какую-то функциональность для блокировки/выведения нотификаций.
- Remote Secure Erase with Intel Active Management Technology
С помощью этой опции можно удалить всю инфу с машину за секунды. Не выяснено, работает ли она на SSD отличных от Intel. Вот тут можно более подробно почитать об этой функции. Полюбоваться на работу можно тут. Качество ужасное, зато всего 10 мегабайт и суть ясна.
Остается нерешенной проблема отложенного выполнения, иными словами: нужно караулить когда машина войдет в сеть чтобы выполнить к ней подключение. Полагаю, что этому тоже есть какое-то решение.
В идеальном исполнении надо блокировать ноутбук и выводить какую-то надпись, но в нашем случае мы просто имеем неотвратимый доступ, и как действовать дальше — дело фантазии.
Возможно у вас как-то получится блокировать машину или хотя бы выводить сообщение, напишите, если знаете. Спасибо!
Не забудьте поставить пароль на BIOS.
Спасибо пользователю berez за вычитку!
Автор: RainbowJose