bdc1ff29d8e4fdaff0c8f1e2691a839d.png

Lors des labs précédents, nous avons étudié les étapes d’accès initial, d’exécution de code et de persistance du framework MITRE ATT&CK en imitant certains acteurs malveillants.

Nous allons désormais nous intéresser à la phase de reconnaissance, de “découverte”, du framework MITRE ATT&CK [1]:

1ec5cc74cbb2202e1d1c1a25a886ed5f.png

Dans ce premier lab de la série Discovery and Lateral Movement du workshop Attack Detection Fondamentals nous allons utiliser le framework Covenant et explorer des techniques permettant d’obtenir des crédentials. [2]

Covenant fait partie des outils préférés des black hat.

Nous allons utiliser Rubeus, un outil integré dans Covenant, afin de réaliser les attaques kerberoasting et AS-REP roasting.

Au préalable, nous avons déjà créé un lab Active Directory vulnérable à ces attaques.

Nous utiliserons également SharpSploit (PowerSploit) pour énumérer les utilisateurs et les groupes du domaine.

Pour l’analyse de cette attaque, nous étudierons les Event Tracing for Windows ETW qui permettent entre autre d’avoir des données concernant l’utilisation de .NET [3,4]. Pour loguer les événements ETW nous utiliserons SilkService.

SilkService n’est pas un outil encore prêt à être déployé en entreprise. Toutefois la télémétrie qu’il génère est comparable à celle qui peut être utilisée par des Endpoint Detection and Response (EDR).

Config du lab: VM Win 10 avec SilkService + VM Windows Server 2016 avec AD vulnérable au kerberoasting et au AS-REP roasting + VM Ubuntu avec Covenant.

Installation de SilkService

Remarque: Problème rencontré pour loguer les évenements ldap avec Win 7 -> Utiliser une VM Windows 10

Event Tracing for Windows (ETW) is a system and software diagnostic, troubleshooting and performance monitoring component of Windows [5] ETW is an efficient kernel-level tracing facility that lets you log kernel or application-defined events to a log file [6].

Fonctionnement de SilkETW / SilkService [7]:

0e24793ca84cf807598fdc98e5f655c4.png

Sur la VM Win 10:

  • Pré-requis

Installer VC++ 2015 x86 redistributable package, Dependencies\vc2015_redist.x86.exe: https://www.microsoft.com/en-us/download/details.aspx?id=48145

Installer Microsoft .NET Framework 4.5, Dependencies\dotNetFx45_Full_setup.exe: https://www.microsoft.com/en-ie/download/details.aspx?id=30653

  • SilkETW

Télécharger la dernière version de SilkETW: https://github.com/fireeye/SilkETW/releases

4e51c45a6ad3a3debfd962ffa73d19c4.png

  • SilkService

Avec un compte admin: sc create SillkService binPath= "C:\Path\To\SilkService.exe" start= demand

4bca0e8a288320767cd29a2163b52ae7.png

c15438a6c51bfe95f53cdab89f0bc077.png

Configuration SilkService utilisée, SilkServiceConfig.xml:

<SilkServiceConfig>
    <!--
    Microsoft-Windows-LDAP-Client ETW Provider
    -->
    <ETWCollector>
        <Guid>859efb51-6985-480f-8094-77192b2a7407</Guid>
        <CollectorType>user</CollectorType>
        <ProviderName>099614a5-5dd7-4788-8bc9-e29f43db28fc</ProviderName>
        <UserKeywords>0x1</UserKeywords><!--Search-->
        <OutputType>eventlog</OutputType>
    </ETWCollector>
</SilkServiceConfig>

Explication:

  • Crée un consumer [8] et capture les événements du fournisseur ETW Microsoft-Windows-LDAP-Client: capture les requêtes LDAP émises par l’hôte.
  • Le flag 0x1 signifie que nous journalisons uniquement les requêtes de recherche, search, et leur paramètres, pas les réponses [9]

Enregistrer sous SilkServiceConfig.xml et placer le fichier dans le même dossier que SilkService.exe

Au besoin, modifier la ligne GUID par un nouveau GUID [10]. Pour créer un nouveau GUID: New-Guid

