root aho. Fahatakarana ny Linux OS Privilege Escalation

Nandany ny telovolana voalohany tamin'ny 2020 aho niomana ho amin'ny fanadinana OSCP. Nikaroka fampahalalana tao amin'ny Google sy andrana “jamba” maro no nandany ny fotoanako rehetra. Sarotra indrindra ny nahatakatra ny fomba hampitomboana ny tombontsoa. Ny taranja PWK dia mifantoka betsaka amin'ity lohahevitra ity, saingy tsy ampy velively ny fitaovana enti-mampianatra. Betsaka ny boky torolalana ao amin'ny Internet miaraka amin'ny baiko mahasoa, saingy tsy mpankafy an-jambany ny fanarahana tolo-kevitra aho nefa tsy takatry ny saina hoe inona no hitarika azy.

Te-hizara aminareo ny zavatra nianarako nandritra ny fanomanana sy ny fahombiazan'ny fanadinana (anisan'izany ny forays tsindraindray ao amin'ny Hack The Box). Nahatsapa fankasitrahana mahery vaika aho tamin'ny fampahalalam-baovao rehetra nanampy ahy handeha amin'ny lalana Try Harder amin'ny fahatsiarovan-tena bebe kokoa, fotoana izao hamerenako ny fiarahamonina.

Te-hanome anao boky torolalana aho momba ny fomba hampitomboana ny tombontsoa amin'ny OS Linux, izay ahitana ny famakafakana ireo vectors mahazatra indrindra sy ireo endri-javatra mifandraika amin'izany izay tena mahasoa anao. Matetika ny fomba fampitomboana ny tombontsoa manokana dia tsotra, misy olana rehefa mamolavola sy mamakafaka ny vaovao. Noho izany, nanapa-kevitra ny hanomboka amin'ny "fitetezam-paritra" aho ary avy eo handinika ny vector tsirairay amin'ny lahatsoratra iray. Manantena aho fa hamonjy anao fotoana kely amin'ny fikarohana ny lohahevitra.

root aho. Fahatakarana ny Linux OS Privilege Escalation

Koa nahoana no azo atao amin'ny taona 2020 ny fisondrotan'ny tombontsoa raha toa ka efa fantatra hatry ny ela ny fomba? Raha ny marina, raha ny mpampiasa no mitantana tsara ny rafitra, dia tena tsy ho azo atao ny mampitombo ny tombontsoa ao. Ny olana lehibe eran-tany mahatonga ny fahafahana toy izany dia fikirakirana tsy azo antoka. Ny fisian'ny rindrambaiko efa lany andro izay misy vulnerabilities ao amin'ny rafitra dia tranga manokana ihany koa amin'ny fanamboarana tsy azo antoka.

Fisondrotana tombontsoa amin'ny alàlan'ny fanamafisana tsy azo antoka

Voalohany, andeha hojerentsika ny fanamafisana tsy azo antoka. Andeha isika hanomboka amin'ny Matetika ny matihanina IT dia mampiasa boky sy loharano toy ny stackoverflow, maro amin'izy ireo no misy baiko sy config tsy azo antoka. Ohatra iray miavaka - ny vaovao fa ny kaody nadika indrindra avy amin'ny stackoverflow dia misy hadisoana. Mpitantana efa za-draharaha no hahita ny jamb, fa ity dia ao anatin'ny tontolo tena tsara. Na ireo manampahaizana manokana aza nitombo enta-mavesatra mahay manao fahadisoana. Alaivo sary an-tsaina fa misy mpitantana iray manomana sy mandrindra ny antontan-taratasy ho an'ny tolo-bidy manaraka, miaraka amin'ny famakafakana ny teknolojia vaovao izay hampiharina amin'ny telovolana manaraka, ary mamaha tsindraindray ny olan'ny fanohanana ny mpampiasa. Ary avy eo izy dia omena andraikitra hanangana haingana milina virtoaly roa ary manodina serivisy amin'izy ireo. Inona araka ny hevitrao no mety tsy ho hitan'ny admin tsotra izao ny jamb? Avy eo dia miova ny manam-pahaizana manokana, fa mijanona ny tehina, fa ny orinasa dia miezaka foana ny manamaivana ny fandaniana, anisan'izany ny mpiasa IT.

Pseudo-shell sy jailbreak

Ny akoran'ny rafitra azo nandritra ny dingan'ny fanararaotana dia matetika voafetra, indrindra raha nahazo izany tamin'ny alàlan'ny fijirihana mpampiasa ny mpizara tranonkala ianao. Ohatra, ny famerana ny akorandriaka dia mety manakana anao tsy handefa ny baiko sudo, ka miteraka hadisoana:

