SSTIC 2022 J1

SSTIC 2022 J1

20ème édition du sstic post-covid.

KEYNOTE: Building open security tooling for fun and profit

Par le créateur de chip whisperer. Il y a différentes formes d’open source, mais il n’est pas nécessaire d’être dogmatique pour partager savoirs et implémentations de façon ouverte. L’orateur souhaitait avoir un système ouvert et accessible, ce qui dans le monde du hardware implique des chips propriétaires. L’intérêt dans le monde académique c’est la reproductibilité des expérimentations avec un budget contraint.

Parmi les problèmes rencontrés par l’auteur il y a le « c’est de l’ingénierie pas de la recherche, alors que sans cette base technique, la recherche ne peut progresser. De plus ça crée une économie d’échelle sur tout un pan de recherche.

Le chip whisperer est né pour écarter ces difficultés du chemin des chercheurs. Mais à ce moment on peut se demander si créer une entreprise vaut le coup? En open source en ne vendant que le hardware on peut faire l’économie du support qui est assuré par la communauté. En vendant des versions pro beaucoup plus chers mais mieux packagés on dégage des moyens pour financer le développement des évolutions.

La petite entreprise a ensuite prospérée, permettant à la communauté de s’appuyer sur un fournisseur de hardware adapté. Par contre il faut parfois gérer les pénuries de matériel.

Lorsqu’on fabrique des composants de sécurité hardware, on doit réfléchir à qui est à la base de la chaîne de confiance. Et pour avoir confiance il faut pouvoir évaluer la sécurité du produit. En abaissant les coût des outils d’attaque hardware on facilite ces évaluations par des tiers.

Quelques exemples d’outils open source pour les attaques matérielles:

PicoEMP pour faire de l’injection de fautes électromagnétiques qui balance des impulsions magnétiques sur la base d’un transfo qui sort entre 100v et 500v.

Petite démo live avec un crash du raspi 3. Une première avec le picoEMP, puis une autre par analyse de puissance avec le chipwhisperer.

La qualité de l’injection de faute dépend du positionnement de la sonde, l’orateur travaille donc sur un chassis type imprimante 3d et une version adaptée de marlin pour positionner précisément l’impulsion.

Par amnesty internationnal

Les ONG sont souvent la cible d’attaquants type APT/Espionnage sauf qu’ils ne disposent pas des moyens techniques des états et grands groupes poyr se défendre.

NSO et Pegasus ont servi à cibler un membre d’amnesty internationnal via un message whatsapp avec un lien exploitant une chaine de vulns dans Safari/iOS. L’équipe sécu d’amnesty a ainsi pu remonter les serveurs d’attaque de NSO hébergeant l’exploit kit.

Les attaques ont ensuite évoluer vers de l’injection réseau façon man in the middle pour infecter le device sans interaction.

Un groupement de journalistes avec l’appui technique d’amnesty international qui a mis au point un moyen d’investigation forensic permettant d’identifier une compro pegasus.

Le forensic sur smartphone sans moyens spécialisé c’est compliqué. Le jailbreak/root casse les applis. Sur iphone les backups sont très riches et contiennent plein de données permettant d’effectuer une analyse poussée.

La communauté smartphone est très orienté police mais pas Incident Response. L’outil MVT est le resultat de ces travaux. Les artefacts liés aux SMS contenant des urls avec des raccourcisseurs liés à NSO. Les historiques de navigation sur quelques mois permettent d’identifier des redirections avec des tempo très courts.
Les logs réseau d’utilisation de données permet d’identifier les app executés sur une très longue période.

Les logs contiennent aussi des bundle id reliant l’app à des comptes de dev ce qui permet d’identifier une éventuelle compromission du téléphone.

Ils ont ainsi pu observer des traces d’exploitation de vulns dans iMessage lié a des .gif que google project zero à analysée sous le nom de forcedentry/megalodon.

La publication coordonnée a mis un gros coup de projecteur sur NSO qui s’est retrouvée blacklisté des marchés américains et poursuivie par Apple. Mais il existe d’autres entreprises de ce type qui revendent des malwares qui servent à cibler des journalistes.

Le problème n’est pas technique et Amnesty international milite pour qu’une réglementation soit mise en place pour éviter les abus.

Analyse mémoire de GnuPG

