Приветствую всех!
Решил написать полноценную статью про ноутбуки для пентеста и гибридную графику в них. Статья будет разбита на 2 части из-за большого объема.
Это продолжение и дополнение этих заметок. Так как появилось свободное время, то решил доработать и структурировать их.
Вообще, я не представляю Kali Linux или другой дистрибутив для пентеста на ПК (исключение - для эффективного перебора паролей). Ноутбук удобен своей мобильностью и хорошей производительностью (я говорю о средней ценовой категории). Из доступных на рынке предложений мне больше всего нравятся решения MSI. В частности линнейка GL, так как она находится в доступной ценовой категории, что позволяет использовать ноутбук как для работы с требовательным ПО, так и для игр. Конкретно MSI мне нравится продуманной системой охлаждения и широким выбором моделей в ценовых категориях. Это ни в коем случае не реклама MSI, а субъективное мнение. Модели Asus тоже неплохи, однако не все имеют продуманную систему охлаждения в средних ценовых категориях.
Однако я отвлекся. Инструкция будет полезна и тем, кто хочет разобраться с зоопарком, творящимся в технологиях, драйверах и прочих компонентах графической системы Linux. Проблема с гибридной графикой является здесь ключевой. NVidia упорно не желает реализовать поддержку технологии Optimus для дистрибутивов Linux. Брутить на ноутбуках - не лучшая затея, однако многим нужнен Optimus на Linux для других целей - игры, работа с графикой, да и в целом с NVidia система работает шустрее. Вернемся к бруту - он вполне возможен на ноутбуках, однако для этого я использую технологию CoolerBoost (нажимаем кнопку, вентилятор набирает обороты). В результате при бруте температура не поднимается выше 70-75 градусов. Это как в играх в Windows, так что особой опасности нет. Для работы c 4-way handshake самое то.
Сразу скажу - я не любитель тратить время на видео, так что предупреждаю - статья будет объемная. Предназначена для новичков. Эту тему решил раскрыть, так как в сети есть только обрывки информации или устаревшие инструкции. Практическая цель - работа с pyrit и hashcat посредством CPU и двух видеоадаптеров (технологии OpenGL и CUDA).
Инструкция будет включать в себя пояснения к командам, оптимизацию работы с системой, установку закрытых драйверов Intel, NVidia и настройку Kali Linux на работу с hashcat, pyrit и т.д. Она предназначается для владельцев новых ноутбуков с гибридной графикой (технология Optimus) от NVidia. То есть в ноутбуке присутствует Intel® HD Graphics (iGPU) и дискретный видеоадаптер NVidia (dGPU). Особенность в том, что к экрану подключен только iGPU. dGPU не работает на прямую, а только через iGPU (выполняет сложные задачи).
В Linux адекватно работать с гибридной графикой (Intel HD + NVidia с пропиетарным драйвером) до недавнего времени можно было только при помощи открытого проекта Bumblebee. Однако шмель не везде стабильно работает и требует тонкой настройки.
В 2016 году довели до ума технологию PRIME Syncronization (исправление проблем с тирингом). PRIME позволяет использовать Optimus в двух режимах: "PRIME GPU offloading" и "Reverse PRIME". Для работы ему необходимы загруженные KMS- и DDX-драйвера для iGPU и dGPU. До недавнего времени KMS-драйвер для NVidia был только nouveau, теперь это реализовано и в блобе. Однако стоит заметить, что в пропиетарный драйвер поддерживает только Reverse PRIME (это наш случай, дискретная карта будет выступать в качестве основного GPU, на котором будет работать графическая оболочка). Получается что iGPU не задействован и используется только для вывода картинки на экран с dGPU.
К сожалению, PRIME GPU offloading (закрытая реализация Nvidia Optimus, т.е. как в Windows) пока не поддерживается блобом (для лучшей производительности и работы с CUDA, OpenGL и т.д. нужны пропиетарные драйвера), так что GPU offloading пока не будет.
Возможно Nvidia все-таки реализует полноценный Optimus, или хотя бы "горячее" переключение без костылей. С этим связан этот проект. В 2018 году обещают реализовать адекватное переключение между iGPU и dGPU. Новости и подвижки в этом направлении по ссылке.
Сразу поясню про hashcat и pyrit. Мне не удалось запустить pyrit с CUDA, только с OpenGL. Зато в этом режиме pyrit использует iGPU + все CPU + dGPU совместно. hashcat поддерживает работу с CUDA, но более сложен и работает с Intel-овскими девайсами кривовато.
По поводу CUDA в pyrit - возможно надо плясать с бубном, использовать Bumblebee + блоб/нуво. Лезть на этот кактус я не намерен.
Думаю для CUDA нужно ставить non-glvnd дрова, как здесь. Я ставлю дрова с NVidia binary OpenGL/GLX library (glvnd-variant), есть еще neutral, но из коробки работать не будет. Мой выбор glvnd обоснован тем, что с помощью этого проекта в перспективе будет реализован Optimus. Если кто-нибудь использует на ноутбуке pyrit + CUDA, то напишите, пожалуйста, порядок установки.
Внимание! Это инструкция для полностью чистой системы, поэтому не надо задавать вопросы про ошибки dpkg, пакетов и т.д.
Так как стали возникать странные вопросы, решил подготовить чисто консольные команды, без лишней воды. Вопросы проблем с установкой системы, записью на флешку и т.д. я не буду рассматривать, т.к. они решены в моей предыдущей статье и неоднократно обсуждались на форуме.
Сделаю дополнение по поводу Weekly-релизов (выходят раз в 2 недели), в которые включены последние обновления. Идем по ссылке и скачиваем самый первый образ kali-linux-2018-W12-amd64.iso. Да, это GNOME 3. Именно под него заточен мануал.
Решил написать полноценную статью про ноутбуки для пентеста и гибридную графику в них. Статья будет разбита на 2 части из-за большого объема.
Это продолжение и дополнение этих заметок. Так как появилось свободное время, то решил доработать и структурировать их.
Вообще, я не представляю Kali Linux или другой дистрибутив для пентеста на ПК (исключение - для эффективного перебора паролей). Ноутбук удобен своей мобильностью и хорошей производительностью (я говорю о средней ценовой категории). Из доступных на рынке предложений мне больше всего нравятся решения MSI. В частности линнейка GL, так как она находится в доступной ценовой категории, что позволяет использовать ноутбук как для работы с требовательным ПО, так и для игр. Конкретно MSI мне нравится продуманной системой охлаждения и широким выбором моделей в ценовых категориях. Это ни в коем случае не реклама MSI, а субъективное мнение. Модели Asus тоже неплохи, однако не все имеют продуманную систему охлаждения в средних ценовых категориях.
Однако я отвлекся. Инструкция будет полезна и тем, кто хочет разобраться с зоопарком, творящимся в технологиях, драйверах и прочих компонентах графической системы Linux. Проблема с гибридной графикой является здесь ключевой. NVidia упорно не желает реализовать поддержку технологии Optimus для дистрибутивов Linux. Брутить на ноутбуках - не лучшая затея, однако многим нужнен Optimus на Linux для других целей - игры, работа с графикой, да и в целом с NVidia система работает шустрее. Вернемся к бруту - он вполне возможен на ноутбуках, однако для этого я использую технологию CoolerBoost (нажимаем кнопку, вентилятор набирает обороты). В результате при бруте температура не поднимается выше 70-75 градусов. Это как в играх в Windows, так что особой опасности нет. Для работы c 4-way handshake самое то.
Сразу скажу - я не любитель тратить время на видео, так что предупреждаю - статья будет объемная. Предназначена для новичков. Эту тему решил раскрыть, так как в сети есть только обрывки информации или устаревшие инструкции. Практическая цель - работа с pyrit и hashcat посредством CPU и двух видеоадаптеров (технологии OpenGL и CUDA).
Инструкция будет включать в себя пояснения к командам, оптимизацию работы с системой, установку закрытых драйверов Intel, NVidia и настройку Kali Linux на работу с hashcat, pyrit и т.д. Она предназначается для владельцев новых ноутбуков с гибридной графикой (технология Optimus) от NVidia. То есть в ноутбуке присутствует Intel® HD Graphics (iGPU) и дискретный видеоадаптер NVidia (dGPU). Особенность в том, что к экрану подключен только iGPU. dGPU не работает на прямую, а только через iGPU (выполняет сложные задачи).
В Linux адекватно работать с гибридной графикой (Intel HD + NVidia с пропиетарным драйвером) до недавнего времени можно было только при помощи открытого проекта Bumblebee. Однако шмель не везде стабильно работает и требует тонкой настройки.
В 2016 году довели до ума технологию PRIME Syncronization (исправление проблем с тирингом). PRIME позволяет использовать Optimus в двух режимах: "PRIME GPU offloading" и "Reverse PRIME". Для работы ему необходимы загруженные KMS- и DDX-драйвера для iGPU и dGPU. До недавнего времени KMS-драйвер для NVidia был только nouveau, теперь это реализовано и в блобе. Однако стоит заметить, что в пропиетарный драйвер поддерживает только Reverse PRIME (это наш случай, дискретная карта будет выступать в качестве основного GPU, на котором будет работать графическая оболочка). Получается что iGPU не задействован и используется только для вывода картинки на экран с dGPU.
К сожалению, PRIME GPU offloading (закрытая реализация Nvidia Optimus, т.е. как в Windows) пока не поддерживается блобом (для лучшей производительности и работы с CUDA, OpenGL и т.д. нужны пропиетарные драйвера), так что GPU offloading пока не будет.
Возможно Nvidia все-таки реализует полноценный Optimus, или хотя бы "горячее" переключение без костылей. С этим связан этот проект. В 2018 году обещают реализовать адекватное переключение между iGPU и dGPU. Новости и подвижки в этом направлении по ссылке.
Сразу поясню про hashcat и pyrit. Мне не удалось запустить pyrit с CUDA, только с OpenGL. Зато в этом режиме pyrit использует iGPU + все CPU + dGPU совместно. hashcat поддерживает работу с CUDA, но более сложен и работает с Intel-овскими девайсами кривовато.
По поводу CUDA в pyrit - возможно надо плясать с бубном, использовать Bumblebee + блоб/нуво. Лезть на этот кактус я не намерен.
Думаю для CUDA нужно ставить non-glvnd дрова, как здесь. Я ставлю дрова с NVidia binary OpenGL/GLX library (glvnd-variant), есть еще neutral, но из коробки работать не будет. Мой выбор glvnd обоснован тем, что с помощью этого проекта в перспективе будет реализован Optimus. Если кто-нибудь использует на ноутбуке pyrit + CUDA, то напишите, пожалуйста, порядок установки.
NVIDIA (Русский) - ArchWiki [RUS]
NVIDIA Accelerated Linux Graphics Driver README and Installation Guide [EN]
NVIDIA Optimus (Русский) - ArchWiki [RUS]
NVIDIA/Optimus - Gentoo Wiki [EN]
Bumblebee (Русский) - ArchWiki [RUS]
Xorg (Русский) - ArchWiki [RUS]
Optimus — ALT Linux Wiki [RUS]
PRIME - ArchWiki [EN]
Chapter 32. Offloading Graphics Display with RandR 1.4 [EN]
NVIDIA Prime на не-Ubuntu [RUS]
https://www.x.org/wiki/Events/XDC2016/Program/xdc-2016-prime-sync.pdf [EN]
https://www.x.org/wiki/Events/XDC2017/brenneman_GLVND.pdf [EN]
https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/ [EN]
https://devtalk.nvidia.com/default/topic/957981/linux/prime-render-offloading-on-nvidia-optimus/ [EN]
NVIDIA Accelerated Linux Graphics Driver README and Installation Guide [EN]
NVIDIA Optimus (Русский) - ArchWiki [RUS]
NVIDIA/Optimus - Gentoo Wiki [EN]
Bumblebee (Русский) - ArchWiki [RUS]
Xorg (Русский) - ArchWiki [RUS]
Optimus — ALT Linux Wiki [RUS]
PRIME - ArchWiki [EN]
Chapter 32. Offloading Graphics Display with RandR 1.4 [EN]
NVIDIA Prime на не-Ubuntu [RUS]
https://www.x.org/wiki/Events/XDC2016/Program/xdc-2016-prime-sync.pdf [EN]
https://www.x.org/wiki/Events/XDC2017/brenneman_GLVND.pdf [EN]
https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/ [EN]
https://devtalk.nvidia.com/default/topic/957981/linux/prime-render-offloading-on-nvidia-optimus/ [EN]
Внимание! Это инструкция для полностью чистой системы, поэтому не надо задавать вопросы про ошибки dpkg, пакетов и т.д.
Так как стали возникать странные вопросы, решил подготовить чисто консольные команды, без лишней воды. Вопросы проблем с установкой системы, записью на флешку и т.д. я не буду рассматривать, т.к. они решены в моей предыдущей статье и неоднократно обсуждались на форуме.
Сделаю дополнение по поводу Weekly-релизов (выходят раз в 2 недели), в которые включены последние обновления. Идем по ссылке и скачиваем самый первый образ kali-linux-2018-W12-amd64.iso. Да, это GNOME 3. Именно под него заточен мануал.
Осторожно, длиннопост.
Ноутбук MSI GL62 6QE (описание), dualboot - Windows + Kali Linux 2018.1.
Чтобы не было вопросов выложу выводы консоли:
Ноутбук MSI GL62 6QE (описание), dualboot - Windows + Kali Linux 2018.1.
Чтобы не было вопросов выложу выводы консоли:
# uname -a
# cat /etc/*release*
# lspci -k | grep -A 2 -E "(VGA|3D)"
# lspci -k
# glxinfo | grep "OpenGL renderer"
# xrandr --listproviders
# glxinfo | grep -i "direct rendering"
# xrandr --verbose|grep PRIME
# nvidia-smi
# hashcat -I
# hashcat -b -D 1,2,3 --force --optimized-kernel-enable
# pyrit list_cores
# pyrit benchmark
# cat /etc/*release*
# lspci -k | grep -A 2 -E "(VGA|3D)"
# lspci -k
# glxinfo | grep "OpenGL renderer"
# xrandr --listproviders
# glxinfo | grep -i "direct rendering"
# xrandr --verbose|grep PRIME
# nvidia-smi
# hashcat -I
# hashcat -b -D 1,2,3 --force --optimized-kernel-enable
# pyrit list_cores
# pyrit benchmark
При загрузке у владельцев новых ноутбуков вылазит оно:
[ 0.366426] ACPI Error: No handler for Region [EC___] (ffff9b76470bf678) [EmbeddedContro1] (20160831/evreg ion-166)
[ 0.366431] ACPI Error: Region EmbeddedControl (ID=3) has no handler (20160831 L/exfldio-299)
[ 0.366435] ACPI Error: Method parse/execution failed [\_SB.PCIO.LPCB.EC._REG I (Node ffff3b76470c0bl8), AE_NOT_EXIST (20160831/psparse-543)
Это нормально, просто косяки BIOS, к Linux отношения не имеет.
Тоже нормальная ситуация, иногда пропадает само, иногда возвращается, проблемы в железе Intel:
pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e0(Receiver ID) device [8086:9d14] error status/mask=00000001/00002000
pcieport 0000:00:1c.0: [ 0] Receiver Error (First)
[ 0.366426] ACPI Error: No handler for Region [EC___] (ffff9b76470bf678) [EmbeddedContro1] (20160831/evreg ion-166)
[ 0.366431] ACPI Error: Region EmbeddedControl (ID=3) has no handler (20160831 L/exfldio-299)
[ 0.366435] ACPI Error: Method parse/execution failed [\_SB.PCIO.LPCB.EC._REG I (Node ffff3b76470c0bl8), AE_NOT_EXIST (20160831/psparse-543)
Это нормально, просто косяки BIOS, к Linux отношения не имеет.
идем в /etc/default/grub
ищем строчку linux GRUB_CMDLINE_LINUX_DEFAULT="quiet"
меняем на:
linux GRUB_CMDLINE_LINUX_DEFAULT="quiet libata.noacpi=1"
и сохраняем изменения.
Можно попробовать обновить BIOS (не советую).
ищем строчку linux GRUB_CMDLINE_LINUX_DEFAULT="quiet"
меняем на:
linux GRUB_CMDLINE_LINUX_DEFAULT="quiet libata.noacpi=1"
и сохраняем изменения.
Можно попробовать обновить BIOS (не советую).
Тоже нормальная ситуация, иногда пропадает само, иногда возвращается, проблемы в железе Intel:
pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e0(Receiver ID) device [8086:9d14] error status/mask=00000001/00002000
pcieport 0000:00:1c.0: [ 0] Receiver Error (First)
# leafpad /etc/apt/sources.list
должно быть так:
deb Index of /kali kali-rolling main contrib non-free
deb-src Index of /kali kali-rolling main contrib non-free
должно быть так:
deb Index of /kali kali-rolling main contrib non-free
deb-src Index of /kali kali-rolling main contrib non-free
# leafpad /etc/gdm3/daemon.conf
раскомментируем (убираем #) строчки и сохраняем:
AutomaticLoginEnable = true
AutomaticLogin = root
раскомментируем (убираем #) строчки и сохраняем:
AutomaticLoginEnable = true
AutomaticLogin = root
# echo -e "blacklist nouveau\noptions nouveau modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf && update-initramfs -u && reboot
в случае ошибок (драйвер Intel, hashcat и т.д.) можно поменять на:
# echo -e "blacklist nouveau\noptions nomodeset i915.modeset=0 nouveau.modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf && update-initramfs -u && reboot
в случае ошибок (драйвер Intel, hashcat и т.д.) можно поменять на:
# echo -e "blacklist nouveau\noptions nomodeset i915.modeset=0 nouveau.modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf && update-initramfs -u && reboot
Часто в Kali Linux приходится ставить что-то из исходников:
# make
# make install
Только вот, удалить или обновить потом некоторый софт с github у Вас скорее всего не выйдет...
Если конечно автор не добавил поддержку make uninstall. Так же можно собрать .deb-пакет из исходников.
wget http://ftp.psu.ru/linux/kali/pool/main/c/checkinstall/checkinstall_1.6.2-4_amd64.deb
Остальное.
Открываем в "установке приложений", устанавливаем. После установки checkinstall будет виден из synaptic.
# make
# make install
Только вот, удалить или обновить потом некоторый софт с github у Вас скорее всего не выйдет...
Если конечно автор не добавил поддержку make uninstall. Так же можно собрать .deb-пакет из исходников.
Остальное.
Открываем в "установке приложений", устанавливаем. После установки checkinstall будет виден из synaptic.
Результатом будет то, что для полного цикла обновления достаточно будет команды up в консоли:
# apt-get install axel -y && wget -U firefox http://www.mattparnell.com/linux/apt-fast/apt-fast.sh && mv apt-fast.sh /usr/bin/apt-fast && chmod +x /usr/bin/apt-fast
# echo -e '#!/bin/bash\napt-fast update && apt-fast upgrade -y && apt-fast dist-upgrade -y && apt-fast autoremove -y && sleep 15s; reboot' > up && chmod ugo+x up && cp up /usr/local/bin/up && rm -rf up && up
# apt-get install axel -y && wget -U firefox http://www.mattparnell.com/linux/apt-fast/apt-fast.sh && mv apt-fast.sh /usr/bin/apt-fast && chmod +x /usr/bin/apt-fast
# echo -e '#!/bin/bash\napt-fast update && apt-fast upgrade -y && apt-fast dist-upgrade -y && apt-fast autoremove -y && sleep 15s; reboot' > up && chmod ugo+x up && cp up /usr/local/bin/up && rm -rf up && up
# apt-fast install synaptic i965-va-driver-shaders mesa-utils mesa-vulkan-drivers pyrit-opencl lm-sensors psensor -y && psensor
# pyrit && leafpad /root/.pyrit/config
меняем на:
use_CUDA = false
use_OpenCL = true
# pyrit && leafpad /root/.pyrit/config
меняем на:
use_CUDA = false
use_OpenCL = true
Последнее редактирование: