Está en la página 1de 26
Articulos de hacking Blog de Raj Chandel Menu Hogar » Equipo Rojo » Enumeracién de Active Directory: BloodHound Equipo Rojo Enumeracién de Active Directory: BloodHound Abril 30,2021 Por Raj Chandel En el articulo, nos centraremos en la herramienta de enumeracién de Active Directory llamada BloodHound, Toma los datos de cualquier dispositivo en la red y luego procede a trazar el grdfico que puede ayudar al atacante a elaborar estrategias para llegar a los administradores de dominio, Tabla de contenido Introduccién + Instalacién de Linux + Extraccién de datos del dominio + Enumerar con BloodHound * BloodHound en Windows + Extraccién de datos del dominio + Instalacién de Windows + Enumerar con BloodHound + SharpHound en PowerShell + SharpHound en PowerShell Empire + Conclusién Introduccién BloodHound esté programado para generar gréficos que revelan lo oculto y las relacic dentro de una red de Active Directory. BloodHound también es compatible con Azure BloodHound permite a los atacantes identificar rutas de ataque complejas que de otro modo no serian posibles de identificar. El Equipo Azul puede usar BloodHound para identificar y corregir esos mismos patrones de ataque Instalacion de Linux Algunas gufas y métodos multiples pueden ayudarlo a configurar e instalar bloodhound en su maquina host. Seguiremos los documentos oficiales de BloodHound que se pueden encontrar en su GitHub pero refinando el proceso, Como siempre antes de instalar cualquier herramienta en su maquina Linux, se recomienda realizar una actualizacién y actualizar sus paquetes de software. Ademds, por cualquier motivo, sino tiene Java instalado, instale Java para continuar. No instalaremos java ya que estamos trabajando en Kali Linux que viene preinstalado con Java. La configuracién de Bloodhound es un proceso de 3 pasos. BloodHound tiene una GUI y un raspador de datos y una base de datos neodj. Esto significa que necesitamos configurarlos individualmente. Comenzamos con la GUI de Bloodhound que se puede instalar directamente usando el comando apt. apt install bloodhound errurare sat Cee eC Ucar eccoe sce ticLtst nfig-inifil Uae Resta 4-statusnotif Pesan following additional p: 045 A continuacién, debemos configurar el servicio neodj que contendrd los datos que se pueden representar en forma grdfica, Cuando ejecutamos el sabueso de instalacién apt, instalé neodj con él, Si eso no sucedié en su caso, siempre puede descargarlo ejecutando apt install neo4j. Ahora, necesitamos configurar la autenticacién y otras configuraciones en el servicio neodj Para ello, ejecutamos Ia instancia de consola neo4j. Alojard la interfaz remota a la que se puede acceder utilizando un navegador web. De forma predeterminada, estd alojado en el puerto 7474. neo4j console ee Dred sato soa tee oe eyes} cents ete aad on ayaa Paursurss PEE Acr sale sury ead yer aces arate cer Baye ys Acs Bu ey eer saat Cesta) CC cee tera) use oe CL Mae eo eee aC La Fcc eA ape ens te ere teed Pr yee eerie eC ie CR ec (ied oc taetry Pear ee ae Reese ears pee ed meee lecst a aee eae ae taro Ue eel seu ee esc iat aes cua Tieee ays} Veer E re ee eee SOC ean Gees ene cerercesatS Veer ed east rece abscess eer eee eet eriees Cw aerate ad PUR ee ee race re sees lee st Res toe eee! SERSer ee eee eet Ie ree ee eee rea Um meni metr rae Meta et e/a Tuna ar ag Sten ea erate Ingresando la URL que se resalté en la imagen de arriba en un Navegador Web, tenemos la interfaz remota. Tiene algunos valores precargados y algunos campos negros. Aqui, ingrese un nombre de usuario, elegimos el nombre de usuario neo4j e ingresamos una contrasefia. Después de ingresar la siguiente informacién, podrd conectarse a la base de datos neodj localhost: pee Connect to Neodj eo ee) ees eT | Antes de conectarse, le pediré que cambie la contrasefia, ya que es su primer inicio de sesién, Introduzca cualquier contrasefia de su eleccién. ¥ muévete para conectar la interfaz remota neo4j Pees tates [eresnint-cot Deena eo Deen’ eee) Soe at 2 rs ee) Pee! eed Ahora que tenemos el servicio neodj en funcionamiento, podemos ejecutar la GU! de Bloodhound. Ejecutarlo es una tarea simple de escribir bloodhound en su terminal y presionar la tecla Enter. También puede intentar buscar bloodhound en su lista de aplicaciones instaladas en el ment de Kali Linux y ejecutarlo directamente desde all. Sar See CI rar) Tan pronto como la GUI de BloodHound se activa, solicita un conjunto de credenciales que acabamos de configurar en la configuracién neo4j. Utilice el mismo conjunto de credenciales y podré iniciar sesién en esta interfaz. Puede guardar sus credenciales para que no tenga que iniciar sesién cada vez que desee usar bloodhound. Ere) roo Después de iniciar sesién en BloodHound GUI, abre una pantalla blanca en blanco con algunos botones de interaccién en el lado derecho y un cuadro de busqueda en el lado izquierdo con algunos médulos conectados a él, Aqui es bdsicamente donde se completa la configuracién de la GUI. Como se discutié en Ia introduccién, ese Bloodhound representa los datos en graficos bonitos y busca posibles caminos. Para trazar los grdficos, se requieren datos del Dominio. Estos datos se pueden extraer utilizando un raspador de datos que ahora necesitamos instalar. w & ah +: Raw Query Para instalar estos datos Ingestor que se llama tan inusualmente sabueso. Esto puede llevar a cierta confusién, pero para dejarlo claro una vez més. Instalamos BloodHound GUI en pasos anteriores que trazan gréficos basados en los datos. Ahora estamos instalando un sabueso que extraerd los datos del Dominio. Como esté hecho en Python, podemes usar pip3 para instalar bloodhound como se muestra en la imagen de abajo. pip3 install bloodhound Sam IEC TOT) ei PRUE hon3/dist-pack ean ty, (1.4 mB) Serer eee Ye ESE aun ea Aetyi yi Race eeu VAcLY. Nara eu eA au vAelyings 0.13.1 in /usr/Lib/pyt Extraccién de datos del dominio Ejecutaremos el python Bloodhound que acabamos de instalar usando pip3 y extraeremos los datos del Dominio, Es un buen momento para mencionar que aqui la configuraciér dominio es de tal manera que hemos conectado el controlador de dominio, los clientes y nuestra maquina atacante esencialmente en la misma red. Para obtener datos del dominio, se puede utilizar cualquier usuario. Usaremos la cuenta de administrador para extraer el méximo de datos para esta enumeracién. En un escenario realista, terminaré con un usuario normal y luego ejecutard el sabueso y luego usard los datos enumerados para llegar al Administrador. Necesitamos proporcionar los siguientes pardmetros para extraer datos del Dominio: nombre de usuario, contrasefia, Servidor de nombres (Direccién IP del Controlador de Dominio), Dominio y Datos que queremos extraer (Estamos usando "Todos" para extraer el maximo de datos de! Dominio). Los datos extraidos serdn en forma de archivos json que se crearén en base a las consultas que se ejecutaron a través del Dominio en busca de posibles rutas y permisos de varios grupos y usuarios. bloodhound-python -u administer -p Ignite@987 -ns 192.168.1.172 -d ignite.1 er eee INFO: Found AD donain: ignite.tecal cra Setoe casero ac cine cote Tie ete sca ee cca ern cra cine Tie sca Scent) cg Reravieet cra DESKTOP-ATWON9 4 ci easter Tie sa Después de ejecutar bloodhound-python, tendré archivos json en su directorio actual. Es posible verificarlos con el comando Is. Para analizarlos en la GUI de BloodHound, debe arrastrar y soltar esos archivos json en la GUI. Como se puede observar en la imagen de abajo que tenemos los computers,json, domains,json, groupsjson, usersjson. Upload Progress TCS Cl pload Complete Pre es ee Tea) Clear Finished Ahora que se han cargade todos los archivos json, BloodHound GUI puede comenzar a trazar los grdficos. La forma en que funciona Bloodhound es que ahora que esté cargado con los archivos de datos del dominio, puede ingresar consultas para trazar gréficos o usar las Consultas preconstruidas. En esta guia, usaremos las consultas preconstruidas. UE Pre-Built Analytics Queries Enumerar con BloodHound Comencemos nuestra enumeracién con las consultas de andlisis predisefiadas. El primero de ellos que utilizamos es el Buscar todos los administradores de dominio. Esta consulta buscard todos los administradores de dominio que puede encontrar en su base de datos y los trazard en el gréfico como se muestra en la imagen a continuacién, Dado que nuestro dominio solo tiene un administrador de dominio, muestra un nodo y luego para 2 grupos bajo ese administrador de dominio. AK UE Pre-Built Analytics Queries be NEL UIN veh El siguiente es bastante interesante. Este se llama Buscar rutas mds cortas para administradores de dominio. Esto significa que BloodHound trazard los Administradores de Dominio y los usuarios que pueda encontrar y luego podremos deducir qué tipo de camino queremos tomar para seguir explotando para que podamos llegar al Administrador de Dominio con la menor Resistencia. Como podemos ver en la imagen de abajo, hay 4 caminos entre los cuales dos (nodos amarillos) son equidistantes. Esto significa que podemos usar cualquiera de ellos para llegar a los administradores de dominio y sabemos que hay un permiso de escritura genérico que podemos usar para explotar para llegar al administrador de dominio. Por lo tanto, asi es come en un entorno de dominio particularmente complicado y grande, puede ayudar al atacante a descubrir su camino en el lio y obtener ese acceso de administrador de dominio. rn Oe Comsicol Ol aed Rees Otra consulta predisefiada que usaremos es la consulta Find AS-REP Roastable Users (DontRegPreAuth). As-REP roasting es una técnica ofensiva contra Kerberos que permite recuperar hashes de contrasefia para usuarios que no requieren autenticacién previa. Si el usuario tiene habilitada la opcién "No usar Ia autenticacién previa de Kerberos", un atacante puede recuperar un Kerberos AS-REP cifrado con la contrasefia RC4-HMAC del usuario y puede intentar descifrar este ticket sin conexién. La autenticacién previa es la etapa inicial de la autenticacién Kerberos, que es administrada por el servidor de autenticacién KDC y esté destinada a prevenir ataques de fuerza bruta En la imagen, podemos ver que el usuario de Japneet es vulnerable al ataque AS-REP Roasting. Mas informacién: Pur) ANN salen aoe ustom Queries 4c La conclusién a la que llegamos de acuerdo con nuestra Enumeracién con BloodHound es que el usuario de Japneet es vulnerable al asado AS-REP. Esta notificacién se puede comprobar examinando los usuarios y equipos de Active Directory y, a continuacién, descendiendo a las propiedades de usuario del usuario de Japneet. En la ventana Propiedades del usuario de Japneet, hay una pestaria Cuenta, Dentro de la pestafia Cuenta, podemos ver que el usuario de Japneet no requiere la preautorizacién de Kerberos. File Action View Help @o|aim| 4 8|\*XOSS|\Em|taarae Active Directory Uses and Com|| name Type > IB Saved Queries 7 aarti User 0 Builtin “ad _ > B ignite User I Computers ae sea B japnee User japneet Properties 2 xX Pubished Certficates Nember Of Password Replication Dialin Object Securty Environment Sessons Remote contra Remete Desktop Servoes Profle come Atibute Edter General Address Account Prefle Telephones Organization User logon name jepneed |Ggntelocal x User logon name (pre-Wndows 2000): IGNITE fanneet togen Hous. | {Logon To, D1 Unleck accourt Accourt options: Use only Kerberos DES encnption iypesforths account * This account euppaite Kerberos AES 128 bit encryption. [This account supports Kerberos AES 256b encryption. De not requie Kerberos preauthentcation % Account expires @Never OEnd of ee i Hale Another attack for which we can enumerate using the BloodHound is the DC Sync Attack. This attack allows an attacker to replicate Domain Controller (DC) behavior. Typically impersonates as a domain controller and requests other DC's for user credential data via GetNCChanges. But compromised account should be a member of administrators, Domain Admin, or Enterprise Admin to retrieve account password hashes from the others domain controller. From the BloodHound graph, we can see that Geet user is vulnerable to this attack. Learn More: DCSync Attack OCS The conclusion that we came to according to our Enumeration with BloodHound is that Geet user is vulnerable to DCSync Attack. This claim can be verified by browsing the Active sctory Users and Computers and then further descending into the user Properties of the Geet user. In the Geet user Properties Window, there is a Member Of Tab. Inside the Member Of tab, we can see that the Geet user is a part of Domain Admins which makes that user vulnerable to DC Sync Attack. File Action View Help eo|fml 4 O|\XSSS\BRtearae Ei Active Directory Users and Com|| Name Type [Dl Saved Queries B aati User v Bignitetocal ci ee > Buittin > 7 xX >| [eect Properties Security Environment Sessions Remete control Remote Desktop Services Prefle come. itb.te Edtor General Address Account Profile Telephones Organization Publshed Certficates MemberOf Paseword Replication Dian Object Menber Name ‘Active Directory Domain Services Folder Domain Admins ignite local/Users Doman Usee ——ignfe Tocal USS Add. Remeve Primary goup: Doman Uses There's noneedto change Pimary group unless Set Primary you have Nacintosh clents or POSIXcomplint applications, OK Cancel Aeply Help The next enumeration that we are going to perform using BloodHound is the Listing of all Kerberoastable Accounts. Kerberoasting is a technique that allows an attacker to steal the KRB_TGS ticket, which is encrypted with RC4, to brute force application services hash to extract its password. From the graph plotted by the BloodHound, it can be said that KRBTGT and SVC_SQLSERVICE are the two users that are vulnerable to this attack. Learn More: Kerberoasting Attack KRATGT@IGNITELOCAL SVC_SQLSERVICE@IGNITE.LOCAL CoM ol mele ilsseaed There are a lot of different custom queries and built-in queries that can be used to enumerate using BloodHound, Once you are done with the Enumeration and Analysis, you can clear the database of values and add new JSON files of different values by browsing the Database Info tab on BloodHound GUI and Clicking the Clear Database Button as demonstrated below. Creo BloodHound on Windows It is possible to analyze and enumerate BloodHound directly from a Windows machine as well. This can be helpful in the Environments that restrict the deployment of Kali Linux and other attacker tools. The process remains more or less the same. We need to set up the Data Ingestor, BloodHound GUI, and neodj database on Windows Machine as we did in Linux earlier. To begin, we will be installing the Data Ingestor for Windows that is named Sharphound. The difference between the Linux Investor and Windows Investor is that instead of crafting JSON files, the SharpHound creates a compressed file that includes CSV files. The data collection method remains the same. SharpHound can be Downloaded for GitHub. Extracting Data from Domain In the image presented below, it can be observed that when the attacker runs the SharpHound on the machine connected to Domain, it created a compressed file with the BloodHound name as highlighted sharphound.exe dir a Pa ee Ea neces mT iene Windows Installation From the Linux setup, we remember that BloodHound requires the neodj service. It can be downloaded for Windows and then run using a batch file that comes with the installation package. This service runs on port 7474 as well Download Neo4j Windows dir neo4j.bat console sers\raj\Deskt communi See . Serre earns Creat eon sows eee J-conmunity-4.2.5\bin: fia) eerie CE ett sc a oc Teun) Forests erreur as ostInitialiration step for component “security-users’ if poe ces ns eee We take the URL from the neo4j console and open it in our Web Browser, If we remember correctly, we require to configure the credentials at this stage which will also be used for the BloodHound as well. ea © DB locthost7474/orowser/ <— ee eT rserver connect Connect to Neo4j — Connect uRL- ead) |¥| localhost 7687 Database access might 4 require an authenticated Database - leave empty for default ‘Authentication type Usemame / Password Usemame neod) Password After the configuration of the password, we try and log in for the first time in the neo4j service. This requires us to rest the password as shown in the screenshot below. > DD tecahost:7474/oronsery << -— ver connect onnect to Neo4j =) New password uire an authenticated nection Repeat new password Cerone) After resetting the password and connecting to the neodj service that we configured on our Windows device, we can access the service from our Web browser. The panel tells us that we are connected successfully to the neodj service. o> ¢e@ © Be became 74rajerowse/ <= Connected to ‘You are connected as user neo4> Neo4j 10 neot§://iocathost:7601 Neo e mestyau ee a RL Ahora que hemos instalado el servicio SharpHound Ingestor y Neo4j en nuestro dispositivo Windows, ahora nos queda el proceso de instalacién de la GUI de BloodHound. Esto es bastante sencillo ya que tenemos ejecutable para el mismo. Usamos el simbolo del sistema de Windows para ejecutar la GUI como se muestra en la imagen a continuacién. “ dir BloodHound. exe Sete Sera and usabi| La GUI de BloodHound se ejecuta y tenemos un panel de inicio de sesién como se muestra en la imagen a continuacién. Usamos las credenciales que configuramos en la configuracién de Neodj para iniciar sesién en la GUI de BloodHound. BLOODHOUND Log in to Neo4j Database reeiere ected ca] Coc) Enumerar con BloodHound A partir de aqui el proceso de andlisis y enumeracién en BloodHound es el mismo que comentamos anteriormente. El uso de este conjunto de instrucciones le ha permitido ejecutar BloodHound en un dispositive Windows. Pre-Built Analytics Queries fag CO Raw Query SharpHound en PowerShell Como una extensién del proceso de enumeracién de BloodHound en Windows, también queremos demostrar el proceso que pueden seguir los profesionales de seguridad cuando desean usar SharpHound en Windows a través de PowerShell. Esto se puede hacer ya que tenemos los scripts de PowerShell para el SharpHound Ingestor. Después de omitir la restriccién de script en PowerShell, importamos los médulos desde el script de PowerShell de SharpHound. Contiene un cmdlet con el nombre de Invoke BloodHound, Esto se puede utilizar para recopilar datos en la maquina de destino. Esto es titil en el escenario en el que no es posible ejecutar un ejecutable en el equipo de destino. Descargar SharpHound PowerShell Script powershell -ep bypass Import-Module .\SharpHound.ps1 Invoke-BloodHound -CollectMethod All Beene Na CMO re aan ee See saneaa ore na aR Loa a K (Eesha aes Gea een eee << initializing SharpHound at 12:32 PM on 4/12/2021 OURO estes ee Ree aero Cee Seon ge ec ra eRe eRe ee Meer eens SESE Me ices ates ike acres rae near ree tate CU ee uste mcr airs Esc oars ro 20210412123217_BloodHound. zip Sr Sense SharpHound en PowerShell Empire El script SharpHound que usamos anteriormente en PowerShell también se puede encontrar dentro de Kali Linux. Se encuentra dentro del Imperio PowerShell. Después de obtener con éxito e! punto de apoyo inicial en un dispositive que forma parte de un dominio, el atac~ puede usar directamente el Imperio para ejecutar SharpHound y extraer los datos de « también. Para hacer esto, necesitamos usar el médulo bloodhound en los Médulos de Conciencia Situacional del Imperio, Después de la ejecucién, le dice al atacante la ubicacién en la que se encuentran los archivos csv de datos usemodule situtationa_awareness/network/bloodhound execute Tee Cen Eerae Cen eet ss Pec sks an ci Cerca Un atacante puede usar el comando download en PowerShell Empire para transferir los archivos csv a la maquina host, es decir, Kali Linux. Podemos usar los multiples archivos csv de una manera similar a como usamos los archivos json anteriormente para trazar grdficos y enumerar un Active Directory. 1s download group_memberships.csv download local_admins.csv download trusts. csv download user_sessions.csv (Empire: 9) cst) Ceo Pee eecaet ry ceo aco CURSO NCS Ub eae c eye m ye Uy eL eres pre) Cem sa NV CNipee ris SemYer Yel eet ees ce ee BUILTIN\Adninistrators 4/7/2021 5:40:24 AN 1142 FLL. z Gime Cire yee meee eer Mer aire a re oe CIOmpa NY CLSUb eee see ye UyeL se PEC eee EMamsa NV Csip ease sore ye Cer yee Eeras EER ae Cees BULLTIN\AdMinistrators 4/12/2021 1:29:23 PM 73 (ey EMbemea Vc ururess sta SPacy eC YEU Pree Eee a Met Gre ane eMC CCR Muu csc (G20 8 en) (Gc St San) ee eon Grizetsty ee Ce Gaieteey Cre eee eR CoCr ae ce Grigetre) Conclusién Esta gufa fue creada por nosotros para que los profesionales de seguridad, independientemente del equipo rojo 0 azul, puedan implementar, configurar y usar BloodHound para enumerar en implementaciones de Active Directory. Es una herramienta muy util que se puede utilizar para comprender la mecénica de una red de Active Directory y luego usar esa informacién para elevar los privilegios 0 explotar la red. Autor: Pavandeep Singh es escritor técnico, investigador y probador de penetracién. Puede r contactado en Twitter y Linkedin

También podría gustarte