Kali Linux, Kali Linux для продвинутого тестирования на проникновение

#93 Kali Linux для продвинутого тестирования на проникновение. Определите правильные плохие символы и сгенерируйте шеллкод.

Здравствуйте, дорогие друзья.

Наша следующая задача — определить адрес JMP ESP, поскольку наша полезная нагрузка будет загружена в регистр ESP. Для этого мы будем использовать скрипт mona.py — инструмент Python, ускоряющий работу поиска во время разработки эксплойтов. Этот инструмент можно загрузить прямо с https://github.com/PacktPublishing/Mastering-Kali-Linux-for-Advanced-Penetration-Testing-4E/blob/main/Chapter%2010/mona.py.
После загрузки сценария Python его следует поместить в папку PyCommands места установки Immunity Debugger (c:\program files(x86)\Immunity Inc\Immunity Debugger\ Pycommands). После того как скрипт mona.py будет помещен в PyCommands, тестировщикам необходимо снова открыть Immunity Debugger и запустить !mona jmp –r esp, в терминале Immunity. Это должно отобразить JMP ESP. В нашем случае это 0x62501203, как показано на рисунке ниже:

Running mona to identify the JMP ESP address

Если отображение mona пропало, просто выполните !mona help в том же терминале в Immunity Debugger, чтобы вернуть экран. Теперь у нас все готово для создания полезной нагрузки. Вы можете использовать mona для выявления плохих символов. Тестировщики могут использовать любые общедоступные материалы, чтобы найти дополнительные способы использования уязвимости. Эта тема заслуживает отдельной книги.

Чтобы создать массив по умолчанию в mona, Вы можете использовать !mona bytearray, который сгенерирует выходные данные двух файлов с именами bytearray.txt и bytearray.bin со всеми недопустимыми символами.

Мы продолжим и создадим полезную нагрузку Windows с «\x00» в качестве плохого символа, используя msfvenom, выполнив следующую команду в терминале. Она сгенерирует шеллкод, который предоставит обратную оболочку Meterpreter на IP-адресе злоумышленника:

Получаем оболочку

Наконец, мы находимся на последнем этапе создания полноценного эксплойта — нам просто нужно добавить слежку NOP, а затем переполнить буфер и записать наш шеллкод в систему, на которой работает уязвимый сервер приложений. Следующий фрагмент кода представляет собой полный код Python для эксплуатации уязвимого сервера:

Сохраните окончательный сценарий Python как exploit.py и перед выполнением убедитесь, что Ваш прослушиватель запущен в Metasploit, выполнив следующие команды в терминале:

Теперь все установлено. Злоумышленники теперь смогут реализовать и создать эксплойт, специфичный для Windows, используя программирование на Python. Следующим шагом будет запуск exploit.py из терминала:

python3 exploit.py

Успешная эксплуатация перезапишет буфер нашим шеллкодом, а затем выполнит его, чтобы создать обратную оболочку для злоумышленника, как показано на рисунке ниже:

Successful TCP reverse shell from vulnserver

На этом пятиэтапный подход к разработке эксплойта для Windows завершается. Мы изучим структуру PowerShell Empire, которая может быть использована злоумышленниками во время действий после эксплуатации.

На этом все. Всем хорошего дня!

Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.