hacktricks/network-services-pentesting/pentesting-rpcbind.md
2024-02-10 13:03:23 +00:00

11 KiB
Raw Blame History

111/TCP/UDP - Test di penetrazione su Portmapper

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Informazioni di base

Portmapper è un servizio utilizzato per mappare le porte dei servizi di rete ai numeri di programma RPC (Remote Procedure Call). Agisce come componente critico nei sistemi basati su Unix, facilitando lo scambio di informazioni tra questi sistemi. La porta associata a Portmapper viene spesso scansionata dagli attaccanti in quanto può rivelare informazioni preziose. Queste informazioni includono il tipo di sistema operativo Unix (OS) in esecuzione e i dettagli sui servizi disponibili nel sistema. Inoltre, Portmapper viene comunemente utilizzato in combinazione con NFS (Network File System), NIS (Network Information Service) e altri servizi basati su RPC per gestire efficacemente i servizi di rete.

Porta predefinita: 111/TCP/UDP, 32771 in Oracle Solaris

PORT    STATE SERVICE
111/tcp open  rpcbind

Enumerazione

RPCBIND

The rpcbind service is used to map RPC (Remote Procedure Call) program numbers to network addresses. It listens on TCP and UDP port 111. By querying the rpcbind service, an attacker can gather information about the RPC services running on a target system.

Enumerating RPC Services

To enumerate RPC services using rpcbind, you can use the rpcinfo command. The syntax is as follows:

rpcinfo -p <target>

This command will display a list of RPC services along with their program numbers and transport protocols.

Enumerating NFS Shares

NFS (Network File System) is a commonly used protocol for sharing files and directories between systems. To enumerate NFS shares, you can use the showmount command. The syntax is as follows:

showmount -e <target>

This command will display a list of NFS shares along with the hosts that are allowed to access them.

Enumerating NIS Services

NIS (Network Information Service) is a system for distributing system configuration data such as user and group information. To enumerate NIS services, you can use the ypcat command. The syntax is as follows:

ypcat -h <target> <mapname>

This command will display the contents of the specified NIS map.

Enumerating Portmapper Services

Portmapper is a service that runs on port 111 and is used to map RPC program numbers to port numbers. To enumerate Portmapper services, you can use the portmap command. The syntax is as follows:

portmap -p <target>

This command will display a list of RPC services along with their program numbers and port numbers.

SNMP

Simple Network Management Protocol (SNMP) is a protocol used for managing and monitoring network devices. It operates over UDP port 161. SNMP allows for the collection of information about network devices, such as their configuration and performance statistics.

Enumerating SNMP Information

To enumerate SNMP information, you can use the snmpwalk command. The syntax is as follows:

snmpwalk -c <community> -v <version> <target> <OID>

This command will retrieve the value of the specified Object Identifier (OID) from the target SNMP agent.

Enumerating SNMP Community Strings

SNMP community strings are used to authenticate SNMP requests. To enumerate SNMP community strings, you can use the onesixtyone command. The syntax is as follows:

onesixtyone -c <community-file> <target>

This command will attempt to brute force SNMP community strings using a list of common strings provided in the specified file.

Enumerating SNMP Users

SNMPv3 supports user-based security model (USM), which allows for the authentication and encryption of SNMP messages. To enumerate SNMP users, you can use the snmp-check command. The syntax is as follows:

snmp-check -c <community> -v <version> -u <username> -l <level> <target>

This command will check if the specified SNMP user exists on the target system.

rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1

A volte non ti fornisce alcuna informazione, in altre occasioni otterrai qualcosa del genere:

Shodan

  • port:111 portmap

RPCBind + NFS

Se trovi il servizio NFS, probabilmente sarai in grado di elencare e scaricare (e forse caricare) file:

Leggi 2049 - Pentesting servizio NFS per saperne di più su come testare questo protocollo.

NIS

Esplorare le vulnerabilità di NIS comporta un processo in due fasi, a partire dall'identificazione del servizio ypbind. La pietra angolare di questa esplorazione è scoprire il nome di dominio NIS, senza il quale il progresso viene interrotto.

Il viaggio di esplorazione inizia con l'installazione dei pacchetti necessari (apt-get install nis). Il passaggio successivo richiede l'utilizzo di ypwhich per confermare la presenza del server NIS effettuando un ping con il nome di dominio e l'indirizzo IP del server, assicurandosi che questi elementi siano anonimizzati per motivi di sicurezza.

Il passaggio finale e cruciale coinvolge il comando ypcat per estrarre dati sensibili, in particolare le password degli utenti crittografate. Questi hash, una volta decifrati utilizzando strumenti come John the Ripper, rivelano informazioni sull'accesso al sistema e i privilegi.

# Install NIS tools
apt-get install nis
# Ping the NIS server to confirm its presence
ypwhich -d <domain-name> <server-ip>
# Extract user credentials
ypcat d <domain-name> h <server-ip> passwd.byname

File NIF

File principale Mappa(e) Note
/etc/hosts hosts.byname, hosts.byaddr Contiene nomi host e dettagli IP
/etc/passwd passwd.byname, passwd.byuid File delle password degli utenti NIS
/etc/group group.byname, group.bygid File dei gruppi NIS
/usr/lib/aliases mail.aliases Dettagli sugli alias di posta

Utenti RPC

Se trovi il servizio rusersd elencato in questo modo:

Puoi enumerare gli utenti della macchina. Per saperne di più, leggi 1026 - Pentesting Rsusersd.

Bypass del portmapper filtrato

Durante una scansione nmap se scopri porte NFS aperte con la porta 111 filtrata, l'exploit diretto di queste porte non è fattibile. Tuttavia, simulando un servizio portmapper localmente e creando un tunnel dalla tua macchina al target, diventa possibile l'exploit utilizzando strumenti standard. Questa tecnica consente di bypassare lo stato filtrato della porta 111, consentendo così l'accesso ai servizi NFS. Per una guida dettagliata su questo metodo, consulta l'articolo disponibile a questo link.

Shodan

  • Portmap

Laboratori per esercitarsi

  • Pratica queste tecniche sulla macchina Irked HTB.

Comandi automatici di HackTricks

Protocol_Name: Portmapper    #Protocol Abbreviation if there is one.
Port_Number:  43     #Comma separated if there is more than one.
Protocol_Description: PM or RPCBind        #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for PortMapper
Note: |
Portmapper is a service that is utilized for mapping network service ports to RPC (Remote Procedure Call) program numbers. It acts as a critical component in Unix-based systems, facilitating the exchange of information between these systems. The port associated with Portmapper is frequently scanned by attackers as it can reveal valuable information. This information includes the type of Unix Operating System (OS) running and details about the services that are available on the system. Additionally, Portmapper is commonly used in conjunction with NFS (Network File System), NIS (Network Information Service), and other RPC-based services to manage network services effectively.

https://book.hacktricks.xyz/pentesting/pentesting-rpcbind

Entry_2:
Name: rpc info
Description: May give netstat-type info
Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 43

Entry_3:
Name: nmap
Description: May give netstat-type info
Command: nmap -sSUC -p 111 {IP}
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: