Kuv yog cag. Nkag siab Linux OS Privilege Escalation

Kuv tau siv thawj peb lub hlis twg ntawm 2020 npaj rau kev xeem OSCP. Tshawb nrhiav cov ntaub ntawv hauv Google thiab ntau qhov "dig muag" sim siv tag nrho kuv lub sijhawm dawb. Nws tau dhau los ua qhov nyuaj tshwj xeeb kom nkag siab txog cov txheej txheem rau kev nce cov cai. PWK chav kawm them nyiaj zoo rau lub ncauj lus no, tab sis cov ntaub ntawv txheej txheem ib txwm tsis txaus. Muaj ntau phau ntawv qhia hauv Is Taws Nem nrog cov lus txib muaj txiaj ntsig, tab sis kuv tsis yog tus txhawb nqa ntawm qhov muag tsis pom kev ua raws cov lus pom zoo yam tsis nkag siab qhov twg qhov no yuav ua.

Kuv xav qhia rau koj txog yam kuv tau kawm thaum lub sijhawm npaj thiab ua tiav qhov kev xeem dhau los (xws li kev tawm tsam ib ntus ntawm Hack The Box). Kuv muaj kev ris txiaj rau txhua qhov me ntsis ntawm cov ntaub ntawv uas tau pab kuv taug txoj kev Sim Harder kom paub ntau ntxiv, tam sim no yog kuv lub sijhawm muab rov qab rau zej zog.

Kuv xav muab cov lus qhia rau koj kom muaj cai nce ntxiv hauv OS Linux, uas suav nrog kev tshuaj xyuas ntawm cov vectors feem ntau thiab cov yam ntxwv cuam tshuam uas koj yuav xav tau tiag tiag. Feem ntau, cov cai ntawm kev nce qib ntawm lawv tus kheej yog qhov yooj yim heev, muaj teeb meem tshwm sim thaum txhim kho thiab txheeb xyuas cov ntaub ntawv. Yog li ntawd, kuv txiav txim siab pib nrog "sightseeing ncig saib" thiab tom qab ntawd xav txog txhua tus vector hauv ib tsab xov xwm cais. Kuv vam tias kuv yuav txuag koj lub sijhawm los kawm cov ncauj lus.

Kuv yog cag. Nkag siab Linux OS Privilege Escalation

Yog li, vim li cas thiaj li muaj cai nce ntxiv txawm tias muaj peev xwm nyob rau xyoo 2020 yog tias cov txheej txheem tau paub zoo rau lub sijhawm ntev? Qhov tseeb, yog tias tus neeg siv tswj hwm qhov system kom raug, nws yuav tsis tuaj yeem ua kom muaj cai hauv nws. Qhov teeb meem thoob ntiaj teb tseem ceeb uas ua rau muaj lub cib fim zoo li no yog tsis ruaj ntseg configuration. Lub xub ntiag ntawm outdated software versions uas muaj qhov tsis zoo nyob rau hauv lub system kuj yog ib qho tshwj xeeb ntawm kev teeb tsa tsis zoo.

Muaj cai nce ntxiv los ntawm kev teeb tsa tsis ruaj ntseg

Ua ntej ntawm tag nrho cov, cia peb nrog cov kev teeb tsa tsis ruaj ntseg. Cia peb pib nrog Cov kws tshaj lij IT feem ntau siv phau ntawv thiab cov peev txheej xws li stackoverflow, ntau yam uas muaj cov lus txib tsis zoo thiab teeb tsa. Ib qho piv txwv zoo yog xov xwm tias tus lej feem ntau theej los ntawm stackoverflow muaj qhov yuam kev. Ib tus neeg paub txog kev paub yuav pom qhov jamb, tab sis qhov no yog nyob rau hauv lub ntiaj teb zoo tagnrho. Txawm tias cov kws tshaj lij nce kev ua haujlwm muaj peev xwm ua yuam kev. Xav txog tias tus thawj tswj hwm tab tom npaj thiab pom zoo cov ntaub ntawv rau kev sib tw tom ntej, tib lub sijhawm delving rau hauv cov thev naus laus zis tshiab uas yuav nthuav tawm hauv peb lub hlis twg tom ntej, thaum lub sijhawm daws cov neeg siv kev txhawb nqa cov haujlwm. Thiab tom qab ntawd nws tau muab txoj haujlwm ceev nrooj nce ob peb lub tshuab virtual thiab dov tawm cov kev pabcuam rau lawv. Koj xav li cas, qhov tshwm sim yog dab tsi uas admin tsuas tsis pom qhov jamb? Tom qab ntawd cov kws tshaj lij hloov pauv, tab sis cov cuab yeej tseem nyob, thaum cov tuam txhab ib txwm siv zog los txo cov nqi, suav nrog cov kws tshaj lij IT.

