Гадкий утенок. Превращаем обычную флешку в USB Rubber Ducky

Предисловие

Прошлогодний Black Hat принес много интересных докладов. В числе наиболее обсуждаемых был доклад, посвященный неисправимой уязвимости USB-устройств, позволяющей превращать обычные флешки в инструмент распространения вредоносных программ. Атаку назвали BadUSB, но позже в Сети появились шуточки на тему «USBola», сравнивающие эту атаку с известным вирусом.

Подобные идеи использования HID-девайсов для корыстных целей были уже давно. Грех не воспользоваться тем, что ОС система доверяет устройствам, подключаемым к USB-интерфейсу. Если покопаться в памяти, то в журнале уже была статья по сходной тематике, в которой говорилось, как с помощью специального устройства Teensy можно взять под контроль машину с Windows 7 (в принципе — с любой ОС на борту). Устройство по внешнему виду напоминало собой обычную флешку, под которую собственно и маскировалось. Все это наводило на мысли, что с флеш-накопителями тоже можно провернуть такой трюк.

Фрагмент файла \kali_linux_nethunter_nexus7_2012.zip\system\xbin\start-badusb

Появление подробных инструкций и готовых программных инструментов для реализации Bad USB с использованием различных серийно выпускаемых устройств свидетельствует о широком интересе к данному виду атаки. Не надо быть аналитиком, чтобы спрогнозировать резкое повышение частоты её применения в ближайшее время.

В ОС Windows можно вручную ограничить подключение по USB, разрешив его только для определённых устройств. Для этого необходимо изменить https://www.sql.ru/forum/847468/podkluchenie-konkretnogo-usb-ustroystva права доступа к соответствующим ключам реестра в разделе [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR].

Вероятно, разработчики антивирусных решений скоро добавят отдельные модули для более гибкого дополнительного контроля над подключаемыми по USB устройствами. Ограничивать доступ к сменным носителям и разрешать активацию согласно «белому списку» уже сейчас умеют ESET Endpoint Antivirus, Kaspersky Endpoint Security, компонент «Родительский контроль» у Dr.Web AV-Desk и другие современные средства комплексной защиты. Другое дело, что в случае Bad USB таких мер может оказаться недостаточно. Скорее всего, пользователь сам разрешит подключение опасного устройства, опрометчиво считая его неспособным навредить.

Устройство Flash накопителей

На самом деле, ОС ничего не знает о подключаемом устройстве. Ей приходится ждать, пока девайс сам не сообщит, к какому классу устройств он принадлежит. Если взять простейший пример, когда мы втыкаем флешку в USB-разъем, то флешка сообщает операционной системе не только что является накопителем, но и свой объем. Тут сразу вспоминаются хитрожелтые китайские товарищи, которые таким образом научились выпускать флешки повышенной емкости (встречались чуть ли не на пару терабайт). Чтобы разобраться, как такое возможно, давай вспомним (или узнаем), как система распознает USB-устройства.


Флешка без красивой обертки

Другие статьи в выпуске:

Xakep #200. Тайная жизнь Windows 10

  • Содержание выпуска
  • Подписка на «Хакер»

Проверка BadUSB WiFi Ducky

Самое время проверить, не сломалась ли какая-то из плат во время пайки. Подключаем Arduino Micro Pro к компьютеру и ждем, пока установится универсальный драйвер для HID-устройства. «Ардуина» должна сигнализировать двумя красными и одним зеленым светодиодами.

С телефона, планшета или ноутбука смотрим список точек доступа WiFi. Должна появиться новая AP под названием WiFi Duck. Если ее видим, значит, все работает.


Точка доступа WiFi Duck

Подключаемся к ней. Пароль — quackquack (это пароль по умолчанию, его можно будет изменить в настройках). Теперь открываем браузер, идем по адресу 192.168.4.1 (это дефолтный адрес ESP-8266EX в режиме AP) и видим панель управления нашим устройством.

Алгоритм инициализации USB устройств

Назначение USB-устройств определяется кодами классов, которые сообщаются USB-хосту для загрузки необходимых драйверов. Коды классов позволяют унифицировать работу с однотипными устройствами разных производителей. Устройство может поддерживать один или несколько классов, количество которых определяется количеством конечных точек (USB endpoints). В момент подключения хост запрашивает у устройства ряд стандартизованных сведений (дескрипторов), на основании которых принимает решение, как с этим устройством работать. Дескрипторы содержат сведения о производителе и типе устройства, на основании которых хост подбирает программный драйвер.

Обычная флешка будет иметь код класса 08h (Mass Storage Device — MSD), в то время как веб-камера, снабженная микрофоном, будет характеризоваться уже двумя: 01h (Audio) и 0Eh (Video Device Class).


Классы устройств

При подключении USB-устройства оно регистрируется, получает адрес и отправляет свой дескриптор/дескрипторы, чтобы ОС загрузила необходимые драйвера и отправила обратно необходимую конфигурацию. После этого начинается непосредственное взаимодействие с устройством. По завершении работы происходит дерегистрация девайса. Важный момент, который стоит тут отметить: устройства могут иметь несколько дескрипторов, а также могут дерегистрироваться и регистрироваться в качестве другого устройства.

Если вскрыть корпус флешки, то помимо запоминающего устройства (Mass Storage), видимого пользователю, на плате будет еще и контроллер, отвечающий за описанные выше действия.


Единственная часть устройства, видимая пользователю

Убираем пятисекундную задержку при старте

Одно из раздражающих свойств Digispark — это пятисекундная задержка при загрузке. Именно эта задержка позволяет загружать новые скетчи при подключении. Если ее убрать, то для загрузки программы нужно будет замыкать два пина ATtiny. Для борьбы с задержкой понадобится новый загрузчик. Загрузить его можно при помощи программатора, но куда веселее использовать уязвимость типа «скольжение по цепочке NOP» (NOPslide), чтобы загрузить его из памяти, которая обычно используется для скетчей. Однако для записи прошивки все равно понадобится убрать некоторые предохранители внутри чипа. А это, к сожалению, все же требует использовать высоковольтный (12 В) программатор. Говорят, в некоторых версиях Digispark биты-предохранители не выставлены, но в моей они были.

Bad USB или немного истории

Итак, на конференции Black Hat в прошлом году двое исследователей (Karsten Nohl и Jakob Lell) поделились с общественностью опытом, как перепрошить контроллер флешки своей прошивкой. По истечении некоторого времени такая флешка регистрировалась в качестве клавиатуры и набирала заданные команды. Из-за серьезности проблемы ребята не стали выкладывать код эксплойта. Однако, спустя некоторое время, двое других исследователей (Adam Caudill и Brandon Wilson) уже на конференции Derbycon представили миру работоспособный РоС, заточенный под микроконтроллер Phison 2251-03. Код доступен на github.

Трансформация

Как ты понял, сегодня мы попробуем превратить обычную флешку в секретное оружие пентестера!

Прежде всего нам понадобится подходящий девайс. Так как код выложен только для конкретного микроконтроллера, то у нас есть два варианта — либо найти флешку, управляемую данным контроллером, либо провести очень непростую работу по исследованию и перепрошивке любого другого микроконтроллера. В этот раз мы выберем более легкий путь и попробуем найти подходящую флешку (а вот и список узявимого оборудования). Контроллер достаточно распространенный, так что даже каким-то чудом у меня дома среди десятка флешек нашлась подходящая.

Начинаем колдовать

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

  • DriveCom — приложение для взаимодействия с флешками, основанными на контроллере Phison;
  • EmbedPayload — приложение, предназначенное для встраивания RubberDucky-скриптов inject.bin в кастомную прошивку с целью их последующего выполнения при подключении флешки;
  • Injector — приложение, извлекающее адреса из прошивки и встраивающее код патча в прошивку;
  • firmware — кастомная 8051 прошивка, написанная на С;
  • patch — коллекция 8051 патчей, написанных на С.

Функционал BadUSB WiFi Ducky