Gnupg sert à faire du chiffrement asymétrique pour des échanges e-mail sécurisés, de l’authentification ou de la signature. Gpg-agent est un daemon qui gère les passphrases et met en cache des secrets. Les orateurs se sont intéressé a ce stockage en mémoire et à sa sécurité. Le secret chargé par gpg-agent est chiffré avec une clef random avec l’algo key-wrap. En regardant la mémoire de gpg-agent les orateurs ont trouvé un problème dans libgcrypt. Les éléments cache sont stockés dans une structure mémoire avec des horodatages. En recherchant ces horodatages on peut retrouver les éléments chiffrés en cache. Trouver la clef AES n’est pas si simple. On s’appuie alors sur les sous-clefs d’AES et leur co-localisation avec la clef étendue. En s’appuyant sur AES-keywrap on peut vérifier que la clef est la bonne pour le déchiffrement. Pour mettre en oeuvre cette récupération de clefs les orateurs se sont appuyé sur volatility et on dev deux modules.

DFiR-IRIS

Présentation d’une platefirme de réponse sur incident publiée en open-source. L’outil a été développé pour répondre à 3 problèmes: Tracer les éléments retrouvés, partager l’information et traiter les tâches répétitives. Autres solutions équivalentes: Thehive, fir, catalyst, dfirtrack et aurora.

les deux premiers sont très intégrés avec les solutions SOC, les autres sont plus orientés IR as a service.

L’application est en python web et permet de gérer la prise de notes, la collaboration et l’automatisation. La solution est extensible par un système de plugins.

La prise de note et l’édition collaborative fonctionne en markdown. L’outil permet de gérer un catalogue d’assets et leur état. Un éditeur de timeline permet de poser les grands évènements de l’incident. Le task tracking permet de répartir le travail entre les analystes. Un système de génération de rapport .docx permet de gagner du temps lors du reporting.

ADeleg – Audit de permissions AD

AD c’est compliqué, et du coup beaucoup d’admins ne gèrent pas la partie sécurité de l’AD. Les privilèges sont contenu dans des ACE (rien a voir avec le jus de fruits). Ces ACE sont soi définies soit souvent hérités pour 90% d’entre elles. Certaines ACE sont définies manuellement et sont le fait d’actions d’administration spécifique. Toutes les ACE sont appliquées dans l’ordre. Microsoft a défini un ordre « canonique » dans lesquelles certaines ACE sont toujours ordonnées. Cet ordre canonique n’est pas toujours respecté ce qui peut être source d’erreurs.

La délégation permet à un objet d’acquerir des droits par héritage des ACE en limitant les manipulations manuelles, comme quand on ajoute un utilisateur à un groupe.

L’outil ADeleg permet de requêter l’AD et d’analyser les permissions et de mettre en oeuvre des délégations.

Surface d’attaque sur les active directory self service.

La solution AD self service permet du reset de mots de passes ou de l’unlock de compte sans avoir besoin des administrateurs. Il existe des clients lourds ou des applis web de reset de mot de passe. ADSS dispose d’un compte de service pour gérer ces fonctions. La surface d’attaque des clients lourds est intéressante. Les clients web de ces solutions présentent de nombreuses vulnérabilités avec des évasions façon Citrix.

Côté serveur il est possible d’obtenir de l’exécution de code, soit en contournant l’authentification ou en bruteforçant le login/pass d’admin.

ManageEngine est une solution de self service qui a souffert d’un bypass d’authentification, d’un upload arbitraire et d’une injection de commande via les outils de gestion de certificats.

Pour Lepide, il n’y a pas d’authentification sur la BDD, on peut donc récupérer le zip chiffré contenant les secrets d’authentification. la clef est elle hardcodée dans l’application.

Il faut absoluement réduire les permissions des services ADSS pour éviter qu’il soit domain admin.

Fuzzing RDP Client using virtual channel

RDP est un outil natif d’accès a distance sous Windows. La partie cliente RDP a fait l’objet de moins de recherche que la partie serveur.

Les virtual channels sont des protocoles d’échanges établis dynamiquement ou statiquement et qui gèrent un aspect de la session RDP: le son, le copier-coller, l’accès à la webcam, le partage de fichiers.

WinAFL est un fork windows d’AFL qui mutte des entrées d’un binairep our le crasher. Afin de maximiser la couverture de code la cible est instrumentées avec dynamorio. Le fuzzer va donc essayer de maximiser la couverture de code pour augmenter les chances de provoquer un crash.

