8qjddlZddlZddlmZddlmZddlmZmZddl m Z m Z m Z m Z mZddlmZddlmZddlmZmZdd lmZdd lmZdd lmZd d lmZejeZ dZ!dZ"dZ#edZ$edZ%dZ&defdZ'edZ(e dde)fdZ*dZ+dS)N)Path) web_server)ModsecVendorsErrorPanelException)atomic_rewrite check_run CheckRunError file_hashlog_error_and_ignore)files)Modsec)modsec_app_version_detectorwaf_rules_configurator)is_force_use_coraza)use_modsec_lock)HackerTrapHitsSaver) HostingPanelcKtdrddg}ngd} t|d{VdS#t$rtdYdSwxYw)Nz/usr/bin/imunify360-wsctlzimunify360-wsctlreload) systemctlrzimunify360-wafdz"Failed to reload 'imunify360-wafd')ris_filerr loggerwarning)argss U/opt/imunify360/venv/lib/python3.11/site-packages/im360/subsys/panels/update_hooks.py reload_wafdrs '((0022:"H-999=oo ===;<<<<<<=sA$A-,A-z*_Disable_WP_Redirect.confzSecRuleRemoveById 33355 33357cfK|rt}|r|d{Vt||d{Vt jd{Vt dd{Vtd{Vtj dSdSdS)NT) skip_restart) r is_installedapply_modsec_files_update_update_iprecordrinit0_update_account_compromise_prevention_rule_state_update_app_based_rulesrgraceful_restart_sync)_ is_updatedhps rupdate_vendorsr*,s/ ^^ ??   /..00 0 0 0 0 0 0 0#1j11 1 1 1 1 1 1 1%*,, , , , , , , ,C!       *++ + + + + + + +  , . . . . .)// / /c2Kt||d{VSN)r")r'r(s rupdate_iprecordr.Es(!!Z00 0 0 0 0 0 00r+cK|sdSd}t} |d{V}||dd{V}n0#ttt f$r}||Yd}~dSd}~wwxYwt tj tj dz dz }| r t | r t|t|kr|tj||tjd{Vt#s|jjdkr2t(dt-d{VdSdSdS#t.$r}||Yd}~dSd}~wwxYw|ddS)NcZtdt|zdS)Nz%Can't update ip-record.db, reason: %s)rrstres r_warnz_update_iprecord.._warnNs&>QGHHHHHr+z ip-record.dbz ip-record cPanelCoraza:Reloading 'imunify360-wafd' as coraza ruleset is in actionzsource file is missing)rget_i360_vendor_namebuild_vendor_file_pathrr ValueErrorrr Index files_path IP_RECORDexistsr shutilcopyrgraceful_restartr __class____name__rinfor Exception)r'r(r4r)vendor ip_recordr3srcs rr"r"JsB III B..0000000033FNKKKKKKKK  ; a U[ # #EO 4 455      zz||  ??))++ (y~~BB00 C+++ 1333333333())(|,>>KK"&--'''''''''00?>    E!HHH FFFFF  &'''s06AA=' A88A=B;F F2 F--F2pathc|}|sdS|tkrdStd||dS)NTFzInvalid content in %s: %s) read_textstripDISABLED_REDIRECT_CONF_CONTENTrr)rHcontents r_get_account_prevention_staterNwsWnn$$&&G t 2 2 2u2D'BBBtr+c.Ktd{VSr-)r$r+r/update_account_compromise_prevention_rule_staterQs$ACC C C C C C CCr+FrcPKtj}t} |d{V}nF#tt f$r2}t t|Yd}~dSd}~wwxYw | |dd{V}t| t}n8#ttf$r$t dtYdSwxYwt|}||kr|rdnt }t#t||d|st%jd{Vt)s|jjdkr2t dt1d{VdSdSdS)NzCan't get %s fileF)backupr5r6)r !CMS_ACCOUNT_COMPROMISE_PREVENTIONrr7rrrrr1r8nextglobWP_REDIRECT_CONF_PATTERN StopIteration exceptionrNrLrrr@rrArBrCr) ris_prevention_enabledr)rEr3 vendor_pathwp_redirect_conf_path current_staterMs rr$r$s#D B..00000000  /s1vv55fbAAAAAAAA $   5 6 6! !   .,.FGGG22GHHM---' KBB-K  s01175IIII 0-// / / / / / / /   BL$9^$K$K KKL   --         '.-%L$Ks(9A< 'A77A<AC1C98C9cKtjr` tjd{VdS#tjt jf$r&}td|Yd}~dSd}~wwxYwdS)NzApp based rules not updated: %s) r APP_SPECIFIC_RULESETrupdate_waf_rules_configNotSupportedWebserverErrorrDatabaseNotFoundErrorrrr2s rr%r%s "A A(@BB B B B B B B B B B " = ' =  A A A NNpathlibrdefence360agent.subsysr"defence360agent.subsys.panels.baserrdefence360agent.utilsrrr r r im360r im360.contracts.configr im360.subsysrrim360.subsys.int_configrim360.subsys.panels.baserimav.malwarelib.subsys.malwarer hosting_panelr getLoggerrBrrrXrLr*r.r"rNrQboolr$r%rPr+rrrs6 ------))))))LLLLLLLL777777444444>>>>>>''''''  8 $ $===8!@///0111***ZDDD& & & & & & RAAAAAr+