Валентин Холмогоров - PRO вирусы. Версия 4.0
- Название:PRO вирусы. Версия 4.0
- Автор:
- Жанр:
- Издательство:ООО «ЛитРес», www.litres.ru
- Год:2020
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валентин Холмогоров - PRO вирусы. Версия 4.0 краткое содержание
В формате PDF A4 сохранен издательский макет.
PRO вирусы. Версия 4.0 - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Эксплоиты могут быть очень сложными с архитектурной точки зрения и реализовывать эксплуатацию уязвимости в несколько последовательных этапов. Рассмотрим в качестве примера, как работает эксплоит для уже упомянутой выше уязвимости в устройствах Apple — checkm8.
По принципу своего действия использующий эту уязвимость эксплоит — типичный буткит. Основная его задача состоит в том, чтобы дать устройству нормально загрузиться, но при этом скомпрометировать каждое звено в цепочке загрузки после того, как отработает BootROM. В нормальном режиме BootROM передает управление загрузчику (iBoot), который загружает в память ядро iOS и передает управление на точку входа. Цель создателей эксплоита — пропатчить ядро до того, как этот процесс завершится.
Во время работы iBoot использует специальный режим (его называют boot trampoline), который ненадолго возвращает процессор в «особое» состояние: кеш сброшен, все регистры установлены в ноль, MMU отключен. Команда хакеров под названием checkra1n, трудившаяся над созданием эксплоита, разработала особый метод размещения в памяти устройства шелл-кода и научилась использовать хуки (перехват вызова функций) при вызове некоторых функций загрузчика, чтобы заставить его выполнить полезную нагрузку. В итоге загрузчик подготавливает ядро и переводит процессор в состояние boot trampoline перед вызовом точки входа. Но вместо нее с помощью хука управление передается на заранее загруженный в память шелл-код. Теперь можно спокойно патчить ядро.
Однако просто пропатчить ядро недостаточно: когда оно загрузится, необходимо сохранить код в пользовательском режиме, чтобы можно было выполнить джейлбрейк. Для этого шелл-код создает в памяти маленький виртуальный диск, чтобы перехватить выполнение команд в режиме EL0. Это позволяет изменить дерево устройств и структуру аргументов загрузки ядра и потом использовать его в качестве корневого устройства. Для реализации этой идеи хакерам даже пришлось написать собственный динамический компоновщик. Для монтирования корневой файловой системы поверх / используется syscall (3) . При этом применяется каскадно-объединенное монтирование (union mounting), чтобы случайно не обрушить vnode. После всех этих манипуляций можно запускать произвольный код с идентификатором PID 1, прежде чем будет запущен launchd. Такой код инициализируется ядром iOS перед всеми последующими процессами и является для них родительским. Само собой, он обладает соответствующими системными привилегиями.
Нюанс в том, что на данном этапе смонтированная корневая файловая система доступна только для чтения, а для нормальной работы джейлбрейка нужно дропнуть в ФС несколько файлов, чтобы получить доступ к шеллу iOS и позволить пользователю установить менеджер пакетов. То есть необходимо получить доступ к /private/var , для чего сначала инициализировать механизм Data Рrotection, за который отвечает launchd. Чтобы добиться нужного результата, с использованием того же union mounting поверх / usr/libexec/ монтируется еще один образ. dmg с целью переопределить какой-нибудь из системных демонов. В качестве жертвы был выбран sysstatuscheck, поскольку этот демон запускается в различных версиях iOS в нужный момент — в начале загрузочного процесса, но достаточно поздно, чтобы включить Data Рrotection. Когда задача выполнена, dmg-образ принудительно размонтируется. Дальше можно позволить launchd продолжить загрузку в штатном режиме. После включения usbmux и загрузки всех необходимых утилит, позволяющих пользователю установить правильный bootstrap в своей корневой файловой системе, можно запускать демон SSH и выполнять джейлбрейк. Дело сделано: айфон успешно взломан!
Загрузчики
Об опасности троянцев-загрузчиков я уже неоднократно упоминал. Множество вредоносных программ может проникнуть на устройство, уже инфицированное троянцем-загрузчиком, основное назначение которого — закачка из Интернета и запуск других вредоносных программ. Вот почему, однажды допустив заражение, пользователь рискует превратить свой компьютер в настоящий рассадник вирусов и троянцев.
Вредоносные программы-загрузчики нередко объединяются в ботнеты, услуги которых злоумышленники продают на различных подпольных форумах. Создатели банковских троянцев, троянцев-шпионов, рекламных троянцев и троянцев-вымогателей платят им за определенное число успешных загрузок своих творений на компьютеры потенциальных жертв. Именно поэтому данный вектор распространения вредоносных программ является весьма популярным и актуальным.
Социальная инженерия
Под термином социальная инженерия принято понимать комплекс используемых злоумышленниками психологических приемов, позволяющих обмануть пользователя или ввести его в заблуждение, чтобы заставить выполнить те или иные нужные киберпреступнику действия, например, передать пароли от аккаунта в социальных сетях, сообщить реквизиты банковской карты или запустить на компьютере вредоносную программу. Так, от одного из друзей в социальной сети (аккаунт которого был ранее взломан) пользователю может прийти личное сообщение примерно следующего характера: «Ты с ума сошел, выкладывать такое видео? Я в шоке!» — далее в послании присутствует ссылка якобы на видеоролик, выставляющий получателя в неприглядном свете. Порой троянцы, рассылающие подобные послания, могут сгенерировать целую переписку, создавая поддельные комментарии пользователей, якобы успевших ознакомиться с видео. Однако для просмотра ролика потенциальной жертве предлагается скачать и запустить специальный кодек или приложение-проигрыватель, в котором скрывается… догадались что?
Само понятие социальной инженерии, по утверждениям ряда источников, ввел в обиход известный американский хакер Кевин Митник. Согласно рассказам его коллег и современников, сам Митник не обладал глубокими техническими познаниями в сфере информационных технологий, однако являлся при этом неплохим психологом. Он не брезговал покопаться в мусорных контейнерах на заднем дворе крупных офисных центров, куда сотрудники могли выбросить содержащие конфиденциальную переписку или важные пароли бумаги, распечатки внутренних документов и другие ценные источники информации. Он мог несколькими телефонными звонками выведать у работников различных фирм те или иные интересующие его сведения. Например, представившись новым руководителем одного из подразделений компании, Митник мог поинтересоваться по телефону у одного из сотрудников техподдержки, где найти системного администратора, чтобы подключить на его рабочем месте принтер, и заодно узнать, как его зовут. Затем, представившись тем самым системным администратором, он выведывал у ничего не подозревающей секретарши пароль от ее электронного почтового ящика.
Читать дальшеИнтервал:
Закладка: