Emi ni gbongbo. Oye Linux OS Anfani Escalation

Mo lo mẹẹdogun akọkọ ti 2020 ngbaradi fun idanwo OSCP. Wiwa alaye lori Google ati ọpọlọpọ awọn igbiyanju “afọju” gba gbogbo akoko ọfẹ mi. O wa ni pataki lati ni oye awọn ilana fun igbega awọn anfani. Ẹkọ PWK san ifojusi nla si koko yii, ṣugbọn awọn ohun elo ilana nigbagbogbo ko to. Ọpọlọpọ awọn itọnisọna wa lori Intanẹẹti pẹlu awọn aṣẹ ti o wulo, ṣugbọn emi kii ṣe alatilẹyin ti afọju tẹle awọn iṣeduro laisi oye ibi ti eyi yoo mu.

Emi yoo fẹ lati pin pẹlu rẹ ohun ti Mo ṣakoso lati kọ lakoko igbaradi ati aṣeyọri aṣeyọri ti idanwo naa (pẹlu awọn igbogunti igbakọọkan lori Apoti gige gige). Mo ni imọ-ọpẹ ti o jinlẹ fun gbogbo alaye diẹ ti o ṣe iranlọwọ fun mi lati rin ọna Gbiyanju Lile diẹ sii ni mimọ, ni bayi ni akoko mi lati fun pada si agbegbe.

Mo fẹ lati fun ọ ni itọsọna kan si imudara anfani ni OS Linux, eyiti o pẹlu itupalẹ ti awọn oṣooro ti o wọpọ julọ ati awọn ẹya ti o jọmọ ti iwọ yoo nilo dajudaju. Nigbagbogbo, awọn ilana imudara anfani funrararẹ rọrun pupọ, awọn iṣoro dide nigbati iṣeto ati itupalẹ alaye. Nitorinaa, Mo pinnu lati bẹrẹ pẹlu “irin-ajo iriran” ati lẹhinna gbero fekito kọọkan ni nkan lọtọ. Mo nireti pe Emi yoo fi akoko pamọ fun ọ lati kawe koko naa.

Emi ni gbongbo. Oye Linux OS Anfani Escalation

Nitorinaa, kilode ti igbega anfani paapaa ṣee ṣe ni 2020 ti awọn ọna ba ti mọ daradara fun igba pipẹ pupọ? Ni otitọ, ti olumulo ba mu eto naa ni deede, kii yoo ṣee ṣe gaan lati mu awọn anfani pọ si ninu rẹ. Iṣoro agbaye akọkọ ti o funni ni iru awọn anfani ni insecure iṣeto ni. Iwaju awọn ẹya sọfitiwia ti igba atijọ ti o ni awọn ailagbara ninu eto naa tun jẹ ọran pataki ti iṣeto ailewu.

Anfaani escalation nipasẹ insecure iṣeto ni

Ni akọkọ, jẹ ki a wo pẹlu iṣeto ti ko ni aabo. Jẹ ká bẹrẹ pẹlu Awọn alamọdaju IT nigbagbogbo lo awọn iwe afọwọkọ ati awọn orisun bii ṣiṣan ṣiṣan, ọpọlọpọ ninu eyiti o ni awọn aṣẹ ti ko ni aabo ati awọn atunto. Apẹẹrẹ iyalẹnu ni awọn iroyin pe koodu ti a daakọ pupọ julọ lati inu stackoverflow ni aṣiṣe ninu. Alakoso ti o ni iriri yoo rii jamb, ṣugbọn eyi wa ni agbaye pipe. Paapa awọn alamọja ti o ni oye alekun iṣẹ ṣiṣe ti o lagbara lati ṣe awọn aṣiṣe. Fojuinu pe oluṣakoso naa ngbaradi ati gbigba iwe aṣẹ fun tutu atẹle, ni akoko kanna ti n lọ sinu imọ-ẹrọ tuntun ti yoo ṣafihan ni mẹẹdogun atẹle, lakoko ti o n yanju awọn iṣẹ ṣiṣe atilẹyin olumulo lorekore. Ati lẹhinna o fun ni iṣẹ-ṣiṣe ti iyara igbega tọkọtaya kan ti awọn ẹrọ foju ati yiyi awọn iṣẹ jade lori wọn. Kini o ro, kini iṣeeṣe ti abojuto nìkan ko ṣe akiyesi jamb naa? Lẹhinna awọn alamọja yipada, ṣugbọn awọn crutches wa, lakoko ti awọn ile-iṣẹ nigbagbogbo n tiraka lati dinku awọn idiyele, pẹlu awọn ti awọn alamọja IT.