Pseudo plhaub thiab jailbreak

Lub plhaub system tau txais thaum lub sijhawm tsim khoom feem ntau txwv, tshwj xeeb tshaj yog tias koj tau txais los ntawm kev nyiag tus neeg siv lub vev xaib. Piv txwv li, kev txwv lub plhaub tuaj yeem tiv thaiv koj ntawm kev siv sudo hais kom ua yuam kev:

sudo: no tty present and no askpass program specified

Tom qab tau txais lub plhaub, kuv pom zoo kom tsim lub davhlau ya nyob twg puv, piv txwv li nrog Python.

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

Koj nug: "Vim li cas kuv thiaj xav tau ib txhiab lus, yog tias kuv tuaj yeem siv ib qho, piv txwv li, hloov cov ntaub ntawv?" Qhov tseeb yog tias cov tshuab tau teeb tsa txawv, ntawm tus tswv tsev tom ntej Python tej zaum yuav tsis raug teeb tsa, tab sis Perl yuav muaj. Qhov kev txawj ntse yog kom muaj peev xwm ua tau yam paub hauv lub cev yam tsis muaj cov cuab yeej paub. Ib daim ntawv teev tag nrho ntawm cov yam ntxwv tuaj yeem pom S, SΡ“S,.

Lub plhaub muaj cai tsawg tuaj yeem siv tau pab 1 ΠΈ pab 2 (tseem ceeb txawm tias GIMP).

Saib cov lus txib keeb kwm

Linux sau keeb kwm ntawm tag nrho cov lus txib ua tiav hauv cov ntaub ntawv ~ / .bash_history. Yog tias tus neeg rau zaub mov tseem siv tau thiab nws cov keeb kwm tsis raug tshem tawm, muaj lub sijhawm zoo uas cov ntaub ntawv pov thawj pom nyob rau hauv cov ntaub ntawv no. Clearing keeb kwm yog banally inconvenient. Yog tias tus thawj tswj hwm raug yuam kom xaiv kaum-qib cov lus txib ntawm, tau kawg, nws yuav yooj yim dua rau nws hu rau cov lus txib no los ntawm keeb kwm dua li nkag mus rau nws dua. Ntxiv rau, ntau yam tsis paub txog qhov "hack". Yog tias muaj lwm lub plhaub zoo li Zsh lossis Ntses hauv qhov system, lawv muaj lawv tus kheej keeb kwm. Txhawm rau tso saib keeb kwm ntawm cov lus txib hauv ib lub plhaub, tsuas yog ntaus cov lus txib keeb kwm.

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

Muaj kev sib koom hosting, uas cov neeg rau zaub mov tau siv los tuav ntau qhov chaw. Feem ntau, nrog rau qhov kev teeb tsa no, txhua qhov peev txheej muaj nws tus kheej cov neeg siv nrog cais cov npe hauv tsev thiab tus tswv tsev virtual. Yog li, yog tias teeb tsa tsis raug, koj tuaj yeem pom cov ntaub ntawv .bash_history hauv cov ntaub ntawv hauv paus ntawm lub vev xaib.

Nrhiav cov passwords hauv cov ntaub ntawv kaw lus thiab tawm tsam ntawm cov kab ke uas nyob ib sab

Cov ntaub ntawv teeb tsa rau ntau yam kev pabcuam tuaj yeem nyeem tau los ntawm koj tus neeg siv tam sim no. Hauv lawv, koj tuaj yeem pom cov ntaub ntawv pov thawj hauv cov ntawv ntshiab - passwords rau kev nkag mus rau cov ntaub ntawv lossis cov kev pabcuam cuam tshuam. Tib lo lus zais tuaj yeem siv ob qho tib si nkag mus rau hauv cov ntaub ntawv thiab tso cai rau tus neeg siv hauv paus (cov ntaub ntawv pov thawj cov neeg ua haujlwm).
Nws tshwm sim tias cov ntaub ntawv pov thawj pom muaj rau cov kev pabcuam ntawm lwm tus tswv. Txoj kev loj hlob ntawm kev tawm tsam ntawm kev tsim kho vaj tse los ntawm tus tswv tsev tsis zoo tsis yog qhov phem tshaj qhov kev siv ntawm lwm tus tswv. Cov kab ke uas nyob ib sab kuj tuaj yeem pom los ntawm kev saib IP chaw nyob hauv cov ntaub ntawv kaw lus.

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

Yog tias tus tswv tsev cuam tshuam muaj lub vev xaib thov nkag tau los ntawm Is Taws Nem, nws yog qhov zoo dua kom tsis suav nws cov cav los ntawm kev tshawb nrhiav IP chaw nyob. Qhov chaw nyob ntawm cov neeg siv khoom siv hauv Is Taws Nem tsis zoo li yuav muaj txiaj ntsig zoo rau peb, tab sis qhov chaw nyob ntawm lub network sab hauv (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8) thiab qhov chaw lawv mus, txiav txim los ntawm log, tej zaum yuav txaus siab.

Sudo

Cov lus txib sudo tso cai rau tus neeg siv los ua cov lus txib hauv cov ntsiab lus ntawm cov hauv paus nrog lawv tus kheej lo lus zais lossis tsis siv nws txhua. Ntau qhov haujlwm hauv Linux xav tau cov cai hauv paus, tab sis kev khiav haujlwm hauv paus yog suav tias yog kev coj ua phem heev. Hloov chaw, nws yog qhov zoo dua los siv kev tso cai xaiv los ua cov lus txib hauv cov ntsiab lus hauv paus. Txawm li cas los xij, ntau yam cuab yeej Linux, suav nrog cov qauv zoo li vi, tuaj yeem siv los txhawb kev tsim cai hauv txoj hauv kev raug cai. Txhawm rau nrhiav txoj hauv kev zoo, kuv xav kom saib no.

Thawj qhov uas yuav tsum tau ua tom qab nkag mus rau qhov system yog khiav cov lus txib sudo -l. Nws yuav tso cai rau siv sudo hais kom ua. Yog tias tus neeg siv tsis muaj tus password tau txais (xws li apache lossis www-data), sudo txoj cai nce qib vector tsis zoo li. Thaum siv sudo, lub kaw lus yuav nug tus password. Siv cov lus txib passwd los teeb tus password yuav tsis ua haujlwm, nws yuav nug tus neeg siv tus password tam sim no. Tab sis yog tias sudo tseem muaj, ces, qhov tseeb, koj yuav tsum nrhiav:

  • txhua tus neeg txhais lus, leej twg tuaj yeem tsim lub plhaub (PHP, Python, Perl);
  • cov ntawv nyeem (vim, vi, nano);
  • txhua tus neeg saib (tsawg dua, ntau dua);
  • muaj peev xwm ua haujlwm nrog cov ntaub ntawv kaw lus (cp, mv);
  • cov cuab yeej uas muaj cov zis tawm hauv bash, sib tham sib lossis raws li cov lus txib ua tau (awk, nrhiav, nmap, tcpdump, txiv neej, vi, vim, ansible).

Suid/Sig

Muaj ntau phau ntawv qhia hauv Is Taws Nem uas qhia txog kev tsim tag nrho suid / sgid cov lus txib, tab sis ib tsab xov xwm tsis tshua muaj qhia tshwj xeeb txog yuav ua li cas nrog cov kev pab cuam no. Muaj cai escalation xaiv uas tsis coj mus rau hauv tus account siv exploits yuav nrhiav tau S, SΡ“S,. Tsis tas li ntawd, ib tug xov tooj ntawm cov ntaub ntawv executable muaj qhov tsis zoo rau OS version, piv txwv.

Nyob rau hauv lub ntiaj teb zoo tagnrho, koj yuav tsum tau khiav tag nrho cov pob teeb tsa los ntawm tsawg kawg searchsploit. Hauv kev xyaum, qhov no yuav tsum tau ua nrog cov kev pabcuam nrov tshaj plaws xws li sudo. Nws kuj tseem yog ib qho kev xaiv los siv thiab txhawb kev txhim kho cov cuab yeej siv hluav taws xob uas yuav qhia txog kev nthuav dav, los ntawm qhov muaj cai nce ntxiv ntawm qhov pom, executables nrog suid / sgid cov khoom teeb. Kuv yuav muab ib daim ntawv teev cov cuab yeej zoo li no nyob rau hauv seem ntawm kab lus.

Cov ntawv sau tau khiav los ntawm Cron lossis Init hauv paus ntsiab lus

Cron txoj haujlwm tuaj yeem khiav hauv cov ntsiab lus ntawm cov neeg siv sib txawv, suav nrog hauv paus. Yog tias muaj ib txoj haujlwm hauv cron nrog qhov txuas mus rau cov ntaub ntawv ua tiav, thiab nws muaj rau koj los sau, koj tuaj yeem hloov tau yooj yim nrog qhov tsis zoo thiab ua kom muaj cai nce ntxiv. Tib lub sijhawm, los ntawm lub neej ntawd, cov ntaub ntawv nrog cron ua haujlwm muaj rau kev nyeem ntawv los ntawm txhua tus neeg siv.

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

Zoo sib xws yog rooj plaub nrog init. Qhov txawv yog tias cov dej num hauv cron raug ua raws sij hawm, thiab hauv init - ntawm qhov system pib. Rau kev ua haujlwm, koj yuav tsum tau rov pib dua lub system, thaum qee qhov kev pabcuam yuav tsis nce (yog tias lawv tsis tau sau npe hauv autoload).

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

Koj tuaj yeem tshawb nrhiav cov ntaub ntawv sau los ntawm txhua tus neeg siv.

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

Cov txheej txheem yog qhov paub zoo, paub txog cov thawj coj ua haujlwm ua tib zoo siv cov lus txib chmod. Txawm li cas los xij, hauv Web, feem ntau ntawm phau ntawv qhia piav txog kev teeb tsa cov cai siab tshaj plaws. Qhov "tsuas yog ua kom nws ua haujlwm" txoj hauv kev ntawm cov neeg ua haujlwm tsis muaj kev paub dhau los tsim cov hauv kev rau kev nce qib hauv txoj cai. Yog tias ua tau, nws yog qhov zoo tshaj los saib hauv cov lus txib keeb kwm rau kev siv tsis zoo ntawm chmod.

chmod +w /path 
chmod 777 /path

Tau txais plhaub nkag rau lwm tus neeg siv

Peb saib cov npe ntawm cov neeg siv hauv /etc/passwd. Peb xyuam xim rau cov uas muaj lub plhaub. Koj tuaj yeem brute cov neeg siv no - nws yog qhov ua tau tias dhau los ntawm cov neeg siv qhov tshwm sim koj yuav muaj peev xwm nce cov cai.

Txhawm rau txhim kho kev ruaj ntseg, kuv xav kom koj ib txwm ua raws li txoj cai ntawm txoj cai tsawg kawg nkaus. Nws kuj ua rau kev txiav txim siab siv sij hawm los xyuas cov kev teeb tsa tsis ruaj ntseg uas tuaj yeem nyob tom qab kev daws teeb meem - qhov no yog "lub luag haujlwm thev naus laus zis" ntawm tus thawj tswj hwm.

Tus kheej sau code

Nws tsim nyog ua tib zoo saib cov executables nyob rau hauv tus neeg siv thiab lub web server lub tsev directory (/var/www/ tshwj tsis yog hais tias lwm yam). Cov ntaub ntawv no tuaj yeem dhau los ua qhov kev daws teeb meem tsis txaus ntseeg thiab muaj cov cuab yeej zoo kawg. Tau kawg, yog tias koj muaj qee lub hauv paus hauv koj lub vev xaib neeg rau zaub mov, nws tsis muaj txiaj ntsig los tshawb nrhiav xoom-hnub hauv nws ua ib feem ntawm pentest, tab sis nws raug nquahu kom nrhiav thiab kawm txog kev hloov kho, plugins thiab cov khoom siv.

Txhawm rau kom muaj kev ruaj ntseg, nws yog qhov zoo dua kom tsis txhob siv cov ntawv pov thawj hauv cov ntawv sau tus kheej, nrog rau kev ua haujlwm txaus ntshai, xws li nyeem /etc/shadow lossis manipulating id_rsa, yog tias ua tau.

Kev nce ntawm txoj cai los ntawm kev siv qhov tsis zoo

Ua ntej sim ua kom muaj cai los ntawm kev siv dag zog, nws yog ib qho tseem ceeb kom nkag siab txog qhov hloov cov ntaub ntawv mus rau lub hom phiaj host. Ntxiv rau cov cuab yeej ib txwm muaj xws li ssh, ftp, http (wget, curl), muaj tag nrho "zoo" of possibilities.

Txhawm rau txhim kho kev ruaj ntseg ntawm koj lub cev, hloov kho nws tsis tu ncua mus rau qhov tseeb ruaj khov versions, thiab kuj sim siv kev faib khoom tsim los rau Enterprise. Txwv tsis pub, tsis tshua muaj, tab sis muaj cov xwm txheej thaum apt upgrade ua rau lub cev siv tsis tau.

Kev siv cov kev pabcuam khiav hauv cov ntsiab lus ntawm tus neeg siv hauv paus

Qee qhov kev pabcuam Linux khiav raws li cov neeg siv muaj cai hauv paus. Lawv tuaj yeem pom siv ps aux | grep cog. Hauv qhov no, qhov kev pabcuam yuav tsis raug tshaj tawm hauv Web thiab muaj nyob hauv zos. Yog tias nws muaj kev siv pej xeem, lawv tuaj yeem siv tau yam nyab xeeb: kev pabcuam kev sib tsoo thaum tsis ua haujlwm yog qhov tseem ceeb tsawg dua li OS poob.

ps -aux | grep root # Linux

Qhov kev vam meej tshaj plaws tuaj yeem suav tias yog kev ua haujlwm ntawm kev pabcuam hacked hauv cov ntsiab lus ntawm tus neeg siv hauv paus. Kev khiav hauj lwm qhov kev pabcuam SMB muab SYSTEM muaj cai nkag mus rau Windows systems (xws li ntawm ms17-010). Txawm li cas los xij, qhov no tsis tshwm sim hauv Linux systems, yog li koj tuaj yeem siv sijhawm ntau ntawm kev tsim nyog nce ntxiv.

Siv Linux Kernel Vulnerabilities

Nov yog txoj hauv kev kawg. Kev ua haujlwm tsis tiav tuaj yeem ua rau muaj kev sib tsoo, thiab thaum rov pib dua, qee qhov kev pabcuam (xws li cov uas tuaj yeem tau txais lub plhaub qub) yuav tsis sawv. Nws tshwm sim tias tus thawj tswj hwm tsuas tsis nco qab siv qhov systemctl pab kom hais kom ua. Ntxiv rau nws yuav ua rau muaj kev tsis txaus siab rau koj txoj haujlwm yog tias qhov kev siv tsis tau pom zoo.
Yog tias koj txiav txim siab siv cov peev txheej los ntawm exploitdb, nco ntsoov nyeem cov lus thaum pib ntawm tsab ntawv. Ntawm lwm yam, nws feem ntau hais tias yuav ua li cas sau cov kev siv no kom raug. Yog tias koj tub nkeeg dhau lawm lossis xav tau " nag hmo" vim hnub kawg, koj tuaj yeem nrhiav cov chaw khaws ntaub ntawv uas twb tau sau tseg lawm, piv txwv. Txawm li cas los xij, nws yuav tsum nkag siab tias qhov no koj yuav tau txais ib tug npua hauv poke. Ntawm qhov tod tes, yog tias tus programmer nkag siab txog byte yuav ua li cas lub khoos phis tawj ua haujlwm thiab software nws siv, nws yuav tsis tau sau ib kab code hauv nws lub neej tag nrho.

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

