hacktricks/network-services-pentesting/pentesting-rpcbind.md
2024-12-12 13:56:11 +01:00

139 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 111/TCP/UDP - Pentesting Portmapper
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Basic Information
**Portmapper** é um serviço utilizado para mapear portas de serviços de rede para números de programas **RPC** (Remote Procedure Call). Ele atua como um componente crítico em **sistemas baseados em Unix**, facilitando a troca de informações entre esses sistemas. A **porta** associada ao **Portmapper** é frequentemente escaneada por atacantes, pois pode revelar informações valiosas. Essas informações incluem o tipo de **Sistema Operacional (OS) Unix** em execução e detalhes sobre os serviços disponíveis no sistema. Além disso, o **Portmapper** é comumente usado em conjunto com **NFS (Network File System)**, **NIS (Network Information Service)** e outros **serviços baseados em RPC** para gerenciar serviços de rede de forma eficaz.
**Default port:** 111/TCP/UDP, 32771 in Oracle Solaris
```
PORT STATE SERVICE
111/tcp open rpcbind
```
## Enumeração
```
rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1
```
Às vezes, ele não fornece nenhuma informação, em outras ocasiões você receberá algo como isto:
![](<../.gitbook/assets/image (553).png>)
### Shodan
* `port:111 portmap`
## RPCBind + NFS
Se você encontrar o serviço NFS, então provavelmente você poderá listar e baixar (e talvez fazer upload) arquivos:
![](<../.gitbook/assets/image (872).png>)
Leia[ 2049 - Pentesting NFS service](nfs-service-pentesting.md) para saber mais sobre como testar este protocolo.
## NIS
Explorar as vulnerabilidades do **NIS** envolve um processo de duas etapas, começando com a identificação do serviço `ypbind`. A pedra angular dessa exploração é descobrir o **nome de domínio NIS**, sem o qual o progresso é interrompido.
![](<../.gitbook/assets/image (859).png>)
A jornada de exploração começa com a instalação dos pacotes necessários (`apt-get install nis`). A etapa subsequente requer o uso de `ypwhich` para confirmar a presença do servidor NIS, pingando-o com o nome de domínio e o IP do servidor, garantindo que esses elementos sejam anonimizados por segurança.
A etapa final e crucial envolve o comando `ypcat` para extrair dados sensíveis, particularmente senhas de usuários criptografadas. Esses hashes, uma vez quebrados usando ferramentas como **John the Ripper**, revelam informações sobre acesso e privilégios do sistema.
```bash
# 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
```
### NIF files
| **Arquivo mestre** | **Mapa(s)** | **Notas** |
| ------------------- | ---------------------------- | --------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | Contém nomes de host e detalhes de IP |
| /etc/passwd | passwd.byname, passwd.byuid | Arquivo de senha de usuário NIS |
| /etc/group | group.byname, group.bygid | Arquivo de grupo NIS |
| /usr/lib/aliases | mail.aliases | Detalhes de aliases de e-mail |
## RPC Users
Se você encontrar o serviço **rusersd** listado assim:
![](<../.gitbook/assets/image (1041).png>)
Você pode enumerar os usuários da máquina. Para saber como, leia [1026 - Pentesting Rsusersd](1026-pentesting-rusersd.md).
## Bypass Filtered Portmapper port
Ao conduzir uma **varredura nmap** e descobrir portas NFS abertas com a porta 111 sendo filtrada, a exploração direta dessas portas não é viável. No entanto, ao **simular um serviço de portmapper localmente e criar um túnel da sua máquina** para o alvo, a exploração se torna possível usando ferramentas padrão. Essa técnica permite contornar o estado filtrado da porta 111, permitindo assim o acesso aos serviços NFS. Para orientações detalhadas sobre esse método, consulte o artigo disponível [neste link](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc).
## Shodan
* `Portmap`
## Labs to practice
* Pratique essas técnicas na [**máquina Irked HTB**](https://app.hackthebox.com/machines/Irked).
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## HackTricks Automatic Commands
```
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}
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}