sudo: no tty present and no askpass program specified

Raha vantany vao manana akorandriaka ianao dia manoro hevitra aho hamorona terminal feno, ohatra amin'ny fampiasana Python.

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

Mety hanontany ianao hoe: “Nahoana aho no mila baiko arivo raha afaka mampiasa iray aho, ohatra, hamindrana rakitra?” Ny zava-misy dia ny rafitra dia namboarina amin'ny fomba hafa; Ny mpampiantrano iray dia mety tsy nametraka Python, fa mety manana Perl. Ny fahaiza-manao dia ny fahafahana manao zavatra mahazatra ao amin'ny rafitra tsy misy fitaovana mahazatra. Misy lisitra feno ny endri-javatra azo jerena eto.

Ny akorandriaka ambany tombontsoa azo ampiasaina ekipa 1 и ekipa 2 (mahagaga, na ny GIMP aza).

Jereo ny tantaran'ny baiko

Linux dia manangona ny tantaran'ny baiko rehetra vita ao anaty rakitra ~/.bash_history. Raha ampiasaina amin'ny fomba mavitrika ny mpizara ary tsy voafafa ny tantarany, dia betsaka ny mety hahitana fahazoan-dàlana amin'ity rakitra ity. Ny fanadiovana ny tantara dia tsy mety. Raha terena hisafidy baiko misy rihana folo amin'ny alàlan'ny , mazava ho azy, dia ho mora kokoa aminy ny hiantso an'io baiko avy amin'ny tantara io fa tsy hampiditra azy indray. Ankoatra izany, maro ny olona tsy mahalala momba ity "hack". Raha misy akorandriaka hafa toa an'i Zsh na Fish ao amin'ny rafitra dia manana ny tantarany manokana izy ireo. Mba hampisehoana ny tantaran'ny baiko amin'ny akora rehetra dia soraty fotsiny ny tantaran'ny baiko.

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

Misy fampiantranoana iombonana, izay ampiasain'ny mpizara hampiantrano tranonkala maromaro. Amin'ny ankapobeny, miaraka amin'ity fanamafisana ity, ny loharano tsirairay dia manana mpampiasa azy manokana miaraka amin'ny lahatahiry an-trano misaraka sy mpampiantrano virtoaly. Noho izany, raha diso ny fanamboarana dia azonao atao ny mahita ny rakitra .bash_history ao amin'ny lahatahiry fototry ny loharanon-tranonkala.

Mikaroka ny tenimiafina ao amin'ny rafi-drakitra sy ny fanafihana amin'ny rafitra mifanila

Ny rakitra fanamboarana ho an'ny serivisy isan-karazany dia mety ho azon'ny mpampiasa anao ankehitriny. Ao amin'izy ireo dia afaka mahita fahazoan-dàlana amin'ny lahatsoratra mazava ianao - tenimiafina ho an'ny fidirana amin'ny angon-drakitra na serivisy mifandraika. Ny tenimiafina mitovy dia azo ampiasaina mba hidirana amin'ny angon-drakitra sy hanomezana alalana ny mpampiasa root (mpiasa amin'ny fahazoan-dàlana).
Hita fa an'ny serivisy amin'ny mpampiantrano hafa ny fahazoan-dàlana hita. Ny fampivoarana fanafihana fotodrafitrasa amin'ny alàlan'ny mpampiantrano marimaritra iraisana dia tsy ratsy noho ny fanararaotana mpampiantrano hafa. Ny rafitra mifanila dia azo jerena ihany koa amin'ny fijerena ny adiresy IP ao amin'ny rafi-drakitra.

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

Raha manana rindranasa amin'ny Internet azo idirana amin'ny Internet ny mpampiantrano voatohintohina, dia tsara kokoa ny manilika ny diariny amin'ny fitadiavana adiresy IP. Ny adiresin'ireo mpampiasa loharanon-karena avy amin'ny Internet dia mety tsy hahasoa antsika, fa ny adiresin'ny tambajotra anatiny (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8) sy ny toerana alehany, raha jerena ny logs , mety hahaliana.

Sudo

