Atacant el Directori Actiu: Introducció

Aquest entrada és l’inici d’un curs on explicaré com dur a terme una prova de penetració contra el Directori Actiu en una xarxa Windows, com la que podria tenir qualsevol empresa actualment.

Abans d’entrar en detalls més tècnics, t’explico alguns conceptes bàsics del funcionament.

Nota: Les tècniques que explicaré estan més centrades en atacs específics contra el domini i no tant en com explotar serveis vulnerables. Si t’interessa més això últim, et recomano que busquis metodologies d’atacs a infraestructura.

Conceptes

Què és el Directori Actiu?

AD, Active Directory en anglès, és una tecnologia dissenyada per Microsoft que té com a objectiu definir una sèrie de components centralitzats que s’encarreguen d’emmagatzemar, organitzar i distribuir informació a les màquines que formen part d’una xarxa.

Per a que existeixi un AD és necessari que hi hagi com a mínim un servidor anomenat Controlador de Domini (DC), Domain Controler en anglès, que s’encarrega d’emmagatzemar i mantenir l’informació de l’entorn. Aquesta informació està composta d’unitats anomenades objectes que poden ser pràcticament qualsevol cosa: usuaris, ordinadors, grups, serveis, etc.

Domini

Un domini representa una agrupació lògica d’ordinadors connectats a una xarxa que comparteixen un mateix Directori Actiu. Per tant, un domini és bàsicament una etiqueta que normalment està representada per un nom DNS.

Forest

Els dominis a un directori actiu són molt flexibles i permeten crear una infraestructura completa i ben organitzada. Partint d’un domini arrel, és possible crear sub-dominis que representen una separació lògica i/o física de les màquines dins de la xarxa. Per exemple, es podria crear un subdomini per cada departament (vendes, IT, màrqueting…) o per distribució geogràfica d’oficines (Barcelona, Madrid, Londres, Brussel·les…).

Nom NetBIOS

Un domini es pot representar per un nom DNS, però també pel nom NetBIOS. Per exemple, el domini “projectenadki.local” pot ser representat pel nom NetBIOS “projectenadki”.

El nom NetBIOS acostuma a ser utilitzat en diverses operatives com durant el procés d’inici de sessió a una estació de treball: usuari projectenadki\Nadki (DOMINI\USUARI).

Connectivitat

Com que l’idea és fer un pentest a la xarxa interna, hauràs d’utilitzar algunes de les següents tècniques per accedir a la xarxa:

  • Vulnerabilitats: si estàs fent un exercici de Red Team, el més probable és que no tinguis accés directa a la xarxa intern i hagis de trobar una vulnerabilitat a una web o servei exposats a Internet que et permetran executar comandes i per tant, obrir una connexió inversa cap al teu ordinador.
  • VPN: la forma més senzilla d’accedir a la xarxa interna és demanar al client que et configuri una VPN. D’aquesta manera, independentment de si utilitzes Windows o Linux, podràs connectar-te sense problemes.
  • Màquina de salt: per polítiques de seguretat i segmentació, hi ha empreses que no permeten l’ús de VPNs per accedir a la xarxa interna. Si és el cas, t’hauran de configurar un servidor intermig perquè puguis entrar a la xarxa interna. Així podràs connectar-te a través d’escriptori remot a la màquina de salt des i, des d’aquesta, a les màquines internes que t’interessin. A més a més, probablement hauràs de demanar que et configurin una Kali i/o un Windows a la xarxa interna des d’on puguis atacar.

Coses a demanar al client i a tenir en compte

Si el teu pentest és completament caixa negre o és un exercici de red team, hauràs d’evadir els antivirus i Firewalls abans de poder fer res. Si el pentest és caixa gris o blanca, hauries de demanar al client que compleixi els següents requisits abans de començar:

  • Configuració de la connectivitat i accés a la xarxa interna
  • Configuració del Firewall intern perquè puguis veure tots els ordinadors/servidors del domini i els seus ports des de les màquines d’atac.
  • Un usuari del domini, a poder ser que estigui a algun grup d’usuaris sense privilegis.
  • Un usuari que sigui administrador local per cada una de les màquines d’atac. Així podràs instal·lar eines i executar-les sense problemes.
  • Deshabilitar l’antivirus a les màquines d’atac. Sinó, hi haurà algunes eines que no podràs utilitzar.
  • Verificar si des de les màquines d’atac tens connexió a Internet. Si no la tens, hauràs de preveure l’instal·lació manual de les eines.

Metodologia

En qualsevol activitat de Pentesting es recomana sempre seguir una metodologia. En web normalment jo utilitzo la la metodologia d'[OWASP](https://owasp.org/), una fundació sense ànim de lucre que treballa per incrementar la seguretat del software.

Per fer auditories internes, el que he fet ha sigut agafar la metodologia que segueixo a l’auditar pàgines web i adaptar-la. Està dividida en 5 fases.

Fase 1: Enumeració

