Mwen se rasin. Konprann escalasyon privilèj OS Linux

Mwen te pase premye trimès 2020 la ap prepare pou egzamen OSCP la. Chèche enfòmasyon sou Google ak yon anpil nan tantativ "avèg" te pran tout tan lib mwen. Li te vin espesyalman difisil pou konprann mekanis yo pou ogmante privilèj yo. Kou PWK a peye anpil atansyon sou sijè sa a, men materyèl metodolojik yo toujou pa ase. Gen anpil manyèl sou entènèt la ak kòmandman itil, men mwen pa yon sipòtè pou swiv rekòmandasyon yo avèg san konprann ki kote sa a pral mennen.

Mwen ta renmen pataje avèk ou sa mwen te jere aprann pandan preparasyon an ak siksè pase egzamen an (ki gen ladan atak peryodik sou Hack The Box). Mwen te santi yon gwo rekonesans pou chak ti enfòmasyon ki te ede m mache sou chemen Try Harder la pi konsyan, kounye a se tan mwen pou m remèt kominote a.

Mwen vle ba ou yon gid pou eskalasyon privilèj nan OS Linux, ki gen ladann yon analiz de vektè ki pi komen ak karakteristik ki gen rapò ke ou pral definitivman bezwen. Souvan, mekanis eskalasyon privilèj tèt yo se byen senp, difikilte rive lè estriktire ak analize enfòmasyon. Se poutèt sa, mwen deside kòmanse ak yon "toune vizite" ak Lè sa a, konsidere chak vektè nan yon atik separe. Mwen espere ke mwen pral ekonomize tan ou etidye sijè a.

Mwen se rasin. Konprann escalasyon privilèj OS Linux

Kidonk, poukisa eskalasyon privilèj yo menm posib an 2020 si metòd yo te byen konnen depi lontan? An reyalite, si itilizatè a okipe sistèm lan kòrèkteman, li pral reyèlman pa posib pou ogmante privilèj ladan l. Prensipal pwoblèm mondyal ki bay opòtinite sa yo se konfigirasyon ansekirite. Prezans nan vèsyon lojisyèl demode ki gen frajilite nan sistèm nan se tou yon ka espesyal nan yon konfigirasyon danjere.

Eskalad privilèj atravè konfigirasyon ansekirite

Premye a tout, se pou yo fè fas ak konfigirasyon an ensekirite. Ann kòmanse ak Pwofesyonèl IT souvan itilize manyèl ak resous tankou stackoverflow, anpil ladan yo gen kòmandman ak konfigirasyon ki pa an sekirite. Yon egzanp frapan se nouvèl ke kòd ki pi kopye nan stackoverflow te genyen yon erè. Yon admin ki gen eksperyans pral wè jamb la, men sa a se nan yon mond ideyal. Menm pwofesyonèl konpetan ogmante kantite travay kapab fè erè. Imajine ke administratè a ap prepare ak apwouve dokiman pou pwochen tender la, an menm tan fouye nan nouvo teknoloji ki pral prezante nan pwochen trimès la, pandan y ap rezoud detanzantan travay sipò itilizatè yo. Lè sa a, yo bay li travay la byen vit ogmante yon koup nan machin vityèl ak woule soti sèvis sou yo. Ki sa ou panse, ki pwobabilite ki genyen pou administratè a tou senpleman pa remake jamb la? Lè sa a, espesyalis yo chanje, men beki yo rete, pandan ke konpayi yo toujou fè efò pou misyon pou minimize depans, ki gen ladan sa yo pou espesyalis IT.

Pseudo kokiy ak jailbreak

Koki sistèm nan jwenn pandan faz pwodiksyon an souvan limite, sitou si ou jwenn li pa Hack yon itilizatè sèvè entènèt. Pou egzanp, restriksyon koki ka anpeche w itilize kòmandman sudo a ak yon erè:

sudo: no tty present and no askpass program specified

Apre w fin resevwa yon kokiy, mwen rekòmande pou kreye yon tèminal plen véritable, pou egzanp ak Python.

python -c 'import pty;pty.spawn("/bin/bash")'

Ou mande: "Poukisa mwen bezwen mil kòmandman, si mwen ka itilize youn, pou egzanp, transfere dosye?" Reyalite a se ke sistèm yo configuré yon fason diferan, sou pwochen lame a Python ka pa enstale, men Perl ka disponib. Konpetans la se pou kapab fè bagay abitye nan sistèm nan san zouti abitye. Ou ka jwenn yon lis konplè sou karakteristik isit la.

Yon koki privilèj ba ka jwenn lè l sèvi avèk ekip 1 и ekip 2 (etonan menm GIMP).

Gade istwa lòd

