Windows-DCOM

DCOMrade - Automatiseren van het in kaart brengen van DCOM applicaties

door Axel Boesenach op 20-Nov-2018

Tijdens mijn stageperiode bij HackDefense onderzoek ik de huidige lateral movement technieken die gebruikmaken van het Distributed Component Object Model (DCOM), een ingebouwde functionaliteit om software aan te roepen van het ene Windows systeem naar het andere Windows systeem. Een deel van dit project was het opstellen van een script dat potentieel kwetsbare DCOM objecten geautomatiseerd in kaart kan brengen. Een deel van mijn onderzoek is gebaseerd op het onderzoek dat Matt Nelson (a.k.a enigma0x3) heeft uitgevoerd.

Introductie

Ik ben Axel Boesenach, en momenteel een stagiair bij HackDefense. Naast mijn stage werk ik part-time bij Fox-IT als SOC analist en besteed ik het meeste van mijn vrije tijd aan het doen van onderzoek / zoeken van nieuwe uitdagingen op dagelijks basis.

Achtergrond

De eerste keer dat ik zag dat DCOM werd gebruikt als een lateral movement techniek binnen Microsoft Windows domeinen / netwerken, was tijdens het bijwonen van de workshop die werd gegeven door Eva Tanaskoska bij Fox-IT. Ik was direct al gefascineerd door de techniek omdat deze volledig gebaseerd is op het ("living off the land") principe, waarbij alleen gebruik wordt gemaakt van ingebouwde systeemfunctionaliteiten. Toen ik zag hoe deze techniek in elkaar zat dacht ik gelijk: "Zou er op een geautomatiseerde wijze potentieel kwetsbare punten met betrekking tot DCOM in kaart kunnen worden gebracht?"

Onderzoek

Nu ik bijna ten einde ben van mijn studietraject moest ik een stagetraject in, ik heb gekozen om tijdens dit stagetraject te onderzoeken of het mogelijk is om potentieel kwetsbare DCOM applicaties op geautomatiseerde wijze in kaart te brengen. Met de zeer behulpzame artikelen van Matt Nelson heb ik een manier kunnen vinden om dit te bewerkstelligen, een proces dat aanzienlijk meer tijd in beslag neemt als dit met de hand zou worden gedaan.

DCOMrade

Het script dat ik heb opgesteld is een Powershell script welke ik de naam 'DCOMrade' heb gegeven, een combinatie (en woordspel) van 'enumerate' en 'comrade'. Het script is te vinden op mijn Github samen met een research paper, welke ingaat op de technische aspecten van het idee, de oplossing en delen van het script. Het script is tevens omgezet om gebruikt te worden met het Powershell Empire framework welke op het moment van schrijven op goedkeuring wacht door de makers van het framework.

 

Downloads

Feedback welkom!

IT Security | Testing | Advice