Снова привет хабру! Сегодня я отшлифовал сразу 3 главы - 7, 8, и 9 главу. Они уже лежат на гитхабе здесь будет отрывок из 7 главы. Из 8 главы отрывок будет завтра, а соответственно отрывок из 9 будет после завтра. Я выбрал самый первый кусок главы и чуть-чуть больше:

Глава 7. Разработка эксплойтов

Теперь мы знаем, как находить уязвимости, пришло время активно эксплуатировать наши находки.

Эксплойт — это фрагмент кода, используемый для запуска уязвимости.

Обычно эксплойты разрабатываются либо на Python для удалённых эксплойтов, либо на C для локальных эксплойтов.

Освоение обоих языков сложно, а наличие 2 совершенно разных языков препятствует переиспользованию кода.

А что, если бы у нас был один язык, достаточно низкоуровневый, но при этом предоставляющий высокоуровневые абстракции, исключительно быстрый, легко кросс-компилируемый, и всё это будучи безопасным по памяти, хорошо переиспользуемым и крайне надёжным?

Вы поняли! Rust — идеальный язык для разработки эксплойтов.

Написав эксплойт на Rust, мы можем использовать его как бинарник, встроить в более крупный эксплуатационный инструментарий или встроить в RAT. Всего этого очень трудно достичь, когда эксплойты пишутся на Python или C. В Rust это просто вопрос создания крейта.

7.1 Где искать эксплойты

В главе 5 мы видели, где искать известные уязвимости: на www.cvedetails.com, а в главе 6 — как находить собственные уязвимости.

Затем у вас есть 2 возможности:

  • Вы можете найти публичный эксплойт для этой уязвимости и переписать его на Rust.

  • Вы можете написать собственный эксплойт с нуля.

Я слышу ваш вопрос: «Где я могу найти публичные эксплойты»?

Два главных источника публичных эксплойтов:

Просто введите CVE-ID в строку поиска, и вуаля :)

Еще раз повторяю: это отрывок из перевода книги, если бы здесь был код то учтите код я не трогаю (пока что нет необходимости).