Linux kolekte yon istwa tout kòmandman egzekite nan yon dosye ~ / .bash_history. Si sèvè a itilize aktif epi istwa li pa efase, gen yon bon chans pou yo jwenn kalifikasyon yo nan dosye sa a. Netwaye istwa a se banal konvenyan. Si se administratè a fòse yo chwazi kòmandman dis-nivo atravè , nan kou, li pral pi bon pou l 'yo rele lòd sa a soti nan istwa a pase antre nan li ankò. Anplis de sa, anpil moun pa konnen sou "rache" sa a. Si gen kokiy altènatif tankou Zsh oswa Pwason nan sistèm nan, yo gen pwòp istwa yo. Pou montre istwa kòmandman yo nan nenpòt kokiy, jis tape istwa kòmandman an.

cat ~/.bash_history
cat ~/.mysql_history
cat ~/.nano_history
cat ~/.php_history
cat ~/.atftp_history

Gen pataje hosting, kote sèvè a itilize pou òganize plizyè sit. Tipikman, ak konfigirasyon sa a, chak resous gen itilizatè pwòp li yo ak yon anyè lakay separe ak yon lame vityèl. Se konsa, si konfigirasyon mal, ou ka jwenn dosye a .bash_history nan anyè rasin resous entènèt la.

Jwenn modpas nan sistèm dosye a ak atak sou sistèm adjasan yo

Fichye konfigirasyon pou divès sèvis ka lizib pa itilizatè ou ye kounye a. Nan yo, ou ka jwenn kalifikasyon nan tèks klè - modpas pou jwenn aksè nan baz done a oswa sèvis ki gen rapò. Yo ka itilize menm modpas la tou de pou jwenn aksè nan baz done a ak pou otorize itilizatè rasin lan (anplwaye kalifikasyon).
Sa rive ke kalifikasyon yo jwenn apatni a sèvis sou lòt lame. Devlopman yon atak sou enfrastrikti atravè yon lame konpwomèt pa pi mal pase eksplwatasyon lòt lame. Sistèm adjasan yo ka jwenn tou lè w chèche adrès IP nan sistèm dosye a.

grep -lRi "password" /home /var/www /var/log 2>/dev/null | sort | uniq #Find string password (no cs) in those directories
grep -a -R -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' /var/log/ 2>/dev/null | sort -u | uniq #IPs inside logs

Si lame a konpwomèt gen yon aplikasyon entènèt ki aksesib nan entènèt la, li pi bon pou eskli mòso bwa li yo nan rechèch la pou adrès IP. Adrès itilizatè resous ki soti nan entènèt la pa fasil pou itil nou, men adrès rezo entèn yo (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8) ak kote yo ale, jije pa la. mòso bwa, ka enterese.

Sudo

Kòmandman sudo a pèmèt itilizatè a egzekite yon lòd nan yon kontèks rasin ak pwòp modpas yo oswa san yo pa itilize li ditou. Anpil operasyon nan Linux mande privilèj rasin, men kouri kòm rasin konsidere kòm trè move pratik. Olye de sa, li pi bon pou aplike pèmisyon selektif pou egzekite kòmandman nan kontèks rasin lan. Sepandan, anpil zouti Linux, ki gen ladan yo estanda tankou vi, ka itilize pou ogmante privilèj yo nan fason lejitim. Pou jwenn bon fason, mwen rekòmande pou gade isit la.

Premye bagay ou dwe fè apre ou fin jwenn aksè nan sistèm nan se kouri lòd la sudo -l. Li pral montre pèmisyon pou itilize lòd sudo a. Si yo jwenn yon itilizatè san yon modpas (tankou apache oswa www-data), yon vektè escalade privilèj sudo pa gen anpil chans. Lè w ap itilize sudo, sistèm lan ap mande yon modpas. Sèvi ak lòd passwd pou mete yon modpas tou pa pral travay, li pral mande modpas itilizatè aktyèl la. Men, si sudo toujou disponib, an reyalite, ou bezwen chèche:

  • nenpòt entèprèt, nenpòt moun ka anjandre yon kokiy (PHP, Python, Perl);
  • nenpòt editè tèks (vim, vi, nano);
  • nenpòt telespektatè (mwens, plis);
  • nenpòt posiblite pou travay ak sistèm dosye a (cp, mv);
  • zouti ki gen pwodiksyon nan bash, swa entèaktif oswa kòm yon lòd ègzekutabl (awk, find, nmap, tcpdump, man, vi, vim, ansible).

Suid/Sgid

Gen anpil manyèl sou entènèt la ki konseye bati tout kòmand suid / sgid, men yon atik ki ra bay spesifik sou sa yo dwe fè ak pwogram sa yo. Opsyon escalade privilèj ki pa pran an kont itilizasyon exploits ka jwenn isit la. Epitou, yon kantite dosye ègzèkutabl gen frajilite espesifik pou vèsyon an OS, pou egzanp.

