
Uma extensão do Burp Suite para identificar vulnerabilidades de injeção (LFI, RCE, SQLi), problemas de autenticação/autorização e violações de acesso HTTP 403. Ela suporta geração dinâmica de payloads, incluindo sintaxe BCheck, e pode gerar scripts Bambdas automaticamente. Além disso, oferece "Copy as JavaScript" para converter requisições HTTP visando testes avançados de XSS.
Agartha é especializada em geração avançada de payloads e avaliação de controle de acesso. Ela identifica habilmente vulnerabilidades relacionadas a ataques de injeção e problemas de autenticação/autorização. O gerador dinâmico de payloads cria extensas listas de palavras para vários vetores de injeção, incluindo SQL Injection, Local File Inclusion (LFI) e Remote Code Execution (RCE). Além disso, a extensão constrói uma matriz de acesso de usuário abrangente, revelando potenciais violações de acesso e caminhos de escalonamento de privilégios. Ela também auxilia na realização de verificações de bypass de HTTP 403, esclarecendo configurações incorretas de autenticação. Adicionalmente, pode converter requisições HTTP em código JavaScript para ajudar a descobrir problemas de XSS mais facilmente.
Em resumo:
Aqui está um pequeno tutorial de como usar.
Você deve baixar o arquivo 'Jython' e configurar seu ambiente primeiro:
Você pode instalar o Agartha através da loja oficial:
Ou para instalação manual:
Após tudo isso, você verá a aba 'Agartha' na janela principal e ela também será registrada no menu de contexto (clique direito), em:
'Auth Matrix'
'403 Bypass'
'Copy as JavaScript'
Suporta sintaxes de arquivos tanto Unix quanto Windows, permitindo a geração dinâmica de listas de palavras para qualquer caminho desejado. Além disso, pode tentar contornar implementações de Web Application Firewall (WAF), com várias codificações e outras técnicas.

Gera listas de palavras dinâmicas para execução de comandos com base no comando fornecido. Combina vários separadores e terminadores para ambientes Unix e Windows.

Gera payloads para vários tipos de ataques de SQL Injection, incluindo Consultas Empilhadas (Stacked Queries), Boolean-Based, Union-Based e Time-Based. Não requer nenhuma entrada do usuário; basta selecionar os tipos de ataque SQL e bancos de dados desejados, e ele gera uma lista de palavras com diferentes combinações.

BCheck é o framework do Burp Suite para criar e importar verificações de varredura personalizadas. Essas verificações definidas pelo usuário são executadas junto com as rotinas internas do Burp Scanner, permitindo que você adapte as varreduras a vulnerabilidades ou necessidades de teste específicas. Ao usar BChecks, você pode estender os recursos de varredura do Burp e otimizar seu fluxo de trabalho para avaliações mais direcionadas e eficientes. Agora você pode gerar o código automaticamente:
Esteja ciente de que, à medida que o script Bambdas aumenta de tamanho, pode causar problemas de desempenho, especialmente durante a varredura. Scripts maiores podem diminuir a capacidade de resposta, aumentar o uso de memória e levar a atrasos na execução de tarefas.
Após clicar no botão "Generate payloads for BCheck", o código BCheck será copiado automaticamente para sua área de transferência.
Em seguida, vá para 'Extensions > BChecks > New > Blank' no menu do Burp Suite e simplesmente cole o código gerado.
Seus payloads agora estão integrados em um BCheck. Você pode enviar ou escanear manualmente requisições HTTP, ou iniciar uma varredura Burp que incorpore os controles BCheck para testar automaticamente os payloads de injeção gerados pela ferramenta.
Conselhos de ajuste fino: O código gerado serve como um template e pode exigir alguns ajustes, pois o comportamento pode variar entre diferentes aplicações e servidores.
Refinar filtros — como especificar códigos de resposta HTTP ou palavras-chave nas respostas — pode ajudar a reduzir falsos positivos e tornar os resultados mais precisos e menos ruidosos.
Esta parte foca em analisar a sessão do usuário e as relações de URL para identificar violações de acesso. A ferramenta visita sistematicamente todas as URLs associadas a sessões de usuário predefinidas e preenche uma tabela com as respostas HTTP. Essencialmente, cria uma matriz de acesso, que auxilia na identificação de problemas de autenticação e autorização. Em última análise, este processo revela quais usuários podem acessar conteúdos de página específicos.
Mais alguns detalhes:
Observe que possíveis terminadores de sessão (como logoff, sign-out, etc.) e tipos de arquivo específicos (como CSS, imagens, JavaScript, etc.) serão filtrados tanto do 'Spider' quanto da lista de URLs do usuário.
Após clicar em 'RUN', a ferramenta preencherá a matriz de usuário e URL com cores diferentes. Além das cores específicas do usuário, você verá células vermelhas, laranja e amarelas indicando possíveis problemas de acesso.
A tarefa envolve um processo em lote, e vale a pena mencionar quais métodos de requisição HTTP serão usados. A ferramenta fornece três opções diferentes para realizar chamadas HTTP:
O código de status HTTP 403 Forbidden indica que o servidor entende a requisição, mas se recusa a autorizá-la. Essencialmente, significa: ‘Eu reconheço quem você é, mas você não tem permissão para acessar este recurso.’ Este status geralmente aponta para problemas como ‘permissões insuficientes’, ‘autenticação necessária’, ‘restrições de IP’, etc.
A ferramenta aborda o erro comum de acesso proibido empregando várias técnicas, como manipulação de URL e modificação de cabeçalhos de requisição. Essas estratégias visam contornar as restrições de acesso e recuperar o conteúdo desejado.
Vale a pena mencionar dois casos de uso diferentes:
Existem 2 maneiras de enviar requisições HTTP para a ferramenta.
A página que pretendemos acessar pertence a um grupo de usuários privilegiados, e mantemos nossos identificadores de sessão para verificar se o Escalonamento de Privilégios é viável.
Basta clicar no botão 'RUN' para executar a tarefa.
A figura abaixo ilustra que uma URL pode ter um problema de acesso, com a cor ‘Vermelha’ indicando um aviso.
Observe que o número de tentativas depende da URL de destino específica.
O recurso permite a conversão de requisições HTTP em código JavaScript, o que pode ser particularmente útil para ir além de vulnerabilidades XSS e contornar restrições de cabeçalho.
Para usar este recurso, basta clicar com o botão direito em qualquer requisição HTTP e selecionar 'Extensions > Agartha > Copy as JavaScript'.
Ele será salvo automaticamente em sua área de transferência, incluindo alguns comentários adicionais para sua referência. Por exemplo:``` Http request with minimal parameters:
Http request with header fields:
Por favor, note que o código JavaScript será executado na sessão original do usuário, com muitos campos de cabeçalho preenchidos automaticamente pelo navegador. No entanto, em alguns casos, o servidor pode exigir campos de cabeçalho obrigatórios específicos. Por exemplo, certas requisições podem falhar se o 'Content-Type' estiver incorreto. Portanto, talvez seja necessário ajustar o código para garantir compatibilidade com os requisitos do servidor.
<br/><br/>
## Bambdas Code Generator
Bambdas são scripts leves que são executados diretamente no Burp Suite, permitindo que os usuários personalizem e automatizem rapidamente várias tarefas. Eles podem ser usados para definir regras personalizadas de localizar e substituir, adicionar colunas dinâmicas de tabela, aplicar filtros e adaptar a interface para melhor atender a fluxos de trabalho de teste específicos.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
Explicações, Um pouco mais de detalhes:
1. Em relação à GUI de criação de scripts, você pode selecionar configurações gerais aqui. Por exemplo:
- Processar apenas endereços no escopo ou todos os endereços de domínio.
- Ocultar extensões de arquivo específicas ou não.
- Cores para URLs definidas na seção de escopo, localizadas na primeira parte do Grupo 3.
- Cores para URLs que já foram testadas, localizadas na segunda parte do Grupo 3.
- Cores para filtros definidos principalmente no Grupo 2.
- Número de dias passados a exibir.
- Número de dias passados a serem processados pelo script.
2. As opções na segunda seção estão principalmente relacionadas ao processamento de requisições e respostas HTTP:
- Fornece opções para especificar se os critérios de pesquisa devem ser aplicados à URL, à requisição ou à resposta. Selecionar qualquer um destes ativará as opções correspondentes abaixo. Por exemplo, se deseja pesquisar por 'Funções JavaScript Vulneráveis', isso só será possível em respostas HTTP.
- Opção para ocultar métodos HTTP específicos.
- "Pesquisar comentários HTML", "Extensões de arquivo baixáveis" e "Funções JS Vulneráveis" são geralmente pesquisados dentro das respostas HTTP.
- "Palavras-chave valiosas" podem ser aplicadas a URLs, requisições e respostas.
- "Identificadores suspeitos de SQLi, identificadores suspeitos de XSS, identificadores suspeitos de LFI, identificadores suspeitos de SSRF, identificadores suspeitos de Open Redirect e identificadores suspeitos de RCE" podem ser pesquisados em URLs ou requisições. Ao contrário de "Palavras-chave valiosas", que pesquisa texto livre, essas opções detectam parâmetros especificamente.
3. As opções na terceira seção são principalmente para definir o escopo, URLs já testadas e URLs que você deseja ocultar.
- Você pode definir as URLs a serem testadas na seção "Definição do escopo de teste". Se você inserir /, toda a aplicação será considerada no escopo; se adicionar um caminho específico como /users, apenas esse diretório e seu conteúdo estarão no escopo. A opção "Cor para escopo de teste" se aplica a esta seção.
- A seção "URLs já testadas" contém a lista de URLs que já foram testadas. A opção "Cor para itens testados" se aplica aqui.
- A seção "URLs na lista negra" contém URLs que você deseja ocultar do histórico do proxy.
**Exemplos de definições**:
- /
- Caminho raiz — inclui tudo.
Nota: Além das definições de escopo de teste e testado, também pode ser aplicado na seção de URLs na lista negra, onde exclui tudo a menos que um critério correspondente seja definido.
- /portal/users
- Inclui especificamente este caminho e seus subcaminhos, por exemplo:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- O asterisco (*) atua como um placeholder para IDs, UUIDs, etc., e o restante do caminho será incluído.
- /api/v\*/user
- O asterisco (*) atua como um curinga que corresponde a qualquer sequência de caracteres após **v**, até a próxima '/', por exemplo:
- /api/v1/user
- /api/v2/user
- /health-check
- Inclui especificamente este caminho e seus subcaminhos, por exemplo:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. Finalmente, a quarta seção é onde o script gerado ao clicar no botão "Executar" é exibido, e o script está agora pronto para uso. Em geral, este script pode ser adicionado de duas formas diferentes:
- Temporário (baseado em projeto): No menu da aplicação, vá para Proxy > HTTP History > Bambda Mode > Apply & Close.
- Permanente (em toda a aplicação): No menu da aplicação, vá para Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**Por favor, note**: Habilitar todas as opções, especialmente para projetos grandes, pode resultar em uso significativo de recursos do sistema e aumento do tempo de processamento. Se o script que você criou não for concluído em um tempo razoável, pode ser benéfico revisá-lo.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**Precedência de opções**: A maior prioridade é 'Cor para itens testados', seguida por 'Cor para escopo de teste' e, finalmente, 'Cor para parâmetros/palavras-chave'.
A figura acima ilustra o seguinte:
- **Rosa** indica o escopo de teste (a primeira parte do grupo 3).
- **Amarelo** representa o escopo testado (a segunda parte do grupo 3).
- **Ciano** destaca correspondências para os critérios de pesquisa (Grupo 2). Além disso, você pode ver qual critério foi correspondido na seção 'Notas' de cada chamada HTTP.
Se você posteriormente atualizar ou modificar um script que já foi criado, há alguns pontos importantes a serem lembrados:
- Se você definir seu script como Permanente (em toda a aplicação), precisará recarregá-lo seguindo estes passos:
Bambda Script mode > Load
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- Se você usar seu script como Temporário (baseado em projeto), geralmente tem duas opções:
1. Se você quiser que o script modificado esteja ativo a partir desse ponto, nenhuma etapa adicional é necessária — basta clicar em Apply.
2. Se você quiser que o script modificado processe todo o histórico do proxy, você deve reativar o Modo Bambda ou alternar o parâmetro booleano resetScreen dentro do script:
```
// 'true' clears colors/notes
// 'false' executes the script
boolean resetScreen = false; // or true
```
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[Outro link de tutorial](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)