На web-интерфейсе все по-спартански, ничего лишнего. Четыре страницы, или вкладки, — две рабочие и две информационные:

Scripts. Эта вкладка предназначена для работы с уже готовыми скриптами. Изначально она пуста, но кнопкой UPLOAD NEW SCRIPT можно загрузить написанный скетч в форматах .ino и .txt из памяти устройства (с которого зашли), после чего выполнить его в любое удобное время. Можно скрипты писать самому или найти в интернете готовые решения, например тут. Не все из них рабочие, необходимо будет заранее протестировать (оболочка позволяет редактировать их). Памяти на все это дело предостаточно — почти 3 Мбайт.


Страница Scripts

Live Execute. На этой странице расположено поле, в которое мы пишем скетч. Его можно сразу выполнить или сохранить. При сохранении он отобразится на странице Scripts. Язык написания скетча отличается от привычного в Arduino, поэтому ниже поля для ввода дана инструкция с командами и описанием каждой из них.


Страница Live Execute

Settings. Это страница настроек точки доступа. Тут можно поменять название точки доступа, пароль, сделать ее скрытой. Также можно указать скрипт, который будет выполняться сразу при подключении устройства к компьютеру.

Страница Settings

Info. Эта страница больше носит информационный характер. Тут находится ссылка на автора проекта, SDK, веб-сервер, скрипты и их интерпретатор. Можно также обновить версию прошивки ESP8266 «по воздуху»


Страница Info

Подготавливаем систему

Скачав с гитхаба архив с сорцами, ты обнаружишь, что большинство из них написано на С# и нуждается в компиляции, поэтому без студии не обойтись. Еще один инструмент, который понадобится — Small Device C Compiler, или SDCC. Его надо будет установить в C:\Program Files\SDCC, он понадобится для компиляции прошивки и патчей.

Скомпилировав все инструменты, входящие в архив, можно будет еще раз проверить, подходит ли данная флешка для перепрошивки:

DriveCom.exe /drive=F /action=GetInfo

где F — соответственно, буква накопителя.

TIPS

Если эксперименты пошли не так и с флешкой творится что-то непонятное, то можно попытаться вернуть ее к жизни, вручную переведя ее в boot-режим, и воспользовавшись утилитой для восстановления оригинальной прошивки. Для этого надо перед ее подключение замкнуть 1 и 2 (иногда 2 и 3) контакты контроллера, расположенные по диагонали от точки (чтобы было понятней смотри соотвествующий рисунок). После этого можно попытаться восстановить устройство с помощью официальной утилиты MPAL


Переводим флешку в boot-режим, замыкая указанные контакты

Как сделать программу для Windows

Чтобы создать программу для Windows, скачайте бесплатное средство разработки программ для Windows Microsoft Visual C++ 2010 Express. На указанной странице найдите в середине где-то по названию продукт Microsoft Visual C++ 2010 Express и установите его. Но перед этим проверьте, что у вас не установлена программа .NET Framework версии выше 4. Если такая установлена в вашей системе — перед установкой удалите ее. В комплекте будет поставлен фреймворк нужной версии 4 автоматом. Иначе у вас не будут работать проекты, будет возникать ошибка — Microsoft Resource File To COFF Object Conversion не работает
при попытке компиляции проекта. Windows update автоматом попытается поставить последнюю версию .NET Framework, нужно такую установку отменить — не перезагружать компьютер с новыми обновлениями, а зайти в Windows Update и снять галочку напротив фреймворка.