1bde8f0f1479f1a97ad07737154f5f28.png

32bf98c43d14c3cf39b3aa5bdada92aa.png

Lancer SilkService. En tant qu’admin: Services > SilkService. Clic-droit Start

2c256a5e08db82bd1295e7d06a484bd4.png

On a désormais des logs SilkService dans l’Event Viewer

fcea6c61299095ad9c3461e5bc2c3b1e.png

The Hunting ELK, HELK:

The Hunting ELK est un projet développé par Roberto Rodriguez, aka Cyb3rWard0g [11]

7a0d4c4f2bef52a88e440bca02049c7a.png

Il est possible de forwarder les évenements ETW dans HELK.

Pour installer HELK, voir [12,13,14]

Toutefois, HELK nécessite au minimum 5GB de RAM…

Attaques

Créer un nouveau listener dans Covenant: http://127.0.0.1:7443/listener

da0cd4d5e8a50cc04b0db1e39083f423.png

Créer un binary launcher http://127.0.0.1:7443/launcher

2aa7b8d759e42866880c2bf7680e091f.png

Générer le binary launcher et le download: GruntHTTP.exe

Transférer le launcher sur la victime, VM Win 10. Dans mon cas j’utilise un serveur http pour le transfert

3d75d712634518652c832b0bff94cb30.png

Penser à désactiver l’AV et le FW

Exécuter le launcher

Résultat, on a un grunt:

b81923beaf4387f39a95330badb39ee6.png

On peut interagir avec Interact

Kerberoasting:

0d04f2307efcb30fe660d1877d7c4ca0.png Source: [15]

Pour en savoir plus sur cette attaque voir [16,17,18]

Il existe plusieurs outils pour réaliser l’attaque Kerberoast [17,19]. Dans notre cas nous allons utiliser Rubeus [20] qui vient avec Covenant.

Rubeus kerberoast

4fcf43064c9ffa5480ac0a1780792c07.png

beda144f7b7ecee024e0e4724b667b9d.png

On retrouve bien le user1 que nous avons créé lors de la mise en place du lab AD vulnérable

Il est possible de détecter les activités de reconnaissance LDAP en examinant les filtres de recherche utilisés [21]

Evt ID 3 - Dans SilkService-Log on trouve:

6b7bfffb26186a4e69ea2aea88f1671b.png

LDAP Recon - SPNs search filter: (&(samAccountType=805306368)(servicePrincipalName=*) [21,22,23]

Il s’agit du filtre utilisé par Rubeus

Vérification dans AD:

78397268d75abe79697e75483948a6ae.png

7ce87a1f0833ff262a0866022f1e53f2.png

AS-REP roasting is a technique that allows retrieving password hashes for users that have Do not require Kerberos preauthentication property selected [24]

Rubeus asreproast

660bc0c77525eaefb263899ca8aba5fb.png

37396d95c9f7076e5e540003e3889b70.png

On retrouve le user2 qu’on avait créé précédement lors de la création du lab AD vulnérable

Evt ID 3 - Dans SilkService-Log on trouve:

cdbc3729a3a62006138da49c6f55f83f.png

“Do not require kerberos preauthentication” enabled - Search filter: (userAccountControl:1.2.840.113556.1.4.803:=4194304)) [25]

Vérification dans AD:

c127f942757a3eb35b9e77f40d584a5c.png

SharpSploit - PowerSploit

En plus de Rubeus, Covenant vient avec SharpSploit. SharpSploit permet d’utiliser PowerSploit [26] et son module PowerView.

Get-DomainGroup “Admins du domaine”

3d8be48325aaae45996f9b3318995ad0.png

SilkService-Log:

17b81287c9e9746040ecb1d52a3b58bb.png

Conclusion

Dans ce lab, nous avons vu comment un attaquant peut identifer des utilisateurs intéressants dans AD et des cibles pour les attaques Kerberoast et AS-REP roasting.

Grâce à la télémétrie ETW nous sommes en mesure de retrouver les filtres LDAP utilisés pour réaliser la reconnaissance.

Références

[1] MITRE ATT&CK, Discovery, https://attack.mitre.org/tactics/TA0007/