Metasploit

Txhawm rau kom ntes thiab tuav qhov kev sib txuas, nws yog ib txwm zoo dua los siv cov kev siv / ntau / tuav module. Qhov tseem ceeb tshaj plaws yog los teeb tsa lub payload kom raug, piv txwv li, generic/plhaub/reverce_tcp lossis generic/plhaub/bind_tcp. Lub plhaub tau txais hauv Metasploit tuaj yeem hloov kho mus rau Meterpreter siv cov post/multi/manage/shell_to_meterpreter module. Nrog Meterpreter, koj tuaj yeem hloov kho cov txheej txheem tom qab siv. Piv txwv li, post/multi/recon/local_exploit_suggester module xyuas lub platform, architecture, thiab exploitable entities thiab qhia Metasploit modules rau kev nce nqi ntawm lub hom phiaj system. Ua tsaug rau Meterpreter, txoj cai nce qib qee zaum los ntawm kev ua haujlwm zoo, tab sis kev nyiag khoom tsis nkag siab qhov tshwm sim hauv qab lub hood tsis muaj tseeb (koj tseem yuav tsum tau sau ib daim ntawv qhia).

cuab yeej

Cov cuab yeej los ua kom cov ntaub ntawv khaws cia hauv zos yuav txuag koj ntau ntawm kev siv zog thiab sijhawm, tab sis los ntawm lawv tus kheej tsis tuaj yeem txheeb xyuas tag nrho cov cai ntawm kev nce qib, tshwj xeeb tshaj yog nyob rau hauv cov ntaub ntawv ntawm kev siv kernel vulnerabilities. Cov cuab yeej Automation yuav ua tag nrho cov lus txib tsim nyog rau koj los sau cov ntaub ntawv hais txog qhov system, tab sis nws tseem ceeb heev kom muaj peev xwm. txheeb xyuas tau txais cov ntaub ntawv. Kuv vam tias kuv tsab xov xwm yuav muaj txiaj ntsig rau koj hauv qhov no. Tau kawg, muaj ntau yam cuab yeej ntau dua li kuv yuav teev hauv qab no, tab sis lawv txhua tus ua txog tib yam - nws yog qhov teeb meem ntawm saj.

Linpeas

Cov cuab yeej tshiab ncaj ncees, thawj qhov kev cog lus yog hnub tim Lub Ib Hlis 2019. Tam sim no kuv nyiam instrument. Cov kab hauv qab yog tias nws qhia txog cov txiaj ntsig zoo tshaj plaws kev nce qib vectors. Pom zoo, nws yooj yim dua kom tau txais cov kws tshaj lij kev ntsuas ntawm qib no dua li kev txheeb xyuas cov ntaub ntawv nyoos monolithic.

LinEnum

Kuv qhov thib ob nyiam cov cuab yeej, nws kuj sau thiab teeb tsa cov ntaub ntawv tau txais los ntawm kev txheeb xyuas hauv zos.

linux-exploit-suggester(1,2)

Qhov kev siv no yuav txheeb xyuas qhov system kom tsim nyog rau kev siv dag zog. Qhov tseeb, nws yuav ua haujlwm zoo ib yam rau Metasploit local_exploit_suggester module, tab sis yuav muab cov kev sib txuas rau kev siv-db qhov chaws tsis yog Metasploit modules.

Linuxprivchecker

Tsab ntawv no yuav sau thiab teeb tsa los ntawm ntu ntau cov ntaub ntawv uas tuaj yeem muaj txiaj ntsig zoo rau kev tsim cov cai nce qib vector.

Lwm lub sijhawm kuv yuav piav qhia Linux muaj cai nce ntxiv ntawm suid/sgid.

Tau qhov twg los: www.hab.com

Ntxiv ib saib