
Un'estensione per Burp Suite per identificare vulnerabilità di injection (LFI, RCE, SQLi), problemi di autenticazione/autorizzazione e violazioni di accesso HTTP 403. Supporta la generazione dinamica di payload, inclusa la sintassi BCheck, e può generare automaticamente script Bambdas. Inoltre, offre "Copia come JavaScript" per convertire richieste HTTP per test XSS avanzati.
Agartha è specializzata nella generazione avanzata di payload e nella valutazione del controllo degli accessi. Identifica abilmente vulnerabilità legate ad attacchi di injection e problemi di autenticazione/autorizzazione. Il generatore dinamico di payload crea ampie wordlist per vari vettori di injection, tra cui SQL Injection, Local File Inclusion (LFI) e Remote Code Execution (RCE). Inoltre, l'estensione costruisce una matrice di accesso utente completa, rivelando potenziali violazioni di accesso e percorsi di escalation dei privilegi. Aiuta anche nell'esecuzione di bypass HTTP 403, evidenziando configurazioni errate di autenticazione. Inoltre, può convertire richieste HTTP in codice JavaScript per aiutare a scoprire vulnerabilità XSS più facilmente.
In sintesi:
Ecco un piccolo tutorial su come usarlo.
Dovresti scaricare il file 'Jython' e configurare prima il tuo ambiente:
Puoi installare Agartha tramite lo store ufficiale:
Oppure per installazione manuale:
Dopo di che, vedrai la scheda 'Agartha' nella finestra principale e sarà anche registrata nel menu contestuale (tasto destro), sotto:
'Auth Matrix'
'403 Bypass'
'Copy as JavaScript'
Supporta sia le sintassi di file Unix che Windows, consentendo la generazione dinamica di wordlist per qualsiasi percorso desiderato. Inoltre, può tentare di bypassare le implementazioni di Web Application Firewall (WAF), con vari encoding e altre tecniche.

Genera wordlist dinamiche per l'esecuzione di comandi basate sul comando fornito. Combina vari separatori e terminatori sia per ambienti Unix che Windows.

Genera payload per vari tipi di attacchi SQL injection, tra cui Stacked Queries, Boolean-Based, Union-Based e Time-Based. Non richiede alcun input utente; selezioni semplicemente i tipi di attacco SQL desiderati e i database, e genera una wordlist con diverse combinazioni.