Abans de voler comprometre res, s’ha de saber exactament a què s’està atacant. La fase de d’enumeració o recol·lecció d’informació és la més important de totes, ja que els futurs atacs depenen completament de l’informació que hagis trobat.

Normalment, tota auditoria comença amb l’enumeració dels controladors de domini i dels ordinadors o servidors que es troben dins del domini a auditar. Utilitzant programes com Nmap, pots enumerar els ports que tenen oberts les màquines amb l’objectiu de saber quins serveis hi ha al darrere.

De cada servei, intenta obtenir la versió i tota informació possible. Per exemple, del servei SMB al port 445 es pot obtenir els recursos compartits.

Fase 2: Cerca de vulnerabilitats

Una vegada tens tota l’informació de tots els ordinadors del domini, es procedeix a analitzar-la. El que has de buscar és qualsevol cosa que et cridi l’atenció i que pugui servir per realitzar algun tipus d’atac.

Mentre analitzes, és possible que trobis més d’una vulnerabilitat. La meva recomanació és que no intentis explotar res fins que ho hagis analitzat tot, ja que d’aquesta manera sabràs totes les vulnerabilitats que hi ha i podràs escollir millor per quina t’interessa més començar.
Sinó, quelcom que et podria passar és que inverteixis moltes hores intentant explotar una vulnerabilitat específica. En canvi, si haguessis analitzat la següent màquina, t’adonaries que és vulnerable Ethernal Blue (s’explota en 5 minuts) i t’haguessis estalviat molt de temps i frustracions.

Fase 3: Explotació

Havent analitzat tota la informació i tenint un llistat de totes les vulnerabilitats, toca escollir per on començar. Ordena-les per facilitat d’explotació i/o criticitat i crea vectors d’atac (és possible que s’hagin d’explotar vulnerabilitats en cadena).

Una vegada tens tots els vectors d’atac, comença a explotar-los un a un fins que tinguis èxit. Si algun funciona, pregunta’t si val la pena seguir explotant els altres vectors o és millor passar a la fase 4 directament. Per exemple, si explotes un equip de treball d’un treballador i/o aconsegueixes un usuari, segurament t’interessarà passar a la fase 4. Però si aconsegueixes comprometre un servidor Linux, que no té informació sensible segurament voldràs seguir amb l’explotació.

Una vegada hem enumerat tots els usuaris, ordinadors i serveis del domini, toca començar a buscar la manera d’aconseguir un usuari del domini o accés a un servidors o ordinador.

Si estàs fent un pentest intern de caixa gris, és possible que ja t’hagin proporcionat un usuari del domini. La meva recomanació és que igualment intentis obtenir-ne un altre i busquis igualment vulnerabilitats. Si no trobessis res, podràs utilitzar el teu usuari igualment per auditar la part autenticada.

No entraré en detall sobre explotació Web o Infraestructura perquè no estan a l’abast d’aquest curs. Tot i que si tens alguna pregunta sobre algun dels punts, no dubtis en posar-te en contacte amb mi.

Web

Tot i que no estem fent un pentest web, a mi sempre m’agrada fer un cop d’ull a tots els ports que tenen una web al darrere i invertir una mica de temps. No tan en trobar vulnerabilitats del tipus XSS, sinó per buscar el següent:

  • Llistat de directoris: una web mal configurada pot tenir activat el llistat de directoris. Si tens sort, pot haver informació sensible que puguis utilitzar més endavant. Si aconseguissis accedir a la web i pujar un fitxer maliciós, podries aprofitar el llistat de directoris per executar-lo i comprometre el servidor.
  • Webs internes sense autenticació: alguns administradors decideixen no posar panell d’autenticació pensant que el fet de que sigui interna ja protegeix contra atacants no desitjats. Poder entrar a la part autenticada és important perquè a part de veure informació sensible i confidencial, ens permet explotar vulnerabilitats que afecten només a la part autenticada.
  • Panells d’inici de sessió amb contrasenyes per defecte: malauradament, és comú trobar panells d’inici de sessió que tenen les contrasenyes per defecte. Aquí pots trobar totes les contrasenyes dividides per tecnologies: Github
  • Tecnologies web desactualitzades: les pàgines web internes són més propenses a ser oblidades pels administradors a l’hora d’aplicar actualitzacions. És important intentar descobrir la versió de les tecnologies que utilitza per si existeix algun exploit públic que puguis aprofitar.
  • Revisió funcionalitats: aquesta és la part una mica més manual. A mi sempre m’agrada fer una revisió general de les funcionalitats de la web per si puc trobar alguna que pugui aprofitar, com una pujada de fitxers, camps de cerca amb possibles SQLi o altres vulnerabilitats web.

Infraestructura

De la mateixa manera que al punt anterior, és important investigar una mica quins serveis tenen oberts els servidors que has enumerat a la fase inicial. Coses que et poden interessar:

  • Força bruta: pots fer atacs de força bruta contra SSH, FTP… Tot i que hauries de vigilar perquè depenent de la política que tinguin implementada, pots arribar a bloquejar usuaris.
  • FTP anònim: a vegades tenen habilitat l’usuari anònim a l’FTP. Si ho tenen mal configurat podries arribar a llegir, escriure i descarregar tots els fitxers de l’FTP.
  • Usuaris per defecte: no està de més provar les típiques credencials per defecte, com admin:admin, Administrador:1234, etc.
  • Tecnologies desactualitzades: els serveis interns són més propensos a ser oblidats pels administradors a l’hora d’aplicar actualitzacions. És important intentar descobrir la versió de les tecnologies que utilitza per si existeix algun exploit públic que puguis aprofitar.
  • Revisió dels serveis: aquesta és la part una mica més manual. A mi sempre m’agrada fer una revisió general dels serveis per si puc trobar alguna cosa que em pugui servir. Per exemple, mirar en detall els serveis crítics com RDP, MS-SQL, SMB, etc.

Directory Actiu

Hi ha algunes tècniques de directori actiu que formarien part de l’enumeració, segurament. Per comoditat, les he agrupades totes aquí. Coses que són interessants de mirar:

  • Bloodhound: És una eina molt potent per a poder visualitzar gràficament com està composta una xarxa a nivell d’ordinadors, usuaris i relacions entre ells.
  • Man-In-The-Middle: hi ha diverses eines que pots utilitzar, una és Responder que escolta la xarxa activament buscant una petició de LLMRN, NBT-NS i/o mDNS demanant un recurs. Quan això passa, es fa passar per un ordinador que si que té el recurs i demana a l’usuari víctima que s’autentiqui contra ell. Això permet a l’atacant obtenir l’usuari i el hash NTLM. Una altra de molt interessant és Wireshark, que et permetrà capturar tràfic i veure’n el contingut si no va xifrat.
  • Windows Secrets: quan compromets un ordinador, eines com secretsdump o samrdump del paquet Impacket o CrackMapExec, et permetran obtenir la SAM i LSA Secrets, incloses credencials emmagatzemades en caché.
  • Servei SMB: pots enumerar informació llistant les carpetes compartides amb CrackMapExec o smbmap, accedir a les carpetes SYSVOL o NETLOGON per investigar si emmagatzemen informació sensible o realitzar atacs d’explotació, password srying o força bruta amb CrackMapExec.
  • Attacs Kerberoasting i AS-REP Roasting: els scripts GetUsersSPN i GetNPUsers et permetran obtenir hashes de serveis i usuaris que hauràs d’intentar crackejar.
  • Cracking: és possible que durant l’enumeració i explotació hagis pogut obtenir diversos hashes. Alguns els podràs utilitzar directament amb tècniques de Pass-The-Hash, però la gran majoria els hauràs d’intentar crackejar per obtenir les contrasenyes en text clar. Algunes eines que pots utilitzar són Hascat o JohnTheRipper.

Fase 4: Post explotació

Una vegada aconsegueixes comprometre un ordinador o un usuari, t’interessarà arribar fins al final. És a dir, aconseguir ser administrador del domini, aka poder fer el que vulguis, ser el Deu de la xarxa.

Si tens molta sort i l’usuari que compromets resulta ser un treballador d’IT que té permisos d’administrador del domini, la feina s’ha acabat, ja que fàcilment podràs crear-te un usuari “admin” per tu.

Normalment no és tant fàcil. A vegades obtens un usuari que no té gaires permisos o compromets un ordinador sense tenir cap usuari. El teu objectiu en aquesta fase es aconseguir ser administrador de la màquina compromesa, aconseguir credencials d’un usuari administrador o saltar d’un ordinador a l’altre de dins de la xarxa fins arribar a un que t’interessi més (tècniques de pivoting).

Fase 5: Informe

Un cop s’ha finalitzat el Pentest, s’ha de fer un informe o presentació de resultats. Normalment aquest informe contindrà la metodologia que s’ha utilitzat, quins han sigut els objectius (domini o IPs), quines vulnerabilitats s’han trobat i els seus detalls, quins han sigut els vectors d’atac i unes conclusions.

He passat per diverses empreses i cada una té una manera diferent de fer els informes. Personalment, la que més m’agrada és quan a part d’enumerar totes les vulnerabilitats i la seva criticitat, es fa un apartat on s’expliquen els diversos vectors d’atac utilitzats durant el Pentesting. A cada vector, no només s’especifica el camí seguit per aconseguir l’explotació, sinó que es van enumerant les vulnerabilitats explotades en cada pas.

D’aquesta manera, el client pot fer-se una imatge mental de com un atacant ha pogut comprometre tota la seva empresa i, amb sort, conscienciar-lo de que la seguretat és un punt a tenir en compte i que les amenaces són reals.

Eines

Existeixen moltes eines que es poden utilitzar i algunes comandes es poden executar directament des de CMD o PowerShell. Les que utilitzaré aquí són de codi lliure i gratuïtes:

Deixa un comentari