Ny baiko sudo dia manome ny mpampiasa ny fahafahana manatanteraka baiko amin'ny fotony fototra amin'ny fampiasana ny tenimiafina manokana na tsy mampiasa tenimiafina mihitsy. Betsaka ny asa ao amin'ny Linux mitaky tombontsoa faka, fa ny fandehanana amin'ny maha-paka dia heverina ho fanao ratsy. Fa tsara kokoa ny mampihatra ny fahazoan-dàlana mifantina hanatanteraka baiko amin'ny fotony fototra. Na izany aza, fitaovana Linux maro, anisan'izany ny mahazatra toy ny vi, dia azo ampiasaina hampitomboana ny tombontsoa amin'ny fomba ara-dalàna. Mba hahitana fomba mety, dia manoro hevitra aho hijery eto.

Ny zavatra voalohany tokony hataonao rehefa mahazo fidirana amin'ny rafitra ianao dia ny fampandehanana ny baiko sudo -l. Haneho fahazoan-dàlana hampiasa ny baiko sudo izy io. Raha misy mpampiasa tsy manana tenimiafina azo (toy ny apache na www-data), dia tsy azo inoana ny fisondrotry ny tombontsoa azo avy amin'ny sudo. Rehefa mampiasa sudo dia hangataka tenimiafina ny rafitra. Tsy afaka mametraka tenimiafina amin'ny alalan'ny baiko passwd koa ianao; hangataka ny tenimiafina an'ny mpampiasa ankehitriny izy io. Fa raha mbola misy ny sudo, dia mila mitady ianao:

  • misy mpandika teny, na iza na iza afaka miteraka akorandriaka (PHP, Python, Perl);
  • misy mpamoaka lahatsoratra (vim, vi, nano);
  • misy mpijery (kely, betsaka);
  • ny fahafahana miasa miaraka amin'ny rafitra fichier (cp, mv);
  • Fitaovana misy vokatra amin'ny bash, interactive na toy ny baiko azo tanterahana (awk, find, nmap, tcpdump, man, vi, vim, ansible).

Suid/Sgid

Betsaka ny boky torolalana ao amin'ny Internet izay manoro hevitra ny hanangona ny baiko suid/sgid rehetra, saingy lahatsoratra tsy fahita firy no manome manokana ny tokony hatao amin'ireo programa ireo. Ny safidy amin'ny fitomboan'ny tombontsoa izay tsy miraharaha ny fampiasana ny fanararaotana dia azo jerena eto. Ary koa, misy rakitra azo tanterahana maromaro manana vulnerability manokana ho an'ny dikan-teny OS, ohatra.

Ao amin'ny tontolo tena tsara, azonao atao ny mampandeha ny fonosana napetraka rehetra amin'ny alàlan'ny searchsploit farafaharatsiny. Amin'ny fampiharana, tokony hatao amin'ny programa malaza indrindra toy ny sudo izany. Misy ihany koa ny safidy hampiasa sy hanohanana ny fampivoarana fitaovana mandeha ho azy izay hanasongadina ny mahaliana, avy amin'ny fomba fijery ny fisondrotry ny tombontsoa, ​​ny rakitra azo tanterahana miaraka amin'ny suid/sgid bits napetraka. Hanome lisitr'ireo fitaovana toy izany aho ao amin'ny fizarana mifanaraka amin'ilay lahatsoratra.

Soraty azo soratana tarihin'i Cron na Init amin'ny tontolon'ny Root

Ny asa Cron dia azo atao amin'ny sehatra mpampiasa samihafa, ao anatin'izany ny faka. Raha misy asa cron napetraka miaraka amin'ny rohy mankany amin'ny rakitra azo tanterahana, ary azonao soratana izy io, dia azo soloina mora foana amin'ny asa ratsy sy fisondrotry ny tombontsoa. Na izany aza, amin'ny alàlan'ny default, ny rakitra misy asa cron dia azon'ny mpampiasa rehetra vakiana.

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

