Rpcbind Pentesting

Rpcbind pentesting techniques for identifying, exploiting, enumeration, attack vectors and post-exploitation insights.

port 111

Rpcbind

Default Port: 111

rpcbind is used by RPC (Remote Procedure Call) services. An RPC service is a server-based service that fulfills remote procedure calls. rpcbind is used to determine which services can respond to incoming requests to perform the specified service.

Connect​

Confirming that the rpcbind service runs on a target machine is usually the first step.

nc -z -v -u <target-ip> 111  

Recon​

When connected to a machine rpcbind, you can use the rpcinfo tool to learn the details of rpcbind service.

rpcinfo -p <target-ip>  

Enumeration​

You can run the rpcenum script to determine the rpc service on the target and collect information. You can use the -v flag for more details.

rpcenum -v <target-ip>  

Attack Vectors​

There are various rpcbind modules in Metasploit. For example, you can use the following Metasploit commands for the rpcbind_cgi_mainenv vulnerability

msfconsole  
use auxiliary/gather/rpcbind_cgi_mainenv  
set RHOST <target-ip>  
run  

Post-Exploitation​

RPC Dictionary Attack​

If you successfully exploited vulnerabilities and obtained a username and password, you can create an RPC bridge as follows using rpcclient

rpcclient -U "username%password" <target-ip>  

Service Abuse​

If a certain RPC service created a vulnerability on the target machine, you can abuse this service to influence behaviors on the target system or hinder its proper operation. For example, you can stop the following RPC service:

rpcclient -U "username%password" <target-ip> -c 'stop service_name'