![](https://habrastorage.org/getpro/habr/upload_files/05a/01c/362/05a01c36206e42310328acab385c6389.jpg)
Pineapple Nano - это хакерское устройство от команды Hak5 для атак на беспроводные сети. Купить его не так просто, поэтому я решил собрать его сам. И эта статья будет как раз о том, как я прошел сквозь огонь и воду, чтобы воссоздать точную копию (ну почти) этого устройства. Поехали!
Описание устройства
WiFi Pineapple - это программно-аппаратный комплекс разработанный компанией Hak5 для тестирования беспроводных сетей на наличие уязвимостей. Вся суть устройства - снижение порога входа в тестирование сетей. Данное устройство имеет интуитивно понятный web-интерфейс и широкий набор инструментов для разведки, отслеживания, трекинга и составления отчетов.
![](https://habrastorage.org/getpro/habr/upload_files/2f0/02e/f33/2f002ef339bcbedb986f2490b92fad7f.png)
Первым делом для создания прототипа подобного устройства необходимо было изучить какое программно-аппаратное решение взяли на вооружение Pineapple, его характеристики, возможности и аппаратную платформу.Немного погуглив, я нашел документы FCC (федеральная комиссия по коммуникациям США) по сертификации данного устройства, в том числе и фото, с подробными характеристиками.
Фото
![](https://habrastorage.org/getpro/habr/upload_files/340/06b/c11/34006bc117ddcb993b34a611cc48f472.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/3b2/4e3/329/3b24e33292aef67247c90cacf7cffa6a.jpg)
Судя по фото и документации, Pineapple Nano построен на довольно популярном процессоре Atheros9331, который применяется во многих сетевых устройствах (роутеры Tp-Link, мини компьютер Black Swift и т.д.). На борту платы так же имеем:
беспроводной адаптер Atheros9271;
адаптер Usb-Ethernet Asix AX88179;
RAM 64 mb;
Flash 16 mb;
разъем для карт micro-SD.
Непродолжительный поиск внутренней структуры устройства дал свои плоды в виде отчета dmesg, с помощью которого была получена необходимая информация:
[ 6.410000] hub 1-1:1.0: USB hub found
[ 6.430000] hub 1-1:1.0: 4 ports detected
[ 12.230000] usb 1-1.2: new high-speed USB device number 4 using ehci-platform
[ 14.150000] usb 1-1.1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
что говорит нам о том, что разработчики устройства пошли простым путем и сделали подключение беспроводного адаптера и SD-карты посредством USB-хаба. Что же, мы сделаем так же.
Кроме этого мы убедились в том, что используется беспроводной адаптер на чипе Atheros9271:
[ 14.150000] usb 1-1.1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
Выбор платформы
Наиболее подходящим и доступным роутером, построенном на чипсете Atheros9331 на момент поиска платформы был широко известный Tp-Link TL-MR3020. Он имеет на борту разъем USB, который позволяет подключить к нему USB-хаб, на плате есть разведенный разъем Uart-ttl для подключения к терминалу устройства, ну и немаловажный момент - он обладает маленьким размером.
Для подключения к терминалу роутера был приобретен USB-Uart адаптер построенный на чипе CH340. К терминалу предстоит подключаться еще не раз... Распиновка разъема роутера представлена на фото ниже, может кому окажется полезным.
![](https://habrastorage.org/getpro/habr/upload_files/b90/788/45b/b9078845b5ebb7e64ad5ecc123fd3bd7.jpg)
Основными недостатками, которые не позволяли полноценно использовать данный роутер в своем проекте были мизерные Flash и RAM память (4 Mb и 32 Mb соответственно), хотя только для прошивки Pineapple требуется 16 Mb.
Увеличение RAM до максимально возможных 64 Mb памяти оказалось довольно простым: на сайте openwrt.org в разделе описания данного роутера есть список чипов RAM-памяти, которые могут быть установлены взамен заводского. При этом загрузчик сам определяет размер памяти во время запуска, и программно изменения вносить не нужно. Нужный чип был найден на разборке в линейке оперативной памяти от старого ПК, и при помощи паяльного фена был просто заменен заместо заводского.
С Flash памятью все гораздо сложнее - замена чипа на другой также подразумевает под собой изменение загрузчика, способного работать с увеличенной памятью. На том же сайте представлены чипы, которые могут быть установлены (объемом до 16 Mb включительно). Мной был выбран чип китайского производителя WinBond W25Q128 - на 16 Mb. Прошивал дешевым программатором из Китая на чипе CH341.
![](https://habrastorage.org/getpro/habr/upload_files/45d/64f/19c/45d64f19cb84956fbc925146f43a884b.jpg)
Микросхему памяти я без проблем сдул паяльным феном, а чип памяти решил не припаивать на плату, а вывел его на dip-панель, чтобы легко подключать и отключать память для ее перепрошивки.
![](https://habrastorage.org/getpro/habr/upload_files/bbe/323/1b9/bbe3231b9fb10a3e9ec229e767ab1c30.jpg)
Потом купил беспроводной WiFi-адаптер на чипсете Atheros9271 - Tp-Link TL-WN722N. Usb-хаб взял самый простой и наиболее дешевый, так же для тестов использовалась usb-флеш карта на 1 Gb.
![](https://habrastorage.org/getpro/habr/upload_files/333/ef4/f69/333ef4f69a9e87c1b3f324cef80b2fff.jpg)
В качестве альтернативного загрузчика был использован загрузчик от pepe2k. Если говорить коротко, то это модернизированный загрузчик версии U-Boot 1.1.4. В отличии от заводского загрузчика он обладает поддержкой чипов памяти объемом 16 Mb и позволяет обновлять прошивку , образы U-Boot и ART (Atheros Radio Test) прямо из веб-браузера без необходимости доступа к последовательной консоли и запуска TFTP-сервера.
Сборка устройства
Первым недостатком устройства Pineapple Nano, на мой взгляд, является отсутствие собственного источника питания. Поэтому в своем устройстве я решил поместить в корпус помимо роутера и вспомогательных устройств еще и аккумуляторную сборку.
Были приобретены 4 аккумулятора типоразмера 18650 емкостью 2300 mAh каждый. Для корректной работы аккумуляторной сборки установил плату защиты, балансир и светодиодный индикатор уровня заряда аккумуляторной сборки. Для питания роутера и всех вспомогательных устройств установил преобразователь напряжения до 5 вольт, купленный, как и большинство всех составляющих, в Китае.
Корпус был также приобретен на просторах Ali, по словам продавца влагозащищенный. Распотрошив роутер, беспроводной адаптер, и собрав все в кучу получили следующую картину:
![](https://habrastorage.org/getpro/habr/upload_files/57b/fbd/6c7/57bfbd6c7a08a77488f36803c531e51f.jpg)
На фото можно увидеть АКБ, преобразователь напряжения, USB-хаб, сам роутер, беспроводной адаптер, плату BMS, переходник USB-Uart, индикатор уровня заряда и флеш-карту.
Дальше осталось дело за малым - коммутировать это все. Но был еще один момент, который меня не устраивал - это “родная” антенна на роутере. Мы же хотим оставить возможность подключать узконаправленные антенны, поэтому я просто припаял вместо штатной антенны разъем типа U.fl - чтобы легко было подключить внешнюю антенну (естественно, родная антенна была отключена посредством демонтажа ёмкости) .
![](https://habrastorage.org/getpro/habr/upload_files/d11/a17/e7e/d11a17e7eb0a5ed14c2355656364eeca.jpg)
Приварил ко всем аккумуляторам точечной сваркой по пластинке, собрал их воедино. Припаял плату BMS, подключил на выход преобразователь напряжения на 5 вольт - они нам понадобятся для питания роутера и всей остальной периферии. Расположение компонентов части питания стало выглядеть вот так:
![](https://habrastorage.org/getpro/habr/upload_files/2b5/003/7b4/2b50037b4475c96a26c909a7c8b23422.jpg)
А самая основная часть с роутером вот так:
![](https://habrastorage.org/getpro/habr/upload_files/4de/c74/4ca/4dec744ca5fa1686a74f438f80d52df4.jpg)
На фото можно увидеть выведенный разъем Usb-B для подключения к терминалу устройства (на компьютере определяется как виртуальный Com-порт).
Вторым же недостатком оригинального Pineapple является отсутствие разъема для подключения к проводным сетям (устройство эмулирует сетевую карту при подключении кабелем Usb). Ну а вдруг, мы захотим изучать безопасность не только беспроводных технологий, а старым-добрым тоже уделим внимание? Для этого справа внизу корпуса позже разместится панельный разъем RJ45 - теперь устройство можно незаметно подключить в сеть, и оставить его там.
Решил сделать оригинальную кнопку включения - оно осуществляется поворотом ключа.
Шифр данному изделию был дан “Тропа-М”. Почему? Не спрашивайте, сам не знаю. Но я решил озаботиться нанесением маркировки на корпус, для чего на пленке лазером выжег нужные мне надписи, которые вскоре были наклеены на корпус.
![](https://habrastorage.org/getpro/habr/upload_files/0a2/0e5/5f4/0a20e55f45040a3e709abd282fbcf837.jpg)
Ну и в самом конце расскажу о комплектации своего “изделия”:
![](https://habrastorage.org/getpro/habr/upload_files/27a/b2d/9cb/27ab2d9cba350a84ef803e94ed8955a2.jpg)
зарядное устройство на 16,8 В (4 банки по 4,2 В);
- Кабель Usb-B (для подключения к терминалу устройства);
Антенны 2 шт;
Адаптер Usb-Ethernet с драйвером к нему на диске;
Ethernet-кабель;
Ключ для запуска;
Ремень.
Какой ремень, для чего? Для скрытого нательного ношения, конечно!
![](https://habrastorage.org/getpro/habr/upload_files/6d5/cdc/527/6d5cdc527cfa21ac286db963a493b845.jpg)
На этом моменте этап сборки платформы считаю законченным. Все аппаратно максимально соответствует оригиналу, все недостатки учтены и изменены на свой лад. Осталось дело за малым - воткнуть прошивку в устройство, но об этом будет отдельная статья.