
Ferramenta de Threat Hunting sobre Sysmon e gráficos

Grafiki é um projeto Django sobre Sysmon e gráficos, por enquanto.
Na minha opinião, o EventViewer, Elastic e até mesmo o Kibana não são suficientemente gráficos. As ameaças atuais são complicadas e se os atacantes pensam em grafos, os defensores também devem fazê-lo.
Esta é uma prova de conceito, o código ainda não foi depurado, mas talvez possa ser útil para alguém; irei melhorá-lo.
Este projeto começou como um analisador de EVTX para banco de dados SQL e talvez este seja o núcleo do projeto.
O projeto não é maduro o suficiente, embora funcione, o plano de teste ainda não foi definido.
Qualquer opinião, bug encontrado, pedido de melhoria... será bem-vindo.
git clone https://github.com/lucky-luk3/Grafiki.git
cd Grafiki
sudo -- sh -c -e "echo '127.0.0.1 grafiki.local' >> /etc/hosts"
docker compose up --build &
docker exec -it -d grafiki-app-1 /init_django.sh
No seu navegador, vá para http://127.0.0.1:8000/ ou http://grafiki.local:8000/
Caçe, aprenda e divirta-se!
Esta aplicação pode processar dois tipos de arquivos.

Nesta página, você pode enviar arquivos evtx ou arquivos de eventos do Elastic e processá-los.

Esta página é útil para criar uma biblioteca de arquivos de amostras online.
Quando você cria um exemplo, coloca a URL do arquivo e, ao processá-lo, a aplicação baixa o arquivo de evento e o processa.

Nesta página, você pode criar pesquisas para sua instância Elastic e criar um gráfico do resultado. Você pode criar filtros sobre:

A página de gráfico é o núcleo desta aplicação e a interface de pesquisa dela.
Nas outras páginas, você seleciona seus dados e essas páginas o enviam para a página de gráfico; se você for diretamente para a página de gráfico, nada estará lá ou estarão os últimos dados pesquisados por você.
Nesta página há duas abas, uma para eventos do Sysmon e outra para eventos do PowerShell.
Há dois tipos de elementos, nós e arestas. Nós representam entidades como processo, arquivo ou chave de registro, e arestas representam ações como criar, excluir ou conectar.

Estamos no núcleo.
Esta parte usa as informações no banco de dados para criar gráficos sobre os eventos analisados.
Você pode navegar no gráfico, observando criação de processos, pipes nomeados conectados... mas geralmente há muita informação para trabalhar confortavelmente.
Dentro da aba, há uma seção oculta sobre filtros de gráfico.
Nesta área, você pode trabalhar com os dados de filtragem do gráfico.
Você pode filtrar nós por estas entidades:
Você também pode filtrar nós de processo por:
Além disso, você pode filtrar arestas por estas ações:
Uma ótima funcionalidade é criar animações sobre os dados no gráfico; isso é muito útil, por exemplo, em Parent PID Spoofing ou quando algum usuário em um computador executa comandos remotamente.

Quando o gráfico tem muita informação, é possível excluir um nó, uma aresta, um grupo de nós ou um grupo de nós recursivamente.
Excluir grupo de nós funciona selecionando um nó e a aplicação excluirá todos os nós cujo pai seja o nó selecionado.
Excluir grupo recursivamente também funciona selecionando um nó, mas a aplicação percorrerá os nós excluindo até finalizar este ramo da árvore. Se o ramo tiver muitas informações, isso levará muito tempo.
Na parte inferior da tela, é possível alterar a física do gráfico.
Quando o gráfico tem muitas informações, pode ser útil desabilitar a física para estabilizar o gráfico.
Você pode brincar com a física, é divertido.
Na aba PowerShell é possível analisar comandos do PowerShell.
Os comandos são mostrados em um acordeão e, dentro de cada linha, se o comando contiver um comando base64, ele será decodificado e analisado.
Você pode pesquisar em todos os eventos pela parte codificada ou decodificada do comando.