Afarape ikarahun ati jailbreak

Ikarahun eto ti o gba lakoko ipele iṣelọpọ nigbagbogbo ni opin, ni pataki ti o ba gba nipasẹ gige olumulo olupin wẹẹbu kan. Fun apẹẹrẹ, awọn ihamọ ikarahun le ṣe idiwọ fun ọ lati lo aṣẹ sudo pẹlu aṣiṣe kan:

sudo: no tty present and no askpass program specified

Lẹhin gbigba ikarahun kan, Mo ṣeduro ṣiṣẹda ebute ti o ni kikun, fun apẹẹrẹ pẹlu Python.

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

O beere: "Kini idi ti Mo nilo awọn aṣẹ ẹgbẹrun, ti MO ba le lo ọkan, fun apẹẹrẹ, lati gbe awọn faili lọ?" Awọn otitọ ni wipe awọn ọna šiše ti wa ni tunto otooto, lori awọn nigbamii ti ogun Python ko le fi sori ẹrọ, ṣugbọn Perl le jẹ wa. Ogbon ni lati ni anfani lati ṣe awọn nkan ti o faramọ ninu eto laisi awọn irinṣẹ ti o faramọ. A pipe akojọ ti awọn ẹya ara ẹrọ le ṣee ri nibi.

Ikarahun anfani kekere le ṣee gba ni lilo awọn ẹgbẹ 1 и awọn ẹgbẹ 2 (iyalẹnu paapaa GIMP).

Wo itan aṣẹ

Lainos n gba itan-akọọlẹ ti gbogbo awọn pipaṣẹ ti a pa ninu faili kan ~ / .bash_history. Ti olupin naa ba wa ni lilo lọwọ ati itan rẹ ko ti parẹ, aye wa ti o dara pe awọn iwe-ẹri wa ninu faili yii. Pipa itan-akọọlẹ jẹ airọrun banally. Ti oluṣakoso ba fi agbara mu lati yan awọn aṣẹ ipele mẹwa nipasẹ , dajudaju, yoo rọrun diẹ sii fun u lati pe aṣẹ yii lati inu itan-akọọlẹ ju lati tẹ sii lẹẹkansi. Ni afikun, ọpọlọpọ ko mọ nipa “gige” yii. Ti awọn ikarahun omiiran bi Zsh tabi Fish wa ninu eto, wọn ni itan-akọọlẹ tiwọn. Lati ṣafihan itan-akọọlẹ awọn aṣẹ ni eyikeyi ikarahun, kan tẹ itan-akọọlẹ aṣẹ naa.

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

Alejo pinpin wa, ninu eyiti a ti lo olupin lati gbalejo awọn aaye pupọ. Ni deede, pẹlu iṣeto yii, orisun kọọkan ni olumulo tirẹ pẹlu itọsọna ile lọtọ ati agbalejo foju kan. Nitorina, ti o ba tunto ni aṣiṣe, o le wa faili .bash_history ninu iwe-itọka root ti orisun wẹẹbu.

Wiwa awọn ọrọ igbaniwọle ninu eto faili ati awọn ikọlu lori awọn eto to wa nitosi

Awọn faili atunto fun awọn iṣẹ oriṣiriṣi le jẹ kika nipasẹ olumulo lọwọlọwọ rẹ. Ninu wọn, o le wa awọn iwe-ẹri ni ọrọ mimọ - awọn ọrọ igbaniwọle fun iraye si ibi ipamọ data tabi awọn iṣẹ ti o jọmọ. Ọrọigbaniwọle kanna le ṣee lo mejeeji lati wọle si ibi ipamọ data ati lati fun laṣẹ olumulo root (iṣẹ oṣiṣẹ ijẹrisi).
O ṣẹlẹ pe awọn iwe-ẹri ti o rii jẹ ti awọn iṣẹ lori awọn ogun miiran. Idagbasoke ikọlu lori awọn amayederun nipasẹ ile-iṣẹ ti o gbogun ko buru ju ilokulo awọn ọmọ-ogun miiran lọ. Awọn eto isunmọ tun le rii nipasẹ wiwa awọn adirẹsi IP ni eto faili naa.

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

Ti ogun ti o gbogun ba ni ohun elo wẹẹbu ti o wa lati Intanẹẹti, o dara lati yọkuro awọn akọọlẹ rẹ lati wiwa awọn adirẹsi IP. Awọn adirẹsi ti awọn oluşewadi olumulo lati Intanẹẹti ko ṣeeṣe lati wulo fun wa, ṣugbọn awọn adirẹsi ti nẹtiwọọki inu (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8) ati ibiti wọn lọ, idajọ nipasẹ awọn àkọọlẹ, le jẹ ti awọn anfani.

Sudo

Aṣẹ sudo gba olumulo laaye lati ṣiṣẹ aṣẹ ni aaye ti gbongbo pẹlu ọrọ igbaniwọle tiwọn tabi laisi lilo rara. Ọpọlọpọ awọn iṣẹ ṣiṣe ni Lainos nilo awọn anfani gbongbo, ṣugbọn ṣiṣiṣẹ bi gbongbo ni a ka iwa buburu pupọ. Dipo, o dara julọ lati lo igbanilaaye yiyan lati ṣiṣẹ awọn aṣẹ ni ipo ipilẹ. Sibẹsibẹ, ọpọlọpọ awọn irinṣẹ Lainos, pẹlu awọn boṣewa bii vi, le ṣee lo lati mu awọn anfani pọ si ni awọn ọna abẹ. Lati wa ọna ti o tọ, Mo ṣeduro lati wo nibi.

Ohun akọkọ lati ṣe lẹhin nini iraye si eto ni lati ṣiṣẹ aṣẹ sudo -l. Yoo ṣe afihan igbanilaaye lati lo aṣẹ sudo. Ti olumulo kan laisi ọrọ igbaniwọle ba gba (bii apache tabi www-data), fekito imudara anfani sudo ko ṣeeṣe. Nigbati o ba nlo sudo, eto naa yoo beere fun ọrọ igbaniwọle kan. Lilo aṣẹ passwd lati ṣeto ọrọ igbaniwọle kii yoo ṣiṣẹ, yoo beere fun ọrọ igbaniwọle olumulo lọwọlọwọ. Ṣugbọn ti sudo ba tun wa, lẹhinna, ni otitọ, o nilo lati wa:

  • eyikeyi onitumọ, ẹnikẹni le spawn a ikarahun (PHP, Python, Perl);
  • eyikeyi awọn olootu ọrọ (vim, vi, nano);
  • eyikeyi awọn oluwo (kere, diẹ sii);
  • eyikeyi awọn aye ti ṣiṣẹ pẹlu eto faili (cp, mv);
  • awọn irinṣẹ ti o ni iṣelọpọ ni bash, boya ibaraenisepo tabi bi aṣẹ ti o le ṣe (awk, find, nmap, tcpdump, man, vi, vim, ansible).

Suid/Sgid

Awọn iwe afọwọkọ pupọ wa lori Intanẹẹti ti o ni imọran kikọ gbogbo awọn aṣẹ suid / sgid, ṣugbọn nkan toje n funni ni pato lori kini lati ṣe pẹlu awọn eto wọnyi. Awọn aṣayan igbega anfani ti ko ṣe akiyesi lilo awọn iṣamulo ni a le rii nibi. Paapaa, nọmba awọn faili ti o le ṣiṣẹ ni awọn ailagbara kan pato fun ẹya OS, fun apẹẹrẹ.