BCheck è il framework di Burp Suite per creare e importare controlli di scansione personalizzati. Questi controlli definiti dall'utente vengono eseguiti insieme alle routine integrate di Burp Scanner, permettendoti di personalizzare le scansioni per vulnerabilità specifiche o esigenze di test. Utilizzando i BCheck, puoi estendere le capacità di scansione di Burp e ottimizzare il tuo flusso di lavoro per valutazioni più mirate ed efficienti. Ora puoi generare automaticamente il codice:
Tieni presente che all'aumentare delle dimensioni dello script Bambdas, potrebbero verificarsi problemi di prestazioni, specialmente durante la scansione. Script più grandi possono rallentare la reattività, aumentare l'utilizzo della memoria e causare ritardi nell'esecuzione delle attività.
Dopo aver cliccato il pulsante "Generate payloads for BCheck", il codice BCheck verrà automaticamente copiato negli appunti.
Successivamente, vai su 'Extensions > BChecks > New > Blank' dal menu di Burp Suite e incolla semplicemente il codice generato.
I tuoi payload sono ora integrati in un BCheck. Puoi inviare o scannerizzare manualmente le richieste HTTP, oppure avviare una scansione Burp che incorpora i controlli BCheck per testare automaticamente i payload di injection generati dallo strumento.
Consigli per la messa a punto: Il codice generato funge da modello e potrebbe richiedere alcuni aggiustamenti, poiché il comportamento può variare tra diverse applicazioni e server.
Affinare i filtri (ad esempio specificando i codici di risposta HTTP o parole chiave nelle risposte) può aiutare a ridurre i falsi positivi e rendere i risultati più precisi e meno rumorosi.
Questa parte si concentra sull'analisi delle relazioni tra sessione utente e URL per identificare violazioni di accesso. Lo strumento visita sistematicamente tutti gli URL associati a sessioni utente predefinite e riempie una tabella con le risposte HTTP. Essenzialmente, crea una matrice di accesso, che aiuta a identificare problemi di autenticazione e autorizzazione. Alla fine, questo processo rivela quali utenti possono accedere a contenuti specifici di pagine.
Un po' più di dettagli:
Tieni presente che i potenziali terminatori di sessione (come logoff, sign-out, ecc.) e tipi di file specifici (come CSS, immagini, JavaScript, ecc.) verranno filtrati sia da 'Spider' che dall'elenco URL dell'utente.
Dopo aver cliccato 'RUN', lo strumento popolerà la matrice utente e URL con colori diversi. Oltre ai colori specifici dell'utente, vedrai celle rosse, arancioni e gialle che indicano possibili problemi di accesso.
L'attività in questione comporta un processo in blocco, ed è opportuno menzionare quali metodi di richiesta HTTP verranno utilizzati. Lo strumento fornisce tre diverse opzioni per eseguire chiamate HTTP:
Il codice di stato HTTP 403 Forbidden indica che il server comprende la richiesta ma rifiuta di autorizzarla. In sostanza, significa 'Riconosco chi sei, ma non hai il permesso di accedere a questa risorsa'. Questo stato spesso indica problemi come 'permessi insufficienti', 'autenticazione richiesta', 'restrizioni IP', ecc.
Lo strumento affronta il comune errore di accesso negato impiegando varie tecniche, come la manipolazione degli URL e la modifica degli header delle richieste. Queste strategie mirano a bypassare le restrizioni di accesso e recuperare il contenuto desiderato.
Vale la pena menzionare due diversi casi d'uso:
Ci sono 2 modi per inviare richieste HTTP allo strumento.
La pagina a cui miriamo ad accedere appartiene a un gruppo di utenti privilegiati e manteniamo i nostri identificatori di sessione per verificare se l'escalation dei privilegi è fattibile.
Basta cliccare il pulsante 'RUN' per eseguire l'attività.
La figura seguente illustra che un URL può avere un problema di accesso, con il colore ‘Rosso’ che indica un avviso.
Tieni presente che il numero di tentativi dipende dall'URL target specifico.
Questa funzionalità consente la conversione di richieste HTTP in codice JavaScript, che può essere particolarmente utile per andare oltre le vulnerabilità XSS e bypassare le restrizioni degli header.
Per utilizzare questa funzionalità, basta fare clic destro su qualsiasi richiesta HTTP e selezionare 'Extensions > Agartha > Copy as JavaScript'.
Verrà automaticamente salvato negli appunti, inclusi alcuni commenti aggiuntivi per tuo riferimento. Per esempio:``` Http request with minimal parameters:
Http request with header fields:
Si prega di notare che il codice JavaScript verrà eseguito all'interno della sessione utente originale, con molti campi dell'intestazione popolati automaticamente dal browser. Tuttavia, in alcuni casi, il server potrebbe richiedere specifici campi di intestazione obbligatori. Ad esempio, alcune richieste potrebbero fallire se 'Content-Type' non è corretto. Pertanto, potrebbe essere necessario modificare il codice per garantire la compatibilità con i requisiti del server.
<br/><br/>
## Generatore di Codice Bambdas
I Bambdas sono script leggeri che vengono eseguiti direttamente all'interno di Burp Suite, consentendo agli utenti di personalizzare e automatizzare rapidamente varie attività. Possono essere utilizzati per definire regole personalizzate di match-and-replace, aggiungere colonne di tabella dinamiche, applicare filtri e adattare l'interfaccia per soddisfare meglio specifici flussi di lavoro di test.
<img width="1000" alt="Generatore di Codice Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
Spiegazioni, un po' più di dettagli:
1. Riguardo all'interfaccia grafica di creazione degli script, qui puoi selezionare le impostazioni generali. Per esempio:
- Elaborazione solo degli indirizzi in-scope o di tutti gli indirizzi di dominio.
- Nascondere specifiche estensioni di file o meno.
- Colori per gli URL definiti nella sezione di scope, situati nella prima parte del Gruppo 3.
- Colori per gli URL già testati, situati nella seconda parte del Gruppo 3.
- Colori per i filtri definiti principalmente nel Gruppo 2.
- Numero di giorni passati da visualizzare.
- Numero di giorni passati da elaborare tramite script.
2. Le opzioni nella seconda sezione riguardano principalmente l'elaborazione delle richieste e risposte HTTP:
- Fornisce opzioni per specificare se i criteri di ricerca devono essere applicati all'URL, alla richiesta o alla risposta. Selezionare una di queste attiverà le opzioni corrispondenti sottostanti. Ad esempio, se desideri cercare 'Funzioni JavaScript Vulnerabili', ciò sarà possibile solo nelle risposte HTTP.
- Opzione per nascondere specifici metodi HTTP.
- "Cerca commenti HTML", "Estensioni di file scaricabili" e "Funzioni JS vulnerabili" vengono generalmente cercati nelle risposte HTTP.
- Le ricerche "Parole chiave di valore" possono essere applicate a URL, richieste e risposte.
- "Identificatori sospetti SQLi, identificatori sospetti XSS, identificatori sospetti LFI, identificatori sospetti SSRF, identificatori sospetti Open Redirect e identificatori sospetti RCE" possono essere cercati negli URL o nelle richieste. A differenza di "Parole chiave di valore", che cerca testo libero, queste opzioni rilevano parametri specifici.
3. Le opzioni nella terza sezione servono principalmente a definire l'ambito (scope), gli URL già testati e gli URL che si desidera nascondere.
- Puoi definire gli URL da testare nella sezione "Definizione dell'ambito di test". Se inserisci /, l'intera applicazione sarà considerata in scope; se aggiungi un percorso specifico come /users, solo quella directory e i suoi contenuti saranno in scope. L'opzione "Colore per l'ambito di test" si applica a questa sezione.
- La sezione "URL già testati" contiene l'elenco degli URL che sono già stati testati. L'opzione "Colore per elementi testati" si applica qui.
- La sezione "URL in lista nera" contiene gli URL che desideri nascondere dalla cronologia del proxy.
**Esempi di definizioni**:
- /
- Percorso radice — include tutto.
Nota: Oltre alle definizioni di ambito di test e testato, può essere applicato anche nella sezione URL in lista nera, dove esclude tutto a meno che non venga definito un criterio corrispondente.
- /portal/users
- Include specificamente questo percorso e i suoi sottopercorsi, ad esempio:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- L'asterisco (*) funge da segnaposto per ID, UUID, ecc., e il resto del percorso verrà incluso.
- /api/v\*/user
- L'asterisco (*) funge da carattere jolly che corrisponde a qualsiasi sequenza di caratteri dopo **v**, fino al successivo '/', ad esempio:
- /api/v1/user
- /api/v2/user
- /health-check
- Include specificamente questo percorso e i suoi sottopercorsi, ad esempio:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. Infine, la quarta sezione è dove viene visualizzato lo script generato cliccando sul pulsante "Esegui", e lo script è ora pronto per l'uso. In generale, questo script può essere aggiunto in due modi diversi:
- Temporaneo (basato sul progetto): Dal menu dell'applicazione, vai su Proxy > HTTP History > Bambda Mode > Apply & Close.
- Permanente (a livello di applicazione): Dal menu dell'applicazione, vai su Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**Si prega di notare**: Abilitare tutte le opzioni, specialmente per progetti grandi, può comportare un uso significativo delle risorse di sistema e un aumento del tempo di elaborazione. Se lo script che hai creato non viene completato in un tempo ragionevole, potrebbe essere utile rivederlo.
<img width="1000" alt="Generatore di Codice Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**Precedenza delle opzioni**: La priorità più alta è 'Colore per elementi testati', seguita da 'Colore per l'ambito di test' e infine 'Colore per parametri/parole chiave'.
La figura sopra illustra quanto segue:
- **Rosa** indica l'ambito di test (la prima parte del gruppo 3).
- **Giallo** rappresenta l'ambito testato (la seconda parte del gruppo 3).
- **Ciano** evidenzia le corrispondenze per i criteri di ricerca (Gruppo 2). Inoltre, puoi vedere quale criterio è stato soddisfatto nella sezione 'Note' di ogni chiamata HTTP.
Se in seguito aggiorni o modifichi uno script già creato, ci sono alcuni punti importanti da tenere a mente:
- Se hai impostato il tuo script come Permanente (a livello di applicazione), dovrai ricaricarlo seguendo questi passaggi:
Bambda Script mode > Load
<img width="800" alt="Generatore di Codice Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- Se utilizzi lo script come Temporaneo (basato sul progetto), hai generalmente due opzioni:
1. Se desideri che lo script modificato sia attivo da quel momento in poi, non sono necessari passaggi aggiuntivi: basta fare clic su Applica.
2. Se desideri che lo script modificato elabori l'intera cronologia del proxy, devi riattivare la Modalità Bambda, oppure alternare il parametro booleano resetScreen all'interno dello script:
```
// 'true' cancella colori/note
// 'false' esegue lo script
boolean resetScreen = false; // o true
```
<img width="800" alt="Generatore di Codice Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[Un altro link tutorial](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)