Nan yon mond ideyal, ou ta dwe kouri tout pakè enstale nan omwen searchsploit. Nan pratik, sa ta dwe fèt ak pwogram ki pi popilè tankou sudo. Li se tou toujou yon opsyon pou itilize ak sipòte devlopman nan zouti otomatik ki pral mete aksan sou enteresan, soti nan yon pwen de vi eskalasyon privilèj, ègzèkutabl ak suid/sgid Bits mete. Mwen pral bay yon lis zouti sa yo nan seksyon ki koresponn lan nan atik la.

Scripts ekri pa Cron oswa Init nan kontèks Rasin

Travay Cron ka kouri nan yon kontèks itilizatè diferan, ki gen ladan rasin. Si gen yon travay nan cron ak yon lyen nan yon dosye ègzèkutabl, epi li disponib pou ou ekri, ou ka fasilman ranplase li ak yon sèl move epi fè escalade privilèj. An menm tan an, pa default, fichye ak travay cron yo disponib pou li pa nenpòt itilizatè.

ls -la /etc/cron.d  # show cron jobs 

Menm jan an se ka a ak init. Diferans lan se ke travay nan cron yo egzekite detanzantan, ak nan init - nan demaraj sistèm lan. Pou operasyon, w ap bezwen rdemare sistèm nan, pandan ke kèk nan sèvis yo ka pa monte (si yo pa te anrejistre nan Autoload).

ls -la /etc/init.d/  # show init scripts 

Ou kapab tou rechèch pou fichye ekri pa nenpòt itilizatè.

find / -perm -2 -type f 2>/dev/null # find world writable files

Metòd la se byen li te ye, administratè sistèm ki gen eksperyans ak anpil atansyon itilize kòmandman an chmod. Sepandan, sou entènèt la, a vas majorite nan manyèl dekri mete dwa maksimòm. Apwòch "jis fè li travay" administratè sistèm san eksperyans kreye opòtinite pou eskalade privilèj nan prensip. Si sa posib, li pi bon pou w gade nan istwa kòmand pou w itilize chmod ki pa an sekirite.

chmod +w /path 
chmod 777 /path

Jwenn aksè koki pou lòt itilizatè yo

Nou gade lis itilizatè yo nan /etc/passwd. Nou peye atansyon sou moun ki gen yon kokiy. Ou ka brut itilizatè sa yo - li posib ke atravè itilizatè a ki kapab lakòz ou pral evantyèlman kapab ogmante privilèj.

Pou amelyore sekirite, mwen rekòmande pou ou toujou respekte prensip pi piti privilèj la. Li fè sans tou pou pran tan pou tcheke konfigirasyon ensekirite ki ta ka rete apre depanaj - sa a se "devwa teknik" administratè sistèm lan.

Kòd ekri pwòp tèt ou

Li vo pran yon gade byen nan ègzèkutabl yo nan anyè lakay itilizatè a ak sèvè entènèt la (/var/www/ sof si sa presize). Fichye sa yo ka tounen yon solisyon konplètman ensekirite epi yo gen beki enkwayab. Natirèlman, si ou gen kèk fondasyon nan anyè sèvè entènèt ou a, li pa fè sans pou chèche jou zewo nan li kòm yon pati nan yon pentest, men li rekòmande pou jwenn ak etidye modifikasyon koutim, grefon ak konpozan.

Pou ogmante sekirite, li pi bon pou evite itilize kalifikasyon nan script pwòp tèt ou ekri, osi byen ke fonksyonalite potansyèlman danjere, tankou li /etc/shadow oswa manipile id_rsa, si sa posib.

Elevasyon privilèj atravè eksplwatasyon frajilite yo

Anvan ou eseye elve privilèj atravè eksplwatasyon, li enpòtan pou w konprann transfere dosye nan lame a sib. Anplis de zouti abityèl yo tankou ssh, ftp, http (wget, curl), gen yon antye. "zou" nan posiblite yo.

Pou amelyore sekirite sistèm ou a, mete ajou li regilyèman ak dènye a ki estab vèsyon, epi tou eseye sèvi ak distribisyon ki fèt pou Enterprise. Sinon, raman, men gen sitiyasyon lè amelyorasyon apwopriye fè sistèm nan pa ka itilize.

Eksplwatasyon sèvis kap kouri nan kontèks itilizatè rasin lan

Gen kèk sèvis Linux kouri kòm rasin itilizatè privilejye yo. Yo ka jwenn lè l sèvi avèk ps aux | rasin grep. Nan ka sa a, sèvis la ka pa anonse sou entènèt la epi yo dwe disponib lokalman. Si li gen eksplwatasyon piblik, yo ka itilize san danje: yon aksidan sèvis nan ka ta gen echèk se anpil mwens kritik pase yon aksidan OS.

