By BlackReaperSK ~/Threat Hunting/readme.txt Threat Hunting é, por sua definição, a caça de ameaças no sistema. Um Threat Hunter deve realizar periodicamente avaliar riscos de invasão, fazer investigação nos Endpoints, servidores expostos, assim como garantir a segurança nos mesmos. Muitas pessoas erram ao confundir Threat Intel com Threat Hunting, que são coisas diferentes. Em Threat Intel é realizada a prevenção de ataques com metodos tratamentos de dados e aplicação de soluções de segurança, por sua vez, no Threat Hunting, você se preocupa com possiveis invasões descobertas falhas ocasionais de segurança abertas e APTs. ~/Threat Hunting/working_sample.txt Para realçar a diferença e aplicar esses conceitos na pratica, trago dois exemplos simples [- Threat Hunting - Basic Work and Start -] * Isso é apenas um exemplo muito basico e não demonstra todo processo de analise Sabemos que, de alguma maneira, uma ameaça tem as credencias de uma maquina na nossa rede, um Windows Server. Depois de uma analise rapida, descobrimos que a maneira mais facil do atacante tentar uma conexão é por meio da porta 3389, estando ela aberta para toda a nossa rede: 3389/tcp open ms-wbt-server Microsoft Terminal Services Vamos ver o registro de acesso direto da maquina, provavelmente, tem algo de interessante por aqui. PS C:\>Get- RemoteAccessConnectionStatisticsSummary TotalConnections : 0 TotalDAConnections : 0 TotalVpnConnections : 0 TotalUniqueUsers : 0 MaxConcurrentConnections : 10 TotalCumulativeConnections : 703 TotalBytesIn : 1167785920 TotalBytesOut : 3350338848 TotalBytesInOut : 4518124768 Aqui vemos que não tem nenhum "usuario" logado no momento, então faz sentido nosso output ser TotalDAConnections : 0 | TotalUniqueUsers : 0. Vamos por um Timestamp e filtrar melhor. Sabemos que o ataque ocorreu no dia 13/09/2021, e hoje, é dia 19/09/2021. PS C:\>$startdate = Get-Date -Date "13/09/2021" PS C:\>$enddate = Get-Date -Date "19/11/2021" PS C:\>Get-RemoteAccessConnectionStatisticsSummary -StartDateTime $startdate -EndDateTime $enddate TotalSessions : 314 TotalDASessions : 314 TotalVpnSessions : 0 MaxConcurrentSessions : 28 TotalUniqueDAClients : 27 AverageSessionsPerDay : 144 TotalUniqueUsers : 57 Aqui vemos, um numero do total de sessões nessa data (TotalSessions : 314). Sabemos que isso não é um fluxo normal de acesso durante esse tempo (nesta rede) então determinamos que sim, essa maquina foi explorada. Vamos ver os logs de acesso remoto que o Windows nos oferece. PS C:\>Get-RemoteAccessConnectionStatistics -StartDateTime $startDate -EndDateTime $endDate | Export-Csv -Path "logs.csv" Depois do export de data para dentro do arquivo "logs.csv", achamos algo interessante nele, e que, depois de filtrar e analisar, determinamos que possivelmente é o atacante ClientIPAddress : {10.0.0.22, 2002:836b:2:2000:7407:f734:9281:f9a3} UserName : {joaotech \Administrator} ConnectionDuration(s) : 220 ConnectionType : DA AccessStatus : User Mode/Full Corp Access * Note que conexões vindo da 10.0.0.22 não podem ocorrer, pois o mesmo é um servidor web por isso descobrimos facilmente o endereço do atacante Maldito seja hackerdumal! Descobrimos que a conexão veio de uma outra maquina dentro da rede, que nela, está rodando um servidor web exposto. Provavelmente a ameaça exploitou a aplicação web, conseguiu acesso a esta maquina (10.0.0.22) e la encontrou as credencias dessa maquina aqui. Antes de irmos atras dessa ameaça vamos fazer uma pequena alteração para que ele perca o acesso C:\Users\Administrator>net users Contas de usuário para \\JOAOTECH ------------------------------------------------------------------------------- Administrador Guest DefaultAccount rodrigao sysadmin hackerdumal C:\Users\Administrator>net user Administrator senhafortexd && net user hackerdumal /delete Pronto! Outra solução cabivel essa hora, era isolar essa maquina em uma rede separada, ou simplesmente, desliga-la, para mantar o state original da mesma, e fazer um processo de analise mais profunda depois. Indo para a outra maquina (agora estamos na 10.0.0.22) analisaremos logs do Apache 135.53.191.184 - - [13/Set/2021:13:19:05 -0400] "GET /servicos/servicos.php?page=concerto HTTP/1.1" 135.53.191.184 - - [13/Set/2021:13:20:09 -0400] "GET /servicos/servicos.php?page=autorizadas HTTP/1.1" 135.53.191.184 - - [13/Set/2021:13:20:22 -0400] "GET /servicos/servicos.php?page=whoami HTTP/1.1" 135.53.191.184 - - [13/Set/2021:13:23:55 -0400] "GET /servicos/servicos.php?page=/var/log/apache2/access.log HTTP/1.1" Acho que ele viu coisas que não deveria....hmmm.....olhando os logs do Apache, vimos que o cidadão acabou achando um LFI no parametro page do código servicos.php Observando os logs, vemos que ele usou o LFI to RCE, como os logs auditam toda requisição, mandando um payload para la e usando o intepretador PHP (claro, do servicos.php), você consegue facilmente adquirir um RCE e escalar pra uma shell Vamos pular o blablabla de exploitation, isso é trabalho do RedTeam o intuito desse artigo é demonstrar e explicar Threat Hunting Olhando e analisando essa maquina, vemos que o atacante não conseguiu fazer muita coisa com ela, isso por que, ele não conseguiu escalar privilegio a root, e não fez outras conexões na rede. O que fez com que o nosso Windows Server sofresse uma invasão, foi uma pasta de bkp que o sysadmin deixou legivel para todos os usuarios drwxr-xr-x 3 sysadmin sysadmin 4096 Set 10 22:20 bkps apache@joaotech-$ cat windows_server_config.txt Rogeio lembrar de reiniciar o servidor e verificar aquela DB importante!!! IP: 10.0.0.15 Usuario: Administrator Senha: senhamtofoda É... as vezes é dificil entender um sysadmin, deixam os logs em lugares confusos, se cadastram em sites duvidosos com as credencias da empresa, mas o importante, é nunca desistir e sempre ir atrás da ameaça. Por outro lado, encontramos o IP do atacante 135.53.191.184 (na maioria dos casos isso é irrelevante) e achamos a falha no sistema que o permitiu fazer tudo isso. Na maioria das vezes, a pós descoberta vem sempre acompanhada de analise mais profunda, como analise de trafego, dump de memoria com volality entre outras coisas, mas isso é assunto para outro artigo. ~/Threat Hunting/conclusion.txt Bom, eu preferi explicar o assunto com um exemplo muito basico, explicação teorica e pratica também sendo dinamico, pois é um assunto que é confuso, e chega a ser dificil escrever um artigo introdutorio e que seja curto sobre esse assunto tão extenso. Lembre-se Threat Hunting não é só BlueTeam não, você por muitas vezes, será designado para refazer os passos da ameaça até o ultimo Endpoint afetado. "No plot, no reason for anything, just killing red guys" Templo 7K