111/TCP/UDP - Pentesting Portmapper

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Podstawowe informacje

Portmapper to usługa wykorzystywana do mapowania portów usług sieciowych na numery programów RPC (Remote Procedure Call). Pełni kluczową rolę w systemach opartych na Unix, ułatwiając wymianę informacji między tymi systemami. Port powiązany z Portmapper jest często skanowany przez atakujących, ponieważ może ujawnić cenne informacje. Do tych informacji należą rodzaj działającego systemu Unix (OS) oraz szczegóły dotyczące usług dostępnych na systemie. Dodatkowo Portmapper jest powszechnie używany razem z NFS (Network File System), NIS (Network Information Service) oraz innymi usługami opartymi na RPC, aby efektywnie zarządzać usługami sieciowymi.

Domyślny port: 111/TCP/UDP, 32771 w Oracle Solaris

PORT    STATE SERVICE
111/tcp open  rpcbind

Enumeracja

rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1

Czasami nie daje żadnych informacji, innym razem otrzymasz coś takiego:

Zaawansowane użycie rpcinfo

Użyj rpcinfo -T udp -p <target> aby pobrać listę programów UDP nawet gdy TCP/111 jest filtrowane, a następnie natychmiast uruchom showmount -e <target>, by wykryć eksporty NFS czytelne dla wszystkich zarejestrowane przez rpcbind.

rpcinfo -T udp -p 10.10.10.10
showmount -e 10.10.10.10

Wszechstronne mapowanie za pomocą Nmap NSE

Połącz klasyczne skanowanie z nmap --script=rpcinfo,rpc-grind -p111 <target>, aby brute-forcować numery programów RPC. rpc-grind zasypuje portmapper wywołaniami null, które przeglądają bazę nmap-rpc, wyciągając obsługiwane wersje za każdym razem, gdy zdalny daemon odpowiada “can’t support version”, co często ujawnia cicho zarejestrowane usługi takie jak rusersd, rquotad lub niestandardowe daemony. Wielowątkowość przez --script-args 'rpc-grind.threads=8' przyspiesza skanowanie dużych celów, podczas gdy towarzyszący skrypt rpcinfo drukuje czytelne tabele, które można porównać z bazowymi danymi hosta.

Shodan

  • port:111 portmap

RPCBind + NFS

Jeśli znajdziesz usługę NFS, prawdopodobnie będziesz mógł listować i pobierać (a może też przesyłać) pliki:

Przeczytaj 2049 - Pentesting NFS service aby dowiedzieć się więcej o tym, jak testować ten protokół.

NIS

Badanie podatności NIS obejmuje dwustopniowy proces, zaczynający się od identyfikacji usługi ypbind. Kamieniem węgielnym tego procesu jest ujawnienie nazwy domeny NIS, bez której postęp zostaje wstrzymany.

Proces eksploracji zaczyna się od instalacji niezbędnych pakietów (apt-get install nis). Kolejnym krokiem jest użycie ypwhich w celu potwierdzenia obecności serwera NIS, pingując go przy użyciu nazwy domeny i adresu IP serwera — pamiętaj, aby te elementy zostały zanonimizowane dla bezpieczeństwa.

Ostateczny i kluczowy krok to użycie polecenia ypcat do wydobycia wrażliwych danych, w szczególności zaszyfrowanych haseł użytkowników. Te hashe, po złamaniu za pomocą narzędzi takich jak John the Ripper, ujawniają informacje o dostępie do systemu i uprawnieniach.

# 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

Pliki NIF

Plik głównyMapyUwagi
/etc/hostshosts.byname, hosts.byaddrZawiera nazwy hostów i informacje o IP
/etc/passwdpasswd.byname, passwd.byuidPlik haseł użytkowników NIS
/etc/groupgroup.byname, group.bygidPlik grup NIS
/usr/lib/aliasesmail.aliasesZawiera aliasy pocztowe

Użytkownicy RPC

Jeśli znajdziesz usługę rusersd wymienioną w ten sposób:

Możesz wypisać użytkowników tej maszyny. Aby dowiedzieć się jak, przeczytaj 1026 - Pentesting Rsusersd.

Ominięcie filtrowanego portu portmapper

When conducting a nmap scan and discovering open NFS ports with port 111 being filtered, direct exploitation of these ports is not feasible. Jednak przez symulowanie lokalnego portmapper service i stworzenie tunnel z twojej maszyny do celu, wykorzystanie staje się możliwe przy użyciu standardowych narzędzi. Ta technika pozwala ominąć filtrowany stan portu 111, umożliwiając dostęp do usług NFS. Szczegółowe instrukcje znajdziesz w artykule pod tym linkiem.

Laboratoria do ćwiczeń

Automatyczne polecenia 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.wiki/en/network-services-pentesting/pentesting-rpcbind.html

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}

Źródła

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks