OpenShift - Jenkins Build Pod Override
Mwandishi halisi wa ukurasa huu ni Fares
Programu-jalizi ya Kubernetes kwa Jenkins
Programu-jalizi hii kwa kiasi kikubwa inahusika na kazi za msingi za Jenkins ndani ya kikundi cha openshift/kubernetes. Nyaraka rasmi hapa Inatoa baadhi ya utendakazi kama uwezo kwa wabunifu wa kubadilisha baadhi ya mipangilio ya msingi ya podi ya ujenzi wa jenkins.
Utendakazi wa Msingi
Programu-jalizi hii inaruhusu wabunifu uwezo wa kujenga kanuni zao katika mazingira yanayofaa.
Baadhi ya matumizi mabaya yakitumia kubadilisha yaml ya podi
Hata hivyo, inaweza kutumiwa vibaya kutumia picha yoyote inayopatikana kama Kali Linux na kutekeleza amri za kiholela kwa kutumia zana zilizosanikishwa kutoka kwenye picha hiyo. Katika mfano hapa chini tunaweza kuchota tokeni ya akaunti ya huduma ya podi inayotumika.
Kubadilisha Ujenzi wa Jenkins wa OpenShift
Unapotumia Jenkins kwenye OpenShift, unaweza kubadilisha mipangilio ya ujenzi kwa kutumia njia ifuatayo:
Nenda kwenye kisanduku cha ujenzi cha Jenkins kwenye OpenShift.
Bonyeza "Configure" kwenye menyu ya kushuka.
Chini ya sehemu ya "Build Configuration", weka mipangilio unayotaka kubadilisha.
Bonyeza "Save" chini ya ukurasa wa mabadiliko.
Kielelezo cha Kubadilisha Jina la Nafasi ya Podi
Unaweza kubadilisha jina la nafasi ya podi kwa kufuata hatua zifuatazo:
Fungua faili ya
Jenkinsfile
na uongeze sehemu ifuatayo:
Badilisha
'jina_la_nafasi'
na jina la nafasi unayotaka kutumia.
Kwa kufuata hatua hizi, utaweza kubadilisha jina la nafasi ya podi kwa mafanikio.
Mfano mwingine ambao unajaribu kufunga akaunti ya huduma (ambayo inaweza kuwa na ruhusa zaidi kuliko ile ya msingi, inayotekeleza ujenzi wako) kulingana na jina lake. Unaweza kuhitaji kudhani au kuchambua akaunti za huduma zilizopo kwanza.
Mbinu ile ile inatumika kujaribu kufunga Siri. lengo kuu hapa litakuwa kugundua jinsi ya kusanidi ujenzi wa podi yako ili kugeuza au kupata mamlaka.
Kwenda mbali
Marafiki unapozoea kucheza nayo, tumia maarifa yako kuhusu Jenkins na Kubernetes/Openshift kutafuta upangaji mbaya / matumizi mabaya.
Jiulize maswali yafuatayo:
Akaunti ipi ya huduma inatumika kupeleka podi za ujenzi?
Ina majukumu na ruhusa gani? Inaweza kusoma siri za nafasi ninayotumia sasa?
Je, naweza kuhesabu podi zingine za ujenzi?
Kutoka kwa sa iliyoharibiwa, naweza kutekeleza amri kwenye nodi/podi ya bwana?
Je, naweza kuhesabu kikundi kingine cha kugeuza mahali pengine?
SCC ipi imeomba?
Unaweza kugundua ni amri zipi za oc/kubectl za kutolewa hapa na hapa.
Hali za privesc/pivoting zinazowezekana
Fikiria kwamba wakati wa tathmini yako uligundua kuwa ujenzi wote wa jenkins hufanyika ndani ya nafasi inayoitwa worker-ns. Uligundua kuwa akaunti ya huduma ya msingi inayoitwa default-sa imefungwa kwenye podi za ujenzi, hata hivyo haina ruhusa nyingi isipokuwa ufikiaji wa kusoma kwenye baadhi ya rasilimali lakini uliweza kutambua akaunti ya huduma iliyoipo inayoitwa master-sa. Fikiria pia kuwa una amri ya oc imewekwa ndani ya chombo cha ujenzi kinachofanya kazi.
Kwa skripti ya ujenzi iliyo chini unaweza kuchukua udhibiti wa akaunti ya huduma ya master-sa na kuhesabu zaidi.
Kulingana na ufikiaji wako, unahitaji kuendelea na shambulio lako kutoka kwenye script ya ujenzi au unaweza kuingia moja kwa moja kama sa huyu kwenye kikundi kinachoendeshwa:
Ikiwa sa hii ina idhini za kutosha (kama pod/exec), unaweza pia kuchukua udhibiti wa kielelezo cha jenkins nzima kwa kutekeleza amri ndani ya podi ya nodi ya bwana, ikiwa inaendeshwa ndani ya nafasi ile ile. Unaweza kutambua podi hii kwa jina lake na kwa ukweli kwamba lazima iwe inapakia PVC (madai ya kiasi endelevu) kutumika kuhifadhi data ya jenkins.
Ikiwa podi ya nodi kuu haifanyi kazi ndani ya anwani ile ile kama wafanyikazi unaweza kujaribu mashambulizi sawa kwa kulenga anwani kuu. Hebu tuchukulie inaitwa jenkins-master. Kumbuka kuwa akaunti ya huduma master-sa inahitaji kuwepo kwenye anwani ya jenkins-master (na huenda isiwepo kwenye anwani ya worker-ns).
Last updated