Après 2 ans d'attente, nous avons pu, avec mon équipe Randomware se prêter aux challenges du BreizhCTF 2022 qui se déroulait dans la nuit du 1 au 2 avril à Rennes. Quelques retours sur l'event :
Nous avons tenté de résoudre pas mal de challenges en équipe (la base) mais voici mes quelques write up :
Nous avons seulement un pseudo lié à une adresse sous la forme prenom.nom@gmail.com (sûrement utile pour nos prochaines recherches) pour un de nos suspect : lucdlgett
Retrouvez le nom et prénom complet de celui-ci dans le but de pouvoir commencer nos recherches.
Auteur: T0fix
Format: BZHCTF{PRENOM-NOM}
Il nous fallait donc trouver le nom/prenom via un pseudo, on cherche donc tous les réseaux sociaux connus associés à ce pseudo. (via cet outil par exemple). J'ai pu retrouver :
Son Twitter -> rien de très intéressant
Son compte insta : en naviguant sur les posts instagram, on voit que notre cher Lucas Delagalett a pris un livre en photo juste derrière son PC en verrouillage, où son nom commun Windows est affiché :
BZHCTF{LUCAS-DELAGALETT}
Un des autres téléphones (dont nous n'avons pas le numéro pour le coup) de notre suspect a été ciblé à ce point suivant. Retrouvez son opérateur réseau.
La Bidois - 35230 Noyal-Châtillon-sur-Seiche
Auteur: T0fix
Format du flag : BZHCTF{}
Notes : Les espaces seront remplacés par des tirets '-''.
Ici, on doit retrouver son opérateur mobile et on a directement pensé à une carte de couverture du réseau mobile (antenne mobile à cette adresse?)
On trouve une carte interractive
A cette adresse, il y avait en effet une antenne Bouygues Télécom :
BZHCTF{bouygues-telecom}
Selon son compte instagram, notre suspect est parti en 'vacances' dans un pays froid, retrouvez le nom du pont qu'il a emprunté, cela nous indiquera une position précise d'où il a pu passer.
Auteur: T0fix
Format: BZHCTF{PONT}
Sur la première photo, en zoomant un peu, on aperçoit un site web avec le TLD .fi sur une affiche publicitaire, notre amis a donc été faire un tour en Finlande !
Lorsqu'on regarde la photo du pont, on peut en déduire plusieurs choses :
On regarde donc si on peut trouver une liste des ponts sur Google. Bingo, la photo d'exemple de la page Wikipedia m'a interpellé, il s'agissait bien de notre pont, le Jätkänkynttilä :
Retrouver le numéro de téléphone de notre suspect.
Auteur: T0fix
Format: BZHCTF{NUMERO}
Après pas mal de recherche sur les réseaux sociaux déjà identifiés de notre cher M. Delagalett, on se rend compte qu'il a aussi un compte Linkedin. En regardant ses posts, on voit qu'il a publié un CV avec son numéro de mobile :
BZHCTF{0757914697}
Après avoir recupéré le numéro de téléphone de la cible, nous souhaitons pouvoir le mettre sur écoute. Pour effectuer la demande à l'opérateur, nous devons identifier celui-ci. Pouvez-vous vous en charger ?
Auteur: LaChenilleBarbue
Format : BZHCTF{MCCMNC:OPERATEUR}
Pour ce chall, j'ai trouvé un outil de l'ARCEP (L'Autorité de régulation des communications électroniques, des postes et de la distribution de la presse) qui permet d'identifier l'allocation du préfixe de n° mobile :
Il m'a fallut ensuite chercher quel était le MCC/MNC (identifiant du pays + celui du réseau). Et via une petite recherche Google, je trouve un PDF qui fait l'affaire :
BZHCTF{20817:LEGOS}
On sait que notre suspect devait effectuer un rdv avec un certain agent durant ces 3 dernières années, prouvez-le.
Auteur: T0fix
Format: BZHCTF{}
Après pas mal de réflexion sur la source de données à exploiter et le type d'info à trouver, je suis revenu sur le 1er challenge pour travailler avec l'adresse email du suspect. Bonne nouvelle, c'est une adresse gmail et le magnifique outil Ghunt nous permet de retrouver des infos via cet input et notamment un éventuel calendrier Google public par exemple ? C'est parti :
root@kali:~/Desktop/bctf/ghunt# python3 ghunt.py email lucas.delagalett@gmail.com
.d8888b. 888 888 888
d88P Y88b 888 888 888
888 888 888 888 888
888 8888888888 888 888 88888b. 888888
888 88888 888 888 888 888 888 "88b 888
888 888 888 888 888 888 888 888 888
Y88b d88P 888 888 Y88b 888 888 888 Y88b.
"Y8888P88 888 888 "Y88888 888 888 "Y888
[+] 1 account found !
------------------------------
Name : Lucas Delagalett
[-] Default profile picture
Last profile edit : 2022/03/15 18:22:35 (UTC)
Email : lucas.delagalett@gmail.com
Gaia ID : 106543733499769528341
Hangouts Bot : No
[+] Activated Google services :
- Hangouts
[-] YouTube channel not found.
Google Maps : https://www.google.com/maps/contrib/106543733499769528341/reviews
[-] No reviews
Google Calendar : https://calendar.google.com/calendar/u/0/embed?src=lucas.delagalett@gmail.com
[-] No public Google Calendar.
Bingooo, en fouillant dans les rendez-vous passés sur le calendrier public de notre cible, on en retrouve un intéressant :
BZHCTF{W3ll_U_found_Me_OSS1000}
Voir les deux côtés de quelque chose, c'est toujours bon non?
Un de vos employés s'est fait voler sa machine il y a 3 heures, heureusement, votre SI est bien configuré est des snapshots mémoires sont réalisées toutes les 2 heures ! Votre employé vous affirme qu'il a reçu un mail officiel de ses supérieurs pour télécharger une nouvelle application l'aidant dans son travail..
Votre but est d'identifier le nom de ce fichier, et de trouver sur quelle ip ainsi que sur quel port la backdoor s'est connectée !
Le fichier est le même que pour le premier challenge
Auteur: Worty
Format : BZHCTF{malveillant.exe-ip:port}
Ici, c'est clair, on cherche un process malveillant et une connexion réseau. On lance la commande pstree de volatility pour tenter d'identifier un process anormal :
root@kali:~/Downloads# volatility -f memory.dmp imageinfo
Volatility Foundation Volatility Framework 2.6
INFO : volatility.debug : Determining profile based on KDBG search...
Suggested Profile(s) : Win7SP1x86_23418, Win7SP0x86, Win7SP1x86_24000, Win7SP1x86 (Instantiated with WinXPSP2x86)
AS Layer1 : IA32PagedMemoryPae (Kernel AS)
AS Layer2 : WindowsCrashDumpSpace32 (Unnamed AS)
AS Layer3 : FileAddressSpace (/root/Downloads/memory.dmp)
PAE type : PAE
DTB : 0x185000L
KUSER_SHARED_DATA : 0xffdf0000L
Image date and time : 2022-02-23 19:29:05 UTC+0000
Image local date and time : 2022-02-23 11:29:05 -0800
root@kali:~/Downloads# volatility -f memory.dmp --profile=Win7SP1x86 pstree
Volatility Foundation Volatility Framework 2.6
Name Pid PPid Thds Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
0x85748030:csrss.exe 304 296 9 338 2022-02-23 18:09:03 UTC+0000
0x85b9bd40:wininit.exe 340 296 3 75 2022-02-23 18:09:03 UTC+0000
. 0x85cba2d8:lsass.exe 452 340 6 558 2022-02-23 18:09:04 UTC+0000
. 0x85cbc620:lsm.exe 468 340 9 141 2022-02-23 18:09:04 UTC+0000
. 0x85cac030:services.exe 444 340 7 196 2022-02-23 18:09:04 UTC+0000
.. 0x8430dc38:msiexec.exe 3820 444 6 305 2022-02-23 19:18:52 UTC+0000
.. 0x85aa6810:svchost.exe 1044 444 10 265 2022-02-24 03:09:09 UTC+0000
.. 0x84e3e4d0:taskhost.exe 772 444 8 208 2022-02-24 03:09:17 UTC+0000
.. 0x84c07030:svchost.exe 900 444 14 314 2022-02-24 03:09:08 UTC+0000
... 0x84c7ac88:dwm.exe 848 900 3 71 2022-02-24 03:09:17 UTC+0000
.. 0x85550718:svchost.exe 1692 444 6 94 2022-02-24 03:09:11 UTC+0000
.. 0x84c08800:svchost.exe 924 444 40 1256 2022-02-24 03:09:08 UTC+0000
... 0x8549b108:WMIADAP.exe 1152 924 5 86 2022-02-23 19:27:21 UTC+0000
.. 0x84cd8410:svchost.exe 1068 444 19 490 2022-02-24 03:09:09 UTC+0000
.. 0x85f9b030:spoolsv.exe 1340 444 12 293 2022-02-24 03:09:10 UTC+0000
.. 0x85f2bc08:svchost.exe 576 444 9 353 2022-02-23 18:09:04 UTC+0000
... 0x84283830:WmiPrvSE.exe 3072 576 8 115 2022-02-23 19:27:21 UTC+0000
.. 0x84dde0b0:svchost.exe 1724 444 9 311 2022-02-24 03:11:11 UTC+0000
.. 0x85fc0030:svchost.exe 1868 444 11 144 2022-02-24 03:11:11 UTC+0000
.. 0x84c8d030:svchost.exe 972 444 19 450 2022-02-24 03:09:08 UTC+0000
... 0x84cc6030:audiodg.exe 1004 972 4 121 2022-02-24 03:09:08 UTC+0000
.. 0x8545d368:armsvc.exe 2660 444 6 244 2022-02-23 19:19:17 UTC+0000
... 0x84356ca8:AdobeARMHelper 2484 2660 0 ------ 2022-02-23 19:20:53 UTC+0000
.. 0x854f3668:sppsvc.exe 860 444 4 147 2022-02-24 03:09:07 UTC+0000
.. 0x85fe0030:svchost.exe 1380 444 19 315 2022-02-24 03:09:10 UTC+0000
.. 0x84d04d40:TrustedInstall 1180 444 6 261 2022-02-24 03:09:10 UTC+0000
.. 0x842a3168:SearchIndexer. 3268 444 11 522 2022-02-23 19:19:24 UTC+0000
.. 0x85f3d030:svchost.exe 636 444 7 250 2022-02-23 18:09:05 UTC+0000
0x84c7f9d8:explorer.exe 880 756 32 881 2022-02-24 03:09:17 UTC+0000
. 0x84f3cd40:RH-Appli-Conne 3540 880 1 20 2022-02-23 19:27:54 UTC+0000
. 0x84f7e630:notepad.exe 3232 880 1 63 2022-02-23 19:27:43 UTC+0000
. 0x842ef7e0:RH-Appli-Conne 3504 880 5 99 2022-02-23 19:28:06 UTC+0000
.. 0x84da8938:cmd.exe 2404 3504 0 ------ 2022-02-23 19:28:10 UTC+0000
. 0x843485b0:RH-Appli-Conne 1668 880 3 94 2022-02-23 19:25:07 UTC+0000
.. 0x84273030:cmd.exe 1472 1668 0 ------ 2022-02-23 19:25:24 UTC+0000
. 0x84e79508:regsvr32.exe 1864 880 0 ------ 2022-02-24 03:10:06 UTC+0000
. 0x86081218:notepad.exe 3732 880 1 63 2022-02-23 19:27:46 UTC+0000
. 0x84e17570:RH-Appli-Conne 3936 880 1 36 2022-02-23 19:24:45 UTC+0000
0x84133270:System 4 0 77 511 2022-02-23 18:09:02 UTC+0000
. 0x854f4020:smss.exe 224 4 2 29 2022-02-23 18:09:02 UTC+0000
0x85c23d40:winlogon.exe 392 332 5 130 2022-02-23 18:09:04 UTC+0000
0x85b9c578:csrss.exe 352 332 9 209 2022-02-23 18:09:03 UTC+0000
0x85ee3d40:firefox.exe 2360 816 0 ------ 2022-02-23 19:24:17 UTC+0000
root@kali:~/Downloads# volatility -f memory.dmp --profile Win7SP1x86 filescan | grep RH-Appli
Volatility Foundation Volatility Framework 2.6
0x000000003e2a0360 8 0 -W-rw- \Device\HarddiskVolume1\Users\Daniel\Downloads\RH-Appli-Connect.exe
0x000000003f028378 3 0 R--r-d \Device\HarddiskVolume1\Users\Daniel\Downloads\RH-Appli-Connect.exe
On peut clairement identifier que plusieurs process chargés via l'exe "RH-Appli-Connect.exe", qui lance entre autres un cmd.exe, c'est cet exécutable qui nous intéresse. On tente ensuite d'aller chercher du côté des connexions réseau :
root@kali:~/Downloads# volatility -f memory.dmp --profile Win7SP1x86 netscan
Volatility Foundation Volatility Framework 2.6
Offset(P) Proto Local Address Foreign Address State Pid Owner Created
0x3de43f50 UDPv4 192.168.80.131:137 *:* 4 System 2022-02-23 19:26:24 UTC+0000
0x3de61008 UDPv4 192.168.80.131:138 *:* 4 System 2022-02-23 19:26:24 UTC+0000
0x3e2a95e8 UDPv4 0.0.0.0:0 *:* 924 svchost.exe 2022-02-23 19:28:49 UTC+0000
0x3e2a95e8 UDPv6 :::0 *:* 924 svchost.exe 2022-02-23 19:28:49 UTC+0000
0x3e147680 TCPv4 0.0.0.0:49152 0.0.0.0:0 LISTENING 340 wininit.exe
0x3e148f18 TCPv4 0.0.0.0:49152 0.0.0.0:0 LISTENING 340 wininit.exe
0x3e148f18 TCPv6 :::49152 :::0 LISTENING 340 wininit.exe
0x3e1670c0 TCPv4 0.0.0.0:49154 0.0.0.0:0 LISTENING 924 svchost.exe
0x3e1670c0 TCPv6 :::49154 :::0 LISTENING 924 svchost.exe
0x3e1786d8 TCPv4 0.0.0.0:445 0.0.0.0:0 LISTENING 4 System
0x3e1786d8 TCPv6 :::445 :::0 LISTENING 4 System
0x3e1f4008 TCPv4 0.0.0.0:49156 0.0.0.0:0 LISTENING 452 lsass.exe
0x3e1f4008 TCPv6 :::49156 :::0 LISTENING 452 lsass.exe
0x3e25f240 TCPv4 0.0.0.0:135 0.0.0.0:0 LISTENING 636 svchost.exe
0x3e2a9540 TCPv4 0.0.0.0:135 0.0.0.0:0 LISTENING 636 svchost.exe
0x3e2a9540 TCPv6 :::135 :::0 LISTENING 636 svchost.exe
0x3e1073b0 TCPv4 -:49598 -:443 CLOSED 2360 firefox.exe
0x3e117b18 TCPv4 -:49605 -:80 CLOSED 2360 firefox.exe
0x3e162840 TCPv4 -:49628 23.54.61.194:80 CLOSED 2360 firefox.exe
0x3e1d15e8 TCPv4 192.168.80.131:49636 146.59.156.82:1337 ESTABLISHED 3936 RH-Appli-Conne
0x3e2a5df8 TCPv4 -:49623 216.58.213.67:80 CLOSED 2360 firefox.exe
0x3e491b48 TCPv4 192.168.80.131:49637 146.59.156.82:1337 ESTABLISHED 1668 RH-Appli-Conne
0x3f035cc0 UDPv4 127.0.0.1:60412 *:* 1868 svchost.exe 2022-02-24 03:11:11 UTC+0000
0x3f06cf50 UDPv4 0.0.0.0:5355 *:* 1068 svchost.exe 2022-02-23 19:26:24 UTC+0000
0x3f06cf50 UDPv6 :::5355 *:* 1068 svchost.exe 2022-02-23 19:26:24 UTC+0000
0x3f079120 UDPv4 127.0.0.1:1900 *:* 1868 svchost.exe 2022-02-24 03:11:11 UTC+0000
0x3f0841f8 UDPv6 ::1:60411 *:* 1868 svchost.exe 2022-02-24 03:11:11 UTC+0000
0x3f134bf0 UDPv6 fe80::6910:2d18:6eee:a8af:1900 *:* 1868 svchost.exe 2022-02-24 03:11:11 UTC+0000
0x3eb503d8 TCPv4 0.0.0.0:49155 0.0.0.0:0 LISTENING 444 services.exe
0x3eb531a8 TCPv4 0.0.0.0:49155 0.0.0.0:0 LISTENING 444 services.exe
0x3eb531a8 TCPv6 :::49155 :::0 LISTENING 444 services.exe
0x3f0de2a0 TCPv4 192.168.80.131:139 0.0.0.0:0 LISTENING 4 System
0x3ea9a5a8 TCPv4 -:49607 -:443 CLOSED 2360 firefox.exe
0x3f0721b8 TCPv4 192.168.80.131:49626 146.59.156.82:80 CLOSED 2360 firefox.exe
0x3f09edf8 TCPv4 192.168.80.131:49644 146.59.156.82:1337 ESTABLISHED 3540 RH-Appli-Conne
0x3f0c9ca0 TCPv4 -:49600 -:80 CLOSED 2360 firefox.exe
0x3f0cf8a0 TCPv4 -:49596 -:49595 CLOSED 1764 firefox.exe
0x3f19d178 TCPv4 -:49603 -:443 CLOSED 2360 firefox.exe
0x3f1ae8e8 TCPv4 -:49602 -:80 CLOSED 2360 firefox.exe
0x3f1b0008 TCPv4 -:49597 -:443 CLOSED 2360 firefox.exe
0x3f3eb500 UDPv4 0.0.0.0:5355 *:* 1068 svchost.exe 2022-02-23 19:26:24 UTC+0000
0x3f419a30 UDPv4 0.0.0.0:54826 *:* 1068 svchost.exe 2022-02-23 19:24:19 UTC+0000
0x3f5ffa18 UDPv4 0.0.0.0:0 *:* 1068 svchost.exe 2022-02-23 19:26:24 UTC+0000
0x3f5ffa18 UDPv6 :::0 *:* 1068 svchost.exe 2022-02-23 19:26:24 UTC+0000
0x3f2fbd88 TCPv4 0.0.0.0:49153 0.0.0.0:0 LISTENING 972 svchost.exe
0x3f300c80 TCPv4 0.0.0.0:49153 0.0.0.0:0 LISTENING 972 svchost.exe
0x3f300c80 TCPv6 :::49153 :::0 LISTENING 972 svchost.exe
0x3f34d928 TCPv4 0.0.0.0:49154 0.0.0.0:0 LISTENING 924 svchost.exe
0x3f3c7338 TCPv4 0.0.0.0:49156 0.0.0.0:0 LISTENING 452 lsass.exe
0x3f3f9ba8 TCPv4 -:49624 216.58.213.67:80 CLOSED 2360 firefox.exe
0x3f400df8 TCPv4 -:49619 172.217.18.196:443 CLOSED 2360 firefox.exe
0x3fca3e98 UDPv4 192.168.80.131:1900 *:* 1868 svchost.exe 2022-02-24 03:11:11 UTC+0000
0x3fcf9488 UDPv6 ::1:1900 *:* 1868 svchost.exe 2022-02-24 03:11:11 UTC+0000
0x3fd3e1e0 UDPv4 0.0.0.0:64396 *:* 1068 svchost.exe 2022-02-23 19:24:21 UTC+0000
0x3fcaf2a0 TCPv4 192.168.80.131:49645 146.59.156.82:1337 ESTABLISHED 3504 RH-Appli-Conne
0x3fcb4968 TCPv4 -:49595 -:49596 CLOSED 1764 firefox.exe
On voit clairement des connexions établies au moment du dump, depuis notre processus malveillant et vers une IP publique sur un port pas vraiment très commun. On en déduit le flag suivant :
BZHCTF{RH-Appli-Connect.exe-146.59.156.82:1337}