hacktricks/network-services-pentesting/pentesting-rpcbind.md

134 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
<details>
<summary><strong>AWS 해킹을 처음부터 전문가까지 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [Discord 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## 기본 정보
**Portmapper**는 네트워크 서비스 포트를 **RPC** (원격 프로시저 호출) 프로그램 번호에 매핑하는 데 사용되는 서비스입니다. 이는 **Unix 기반 시스템**에서 중요한 구성 요소로 작용하여 이러한 시스템 간의 정보 교환을 용이하게 합니다. **Portmapper**와 관련된 **포트**는 공격자에 의해 자주 스캔되며 가치 있는 정보를 노출할 수 있습니다. 이 정보에는 실행 중인 **Unix 운영 체제(OS)**의 유형 및 시스템에서 사용 가능한 서비스에 대한 세부 정보가 포함됩니다. 또한 **Portmapper**는 네트워크 서비스를 효과적으로 관리하기 위해 **NFS (Network File System)**, **NIS (Network Information Service)** 및 기타 **RPC 기반 서비스**와 함께 일반적으로 사용됩니다.
**기본 포트:** 111/TCP/UDP, Oracle Solaris의 경우 32771
```
PORT STATE SERVICE
111/tcp open rpcbind
```
## 열거 (Enumeration)
```
rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1
```
### Shodan
* `port:111 portmap`
## RPCBind + NFS
만약 NFS 서비스를 찾는다면 파일을 나열하고 다운로드(그리고 업로드)할 수 있을 것입니다:
![](<../.gitbook/assets/image (869).png>)
[2049 - Pentesting NFS service](nfs-service-pentesting.md)를 읽어서 이 프로토콜을 테스트하는 방법에 대해 더 알아보세요.
## NIS
**NIS** 취약점을 탐색하는 것은 `ypbind` 서비스를 식별하는 두 단계 과정으로 시작됩니다. 이 탐색의 중심은 **NIS 도메인 이름**을 발견하는 것이며, 이것이 없으면 진행이 중단됩니다.
![](<../.gitbook/assets/image (856).png>)
탐색 여정은 필요한 패키지를 설치하는 것으로 시작합니다 (`apt-get install nis`). 그 다음 단계는 `ypwhich`를 사용하여 도메인 이름과 서버 IP로 NIS 서버의 존재를 확인하고, 이러한 요소들이 보안을 위해 익명화되어 있는지 확인하는 것을 요구합니다.
마지막이자 중요한 단계는 `ypcat` 명령을 사용하여 민감한 데이터를 추출하는 것인데, 특히 암호화된 사용자 비밀번호를 포함합니다. 이러한 해시는 **John the Ripper**와 같은 도구를 사용하여 해독되어 시스템 접근 및 권한에 대한 통찰을 제공합니다.
```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 파일
| **마스터 파일** | **맵(s)** | **노트** |
| ---------------- | --------------------------- | --------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | 호스트 이름 및 IP 세부 정보 포함 |
| /etc/passwd | passwd.byname, passwd.byuid | NIS 사용자 암호 파일 |
| /etc/group | group.byname, group.bygid | NIS 그룹 파일 |
| /usr/lib/aliases | mail.aliases | 메일 별칭 세부 정보 |
## RPC 사용자
만약 **rusersd** 서비스가 다음과 같이 나열되어 있다면:
![](<../.gitbook/assets/image (1038).png>)
상자의 사용자를 열거할 수 있습니다. 자세한 내용은 [1026 - Pentesting Rsusersd](1026-pentesting-rusersd.md)를 참조하세요.
## 필터링된 Portmapper 포트 우회
**nmap 스캔**을 수행하고 포트 111이 필터링된 상태에서 열린 NFS 포트를 발견하면, 이러한 포트의 직접적인 악용은 불가능합니다. 그러나 **로컬로 포트맵퍼 서비스를 시뮬레이션하고 자신의 기기에서 대상으로 터널을 생성함으로써**, 표준 도구를 사용하여 악용이 가능해집니다. 이 기술을 사용하면 포트 111의 필터링된 상태를 우회하여 NFS 서비스에 액세스할 수 있습니다. 이 방법에 대한 자세한 안내는 [이 링크](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc)에서 확인할 수 있습니다.
## Shodan
* `Portmap`
## 실습할 랩
* 이러한 기술을 [**Irked HTB machine**](https://app.hackthebox.com/machines/Irked)에서 실습하세요.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## 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}
```
<details>
<summary><strong>htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 제로부터 전문가까지 배우세요</strong></summary>
다른 방법으로 HackTricks를 지원하는 방법:
* **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하고 싶다면** [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)에서 **팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
</details>