Pull to refresh

Comments 48

Разве адаптер Broadcom 43602 поддерживает инъекции пакетов и режим мониторинга? Насколько я знаю, драйвер brcmfmac не поддерживает ни то, ни другое.
К сожалению да, не умеет. Инъекции и мониторинг поддерживали карты в старых макбуках 2009-2010 года, которые 802.11n. Примечательно, что виноват драйвер brcmfmac, потому что сама карта поддерживает мониторный режим, он работает в macOS через встроенную утилиту Wireless Diagnostics.app.
Как минимум мониторинг поддерживается даже из самой МакОси стандартными утилитами, в этот момент значок вайфай меняется на глаз. Вроде бы из под линя можно и инъекции производить.
Я об этом и написал выше. Сама карта действительно поддерживает мониторинг, но единственный драйвер для нее, работающий в Linux, не поддерживает ни мониторинг, ни инъекции.
wikidevi.com/wiki/Brcmfmac

unix.stackexchange.com/questions/238461/monitor-mode-on-macbook-2015-hardware-in-kali-linux
На моем macbook 2012 года шрифт огромный. Читать затруднительно.
Да, есть такая проблема, она описана в конце. Дело в том, что на ретина экрана, шрифт настолько мелкий, что его не удается прочесть. Поэтому пришлось жестко задать этот огромный шрифт. По-хорошему, нужно выбирать шрифт автоматически в зависимости от разрешения экрана, но я не умею так делать.
По-хорошему, — если не можете автоматизировать какой-то процесс, то дайте возможность сделать выбор пользователю.

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

Смысл моего подхода в том, что загрузчик не используется. Параметры ядра можно передать через UEFI переменную.

если не можете автоматизировать какой-то процесс, то дайте возможность сделать выбор пользователю


На сколько мне известно, шрифт можно выбрать после загрузки init. Так делается в популярных дистрибутивах. Но я этот вопрос еще не изучал.
Нет, шрифт можно задать в /linuxrc, о чём я уже писал. Равно как и раскладку клавиатуры, кодовую страницу и т.п. А уже по окончанию всего этого безобразия передать управление /sbin/init. у себя в RTK GNU/Linux я так и делал, чтобы писать сообщения процесса инициализации на языке, отличном от английского, пока ядро там свои дела проворачивает. Но это было 10 лет назад.

В общем, в BOOTDISK-HOWTO всё написано.
Зачем прогибаться под SIP, если его можно отключить так:csrutil disable в Recovery mode?
Да, так можно сделать, но я считаю, что это полезная функция. У нормального пользователя нет никаких причин отключать ее.
Потому что потом ваш мак прогнут под себя другие. После отключения SIP он становится существенно более уязвимым.
Всем добрый вечер, возникает ошибка:
mount_msdos: /dev/disk0s1: not a directory
при вводе sudo mount -t msdos /tmp/efi /dev/disk0s1

Вывод diskutil:
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 251.0 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_CoreStorage Macintosh HD 250.0 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3

/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD +249.7 GB disk1
Logical Volume on disk0s2
E84C5091-EE4E-4EC6-8497-AE8799151BB7
Unlocked Encrypted
Прошу прощения, перепутал местами параметры.

Правильно так:
sudo mount -t msdos /dev/disk0s1 /tmp/efi
UFO just landed and posted this here
Если у вас на планшете 32-битный UEFI, то, вероятно, придется использовать 32-битное ядро.
Если у вас включен Secure Boot, то выключите его.
UFO just landed and posted this here
Все проще — mkdir и sudo не нужны:
diskutil mount disk0s1

О, класс, спасибо. Может вы знаете как bless без монтирования выполнить?
Попробовать поиграть с
bless --device
Начиная с macOS 10.14, для этой команды (только для EFI раздела) нужно sudo.
Добрый вечер, вылетает вот такая ошибка на последнем шаге:

~ » sudo bless --mount /tmp/efi --setBoot --nextonly --file /tmp/OneFileLinux.efi
Can't statfs /tmp/OneFileLinux.efi
У вас неправильный путь. Посмотрите как вы монтировали EFI раздел. Файл должен быть в /tmp/efi/OneFileLinux.efi
ты сделал то что я планировал начать делать целый год)))
огромное спасибо, может для кого-то это и «нинужно» а вот у меня есть несколько реальных применений такому проекту…
"Работает на любых компьютерах с UEFI — один и тот же файл будет работать на PC и Mac.
Не нужно устанавливать загрузчики GRUB, rEFInd — ядро Linux собранное с поддержкой EFI Stub можно грузить напрямую без промежуточного загрузчика.
Не нужны USB-флешки — скопированный на раздел EFI дистрибутив остается там навсегда, и его можно будет загрузить в любой момент. Он не занимает места на разделе основной системы, так как раздел EFI не используется в ОС."

Исходя только из этого — это отличная новость для вирусописателей.
Теперь ждем новые волны «неубиваемых» вирусов!
Более того печальней всех маководам, которые раньше смеялись над виндузятниками.
Дохихикались.
Для решения это проблемы как раз придуман secure boot, который уже есть и в Mac, правда пока только в iMac pro. Впрочем, Mac долгое время был подвержен уязвимости Thunderstrike, позволяющий прошить вредонос в саму прошивку на материнской плате, так что даже файлов на диске не было бы.

Сценарий который вы описали крайне маловероятен. Если у вас включен SIP (проверить можно командой csrutil status) то никакая программа, даже вы сами, не сможете модифицировать nvram для загрузки вредоносного файла из операционной системы.

Если предположить, что атакующий имеет физический доступ к компьютеру, тогда достаточно установить пароль на EFI, который будет запрашивать при любой попытке изменить очередность загрузки. То есть при попытке зайди в recover mode нажатием cmd+r.

Рекомендую всем установить пароль на прошивку:

1. При загрузке зажать cmd+R.

2. Зайти в меню Утилиты --> пароль прошивки

Может стоит использовать какое-нибудь LTS-ядро (4.14/4.4)?
Под >4.15 — нет стабильно работающего 8814au.

P. S.: Могу потестировать билд с драйверами для iwlwifi, ath9k, ath9k_htc, rt2800usb и упомянутого 8814au.
Вероятно, вы правы. Я не раздумывал долго и взял последнее в списке на kernel.org.
Я вот только не знаю как перенести .config с одной версии ядра на другое. Там ведь отличаются опции и их названия.

Сейчас решаю проблему с неработающей SPI клавиатурой на новых макбуках 2015-2017 года github.com/cb22/macbook12-spi-driver

Да ладно. А я-то дурак один и тот же конфиг годами использую…

Нормально всё будет, я сто раз так делал. При downgrade, те опции, которых нет в 4.14.x будут проигнорированы.
Для переноса .config достаточно его скопировать и выполнить make oldconfig. Всё возможное перенесётся, про разницу будут заданы вопросы.
UFO just landed and posted this here
Да, согласен. Но в нужный момент этого адаптера не оказывается под рукой. Образ kali весит 2GB, еще нужно украсть Vmware Fusion, потому что Virtualbox имеет проблемы с пробрасыванием USB устройств. Я как раз пытался найти более элегантное решение. Жаль только, что встроенная wifi карта в macbook 2015 не умеет ни мониторинг под линуксом, ни инъекции.
UFO just landed and posted this here
HyperKit от Apple

Ухты, никогда об этом не слышал. Спасибо.
UFO just landed and posted this here
тоже не совсем, там через докер и Hypervisor.framework. компонента докера docker.com
Что за проблемы? Я лично давно с похожим не сталкивался…
Приветствую. На команду «sudo bless --mount /Volumes/EFI --setBoot --nextonly --file /Volumes/EFI/OneFileLinux.efi» терминал ругался. Без sudo всё прошло успешно.
Но у меня крайне дилетантский вопрос. Крузится Alpha и спрашивает «onefilelinux login». Я погуглил. Ввёл root. А дальше вроде как нужно вводить setup-alpha. Но команда не работает. Что не так делаю?
Заранее благодарю за ответ.
Без sudo всё прошло успешно.

Речь про recovery режим? Тогда все правильно, там не нужно вводить sudo, потому что она и так запущена от пользователя root.

спрашивает «onefilelinux login». Я погуглил. Ввёл root. А дальше вроде как нужно вводить setup-alpha.

После того как вы ввели root, вас пускает в консоль. Это конец. Дальше вы либо делаете что вам нужно, либо вводите reboot и перезагружаетесь обратно в macOS.

Графического интерфейса нет. Возможно, мы добавим его позже, но я не уверен.
Скрипт запилил для macOS, пользуйтесь, оптимизируйте:
gist.github.com/aquigni/5097f40413f53da5a75bc29309cc0059

#!/bin/sh
cd ~/Downloads/

### Checking if Homebrew is installed:
command -v brew >/dev/null 2>&1 || {
	echo >&2 "Installing Homebrew:"
	/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
}

### Getting wget:
brew install wget

### Getting latest OneFileLinux.efi release via GitHub API:
curl -s https://api.github.com/repos/zhovner/OneFileLinux/releases/latest |
	grep "browser_download_url.*efi" |
	cut -d : -f 2,3 |
	tr -d \" |
	wget -i -

### Find first macOS disk (containing Recovery HD by default) and mounting its EFI partition:
diskutil mount $(diskutil info "Recovery HD" |
	grep "Part of Whole" |
	grep -Eo '.{5}$')s1

### Or just mount default EFI partition:
# diskutil mount disk0s1

### Check if SIP is enabled:
if csrutil status | grep "NVRAM Protections: disabled"; then
	echo "NVRAM isn't protected, continuing:"
	mkdir -p /Volumes/EFI/EFI/OneFileLinux
	cp -v OneFileLinux.efi /Volumes/EFI/EFI/OneFileLinux/boot.efi
	sudo bless --mount /Volumes/EFI/EFI/OneFileLinux --setBoot --nextonly --file /Volumes/EFI/EFI/OneFileLinux/boot.efi --verbose
else
	echo "System Integrity Protection is enabled, disabling only available in Recovery OS." >&2
	exit 1
fi

Интересно, получится ли запилить полноценный Linux-дистро таким образом? :)
Скорее да, при условии, что влезет в ~200 Мб EFI раздела.
UFO just landed and posted this here
Последняя версия onefilelinux весит 27 мегабайт, должно хватить места.
Можно создать разметку GPT на флешке, отформатировать раздел в FAT32 и добавить флаг ESP.
Если onefilelinux будет находится в файле по адресу /EFI/BOOT/BOOTX64.EFI и Secure Boot будет отключен — должно запустится при выборе флешки в качестве загрузочного устройства. Не уверен, что такой способ поможет запуску на Mac.
Sign up to leave a comment.

Articles