L’orateur a choisi d’exécuter le client et le serveur RDP sur la même machine pour simplifier l’écriture du fuzzer. Le client RDP est une grosse machine à état. Il faut donc jouer sur les messages pour aller mettre cette machine dans un état incorrect et provoquer le crash.

Un channel RDP utilise des paquets avec un header et un corp. On peut fuzzer les id des messages du channel pour identifier des états incohérents. On peut aussi modifier le corp de ces paquets en gardat nla séquence de messages fixes.

Après analyse d’un déni de service lié au fuzzing, l’orateur a trouvé une vuln de fuite d’information de tas. Cette information finissait dans la base de registre. L’orateur a réussit à récupérer cette information en reconnectant le client RDP.

Supreme TTD – thats my ppl

Comment fonctionnent les processus coeur de windows comme lsass ? quand vous utilisez un debuggueur, vous ne pouvez pas vous attacher à un de ces process.

TTD: Time travel debugging ça consiste a pouvoir revenir en arrière dans le debug d’un programme afin de contourner la limitation des debugger qui ne peuvent normalement aller que dans le sens du flot d’exécution. Le TtD est une technique propriétaire de Microsoft qui génère une trace d’exécution pour un programme en y injectant une dll.

Afin d’éviter que le debug se fasse sur un processus privilégié repose sur un controle de sécurité niveau kernel qui utilise une structure en mémoire dans le kernel. Si on modifie cette structure via un driver vulnérable on peut utiliser TTD sur des processus protégés.

Signalisation chez les opérateurs mobiles

La signalisation dans les telco c’est le transport de l’information dans les réseaux. Dans la signalisation on retrouve l ‘identification de l’usager: l’imsi, l’identification du mobile: l’imei. Et donc tous les messages de signalisation sont rattachés à l’utilisateur et permettent de le joindre n’importe où dans le monde.

Pour gérer le roaming des codes mcc/mnc sont échangés entre opérateurs. Et du coup pour permettre l’échange de ces données les opérateurs vont exposer leurs services aux autres. Certains opérateurs ne fournissent pas de téléphonie mais fournissent des services comme le sms en masse, le debug de réseau, la gestion de tarification roaming, des mvno ou des fournisseurs d’interconnexion.

L’échange se fait sur un coeur tout IP avec ss7 et diameter. Tous les protocoles sont en clair. En gros une fois passé l’accès réseau initial plus rien n’est chiffré. On peut accéder à la géolocalisation des gens, intercepter ses données etc…

La qualité du filtrage ou non des accès au front et au back va dépendre des opérateurs et de ses infrastructures.

La norme gsma définit des catégories de messages qui sont interdit au roaming, d’autres sont autorisés pour les utilisateurs à l’étranger, et d’autres pour les utilisateurs externe à votre réseau qui sont chez vous.

Il existe des opérateurs qui téléportent des utilisateurs d’un pays a l’autre. D’autres scannent le réseau à la recherche des services front et back des opérateurs.

La protection est à géométrie variable et dépend du régulateur local. L’Europe marche bien et force les opérateurs à protéger leurs utilisateurs.

Pour l’utilisateur sachez que votre géolocalisation n’est protégée que lorsque votre téléphone est éteint.

Bindbloom v2

Lors du reverse d’un firmware de matériel il faut retrouver l’adresse de base du firmware afin de comprendre où écrivent les fonctions du firmware pour discuter avec les portions hardwares de la puce.

Bindbloom v2 sert à trouver cette adresse de base. Il existe d’autres outils qui font ça à l’aide de cross-refs ou des différences d’adresses entre des chaines de caractères…. mais pour que ça marche il faut des chaînes de caractères. Autre soucis si le firmware est en 64bits il n’est pas envisageable de bruteforcer l’espace d’adressage.

L’outil cherche des points d’intérêts qui vont lui servir à faire matcher des adresses avec ces points d’intérêt.

Ica2Tcp: un proxy socks citrix.

Citrix est un système avec des clients lourds qui permettent d’accéder a des applications virtualisés qui tournent sur un serveur VDA. Parfois pour un pentest, il faut passer par un accès ICA, et pour pouvoir utiliser ses outils favoris il est donc nécessaire d’en détourner l’usage.

Comme RDP, Citrix utilise des virtual channels pour multiplexer les différents flux d’information: son, image, clavier, usb, etc… Pour pouvoir étendre ces canaux, citrix fournis un SDK qui permet de créer son propre VirtualChannel.