Organizatorii conferintei BSides London au pus la cale 3 hacking challange-uri, a caror rezolvare ar duce la castigarea unor premii constand in carti. Unul dintre aceste challange-uri este creat de Didier Stevens, care este recunoscut si pentru efortul lui de a creea tool-uri care sa ajute la analiza atacurilor care folosesc ca vector de propagare documentele in format PDF/Office.

Pentru analiza acestui document am folosit PDFSteamdumper care este un tool foarte bun pentru aceste tipuri de analize. O vizualizare a documentului arata urmatorul code java cat si alte informatii necesare:

<<

/Title (BSidesLondon 2011 PDF Challenge)
/Author (Didier Stevens)
/CreationDate (20110421111705)
>>

var j=”;
j += String.fromCharCode(10);
j += String.fromCharCode(118);
j += String.fromCharCode(97);

…….

j += String.fromCharCode(41);
j += String.fromCharCode(59);
j += String.fromCharCode(10);
eval(j);

Tot PDFSteamDumper este in stare sa ruleze codul java „ascuns” si sa-l  extraga.

Versiunea finala arata cam asa:

var a = [2, 3, 1, 1];
var b = [2, 5, 131, 2347];
var c, d;
var e = Math.floor(this.info.CreationDate);
var f = e;
for (c = 0; c < a.length; c++)
for (d = 0; d < a[c]; d++)
f = f / b[c];
if (130817 == f)
app.alert({cMsg: ‘The provided code is correct, your answer is: ‘ + e / b[2] / b[3], cTitle: ‘BSidesLondon 2011 PDF Challenge’, nIcon: 3});
else
app.alert({cMsg: ‘The provided code is wrong!’, cTitle: ‘BSidesLondon 2011 PDF Challenge’, nIcon: 3});

Codul foloseste data creearii documentului pentru a determina daca esti sau nu castigator. Concurentiii trebuie sa modifice aceasta data pentru a putea sa rezolve challange-ul. Mai departe, folosind principiul de clasa a doua conform caruia inmultirea este operatia complementara impartirii, se poate afla data necesara pentru a putea rezolva challange-ul.

Frumos nu? Ce alte tool-uri ati fi folosit pentru a rezolva acest challange?

Cat de interesati sunteti de challange-uri de IT Security?