ps -aux | grep root # Linux

Ka ki gen plis siksè ka konsidere kòm operasyon an nan yon sèvis rache nan yon kontèks itilizatè rasin lan. Opere sèvis SMB bay SYSTEM aksè privilejye sou sistèm Windows (egzanp atravè ms17-010). Sepandan, sa a pa komen sou sistèm Linux, kidonk ou ka pase anpil tan sou eskalasyon privilèj.

Eksplwate vilnerabilite Kernel Linux

Sa a se dènye chemen pou pran. Operasyon san siksè ka mennen nan yon aksidan sistèm, ak nan evènman an nan yon rdemare, kèk sèvis (ki gen ladan sa yo nan ki li te posib jwenn koki orijinal la) pa ka monte. Sa rive ke administratè a tou senpleman bliye sèvi ak kòmandman systemctl pèmèt. Plis li pral lakòz anpil mekontantman ak travay ou si eksplwatasyon an pa te dakò sou.
Si w deside sèvi ak sous exploitdb, asire w ou li kòmantè yo nan kòmansman script la. Pami lòt bagay, li anjeneral di ki jan yo konpile sa a esplwate kòrèkteman. Si ou te twò parese oswa te bezwen "yè" akòz dat limit yo, ou ka chèche depo ak eksplwatasyon deja konpile, pou egzanp. Sepandan, li ta dwe konprann ke nan ka sa a ou pral jwenn yon kochon nan yon pike. Nan lòt men an, si yon pwogramè konprann byte a ki jan yon òdinatè travay ak lojisyèl an li itilize, li pa ta ekri yon liy nan kòd nan tout lavi li.

cat /proc/version
uname -a
searchsploit "Linux Kernel" 

Metasploit

Yo nan lòd yo trape ak okipe yon koneksyon, li toujou pi bon yo sèvi ak modil la esplwate / milti / handler. Bagay pwensipal lan se mete chaj ki kòrèk la, pou egzanp, jenerik/shell/reverce_tcp oswa jenerik/shell/bind_tcp. Ou ka amelyore koki ki jwenn nan Metasploit nan Meterpreter lè l sèvi avèk modil post/multi/manage/shell_to_meterpreter. Avèk Meterpreter, ou ka otomatize pwosesis apre eksplwatasyon an. Pou egzanp, modil post/multi/recon/local_exploit_suggester tcheke platfòm la, achitekti, ak antite eksplwate epi sijere modil Metasploit pou eskalasyon privilèj sou sistèm sib la. Mèsi a Meterpreter, eskalasyon privilèj pafwa desann nan kouri modil la dwat, men Hacking san yo pa konprann sa k ap pase anba kapo a se pa vre (ou toujou gen pou ekri yon rapò).

Zouti

Zouti pou otomatize koleksyon enfòmasyon lokal yo pral sove ou anpil efò ak tan, men poukont yo pa kapab konplètman idantifye chemen an escalade privilèj, espesyalman nan ka eksplwate frajilite nwayo. Zouti automatisation pral fè tout kòmandman ki nesesè yo pou ou kolekte enfòmasyon sou sistèm nan, men li enpòtan tou pou kapab analize te resevwa done yo. Mwen espere atik mwen an ap itil ou nan sa a. Natirèlman, gen anpil plis zouti pase mwen pral lis anba a, men yo tout fè sou menm bagay la - li se plis yon kesyon de gou.

Linpeas

Yon zouti san patipri fre, premye komèt la gen dat janvye 2019. Kounye a enstriman pi renmen mwen an. Liy anba a se ke li mete aksan sou vektè eskalasyon privilèj ki pi enteresan yo. Dakò, li pi bon pou jwenn yon evalyasyon ekspè nan nivo sa a pase analize done monolitik anvan tout koreksyon.

LinEnum

Dezyèm zouti pi renmen mwen an, li tou kolekte epi òganize done yo resevwa kòm yon rezilta nan enimerasyon lokal yo.

linux-exploit-suggester (1,2)

Eksplwatasyon sa a pral analize sistèm nan pou kondisyon apwopriye pou exploit. An reyalite, li pral fè yon travay ki idantik ak modil Metasploit local_exploit_suggester, men li pral ofri lyen ki mennen nan kòd sous exploit-db olye ke modil Metasploit.

Linuxprivchecker

Script sa a pral kolekte epi òganize pa seksyon yon gwo kantite enfòmasyon ki ka itil pou fòmasyon yon vektè escalade privilèj.

Yon lòt fwa mwen pral elabore Eskalasyon privilèj Linux atravè suid/sgid.

Sous: www.habr.com

Add nouvo kòmantè