[2] F-Secure, Attack Detection Fundamentals: Discovery and Lateral Movement - Lab #1, https://labs.f-secure.com/blog/attack-detection-fundamentals-discovery-and-lateral-movement-lab-1

[3] F-Secure, Detecting Malicious Use of .NET – Part 2, https://blog.f-secure.com/detecting-malicious-use-of-net-part-2/

[4] FireEye, SilkETW: Because Free Telemetry is … Free!, https://www.fireeye.com/blog/threat-research/2019/03/silketw-because-free-telemetry-is-free.html

[5] Microsoft, Part 1 - ETW Introduction and Overview, https://docs.microsoft.com/en-gb/archive/blogs/ntdebugging/part-1-etw-introduction-and-overview

[6] Roberto Rodriguez, Threat Hunting with ETW events and HELK — Part 1: Installing SilkETW, https://medium.com/threat-hunters-forge/threat-hunting-with-etw-events-and-helk-part-1-installing-silketw-6eb74815e4a0

[7] Roberto Rodriguez, Threat Hunting with ETW events and HELK — Part 2: Shipping ETW events to HELK, https://medium.com/threat-hunters-forge/threat-hunting-with-etw-events-and-helk-part-2-shipping-etw-events-to-helk-16837116d2f5

[8] Microsoft, Consumers, https://docs.microsoft.com/en-us/windows/win32/etw/about-event-tracing#consumers

[9] Microsoft, Event Tracing in LDAP Applications, https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ldap/ldap-and-etw

[10] Tracing as a Service with SilkETW, pt I, https://blog.iisreset.me/tracing-as-a-service-with-silketw-pt/

[11] Cyb3rWard0g, HELK, https://github.com/Cyb3rWard0g/HELK

[12] Roberto Rodriguez, Welcome to HELK! : Enabling Advanced Analytics Capabilities, https://cyberwardog.blogspot.com/2018/04/welcome-to-helk-enabling-advanced_9.html

[13] The HELK, Installation, https://thehelk.com/installation.html

[14] Roberto Rodriguez, Threat Hunting with ETW events and HELK — Part 2: Shipping ETW events to HELK, https://medium.com/threat-hunters-forge/threat-hunting-with-etw-events-and-helk-part-2-shipping-etw-events-to-helk-16837116d2f5

[15] MITRE ATT&CK, Steal or Forge Kerberos Tickets: Kerberoasting, https://attack.mitre.org/techniques/T1558/003/

[16] Hackndo, Kerberoasting,https://beta.hackndo.com/kerberoasting/

[17] m0chan, How To Attack Kerberos 101, https://m0chan.github.io/2019/07/31/How-To-Attack-Kerberos-101.html#invoke-kerberoastps1

[18] Pentestlab, Kerberoast, https://pentestlab.blog/2018/06/12/kerberoast/

[19] Tarlogic, How To Attack Kerberos, https://www.tarlogic.com/en/blog/how-to-attack-kerberos/

[20] Rubeus, https://github.com/GhostPack/Rubeus

[21] Microsoft, Hunting for reconnaissance activities using LDAP search filters, https://techcommunity.microsoft.com/t5/microsoft-defender-for-endpoint/hunting-for-reconnaissance-activities-using-ldap-search-filters/ba-p/824726

[22] CalCom, Preventing LDAP Reconnaissance - The First Step Of AD Attacks, https://calcomsoftware.com/preventing-ldap-reconnaissance/

[23] StealhBits, LDAP Reconnaissance, https://attack.stealthbits.com/ldap-reconnaissance-active-directory

[24] Red Team Experiments, AS-REP Roasting,https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/as-rep-roasting-using-rubeus-and-hashcat

[25] Microsoft, Active Directory: LDAP Syntax Filters, https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx

[26] Ryon Cobbr, Introducing SharpSploit: A C# Post-Exploitation Library, https://posts.specterops.io/introducing-sharpsploit-a-c-post-exploitation-library-5c7be5f16c51?gi=dbe93a9bd871

Poursuivez avec :

CC-BY

This work is licensed under a Creative Commons Attribution 4.0 International License.