Чем эксплуатация уязвимостей в Linux отличается от Windows
На практике заметно, что с уязвимостями на Linux и Windows совсем по-разному работают. Винда гораздо более «классика» - куча готовых скриптов, эксплоитов из метасплоита или на питоне, стандартные техники с буферными переполнениями и похожим. Почти всегда можно получить шелл, если уязвимость реально работает. Правда, последние версии Windows да с защитой на уровне ядра сильно осложняют жизнь, приходится обходить DEP, ASLR и прочие штуки.
С Linux не так просто. Там нужно копать глубже: смотреть конкретный дистрибутив, версии ядра и библиотек, настройки. Особенно на сервере - окружение и права там заточены под сервис, и просто так шелл не получишь. Много мелких моментов: например, разные способы обхода SUID, разные варианты локальных эксплоитов. Плюс на Linux чаще приходится писать свои эксплоиты, но найти универсальный подход тяжело из-за разнообразия конфигураций.
Ещё по тулзам. На Windows проще - много готовых инструментов в открытом доступе, в Linux чаще работаешь с исходниками на C, анализируешь ядро и используешь более низкоуровневые методы. Зато там больше возможностей для кастомных решений и меньше обфускации, как в Windows.
В итоге, Windows - это путь по протоптанной дорожке с готовым набором инструментов, а Linux - творческий процесс с постоянным изучением и подгонкой под конкретное окружение. Отсюда и тактика эксплуатации отличается. Без понимания особенностей ОС и инструментов вряд ли что хорошо выйдет. Для меня пентест на Linux - почти отдельный скилл.