<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>E1tex</title><generator>teletype.in</generator><description><![CDATA[E1tex]]></description><image><url>https://img4.teletype.in/files/b7/41/b7416bc8-648a-49a0-8b02-c1eb607ff212.png</url><title>E1tex</title><link>https://teletype.in/@e1tex</link></image><link>https://teletype.in/@e1tex?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=e1tex</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/e1tex?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/e1tex?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Mon, 06 Apr 2026 12:16:22 GMT</pubDate><lastBuildDate>Mon, 06 Apr 2026 12:16:22 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@e1tex/pineapplewitheyes</guid><link>https://teletype.in/@e1tex/pineapplewitheyes?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=e1tex</link><comments>https://teletype.in/@e1tex/pineapplewitheyes?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=e1tex#comments</comments><dc:creator>e1tex</dc:creator><title>Pineapple with Eyes</title><pubDate>Mon, 04 Mar 2024 20:38:36 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/d0/98/d098129e-9f2f-45cf-bc17-0bb6e56ff8c5.png"></media:content><category>Pentest</category><description><![CDATA[<img src="https://img4.teletype.in/files/f0/10/f0104864-e04d-4459-93a5-e981df16e4c9.jpeg"></img>В данной статье мы рассмотрим сборку аппаратной закладки, которая не будет требовать прямого доступа к атакуемым системам - Wi-Fi Pineapple. Кроме того, мы изучим, как это устройство может быть задействовано не только при атаках на Wi-Fi сети, но и в качестве IP-камеры для наблюдения за объектами.]]></description><content:encoded><![CDATA[
  <p id="EcvO">В данной статье мы рассмотрим сборку аппаратной закладки, которая не будет требовать прямого доступа к атакуемым системам - Wi-Fi Pineapple. Кроме того, мы изучим, как это устройство может быть задействовано не только при атаках на Wi-Fi сети, но и в качестве IP-камеры для наблюдения за объектами.</p>
  <h2 id="IrlE">Hardware List:</h2>
  <ol id="fehL">
    <li id="T136">Завалявшаяся на полках камера, работающая на стеке протоколов UPnP(Universal Plug and Play);</li>
    <li id="EhEg">Raspberry Pi Zero 2 (W - опционально);</li>
    <li id="Hevg">Пассивный USB хаб;</li>
    <li id="NWEs">USB-модем;</li>
    <li id="VsWB">Источник питания.<br /></li>
  </ol>
  <h2 id="fdnA">Chapters:</h2>
  <ol id="jSPM">
    <li id="EflE">OS Installation;</li>
    <li id="4xkj">Network;</li>
    <li id="ymFV">Motion.</li>
  </ol>
  <p id="WGRu"></p>
  <h2 id="4O09">OS Installation</h2>
  <p id="XOnr">В данном, как и в любом другом проекте, <strong>выбор ОС </strong>для одноплатников - <strong>дело сугубо индивидуальное</strong>. Я бы советовал смотреть в сторону <strong>DietPi </strong>в том случае, если вам нужен максимально легкий и ненагруженный образ, и в сторону <strong>Kali-ARM </strong>в случае, если вы планируете использовать инструментарий <strong>Kali</strong>, который поставляется из коробки. Дальнейший гайд будет строиться на <strong>Raspberry Pi Zero 2 W с Kali на борту</strong>.</p>
  <ol id="8ssF">
    <li id="2PGr">Скачиваем готовый образ с <a href="https://www.kali.org/get-kali/#kali-arm" target="_blank">https://www.kali.org/get-kali/#kali-arm</a> и с помощью Rufus или другого подобного ПО загружаем его на MicroSD карточку.</li>
    <li id="itxL">Вставляем MicroSD в соответсвующий соккет на плате и подрубаем монитор, клавиатуру и питание. Если вы используете Raspberry Pi Zero, придется приобрести несколько OTG - {ваш_сокет} - mini-HDMI(X1), {ваш_сокет} - micro-USB(X2), а так же несколько соразмерных радиаторов, чтобы температура процессора не вываливалась за допустимые рамки.</li>
    <li id="3ENA">Сейчас Kali должна завестись, <strong>если вдруг вы получаете ошибку </strong><code>Kernel panic - not syncing: VFS: Unable to mount root fs on unknown- block(179,6)</code>, скорее всего <strong>дело в плохой microSD карточке</strong>, не знаю почему так, но я сам некоторое время боролся с этой ошибкой, купив карточку Kingston с Озона за 400 вечно деревянных.</li>
  </ol>
  <figure id="qCEh" class="m_retina">
    <img src="https://img3.teletype.in/files/67/48/67482418-3108-4974-b55c-fcfbb01d3cb2.png" width="585.5" />
    <figcaption>https://forums.raspberrypi.com/viewtopic.php?t=112409</figcaption>
  </figure>
  <p id="QyNz"></p>
  <h2 id="QJF9">Network</h2>
  <p id="fwbj"></p>
  <h3 id="JW0c">Setting Up Modem:</h3>
  <p id="JRiT">Для того чтобы мы <strong><em>не были связаны с малиной одной сетью </em></strong>и могли ходить на нее, где бы мы не находились, необходимо дать малине доступ в Интернет. С этим прекрасно <strong>справляется самый обычный 4G-модем</strong>. </p>
  <p id="BToY">Для того, чтобы не танцевать с бубном при попытке подключения к модемовской Wi-Fi сети при буте, <strong>сделаем из модема внешнюю сетевую карту</strong>. Для этого нам при каждом запуске необходимо <strong>активировать сетевой интерфейс модема</strong>, прописав в<em> /etc/network/interfaces</em> следующие строки:</p>
  <figure id="7QgR" class="m_column">
    <img src="https://img2.teletype.in/files/5b/93/5b93b48a-4f91-4a0e-badf-b70fc3f38d1b.png" width="1655" />
    <figcaption>sudo nano /etc/network/interfaces</figcaption>
  </figure>
  <p id="ZX4C"></p>
  <h3 id="TWCP">VPN Tunnel:</h3>
  <p id="O57O">Настройка OpenVPN начинается с генерации ключей. Генерируемые ключи делятся на:</p>
  <ul id="rvQA">
    <li id="XPMI"><strong>Главный CertificateAuthority (CA) сертификат и ключ</strong>, используемый для подписания каждого сертификата сервера и клиента.</li>
    <li id="fx5R"> <strong>Публичный и приватный ключи </strong>для <strong>сервера </strong>и каждого <strong>клиента </strong>отдельно.</li>
  </ul>
  <p id="v5Jx"></p>
  <p id="K9Xr"><strong>VPS:</strong></p>
  <p id="NlfH"><em><strong>Устанавливаем </strong>пакет <strong>OpenVPN</strong>:</em><br /><code>sudo apt install openvpn</code></p>
  <p id="mlmj"><br /><em>С помощью Easy-RSA <strong>создаем серверные ключи и сертификаты</strong>:</em></p>
  <p id="yjsx"><code>make-cadir /etc/openvpn/easy-rsa</code> - копируем шаблонную директорию easy-rsa в /etc/openvpn/.</p>
  <p id="eNhz"></p>
  <p id="mXAF"><em>Переходим в скопированную директорию и <strong>выполняем </strong>следующие <strong>команды</strong>:</em></p>
  <p id="NRPT"><code>./easyrsa init-pki</code> - Инициализируем структуру каталогов и файлов для управления открытыми ключами.</p>
  <figure id="MlOv" class="m_column">
    <img src="https://img4.teletype.in/files/77/27/77277976-fa8d-42da-8fbe-308105cefa37.png" width="1230" />
    <figcaption>./easyrsa init-pki output</figcaption>
  </figure>
  <p id="uhjO"><code>./easyrsa build-ca</code> - Создаем самоподписанный центр сертификации (CA), который будет использоваться для подписи сертификатов.</p>
  <figure id="qDji" class="m_column">
    <img src="https://img2.teletype.in/files/99/0f/990fb88a-5ceb-47ab-ba9f-ba98a3f01ac4.png" width="1652" />
    <figcaption>./easyrsa build-ca output</figcaption>
  </figure>
  <p id="UQbi"><code>./easyrsa gen-dh</code> - Генерируем файл параметров обмена ключами Diffie-Hellman (DH) для использования в процессе установки безопасного соединения.</p>
  <figure id="v5kl" class="m_column">
    <img src="https://img4.teletype.in/files/79/7e/797eded6-838b-4824-96cd-5a53afdbc2e1.png" width="2343" />
    <figcaption>./easyrsa gen-dh output</figcaption>
  </figure>
  <p id="Sdm4"><code>./easyrsa gen-req ovpn-server nopass</code> - Генерируем запрос на создание сертификата для сервера OpenVPN, используя имя &quot;ovpn-server&quot;, без запроса пароля.</p>
  <figure id="Q2Ko" class="m_column">
    <img src="https://img4.teletype.in/files/b8/4f/b84f6345-d116-415d-949f-ab468be7a106.png" width="1196" />
    <figcaption>./easyrsa gen-req ovpn-server nopass output</figcaption>
  </figure>
  <p id="8KB7"><code>./easyrsa sign-req server ovpn-server</code> - Подписываем запрос на сертификат для сервера OpenVPN с помощью CA, используя предварительно определенные настройки.</p>
  <figure id="YDuM" class="m_column">
    <img src="https://img3.teletype.in/files/6b/bc/6bbc362e-eb6c-4c09-9999-28fc55501c14.png" width="1639" />
    <figcaption>./easyrsa sign-req server ovpn-server output</figcaption>
  </figure>
  <p id="F4nG"><code>./easyrsa gen-req pi_zero nopass</code> - Генерируем запрос на создание сертификата для клиента с именем &quot;pi_zero&quot; без пароля.</p>
  <figure id="ijUT" class="m_column">
    <img src="https://img1.teletype.in/files/49/d2/49d242fd-a8ab-42ba-8bd9-109a605d59b3.png" width="1209" />
    <figcaption>./easyrsa gen-req pi_zero nopass output</figcaption>
  </figure>
  <p id="yAYa"><code>./easyrsa sign-req client pi_zero</code> - Подписываем запрос на сертификат для клиента с именем &quot;pi_zero&quot; с использованием CA.</p>
  <figure id="JIUv" class="m_column">
    <img src="https://img4.teletype.in/files/fc/84/fc84e049-c433-4c4b-b193-cfd96377d317.png" width="1683" />
    <figcaption>./easyrsa sign-req client pi_zero output</figcaption>
  </figure>
  <p id="PjDZ"></p>
  <p id="w9ww"><strong>Создаем конфигурационный файл </strong>для сервера OpenVPN (/etc/openvpn/server.conf):</p>
  <p id="rAIg"><code>port 1194<br />proto udp<br />dev tun<br />ca /etc/openvpn/keys/ca.crt<br />cert /etc/openvpn/keys/ovpn-server.crt<br />key /etc/openvpn/keys/ovpn-server.key<br />dh /etc/openvpn/keys/dh.pem<br />server 10.8.0.0 255.255.255.0<br />ifconfig-pool-persist ipp.txt<br />push &quot;redirect-gateway def1 bypass-dhcp&quot;<br />push &quot;dhcp-option DNS 8.8.8.8&quot;<br />keepalive 10 120<br />cipher AES-256-CBC<br />comp-lzo<br />user nobody<br />group nogroup<br />persist-key<br />persist-tun<br />status openvpn-status.log<br />verb 3</code></p>
  <p id="3kIU"></p>
  <p id="KkvA"><strong>Запускаем </strong>OpenVPN <strong>сервер:</strong></p>
  <p id="CxW9"><code>systemctl start openvpn@server</code> - Запускаем демона;<br /><code>systemctl enable openvpn@server</code> - Включаем автозапуск демона при буте системы.</p>
  <p id="oWeM"></p>
  <p id="jOi0"><strong>Проверяем </strong>поднялся ли интерфейс через ip a:</p>
  <figure id="nZEC" class="m_column">
    <img src="https://img4.teletype.in/files/b7/93/b7932059-8600-4b8c-b044-74c0f857e9f6.png" width="2273" />
    <figcaption>ip a</figcaption>
  </figure>
  <p id="u8bO"></p>
  <h3 id="op6g">Raspberry Pi:</h3>
  <p id="f7NY">Устанавливаем OpenVPN:<br /><code>sudo apt install openvpn</code></p>
  <p id="Yp7N"></p>
  <p id="xQXY">С помощью csp <strong>перекидываем ключи и сертификаты </strong>на малинку:</p>
  <p id="MaaT"><code>scp user@your_vps_ip:/path/to/your/files/ca.crt /path/on/your/computer<br />scp user@your_vps_ip:/path/to/your/files/pi_zero.key /path/on/your/computer<br />scp user@your_vps_ip:/path/to/your/files/pi_zero.crt /path/on/your/computer</code></p>
  <p id="TZs4"></p>
  <p id="WUAd"><strong>Создаем конфигурационный файл </strong>для клиента OpenVPN (client.ovpn):</p>
  <p id="wwcY"><code>client<br />dev tun<br />proto udp<br />remote your_vps_ip 1194<br />resolv-retry infinite<br />nobind<br />user nobody<br />group nogroup<br />persist-key<br />persist-tun<br />ca ca.crt<br />cert client.crt<br />key client.key<br />cipher AES-256-CBC<br />comp-lzo<br />verb 3</code></p>
  <p id="7G4h"></p>
  <p id="mMWT"><strong>Пробуем поднять туннель </strong>ручками:<br /><code>sudo openvpn --config client.ovpn</code></p>
  <p id="ZjAf"></p>
  <p id="mzFI">Если все поднялось, и мы <strong>можем с впски пингануть малинку</strong>, можем двигаться дальше.<br />Теперь нам необходимо сделать так, чтобы <strong>туннель поднимался при запуске малины</strong>, для этого создадим <em>systemd </em>unit файл для клиентского соединения (<em>/etc/systemd/system/openvpn-client.service</em>):</p>
  <p id="YQBN"><code>[Unit]<br />Description=OpenVPN to VPS<br />After=network.target</code></p>
  <p id="26Ha"><code>[Service]<br />Type=simple<br />ExecStart=/usr/sbin/openvpn --config /path/to/client.ovpn</code></p>
  <p id="ecrT"><code>[Install]<br />WantedBy=multi-user.target</code></p>
  <p id="HLMr"></p>
  <p id="IfpD">На всякий случай, во избежание появления критических ошибок, мы можем добавить еще две опции в секцию <code>[Service]</code>:</p>
  <p id="vrHm"><br />Опция <code>Restart=always</code> в systemd устанавливает правило перезапуска службы всегда, даже в случае аварийного завершения работы.<br />А опция <code>RestartSec=3</code> устанавливает время задержки перед повторным запуском службы в секундах.</p>
  <p id="b6Ua"></p>
  <p id="V4AG">Перезапускаем systemd:<br /><code>systemctl daemon-reload</code></p>
  <p id="dvyc"></p>
  <p id="WPdM">Запускаем и активируем написанный демон:<br /><code>systemctl start openvpn-client<br />systemctl enable openvpn-client</code></p>
  <p id="rl5b"></p>
  <p id="x34s"></p>
  <h3 id="s26E">SSH Port Forwarding:</h3>
  <p id="89aX"></p>
  <p id="boM4">Для того, чтобы сделать портфорвардинг с одного интерфейса впски на другой, мы можем воспользоваться SSH. Для этого нам будет достаточно одной команды, выполненной на VPS:<br /><code>ssh -f -N -L 0.0.0.0:90:raspberry_ip:90 user@raspberry_ip</code></p>
  <p id="vQje">О том, почему прокидываем именно 90 порт будет написано чуть позже. <br />Мы можем либо сделать аналогичный с предыдущим демон, либо запускать эту команду, когда нам необходимо, флаг -f поднимет туннель в фоновом режиме.</p>
  <p id="weDS">Если же вам понадобится реализовать портфорвардинг через демон, необходимо будет настроить аутентификацию с использованием ключей. Для этого сначала генерируем на впске ключи, а потом закидываем их на малинку:<br /><code>ssh-keygen<br />ssh-copy-id user@raspberry_ip</code></p>
  <p id="dJQL"></p>
  <h2 id="4vzc">Motion</h2>
  <h3 id="x8N4">Installation:</h3>
  <p id="0b6j">Motion — это программа, которая отслеживает видеосигнал с одной или нескольких камер, способная обнаружить, изменилась ли значительная часть изображения.</p>
  <p id="vZk5">Скачать уже собранный .deb пакет можно по ссылке(нас интересует версия под архитектору ARM64 - *_motion_4.6.0-1_arm64.deb):<br />https://github.com/Motion-Project/motion/releases/tag/release-4.6.0</p>
  <p id="dgAN">Альтернатива - скачать motion через пакетный менеджер apt:</p>
  <figure id="hew2" class="m_column">
    <img src="https://img1.teletype.in/files/8a/61/8a61d11d-9a4b-4d22-9379-84c11534e252.png" width="941" />
    <figcaption>sudo apt install motion</figcaption>
  </figure>
  <p id="OKjR">Как уже отмечалось, для работы подойдет любая UpNP камера. Для того, чтобы проверить работоспособность и совместимость камеры, мы можем воспользоваться инструментом v4l2-ctl, устанавливается через пакетный менеджер APT - sudo apt _install_ v4l-utils. </p>
  <p id="xrsj">Ниже показаны два вывода, если вы получаете ошибку &quot;Cannot open device /dev/video0, exiting&quot;, через lsusb проверяйте видит ли система вашу камеру.</p>
  <figure id="lYKm" class="m_column">
    <img src="https://img4.teletype.in/files/bd/8b/bd8b2b30-ad29-4bbe-afba-2f5d1bcab0cc.png" width="747" />
    <figcaption>Camera Testing</figcaption>
  </figure>
  <p id="75Fx"></p>
  <h3 id="kEvy">Config File:</h3>
  <p id="rCEY">Основной конфигурационный файл motion.conf находится в директории /etc/motion. Ниже расписаны все флаги, которые понадобятся нам при первоначальной настройке motion, для самостоятельного изучения идем в документацию(<a href="https://motion-project.github.io/motion_config.html" target="_blank">https://motion-project.github.io/motion_config.html</a>):</p>
  <ul id="cgxZ">
    <li id="7CtF"><code>daemon on</code>: Этот параметр включает режим демона, то есть motion будет работать в фоновом режиме как служба.</li>
    <li id="SkTE"><code>stream_port 90</code>: Устанавливает порт, на котором будет доступен стрим с видео.</li>
    <li id="DILR"><code>stream_quality 100</code>: Определяет качество видеопотока (от 1 до 100, где 100 - максимальное качество).</li>
    <li id="n2H5"><code>stream_maxrate 20</code>: Ограничивает максимальную скорость потока видео в кадрах в секунду.</li>
    <li id="hjvM"><code>stream_localhost off</code>: Позволяет удаленным устройствам просматривать видеопоток.</li>
    <li id="4kA1"><code>stream_limit 0</code>: Задает ограничение на количество соединений к видеопотоку.</li>
    <li id="0gNH"><code>width 1280, height 720</code>: Определяют ширину и высоту кадра видеопотока(Выставляет по максималке, которую поддерживает ваша камера).</li>
    <li id="GVje"><code>framerate 20</code>: Устанавливает частоту кадров в секунду.</li>
    <li id="YBvI"><code>locate_motion_mode on, locate_motion_style redbox</code>: Показывает область движения на видео с помощью красного прямоугольника.</li>
    <li id="H24o"><code>stream_auth_method 1</code>: Выбирает метод аутентификации (1 - базовая аутентификация).</li>
    <li id="DdeZ"><code>stream_authentication user:pass</code>: Устанавливает имя пользователя и пароль для доступа к видеопотоку.</li>
  </ul>
  <p id="qne8"></p>
  <h3 id="YPG5">Testing Motion:</h3>
  <p id="eLQO">Пробуем запускать motion:<br /><code>sudo motion -b</code><br />Если все успешно запустилось, мы можем попробовать зайти по айпишке vps&#x27;ки на stream_port, кооторый мы указали в конфиг файле(у меня 90) и проверить насколько успешно все завелось:</p>
  <figure id="IJFu" class="m_column">
    <img src="https://img4.teletype.in/files/32/14/321433f2-6dc7-4ba6-ba58-153ae0c454a9.png" width="1098" />
    <figcaption>Я)</figcaption>
  </figure>
  <p id="u0Ip">Для запуска motion при ребуте добавляем в кронтаб следующую строку:<br /><code>@reboot motion -b</code></p>
  <p id="Jole">Теперь осталось только заныкать камеру так, чтобы объект наблюдения ничего не заметил, представляю вариант, который использовал я, дабы затестить насколько беспалевно ее можно спрятать:</p>
  <figure id="tfJq" class="m_column">
    <img src="https://img3.teletype.in/files/ef/76/ef76477c-19d5-4962-870f-a004bf51ea64.png" width="960" />
    <figcaption>Там прохладно кстати!!!</figcaption>
  </figure>
  <figure id="XrmU" class="m_column">
    <img src="https://img2.teletype.in/files/5a/23/5a232cfe-e98e-486d-97ca-9ad13e65d184.png" width="960" />
    <figcaption>Можно закрепить и поглубже, но так вы хоть ее увидите..</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="yCDI">В идеале ее можно <strong>засунуть прям над объектом наблюдения</strong>, это без лишних хлопот и прочей хардварной шляпы поможет узнать, что и когда вводил на клавиатуре объект наблюдения.</p>
  </section>
  <p id="SeOf"></p>
  <h3 id="hkCr">Bonus Pineapple Part:</h3>
  <p id="WR5V"><strong>Не ради кликбейтов </strong>была названа эта статья! Так как я использовал маленький пасивный хаб для подключения камеры с модемом, у нас <strong>осталось </strong>еще как минимум <strong>два USB порта</strong>, куда можно <strong>воткнуть внешний Wi-Fi адаптер </strong>с режимом монитора:</p>
  <figure id="tnnw" class="m_custom">
    <img src="https://img1.teletype.in/files/c8/1d/c81df635-45ef-4efe-b7c6-1953ed3676e2.png" width="254.9947643979058" />
    <figcaption>Alfa Network AWUS036AC</figcaption>
  </figure>
  <figure id="ftGQ" class="m_column">
    <img src="https://img3.teletype.in/files/2c/70/2c70a2ac-58e1-4262-98b3-cc6a6c367a72.png" width="1280" />
    <figcaption>Сборка с Raspberry Pi 4B.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ezXR">А для <strong>счастливых обладателей </strong>Raspberry Pi Zero 2 <strong>W </strong>со встроенным Wi-Fi адаптером, хорошей новостью будет тот факт, что <strong>его встроенный адаптер можно перепрошить </strong>и пользоваться им в режиме монитора. Прошивку можно найти здесь:<br />https://re4son-kernel.com/</p>
  </section>
  <p id="glNt">Кстати, как одно из наблюдений - получившаяся сборка прекрасно работает не только на Raspberry Pi Zero, но, даже если просто переставить microSD карточку в Raspberry Pi 4B, все будет работать так же безотказно.</p>
  <p id="Qvil"></p>
  <h2 id="N6eH">Заключение:</h2>
  <p id="dJr1">Конечно можно собрать устройство с помощью малюсенькой камеры, предназначенной специально для работы с малиной, а в качестве аккума взять мелкий лити1-ионный аккумулятор размером с саму малинку, НО сегодня у нас был урок по изготовлению максимально кустарного и панковского устройства, которое выглядит не очень презентабельно, но прекрасно выполняет все поставленные задачи. По образу и подобию можете экспериментировать с железкой самостоятельно, пробуя разные модули и комплектующие!</p>
  <p id="W37b"><strong>Писал статью и крафтил вместе с вами глазастый ананас – <a href="https://t.me/e1tex" target="_blank">E1tex</a>!</strong></p>
  <p id="FbLT">Мой канал про похек:<br /><a href="https://t.me/fck_harder" target="_blank"><s>TRY </s><strong>FCK HARDER</strong></a><strong>! </strong></p>
  <p id="yhfk"><strong>Увидимся!</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@e1tex/teensybadusb</guid><link>https://teletype.in/@e1tex/teensybadusb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=e1tex</link><comments>https://teletype.in/@e1tex/teensybadusb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=e1tex#comments</comments><dc:creator>e1tex</dc:creator><title>Teensy 2.0 Bad USB</title><pubDate>Sat, 03 Feb 2024 17:49:41 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/cc/63/cc635407-74d7-403c-9c2b-48d22ba9ab6a.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/90/b6/90b6575f-a2b0-4d77-85c9-ab2edaaec22b.png"></img>В данной статье мы рассмотрим процесс создания устройства Bad USB с использованием платы на базе Arduino - Teensy 2.0. Я продемонстрирую шаги по созданию и программированию этого маленького, но мощного устройства, способного провести атаку на компьютерную систему, обойти защитные механизмы и получить несанкционированный доступ к данным.]]></description><content:encoded><![CDATA[
  <figure id="jErH" class="m_column">
    <img src="https://img2.teletype.in/files/90/b6/90b6575f-a2b0-4d77-85c9-ab2edaaec22b.png" width="1280" />
    <figcaption>Плата Teensy 2.0 на базе Arduino;</figcaption>
  </figure>
  <h2 id="xrfU">Software:</h2>
  <p id="eusq">1. <strong>Arduino IDE</strong> (<a href="https://www.arduino.cc/en/software" target="_blank">https://www.arduino.cc/en/software</a>)<br />2. <strong>Teensyduino </strong>(<a href="https://www.pjrc.com/teensy/td_download.html" target="_blank">https://www.pjrc.com/teensy/td_download.html</a>)<br />3. <strong>Paensy </strong>(<a href="https://github.com/Ozuru/Paensy" target="_blank">https://github.com/Ozuru/Paensy</a>)</p>
  <p id="GHYe"></p>
  <h2 id="yekC">Installation:</h2>
  <h3 id="POVO">1. Arduino 2.0</h3>
  <p id="ieKY">1. Переходим в &quot;<strong>File - Preferences</strong>&quot; и вставляем строку <a href="https://www.pjrc.com/teensy/package_teensy_index.json" target="_blank"><code>https://www.pjrc.com/teensy/package_teensy_index.json</code></a> в поле &quot;<strong>Additional boards manager URLs</strong>&quot; (<em>Все прочие урлы записываются через запятую в формате &#x60;url1,url2,url3,..,urln&#x60;</em>):</p>
  <figure id="uSWe" class="m_column">
    <img src="https://img1.teletype.in/files/05/c2/05c27b21-b3ae-4dad-9a54-a08beae900b3.png" width="1039" />
  </figure>
  <p id="vlkH">2. Заходим в Arduino IDE, переходим в &quot;Tools - Board - Boards Manager&quot; и устанавливаем пакет для плат Teensy:</p>
  <figure id="UfFN" class="m_column">
    <img src="https://img2.teletype.in/files/92/2d/922dec25-6056-4be4-863e-76008b2ad763.png" width="1378" />
  </figure>
  <h3 id="4Nrq">2. Windows Graphic Installation</h3>
  <p id="ZT8P">1. Устанавливаем и запускаем графический установщик (<a href="https://www.pjrc.com/teensy/td_158/TeensyduinoInstall.exe" target="_blank">https://www.pjrc.com/teensy/td_158/TeensyduinoInstall.exe</a>).</p>
  <p id="amQl"><em>Поддерживаются версии Arduino IDE только те, что указаны в первом окне установщика!</em></p>
  <figure id="IbMr" class="m_column">
    <img src="https://img2.teletype.in/files/9b/1f/9b1f75db-4ae3-4ee2-9ce6-d5e9a8eb26b3.png" width="880" />
    <figcaption>Teensyduino Installer;</figcaption>
  </figure>
  <h2 id="nVgz">Setting Up:</h2>
  <h3 id="5zLE">1. Paensy Library</h3>
  <p id="ILHz">1. Качаем с гитхаба архив, распаковываем его и копируем директорию <strong>PaensyLib</strong> в директорию <strong>Arduino/libraries</strong> (cтандартная: <em>C:\Program Files (x86)\Arduino\libraries</em>):</p>
  <figure id="SvDl" class="m_retina">
    <img src="https://img4.teletype.in/files/bb/a3/bba3d3d2-4e2d-4ee2-8dbb-f15b0bdd7712.png" width="700" />
  </figure>
  <p id="R4RM">2. В гитхаб репозитории лежат примеры пэйлоадов, копируем один из них и вставляем в созданный в <strong>Arduino IDE скетч</strong>.</p>
  <figure id="QIHQ" class="m_column">
    <img src="https://img3.teletype.in/files/e1/11/e111be87-d855-47c4-96c1-17cc8b5918f8.png" width="2560" />
    <figcaption>Arduino Sketch;</figcaption>
  </figure>
  <p id="ah0K">3. Вставляем плату (<em>Должна мигать</em>) и задаем следующие параметры нашей платы:<br />   <strong>Board</strong>: &quot;Teensy 2.0&quot;<br />   <strong>USB Type</strong>: &quot;Keyboard + Mouse + Joystick&quot;<br />   <strong>CPU Speed</strong>: &quot;16 MHz&quot;<br />   <strong>Keyboard Layout</strong>: &quot;US English&quot;<br />  <strong> Port</strong>: {Ваш Порт}</p>
  <figure id="oEjQ" class="m_column">
    <img src="https://img3.teletype.in/files/2d/d7/2dd70243-b282-43a2-81f9-1bfc2328f983.png" width="1053" />
    <figcaption>Board settings for Arduino IDE;</figcaption>
  </figure>
  <p id="B0X2">4. Жмем <strong>Verify</strong>, если ошибок нет, загружаем скрипт в плату кнопкой <strong>Upload:</strong></p>
  <figure id="LAAf" class="m_column">
    <img src="https://img4.teletype.in/files/77/e2/77e2341a-0b7a-4209-b6a0-142ba55f0de5.png" width="2555" />
    <figcaption>Script Upload Results</figcaption>
  </figure>
  <h2 id="pnXs">Script:</h2>
  <figure id="dYgs" class="m_column">
    <img src="https://img2.teletype.in/files/9a/46/9a46c8de-96da-4a08-876a-c56e201c6f49.png" width="1187" />
    <figcaption>MyScript</figcaption>
  </figure>
  <p id="aIgO">Зачастую в инструментах типа <strong>Bad USB </strong>используются так называемые ванлайнеры(<strong>OneLiner</strong>). Найти многие ванлайнеры вы можете в гитхаб репозитории <strong>Nishang</strong>(<a href="https://github.com/samratashok/nishang" target="_blank">https://github.com/samratashok/nishang</a>). Концептуально, если выбирать между <strong>CMD </strong>и <strong>Powershell</strong>, все советуют выбирать второе. Все потому, что при использовании сценария <strong>Powershell</strong>, для жертвы пэйлоад отрабатывает в несколько раз незаметней. В скрипте выше выставляется общая задержка и после задержки в полторы секунды открывается <em>Win+R</em>, куда вводится строка, которая подгружает и запускает внешний <strong>Powershell </strong>сценарий.<br />Ниже указаны некоторые функции, знание которых может быть полезно, если вы собираетесь писать собственные сценарии для <strong>Bad USB</strong>:</p>
  <p id="rRP5"><strong>SetDelay(int);</strong> – Настройка общей задержки для всех задач в проекте;<br /><strong>PerformInitDelay();</strong> – Начальная задержка для инициализации USB устройства (По умолчанию равна значению, которое указывается в SetDelay);<br /><strong>RunCommand(string);</strong> – Открывает окно Run (Win+R) и запускает через него указанный в аргументе код;<br /><strong>delay(int);</strong> – Настройка разовой задержки в данном участке кода;<br /><strong>HideCurWindow(int);</strong> – Скрывает текущее открытое окно;<br /><strong>AddUser(&quot;user&quot;, &quot;pass&quot;);</strong> – Добавляет нового пользователя;<br /><strong>PressKey(int key, int amount);</strong> – Нажимает указанную клавишу необходимое количество раз;<br /><strong>TypeLn(string);</strong> – Вводит текст из аргумента и нажимает Enter;<br /><strong>Alt(int key)/Ctrl(int key)/Shift(int key);</strong> – Имитируют нажатия комбинаций клавиш в зависимости от названия функции. В аргументе указывается нужная в комбинации клавиша.</p>
  <h2 id="Ni6G">Building:</h2>
  <p id="i5fs">Если во время проведения атаки <strong>мы </strong>по каким-либо причинам <strong>не можем </strong>сами <strong>получить физический доступ </strong>во внутренний физический периметр объекта, нам <strong>необходимо </strong>как-то <strong>замаскировать </strong>плату под предмет, который может заинтересовать жертву, для того, чтобы та, в свою очередь, доставила нагрузку за нас.</p>
  <h3 id="hjLs">Пример</h3>
  <p id="Hs4U">После сборки другого инструмента у меня остался кейс от модема. На самом деле, <strong>можно использовать любой предмет</strong>, в котором в качестве одного из участников <strong>есть какой-нибудь из USB штекеров</strong>, зачастую используются штекер <strong>USB-папа</strong>.</p>
  <p id="sUqD">Вариантов маскировки много, на примере ниже используется другая плата, но потенциально, даже рассматриваемую <strong>Teensy 2.0</strong> можно упаковать внутрь кейса от модема. <strong>Главное </strong>- щедро залить всю внутреннюю конструкцию из клея пистолета, дабы избежать замыкания и тряски внутренних компонентов.</p>
  <figure id="8Cq7" class="m_column">
    <img src="https://img2.teletype.in/files/d3/84/d384e7be-3062-4f6c-9239-68f31280d49e.jpeg" width="4032" />
  </figure>
  <p id="1byd">Конструкция:<br />1. Микрокомпьютер <strong>Raspberry PI Pico</strong>(Teensy 2.0)<br />2.<strong> Micro USB 4-pin Connecto</strong>r</p>
  <figure id="STtz" class="m_column">
    <img src="https://img2.teletype.in/files/1c/d1/1cd1f045-1b29-4c94-a3cd-d2074e940400.jpeg" width="800" />
    <figcaption><strong>Micro USB 4-pin Connecto</strong>r</figcaption>
  </figure>
  <p id="Ox2Z">3. <strong>Штекер USB 2.0 4-pin</strong></p>
  <figure id="wIMo" class="m_column">
    <img src="https://img4.teletype.in/files/7f/d1/7fd12b44-4516-41b2-bcfb-2cce1fb25194.jpeg" width="640" />
    <figcaption><strong>Штекер USB 2.0 4-pin</strong></figcaption>
  </figure>
  <h2 id="tyLB">Заключение:</h2>
  <p id="OKdE">После окончания сборки, перед включением, крайне рекомендую <strong>обзвонить мультиметром всю конструкцию</strong>, чтобы потом не пришлось покупать новые компоненты. Общая цена конструкции вышла около тысячи рублей, что, в целом, не так дорого, учитывая, что Bad USB зачастую используется исключительно как расходный материал.</p>
  <p id="W37b"><strong>Писал статью и крафтил вместе с вами Bad USB –  <a href="https://t.me/e1tex" target="_blank">E1tex</a>!</strong></p>
  <p id="FbLT">Мой канал про похек:<br /><a href="https://t.me/fck_harder" target="_blank"><s>TRY </s><strong>FCK HARDER</strong></a><strong>! </strong></p>
  <p id="yhfk"><strong>Увидимся!</strong></p>

]]></content:encoded></item></channel></rss>