Ninu aye pipe, o yẹ ki o ṣiṣẹ gbogbo awọn idii ti a fi sori ẹrọ nipasẹ o kere ju searchsploit. Ni iṣe, eyi yẹ ki o ṣee ṣe pẹlu awọn eto olokiki julọ bi sudo. O tun jẹ aṣayan nigbagbogbo lati lo ati ṣe atilẹyin idagbasoke ti awọn irinṣẹ adaṣe ti yoo ṣe afihan ohun ti o nifẹ si, lati oju wiwo imudara anfani, awọn iṣẹ ṣiṣe pẹlu suid/sgid bits ṣeto. Emi yoo fun atokọ ti iru awọn irinṣẹ ni apakan ti o baamu ti nkan naa.

Awọn iwe afọwọkọ ti a le kọ ṣiṣẹ nipasẹ Cron tabi Init ni ọrọ-ọrọ Gbongbo

Awọn iṣẹ Cron le ṣiṣẹ ni ipo ti awọn olumulo oriṣiriṣi, pẹlu gbongbo. Ti iṣẹ-ṣiṣe kan ba wa ni cron pẹlu ọna asopọ si faili ti o le ṣiṣẹ, ati pe o wa fun ọ lati kọ, o le ni rọọrun rọpo rẹ pẹlu irira kan ki o ṣe imudara anfani. Ni akoko kanna, nipasẹ aiyipada, awọn faili pẹlu awọn iṣẹ-ṣiṣe cron wa fun kika nipasẹ olumulo eyikeyi.

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

Iru ni ọran pẹlu init. Iyatọ naa ni pe awọn iṣẹ-ṣiṣe ni cron ti wa ni ṣiṣe lorekore, ati ni init - ni ibẹrẹ eto. Fun iṣẹ, iwọ yoo nilo lati tun atunbere eto naa, lakoko ti diẹ ninu awọn iṣẹ le ma dide (ti wọn ko ba forukọsilẹ ni adaṣe adaṣe).

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

O tun le wa awọn faili kikọ nipasẹ olumulo eyikeyi.

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

Ọna naa jẹ olokiki daradara, awọn oludari eto ti o ni iriri ni pẹkipẹki lo aṣẹ chmod. Bibẹẹkọ, lori oju opo wẹẹbu, pupọ julọ awọn iwe afọwọkọ ṣe apejuwe eto awọn ẹtọ to pọ julọ. Ọna “o kan jẹ ki o ṣiṣẹ” ti awọn alabojuto eto ti ko ni iriri ṣẹda awọn aye fun igbega anfani ni ipilẹ. Ti o ba ṣeeṣe, o dara julọ lati wo ninu itan-akọọlẹ aṣẹ fun awọn lilo ti chmod ti ko ni aabo.

chmod +w /path 
chmod 777 /path

Gbigba ikarahun fun awọn olumulo miiran

A wo atokọ ti awọn olumulo ni /etc/passwd. A san ifojusi si awọn ti o ni ikarahun. O le kọlu awọn olumulo wọnyi - o ṣee ṣe pe nipasẹ olumulo ti o yọrisi iwọ yoo ni anfani lati mu awọn anfani pọ si nikẹhin.

Lati mu aabo dara sii, Mo ṣeduro pe ki o faramọ ilana ti o kere julọ nigbagbogbo. O tun jẹ oye lati lo akoko lati ṣayẹwo awọn atunto ti ko ni aabo ti o le wa lẹhin laasigbotitusita - eyi ni “ojuse imọ-ẹrọ” ti oludari eto.

Koodu ti ara ẹni

O tọ lati wo awọn imuṣẹ ni pẹkipẹki ti olumulo ati itọsọna ile olupin wẹẹbu (/ var/www/ ayafi bibẹẹkọ pato). Awọn faili wọnyi le tan jade lati jẹ ojutu ti ko ni aabo patapata ati pe o ni awọn crutches iyalẹnu ninu. Nitoribẹẹ, ti o ba ni ilana diẹ ninu itọsọna olupin wẹẹbu rẹ, ko ṣe oye lati wa fun ọjọ-odo ninu rẹ gẹgẹbi apakan ti pentest, ṣugbọn o gba ọ niyanju lati wa ati ṣe iwadi awọn iyipada aṣa, awọn afikun ati awọn paati.

