
CVE-2017-8779 일명 RPCBomb
rpcbind 0.2.4까지, LIBTIRPC 1.0.1까지 및 1.0.2-rc부터 1.0.2-rc3까지, 그리고 NTIRPC 1.4.3까지는 XDR 문자열에 대한 메모리 할당 시 최대 RPC 데이터 크기를 고려하지 않으며, 이는 원격 공격자가 조작된 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에는 공격자가 원하는 대로 공격을 조정할 수 있는 여러 스위치가 있습니다.
이것은 필수 플래그입니다. 대상 시스템을 설정합니다. 기본값은 필수입니다.
이것은 필수 플래그가 아닙니다. 할당을 시도할 바이트 수를 설정합니다. 기본값은 5999999999입니다.
이것은 필수 플래그가 아닙니다. RPC Bind가 실행 중인 포트입니다. 기본값은 포트 111입니다.
이것은 필수 플래그가 아닙니다. 보낼 UDP 패킷 수 또는 할당 바이트를 요청할 횟수를 설정합니다. 기본값은 1입니다.
이것은 필수 플래그가 아닙니다. UDP 패킷을 동시에 보내기 위해 사용할 하위 스레드 수를 설정합니다. 기본값은 1입니다.
크레딧은 원래 발견을 보고하고 이 golang 익스플로잇의 기반이 되는 샘플 ruby 익스플로잇 코드를 작성한 Guido Vranken에게 있습니다. 해당 코드는 https://github.com/guidovranken/rpcbomb에 있습니다.
원본 보고서는 https://guidovranken.wordpress.com/2017/05/03/rpcbomb-remote-rpcbind-denial-of-service-patches/ 에서 찾을 수 있습니다.