
CVE-2017-8779, также известный как RPCBomb
rpcbind до версии 0.2.4, LIBTIRPC до версии 1.0.1 и 1.0.2-rc до 1.0.2-rc3, а также NTIRPC до версии 1.4.3 не учитывают максимальный размер данных RPC при выделении памяти для строк XDR, что позволяет удаленным злоумышленникам вызвать отказ в обслуживании (потребление памяти без последующего освобождения) с помощью поддельного UDP-пакета на порт 111, также известного как rpcbomb.
Ссылка на CVE https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779
git clone https://github.com/drbothen/GO-RPCBOMB.git
go build RPCBomb.go
Скомпилированный RPCBomb.exe имеет несколько параметров, которые позволяют атакующему настроить атаку по своему усмотрению.
Это ОБЯЗАТЕЛЬНЫЙ флаг. Задает целевую систему. По умолчанию: REQUIRED
НЕ обязательный флаг. Задает количество байт, которое нужно попытаться выделить. По умолчанию: 5999999999
НЕ обязательный флаг. Порт, на котором работает RPC Bind. По умолчанию: порт 111
НЕ обязательный флаг. Задает количество отправляемых UDP-пакетов или количество запросов на выделение байтов. По умолчанию: 1
НЕ обязательный флаг. Задает количество дочерних потоков для одновременной отправки UDP-пакетов. По умолчанию: 1
Благодарность принадлежит Guido Vranken, который первоначально сообщил о находке и написал пример ruby-эксплойта, на основе которого создан данный golang-эксплойт, расположенный по адресу https://github.com/guidovranken/rpcbomb.
Оригинальный отчет можно найти по адресу https://guidovranken.wordpress.com/2017/05/03/rpcbomb-remote-rpcbind-denial-of-service-patches/