Pineapple Nano своими руками Часть 1. Сборка платформы

05a01c36206e42310328acab385c6389.jpg

Pineapple Nano — это хакерское устройство от команды Hak5 для атак на беспроводные сети. Купить его не так просто, поэтому я решил собрать его сам. И эта статья будет как раз о том, как я прошел сквозь огонь и воду, чтобы воссоздать точную копию (ну почти) этого устройства. Поехали!


Описание устройства

WiFi Pineapple — это программно-аппаратный комплекс разработанный компанией Hak5 для тестирования беспроводных сетей на наличие уязвимостей. Вся суть устройства — снижение порога входа в тестирование сетей. Данное устройство имеет интуитивно понятный web-интерфейс и широкий набор инструментов для разведки, отслеживания, трекинга и составления отчетов.

image-loader.svg

Первым делом для создания прототипа подобного устройства необходимо было изучить какое программно-аппаратное решение взяли на вооружение Pineapple, его характеристики, возможности и аппаратную платформу.Немного погуглив, я нашел  документы FCC (федеральная комиссия по коммуникациям США) по сертификации данного устройства, в том числе и фото, с подробными характеристиками.

Фото

34006bc117ddcb993b34a611cc48f472.jpg3b24e33292aef67247c90cacf7cffa6a.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. К терминалу предстоит подключаться еще не раз… Распиновка разъема роутера представлена на фото ниже, может кому окажется полезным.

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. 

45d64f19cb84956fbc925146f43a884b.jpg

Микросхему памяти я без проблем сдул паяльным феном, а чип памяти решил не припаивать на плату, а вывел его на dip-панель, чтобы легко подключать и отключать память для ее перепрошивки.

bbe3231b9fb10a3e9ec229e767ab1c30.jpg

Потом купил беспроводной WiFi-адаптер на чипсете Atheros9271 — Tp-Link TL-WN722N. Usb-хаб взял самый простой и наиболее дешевый, так же для тестов использовалась usb-флеш карта на 1 Gb.

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, по словам продавца влагозащищенный. Распотрошив роутер, беспроводной адаптер, и собрав все в кучу получили следующую картину:

57bfbd6c7a08a77488f36803c531e51f.jpg

На фото можно увидеть АКБ, преобразователь напряжения,   USB-хаб, сам роутер, беспроводной адаптер, плату BMS, переходник USB-Uart, индикатор уровня заряда и флеш-карту.

Дальше осталось дело за малым — коммутировать это все. Но был еще один момент, который меня не устраивал — это «родная» антенна на роутере. Мы же хотим оставить возможность подключать узконаправленные антенны, поэтому я просто припаял вместо штатной антенны разъем типа U.fl — чтобы легко было подключить внешнюю антенну (естественно, родная антенна была отключена посредством демонтажа ёмкости) .

d11a17e7eb0a5ed14c2355656364eeca.jpg

Приварил ко всем аккумуляторам точечной сваркой по пластинке, собрал их воедино. Припаял плату BMS, подключил на выход преобразователь напряжения на 5 вольт — они нам понадобятся для питания роутера и всей остальной периферии. Расположение компонентов части питания стало выглядеть вот так:

2b50037b4475c96a26c909a7c8b23422.jpg

А самая основная часть с роутером вот так:

4dec744ca5fa1686a74f438f80d52df4.jpg

На фото можно увидеть выведенный разъем Usb-B для подключения к терминалу устройства (на компьютере определяется как виртуальный Com-порт).

Вторым же недостатком оригинального Pineapple является отсутствие разъема для подключения к проводным сетям (устройство эмулирует сетевую карту при подключении кабелем Usb). Ну, а вдруг, мы захотим изучать безопасность не только беспроводных технологий, а старым-добрым тоже уделим внимание? Для этого справа внизу корпуса позже разместится панельный разъем RJ45 — теперь устройство можно незаметно подключить в сеть, и оставить его там. 

Решил сделать оригинальную кнопку включения — оно осуществляется поворотом ключа.

Шифр данному изделию был дан «Тропа-М». Почему? Не спрашивайте, сам не знаю. Но я решил озаботиться нанесением маркировки на корпус, для чего на пленке лазером выжег нужные мне надписи, которые вскоре были наклеены на корпус.

0a20e55f45040a3e709abd282fbcf837.jpg

Ну и в самом конце расскажу о комплектации своего «изделия»:

27ab2d9cba350a84ef803e94ed8955a2.jpg

  • зарядное устройство на 16,8 В (4 банки по 4,2 В);

  • — Кабель Usb-B (для подключения к терминалу устройства);

  • Антенны 2 шт;

  • Адаптер Usb-Ethernet  с драйвером к нему на диске;

  • Ethernet-кабель;

  • Ключ для запуска;

  • Ремень.

Какой ремень, для чего? Для скрытого нательного ношения, конечно!

6d5cdc527cfa21ac286db963a493b845.jpg

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

© Habrahabr.ru