Lati mu aabo pọ si, o dara lati yago fun lilo awọn iwe-ẹri ni awọn iwe afọwọkọ ti ara ẹni, bakanna bi iṣẹ ṣiṣe ti o lewu, gẹgẹbi kika /etc/shadow tabi ifọwọyi id_rsa, ti o ba ṣeeṣe.

Igbega anfani nipasẹ ilokulo awọn ailagbara

Ṣaaju igbiyanju lati gbe awọn anfani ga nipasẹ ilokulo, o ṣe pataki lati ni oye awọn gbigbe awọn faili si awọn afojusun ogun. Ni afikun si awọn irinṣẹ deede bii ssh, ftp, http (wget, curl), odidi kan wa "zoo" ti o ṣeeṣe.

Lati mu aabo eto rẹ dara si, ṣe imudojuiwọn rẹ nigbagbogbo si tuntun idurosinsin awọn ẹya, ati tun gbiyanju lati lo awọn pinpin ti a ṣe apẹrẹ fun Idawọlẹ. Bibẹẹkọ, ṣọwọn, ṣugbọn awọn ipo wa nigbati igbesoke apt jẹ ki eto ko ṣee lo.

Awọn iṣẹ ilokulo Nṣiṣẹ ni Ọrọ ti Olumulo Gbongbo naa

Diẹ ninu awọn iṣẹ Linux nṣiṣẹ bi gbongbo olumulo ti o ni anfani. Wọn le rii ni lilo ps aux | grep root. Ni idi eyi, iṣẹ naa le ma ṣe ikede lori oju opo wẹẹbu ki o wa ni agbegbe. Ti o ba ni awọn iṣamulo ti gbogbo eniyan, wọn le ṣee lo lailewu: jamba iṣẹ kan ni ọran ikuna kere pupọ ju jamba OS lọ.

ps -aux | grep root # Linux

Ọran ti o ṣaṣeyọri julọ ni a le gba si iṣiṣẹ ti iṣẹ ti gepa ni aaye ti olumulo gbongbo. Ṣiṣẹ iṣẹ SMB n fun ni iwọle si eto eto lori awọn eto Windows (fun apẹẹrẹ nipasẹ ms17-010). Sibẹsibẹ, eyi ko wọpọ lori awọn eto Linux, nitorinaa o le lo akoko pupọ lori imudara anfani.

Lilo nilokulo Linux Kernel Vulnerabilities

Eyi ni ọna ti o kẹhin lati gba. Iṣiṣẹ ti ko ni aṣeyọri le ja si jamba eto, ati ni iṣẹlẹ ti atunbere, diẹ ninu awọn iṣẹ (pẹlu eyiti o ṣee ṣe lati gba ikarahun atilẹba) le ma dide. O ṣẹlẹ pe oluṣakoso nìkan gbagbe lati lo pipaṣẹ ṣiṣẹ systemctl. Pẹlupẹlu yoo fa ainitẹlọrun pupọ pẹlu iṣẹ rẹ ti ilokulo naa ko ba ti gba lori.
Ti o ba pinnu lati lo awọn orisun lati exploitdb, rii daju lati ka awọn asọye ni ibẹrẹ ti iwe afọwọkọ naa. Lara awọn ohun miiran, o maa n sọ bi o ṣe le ṣajọ ilokulo yii ni deede. Ti o ba jẹ ọlẹ pupọ tabi nilo “lana” nitori awọn akoko ipari, o le wa awọn ibi ipamọ pẹlu awọn iṣakojọpọ tẹlẹ, fun apẹẹrẹ. Sibẹsibẹ, o yẹ ki o loye pe ninu ọran yii iwọ yoo gba ẹlẹdẹ kan ni poke kan. Ní ọwọ́ kejì ẹ̀wẹ̀, tí òǹṣèwé kan bá lóye báiti náà bí kọ̀ǹpútà ṣe ń ṣiṣẹ́ àti ẹ̀rọ ìṣàfilọ́lẹ̀ tí ó ń lò, kì bá tí kọ ọ̀rọ̀ àlàyé kan ní gbogbo ìgbésí ayé rẹ̀.

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