1) Заходим на сайт, выбираем русский язык, нажимаем INSTALL NOW. 2) После установки запускаем, нажимаем Создать проект. Для начала создадим простую программу с 1 кнопкой — нажимаем эту кнопку, текст в ней меняется. 3) Выбираем шаблон Приложение Windows Forms, внизу вводим название программы, нажимаем OK. 4) Перетаскиваем справа элемент Button на центральное окно с формой и оставляем его внутри формы. 5) Кликаем на форму и на кнопку, при этом справа внизу есть окно Свойства, его содержимое меняется. В этом окне задаём необходимые свойства элементов — текст кнопки и окна. Редактируем свойство Text, пишем там любой текст, например, Моя кнопка. Текст на кнопке меняется, это видно на форме в центральном окне. 6) Теперь сделаем так, чтобы при нажатии на эту кнопку, ее свойство, которое определяет текст на ней менялось на другое. Так же можно менять любые другие свойства. 7) Делаем двойной клик на кнопке Моя кнопка, которая находится в форме в центральном окне, попадаем в файл кода Form.h (его можно выбрать в любое время слева в меню). В этом файле после двойного клика была создана функций button1_Click (остальной код автоматом был создан по шаблону при создании проекта), курсор находится внутри нее, нажмите Enter, чтобы создать пустую строку, куда и будем писать код. 8) Как можно видеть в этом же файле чуть повыше есть разделы — button1 и form1, там заданы начальные установки для элементов — кнопки и формы. Воспользуемся ими, скопируем внутрь нашей функции клика по кнопке (это место отмечено красной стрелкой) строчку, где устанавливается название кнопки, а именно this->button1->Text = L»Моя кнопка»;

Только текст Моя кнопка изменим на Работает! 9) Нажимаем на кнопку с зеленым треугольником, через некоторое время наша программа запустится (если вы не совершили ошибок) и при нажатии на кнопку, текст внутри меняется с Моя кнопка на Работает! 10) Забрать готовую программу (файл .exe) можно в директории текущего пользователя
…Documents\Visual Studio 2010\Projects\Управление роботом\Debug
Весь процесс показан на картинках.

Делаем свою программу для Windows, из которой будем управлять устройством USB

Перенос программы для USB в Windows Forms.
Я перенес программу управления из консольного приложения в приложение с окнами Windows и немного улучшил её — сделал управление шаговым двигателем в дополнение к управлению светодиодом, добавил горячие клавиши запуска двигателя в определенном направлении с заданным количеством шагов, управляющие сигналы драйвера шагового двигателя подключены к портам PB7 (шаг), PB6 (направление), PB5 (питание), светодиод подключен к порту PB0. Вы можете просто мой проект для Microsoft Visual C++ 2010 Express Edition (русская версия) и посмотреть как я это сделал.

Тех. поддержка ответит на ваши вопросы по этой статье [email protected] Перейти к следующей теме обучения Как сделать перемещение инструментов для работы

Получаем burner image

Следующим важным шагом является выбор подходящего burner image-а (8051 бинарник, ответственный за действия по дампу и заливке прошивки на устройство). Обычно их имена выглядят примерно так:

BNxxVyyyz.BIN

Где xx — номер версии контроллера (например, в случае PS2251-03 это будет 03), yyy — номер версии (не важно), а z отражает размер страницы памяти и может быть следующим:

  • 2KM — для 2K NAND чипов;
  • 4KM — для 4K NAND чипов;
  • M — для 8K NAND чипов.

Где искать подходящий burner image для своей флешки, можно посмотреть по этой ссылке.

Высоковольтный программатор

Если вы выберите путь с высоковольтным программатором, то тут большой выбор устройств — например, долларов за 60. Однако вполне можно обойтись Arduino Nano v3 за 4 доллара и макетной платой. Кто-то сделал скетч для Arduino, который автоматически очищает предохранительные биты, что для нас очень удобно. Шаги 1–3 из руководства по этой операции привели меня к желаемому результату.

Вместо того чтобы подключать ATtiny напрямую к макетке, я использовал зажим SOIC-8, чтобы программировать чип напрямую. Также я заменил двенадцативольтовую батарейку на пятивольтовый бустер за 5 баксов. Все это я так часто использовал, что перенес с макетной платы на более постоянную ProtoBoard.

Дампим оригинальную прошивку

Прежде чем приступить к своим грязным эспериментам, которые могут убить флешку, настоятельно рекомендуется все таки сделать дамп оригинальной прошивки, чтобы, если что-то пойдет не так, можно было попытаться восстановиться работоспособность устройства. Сначала переводим девайс в boot-режим:

tools\DriveCom.exe /drive=F /action=SetBootMode

После этого опять нужно воспользоваться утилитой DriveCom, которой надо будет передать букву нашего флеш-драйва, путь до burner image-а и путь к файлу, в который будет сохранена оригинальная сдампленная прошивка. Выглядеть это будет так:

tools\DriveCom.exe /drive=F /action=DumpFirmware /burner=BN03V104M.BIN /firmware=fw.bin

Если ты все сделал правильно, то исходная прошивка сохранится в файл fw.bin.

Подготавливаем payload

Теперь настало время подумать о том, какой функционал мы хотим получить от нашей флешки. Если вспомнить Teensy, для него есть отдельный тулкит Kautilya, который позволяет автоматизировать создание пейлоадов. Для USB Rubber Ducky тут есть целый сайт, позволяющий посредством удобного веб-интерфейса прямо в онлайне создавать скрипты для девайса по своему вкусу. И это помимо списка уже готовых скриптов, которые лежат на гитхабе проекта. На наше счастье, Ducky-скрипты можно сконвертировать в бинарный вид, чтобы затем встроить их в прошивку. Для этого нам пригодится утилита Duck Encoder.

Что же по поводу самих скриптов, то тут есть сразу несколько вариантов:

  • можно набросать нужный скрипт самостоятельно, благо используемый синтаксис не сложен в освоении (см. официальный сайт проекта);
  • воспользоваться уже готовыми вариантами, выложенными на гитхаб, благо там есть и reverse shell, и прочие плюшки — остается только подправить и сконвертировать в бинарный вид;
  • либо же воспользоваться вышеупомянутым сайтом, который в пошаговом режиме проведет через все настройки и позволит скачать готовый скрипт в виде Ducky-скрипта (либо уже в сконвертированном бинарном виде).

Лучше, чем Rubber Ducky

Наверняка вы уже слышали про Rubber Ducky. Это устройство из разряда BadUSB для HID-атаки. Подобного рода девайсы умеют эмулировать клавиатуру и позволяют отправить любые команды, словно их набрал текущий пользователь.

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

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

Заливаем прошивку

Как только у нас на рукам появится готовый пейлоад, настанет время внедрять его в прошивку. Выполняется это следующими двумя командами:

copy CFW.bin hid.bin tools\EmbedPayload.exe inject.bin hid.bin

Обрати внимание, что сначала прошивка копируется в hid.bin, и только затем перепрошивается. Делается это так потому, что пейлоад можно вннедрить в прошивку только один раз, поэтому оригинальный CFW.bin надо сохранить нетронутым.

После такой манипуляции у нас на руках будет файл кастомной прошивки hid.bin с внедренной в него полезной нагрузкой. Остается только залить полученную прошивку на флешку:

tools\DriveCom.exe /drive=F /action=SendFirmware /burner=BN03V104M.BIN /firmware=hid.bin

где F — опять же, буква накопителя.

Изменение программы для компьютера

1) Открываем файл C:\OpenRobo\set-led.c
2) Надо научиться отправлять микроконтроллеру более сложные сообщения, при приеме которых он будет выполнять нужные функции. Сейчас отправляется только 2 сообщения в переменной isOn — 0 = выключить светодиод, 1 = включить светодиод. Научимся отправлять также код 2 = выставить светодиоды через один на порте B (в предыдущем примере мы подготовили микроконтроллер для обработки этого кода, теперь просто пошлём его программой с компьютера).

3) Редактируем файл set-led.c

вставляем сверху от строчки

Программа
1 } else if ((isOn = (strcasecmp(argv[1], «on») == 0)) || strcasecmp(argv[1], «off») == 0) {

следующий код, который добавляет новый код вызова 2 для функции микроконтроллера

Программа
1

2

3

4

} else if (strcasecmp(argv[1], «discoteka») == 0) {

fprintf(stderr, «Every body dance now!\n»);

cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, CUSTOM_RQ_SET_STATUS, 2, 0, buffer, 0, 5000);

if (cnt < 0) {fprintf(stderr, «USB error: %s\n», usb_strerror());}

Код отправляет команду 2 микроконтроллеру, что вызывает там запуск дискотеки. Пересобираем программу для компьютера и нам становится доступна новая команда — discoteka
. Таким образом можно вставить любые другие коды и функции для них. В C++ есть функция
Sleep(1000);
она задаёт задерку выполнения в милисекундах, например 1000 — это 1 секунда. Она полезна, с ней также можете сделать светодиоды мигающими. В будующем эта функция пригодится.

Обратите внимание на функцию usb_control_msg

, в ней можно передать 2 изменяемых параметра (в первом у нас передаётся 2 или переменная isOn, которая равна 1 или 0), следующее число (там стоит 0) может передать еще 1 значение, например, 1 переменная может быть всё также быть изначальной командой на on или off, а второй переменной можно передать, например, номер порта, который следует включить. Получить доступ к этим параметрам в программе для микроконтроллера можно по именам p1 и p2, для этого примера p1=2, p2=0.

Альтернативные варианты

Помимо использования HID-природы флешки и превращения ее в клавиатуру, набирающую наши пэйлоады, можно сотворить еще несколько трюков. Например, можно создать на устройстве скрытый раздел, уменьшив место, которое будет видеть ОС. Для этого сначала надо получить размер устройства в логических блоках:

tools\DriveCom.exe /drive=E /action=GetNumLBAs

Затем в папке patch нужно найти файл base.c, раскомментировать строку #define FEATURE_EXPOSE_HIDDEN_PARTITION и добавить еще одну директиву define, задающую новое число LBA: #define NUM_LBAS 0xE6C980UL (это число должно быть четным, так что если на предыдущем шаге ты получил, скажем, 0xE6C981, то можно уменьшить число до 0xE6C940, например).

После правки исходников, надо поместить прошивку, которую ты хочешь пропатчить, в папку patch под именем fw.bin и запустить build.bat, который создаст в patch\bin\ файл модифицированной прошивки fw.bin. Останется только залить его на флешку.

Аналогичным образом делается Password Path и No Boot Mode Patch, про которые ты можешь подробней посмотреть на гитхабе проекта. Моей же основной целью было научить флешку выполнять заданные действия, чего мы с тобой и добились.

Дорабатываем и совершенствуем

Получился довольно неплохой хакерский девайс, но нет предела совершенству. Приведу несколько примеров того, как можно доработать это детище.

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

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

Если устройство будет внутри системного блока, то можно воспользоваться D1 mini Pro V1.1.0, так как у нее есть разъем под внешнюю антенну — она увеличит радиус действия.

Итог

Поставленной цели мы добились. Более того: думаю, ты теперь понял, что флешки (да и прочие USB-девайсы) нельзя больше рассматривать как просто абстрактный накопитель, хранящий твою информацию. На самом деле — это уже практически компьютер, который можно научить выполнять определенные действия. Хотя на данный момент РоС выложен только для одного конкретного контроллера, будь уверен, что в момент чтения статьи кто-то наверняка ковыряет другие.

Так что будь осторожен при подключении USB-устройств и держи ухо востро.

Расцветка проводников

Цветов встречается относительно немного. Также в схеме может встречаться и группа проводов, которые будут обозначены одним цветом.

Начнём с простого – в распиновке USB 2.0 есть только четыре цвета:

  1. Этот проводник красного цвета – именно к нему поступает напряжение постоянного тока.
  2. Второй белый проводник нужен, чтобы передавать информацию через USB.
  3. Проводник зелёного цвета тоже нужен для передачи данных.
  4. На проводник чёрного цвета производится подача нуля питающего напряжения. Его ещё называют общим (или главным) проводом, а обозначают значком «Ʇ».

В остальных случаях цветов и проводов может быть значительно больше. К примеру, в схеме 3.0 будет уже 9 проводников.

Также не стоит забывать, что некоторые разработчики любят вносить свои изменения в стандартные схемы.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]