mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
139 lines
7.8 KiB
Markdown
139 lines
7.8 KiB
Markdown
# 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/" %}
|
||
|
||
## Informazioni di base
|
||
|
||
**Portmapper** è un servizio utilizzato per mappare le porte dei servizi di rete ai numeri di programma **RPC** (Remote Procedure Call). Funziona come un componente critico nei **sistemi basati su Unix**, facilitando lo scambio di informazioni tra questi sistemi. La **porta** associata a **Portmapper** è frequentemente scansionata dagli attaccanti poiché può rivelare informazioni preziose. Queste informazioni includono il tipo di **sistema operativo Unix (OS)** in esecuzione e dettagli sui servizi disponibili sul sistema. Inoltre, **Portmapper** è comunemente utilizzato insieme a **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
|
||
```
|
||
rpcinfo irked.htb
|
||
nmap -sSUC -p111 192.168.10.1
|
||
```
|
||
A volte non ti dà alcuna informazione, in altre occasioni otterrai qualcosa del genere:
|
||
|
||
![](<../.gitbook/assets/image (553).png>)
|
||
|
||
### Shodan
|
||
|
||
* `port:111 portmap`
|
||
|
||
## RPCBind + NFS
|
||
|
||
Se trovi il servizio NFS, probabilmente sarai in grado di elencare e scaricare (e forse caricare) file:
|
||
|
||
![](<../.gitbook/assets/image (872).png>)
|
||
|
||
Leggi [2049 - Pentesting NFS service](nfs-service-pentesting.md) per saperne di più su come testare questo protocollo.
|
||
|
||
## NIS
|
||
|
||
Esplorare le vulnerabilità **NIS** comporta un processo in due fasi, a partire dall'identificazione del servizio `ypbind`. La pietra miliare di questa esplorazione è scoprire il **nome di dominio NIS**, senza il quale i progressi si fermano.
|
||
|
||
![](<../.gitbook/assets/image (859).png>)
|
||
|
||
Il viaggio di esplorazione inizia con l'installazione dei pacchetti necessari (`apt-get install nis`). Il passo successivo richiede di utilizzare `ypwhich` per confermare la presenza del server NIS pingandolo con il nome di dominio e l'IP del server, assicurandosi che questi elementi siano anonimizzati per motivi di sicurezza.
|
||
|
||
L'ultimo e cruciale passo coinvolge il comando `ypcat` per estrarre dati sensibili, in particolare le password degli utenti criptate. Questi hash, una volta decifrati utilizzando strumenti come **John the Ripper**, rivelano informazioni sull'accesso e sui privilegi di 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
|
||
|
||
| **Master file** | **Map(s)** | **Notes** |
|
||
| ---------------- | --------------------------- | --------------------------------- |
|
||
| /etc/hosts | hosts.byname, hosts.byaddr | Contiene nomi host e dettagli IP |
|
||
| /etc/passwd | passwd.byname, passwd.byuid | File password utente NIS |
|
||
| /etc/group | group.byname, group.bygid | File gruppo NIS |
|
||
| /usr/lib/aliases | mail.aliases | Dettagli sugli alias di posta |
|
||
|
||
## RPC Users
|
||
|
||
Se trovi il servizio **rusersd** elencato in questo modo:
|
||
|
||
![](<../.gitbook/assets/image (1041).png>)
|
||
|
||
Potresti enumerare gli utenti della macchina. Per sapere come, leggi [1026 - Pentesting Rsusersd](1026-pentesting-rusersd.md).
|
||
|
||
## Bypass Filtered Portmapper port
|
||
|
||
Quando si esegue una **scansione nmap** e si scoprono porte NFS aperte con la porta 111 filtrata, l'esploitazione diretta di queste porte non è fattibile. Tuttavia, simulando un servizio portmapper localmente e creando un tunnel dalla tua macchina al bersaglio, l'esploitazione diventa possibile utilizzando strumenti standard. Questa tecnica consente di bypassare lo stato filtrato della porta 111, abilitando così l'accesso ai servizi NFS. Per una guida dettagliata su questo metodo, fai riferimento all'articolo disponibile a [questo link](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc).
|
||
|
||
## Shodan
|
||
|
||
* `Portmap`
|
||
|
||
## Labs to practice
|
||
|
||
* Esercita queste tecniche nella [**macchina 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" %}
|
||
Impara e pratica 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">\
|
||
Impara e pratica 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>Supporta HackTricks</summary>
|
||
|
||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||
|
||
</details>
|
||
{% endhint %}
|