metasploit

Lati le mu ati mu asopọ kan, o dara nigbagbogbo lati lo nilokulo / ọpọlọpọ / module imudani. Ohun akọkọ ni lati ṣeto isanwo ti o pe, fun apẹẹrẹ, jeneriki / ikarahun / reverce_tcp tabi jeneriki / ikarahun / bind_tcp. Ikarahun ti a gba ni Metasploit le ṣe igbesoke si Meterpreter nipa lilo ipo ifiweranṣẹ/multi/ṣakoso/shell_to_meterpreter module. Pẹlu Meterpreter, o le ṣe adaṣe ilana ilana ilokulo lẹhin-lẹhin. Fun apẹẹrẹ, post/multi/recon/ local_exploit_suggester module sọwedowo Syeed, faaji, ati awọn nkan ti o lo nilokulo ati daba awọn modulu Metasploit fun imudara anfani lori eto ibi-afẹde. Ṣeun si Meterpreter, igbega anfani nigbakan wa si isalẹ lati ṣiṣẹ module ti o tọ, ṣugbọn gige sakasaka laisi oye ohun ti n ṣẹlẹ labẹ hood kii ṣe otitọ (o tun ni lati kọ ijabọ kan).

Irinṣẹ

Awọn irinṣẹ lati ṣe adaṣe akojọpọ alaye agbegbe yoo gba ọ ni ipa pupọ ati akoko, ṣugbọn nipasẹ ara wọn ko ni anfani lati ṣe idanimọ ni kikun ọna imudara anfani, ni pataki ni ọran ti ilokulo awọn ailagbara ekuro. Awọn irinṣẹ adaṣe yoo ṣe gbogbo awọn aṣẹ pataki fun ọ lati gba alaye nipa eto naa, ṣugbọn o tun ṣe pataki lati ni anfani lati itupalẹ gba data. Mo nireti pe nkan mi yoo wulo fun ọ ni eyi. Nitoribẹẹ, ọpọlọpọ awọn irinṣẹ diẹ sii ju Emi yoo ṣe atokọ ni isalẹ, ṣugbọn gbogbo wọn ṣe nipa ohun kanna - o jẹ ọrọ itọwo diẹ sii.

Linpeas

Ọpa tuntun ti o tọ, adehun akọkọ jẹ ọjọ Oṣu Kini ọdun 2019. Lọwọlọwọ ayanfẹ mi irinse. Laini isalẹ ni pe o ṣe afihan awọn eeka imudara anfani ti o nifẹ julọ. Gba, o rọrun diẹ sii lati gba igbelewọn iwé ni ipele yii ju lati ṣe itupalẹ data aise monolithic.

LineEnum

Ọpa ayanfẹ mi keji, o tun gba ati ṣeto data ti o gba bi abajade ti iṣiro agbegbe.

linux-lo nilokulo-oludamọran (1,2)

Iwa nilokulo yii yoo ṣe itupalẹ eto fun awọn ipo ti o dara fun awọn ilokulo. Ni otitọ, yoo ṣe iṣẹ kan ti o jọmọ si module Metasploit local_exploit_suggester, ṣugbọn yoo pese awọn ọna asopọ lati lo nilokulo-db awọn koodu orisun dipo awọn modulu Metasploit.

Linuxprivchecker

Iwe afọwọkọ yii yoo gba ati ṣeto nipasẹ awọn apakan ni iye nla ti alaye ti o le wulo fun dida fekito imudara anfani.

Igba miiran Emi yoo ṣe alaye Alekun anfani Linux nipasẹ suid/sgid.

orisun: www.habr.com

Fi ọrọìwòye kun