Mitovy amin'ny init ny toe-javatra. Ny fahasamihafana dia ny asa ao amin'ny cron dia tanterahina tsindraindray, ary amin'ny init - amin'ny fanombohana ny rafitra. Mitaky reboot ny rafitra ny fandidiana, ary mety tsy hanomboka ny serivisy sasany (raha tsy nisoratra anarana tamin'ny fanombohana).

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

Azonao atao ihany koa ny mikaroka rakitra izay azon'ny mpampiasa soratana.

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

Ny fomba dia fantatra tsara; Ny mpandrindra rafitra efa za-draharaha dia mampiasa tsara ny baiko chmod. Na izany aza, amin'ny Internet, ny ankamaroan'ny boky torolalana dia mamaritra ny fametrahana zo ambony indrindra. Ny fomba fiasa "ataovy fotsiny izany" ataon'ireo mpitantana rafitra tsy manana traikefa dia miteraka fahafahana hampitombo ny tombontsoa amin'ny ankapobeny. Raha azo atao dia tsara kokoa ny mijery ny tantaran'ny baiko momba ny fampiasana tsy azo antoka ny chmod.

chmod +w /path 
chmod 777 /path

Mahazo fidirana shell amin'ny mpampiasa hafa

Mijery ny lisitry ny mpampiasa ao amin'ny /etc/passwd. Mandinika ireo manana akorandriaka izahay. Azonao atao ny manenjika ireo mpampiasa ireo - azo atao fa amin'ny alàlan'ny mpampiasa vokatr'izany dia azo atao ny mampitombo ny tombontsoa amin'ny farany.

Mba hanatsarana ny fiarovana, manoro hevitra anao aho mba hifikitra amin'ny fitsipiky ny tombontsoa faran'izay kely indrindra. Misy dikany ihany koa ny mandany fotoana amin'ny fanamarinana ireo fanitsiana tsy azo antoka izay mety hijanona aorian'ny famahana olana - izany no "adidy ara-teknika" an'ny mpitantana ny rafitra.

Kaody nosoratan'ny tena

Ilaina ny mijery akaiky ireo rakitra azo tanterahana ao amin'ny lahatahiry an-tranon'ny mpampiasa sy ny mpizara tranonkala (/var/www/, raha tsy misy fepetra hafa). Ireo rakitra ireo dia mety hivadika ho vahaolana tsy azo antoka tanteraka ary misy tehina tsy mampino. Mazava ho azy, raha manana karazana rafitra ao amin'ny lahatahiry mpizara tranonkala ianao, dia tsy misy dikany ny mitady andro aotra ao anatin'izany ao anatin'ny pentest, fa asaina mitady sy mianatra ny fanovana, ny plugins ary ny singa manokana.

Mba hampitomboana ny fiarovana, dia tsara kokoa, raha azo atao, ny misoroka ny fampiasana ny fahazoan-dàlana amin'ny sora-tanana nosoratan'ny tena, ary koa ny fiasa mety hampidi-doza, toy ny famakiana /etc/shadow na fanodinkodinana id_rsa.

Fampitomboana ny tombontsoa amin'ny alàlan'ny fanararaotana ny vulnerability

Alohan'ny hanandramana hampitombo ny tombontsoa amin'ny alàlan'ny fanararaotana dia zava-dehibe ny mahatakatra mamindra rakitra amin'ny mpampiantrano kendrena. Ankoatra ny fitaovana mahazatra toy ny ssh, ftp, http (wget, curl) dia misy iray manontolo "zoo" ny mety.

Mba hanatsarana ny fiarovana ny rafitra, havaozy tsy tapaka ny farany marin-toerana dikan-teny, ary manandrana mampiasa fizarana natao ho an'ny Enterprise. Raha tsy izany dia tsy fahita firy izany fa misy toe-javatra izay mahatonga ny fampivoarana tsara ny rafitra tsy azo ampiasaina.

Manararaotra ny serivisy mandeha eo ambanin'ny tontolon'ny mpampiasa faka

Ny serivisy Linux sasany dia mandeha ho root. Hita amin'ny alalan'ny baiko ps aux | grep faka. Amin'ity tranga ity, ny serivisy dia mety tsy havoaka amin'ny Internet ary ho hita eo an-toerana. Raha misy fanararaotana ampahibemaso, dia azo ampiasaina soa aman-tsara izy ireo: ny fianjeran'ny serivisy raha sendra tsy fahombiazana dia tsy dia mitsikera loatra noho ny fianjeran'ny OS.

ps -aux | grep root # Linux

Ny tranga mahomby indrindra dia azo raisina ho toy ny fiasan'ny serivisy voajirika ao anatin'ny tontolon'ny mpampiasa faka. Ny fampandehanana ny serivisy SMB dia manome fidirana SYSTEM manokana amin'ny rafitra Windows (ohatra, amin'ny alàlan'ny ms17-010). Na izany aza, tsy mahazatra amin'ny rafitra Linux izany, noho izany dia afaka mandany fotoana betsaka amin'ny fitomboan'ny tombontsoa ianao.

Manararaotra ny vulnerabilities Linux Kernel

Ity no lalana tokony halehanao farany. Mety hitarika ho amin'ny fianjeran'ny rafitra ny fandidiana tsy mahomby, ary raha misy ny reboot dia mety tsy hanomboka ny serivisy sasany (anisan'izany ireo izay nahazoana ny akorandriaka voalohany). Mitranga fa nanadino fotsiny ny mpampiasa ny baiko systemctl enable. Ankoatra izany dia hiteraka tsy fahafaham-po be amin'ny asanao izany raha tsy nifanarahana ny fandidiana.
Raha manapa-kevitra ny hampiasa ny kaody loharano avy amin'ny exploitdb ianao dia aoka ho azo antoka ny hamaky ny fanehoan-kevitra eo am-piandohan'ny script. Ankoatra ny zavatra hafa, matetika dia milaza ny fomba hanangonana tsara ny fanararaotana nomena. Raha kamo loatra ianao na voatery nanao izany "omaly" noho ny fe-potoana farany, dia azonao atao ny mikaroka ireo tahiry misy fanararaotana efa voaangona, ohatra. Na izany aza, tokony ho takatrao fa amin'ity tranga ity dia hahazo kisoa amin'ny poketra ianao. Etsy an-danin'izany, raha takatry ny programmer iray hatramin'ny byte ny fomba fiasan'ny ordinatera iray sy ny rindrambaiko ampiasainy, dia tsy hanoratra fehezan-dalàna iray izy mandritra ny androm-piainany manontolo.

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

metasploit

Mba hisamborana sy hikarakarana ny fifandraisana dia tsara kokoa ny mampiasa ny mody exploit/multi/handler. Ny tena zava-dehibe dia ny mametraka ny karama marina, ohatra, generic/shell/reverse_tcp na generic/shell/bind_tcp. Ny akorandriaka novokarin'ny Metasploit dia azo havaozina ho Meterpreter amin'ny alàlan'ny môdely post/multi/manage/shell_to_meterpreter. Miaraka amin'ny Meterpreter, azonao atao ny manao automatique ny fizotran'ny fitrandrahana. Ohatra, ny maody post/multi/recon/local_exploit_suggester dia manamarina ny sehatra, ny maritrano ary ny sampan-draharaha ilaina amin'ny fitrandrahana ary manolotra ny maody Metasploit mba hampitombo ny tombontsoa amin'ny rafitra kendrena. Misaotra an'i Meterpreter, ny tombontsoa mitombo indraindray dia tonga amin'ny fandefasana ny maody ilaina, fa ny fijirihana tsy takatry ny saina dia tsy "marina" (mbola mila manoratra tatitra ianao).

Tools

Ny fitaovana ho an'ny fanangonam-baovao eo an-toerana dia hamonjy anao amin'ny ezaka sy fotoana be dia be, fa amin'ny tenany manokana dia tsy afaka mamantatra tanteraka ny lalana mankany amin'ny fisondrotry ny tombontsoa izy ireo, indrindra amin'ny tranga fitrandrahana ny vulnerabilities kernel. Ny fitaovana automatique dia hanatanteraka ny baiko ilaina rehetra mba hanangonanao vaovao momba ny rafitra, fa zava-dehibe ihany koa ny fahafahana manao hamakafaka voaray angona. Manantena aho fa hahasoa anao amin'io lafiny io ny lahatsoratro. Mazava ho azy fa misy fitaovana maro kokoa noho ny hotanisaiko eto ambany, saingy mitovy ny zavatra rehetra ataon'izy ireo - izany dia resaka tsiro.

Linpeas

Tula vao haingana, nanomboka tamin'ny Janoary 2019 ny fanoloran-tena voalohany. Ny fitaovana tiako indrindra amin'izao fotoana izao. Ny tanjona dia ny manasongadina ireo vectors mahaliana indrindra amin'ny fisondrotry ny tombontsoa. Ekeo fa mety kokoa ny mahazo fanombanana manam-pahaizana amin'ity ambaratonga ity noho ny manadihady angona manta monolitika.

LinEnum

Fitaovana faharoa tiako indrindra, manangona sy mandamina ny angona azo avy amin'ny fanisana eo an-toerana ihany koa.

Linux-exploit-suggester (1,2)

Ity fanararaotana ity dia hamakafaka ny rafitra ho an'ny fepetra fitrandrahana mety. Raha ny marina dia hanao ny asa mitovy amin'ny môdely Metasploit local_exploit_suggester izy, fa hanolotra rohy mankany amin'ny kaody loharano exploit-db fa tsy môdely Metasploit.

Linuxprivchecker

Ity script ity dia hanangona sy handamina ho fizarana fampahalalana be dia be izay mety ho ilaina amin'ny fananganana vector mba hampitomboana ny tombontsoa.

Amin'ny indray mandeha aho dia hiresaka amin'ny antsipiriany fanandratana ny tombontsoa amin'ny Linux OS amin'ny alàlan'ny suid/sgid.

Source: www.habr.com

Add a comment