Reverse vs bind shell; як отримати й стабілізувати оболонку
Оболонка (shell) - це командний рядок хоста: те, через що ти даєш машині команди. Поки ти атакуєш вебзастосунок через браузер, ти зовні. Коли отримав оболонку - ти на самому хості, з повноцінним командним доступом.
Оболонку зазвичай дістають через помилку в застосунку, яка дозволяє виконати свою команду (RCE/експлойт), і ця команда відкриває тобі канал у систему.
Є два способи зʼєднати оболонку:
Саме тому на практиці частіше беруть reverse shell: ціль ініціює звʼязок, і це проходить там, де вхідне підключення не пройшло б.
Перша оболонка часто «куца»: немає автодоповнення, Ctrl+C рве сесію, відмовляє sudo, тож працювати незручно. Тому її стабілізують - роблять апгрейд до повноцінного tty (інтерактивного термінала). Після цього працювати так само зручно, як у звичайному SSH.
Reverse shell - стандартний результат вдалого RCE: ти запускаєш слухач у себе, експлойт змушує ціль підключитися назад, і ось ти вже на хості. Перший крок після цього - стабілізувати tty.