Piattaforma di penetration testing all-in-one con proxy MITM, web fuzzer, gestore di connessioni inverse e sistema di plugin per test di sicurezza ed exploitation automatizzati.
Leggi il whitepaper • Documentazione ufficiale • Segnala problemi • Vai al sito ufficiale • Unisciti alla community • Architettura del progetto
:book:Selezione lingua: English • 中文
La convergenza della sicurezza è una riforma delle operazioni di sicurezza e della gestione della sicurezza per le imprese nella nuova normalità, ed è anche una priorità assoluta per le imprese in questo contesto.
Basandosi sul concetto di convergenza della sicurezza, il team di Yaklang.io ha sviluppato Yaklang, un linguaggio verticale nel campo della sicurezza. Per quei prodotti/strumenti che non possono essere integrati in modo nativo nella piattaforma Yak, Yaklang può essere utilizzato per riscrivere le loro "alternative di alta qualità". Per i prodotti con un ecosistema completo e un alto riconoscimento, Yaklang può essere compilato e integrato direttamente, apportando le necessarie modifiche al codice sorgente per adattarsi meglio al linguaggio Yaklang. Per i professionisti della sicurezza che non vogliono scrivere codice, Yakit fornisce GUI adeguate per tutte le capacità di Yaklang, e con gli aggiornamenti delle versioni, la GUI diventerà più matura.
Per rendere le capacità di sicurezza di Yaklang più vicine all'uso pratico, abbiamo scritto un server gRPC per Yak e utilizzato questo server per costruire un client: Yakit.
CDSL è definito come CyberSecurity Domain Specific Language, un linguaggio di programmazione specifico per il dominio della cybersecurity; abbiamo scritto una macchina virtuale a stack per gestire lo stato runtime di questo linguaggio Turing-completo. Speriamo di realizzare la convergenza delle capacità di sicurezza e l'unificazione della piattaforma sottostante attraverso il mezzo "CDSL".
Per rendere il CDSL sviluppato autonomamente nel campo della sicurezza più vicino agli scenari di utilizzo reali, abbiamo scritto un server gRPC per Yaklang e costruito il client Yakit basato su di esso. In pratica, si controllano le capacità del motore attraverso la GUI di Yakit. Il server gRPC di Yakit rende la distribuzione più comoda e veloce, indipendente dalla piattaforma, con la possibilità di scegliere la distribuzione remota o l'avvio locale direttamente sull'host.
Panoramica delle capacità di sicurezza:
La console MITM può sostituire al 100% BurpSuite per eseguire tutte le operazioni (scaricare e installare certificati, intercettare richieste e risposte, modificare i pacchetti intercettati, ecc.). Inoltre, fornisce un flusso di lavoro completo e fluido: intercettazione => History => Repeater/Intruder. Si intercettano i dati, si visualizzano i dati storici in History, si selezionano i pacchetti da "scavare" e si inviano a Web Fuzzer per operazioni di Repeater/Intruder. Oltre a questi scenari tipici, MITM offre funzionalità più flessibili come scansione passiva tramite plugin, hot-reload, sostituzione di pacchetti, marcatura, ecc.
Il principio del modulo MITM di Yakit è avviare un proxy HTTP che inoltra automaticamente il traffico. Quando l'utente avvia l'intercettazione manuale, l'inoltro automatico si ferma, le richieste vengono bloccate e vengono estratte, sottoposte a decompressione Gzip, gestione chunk, decodifica, ecc., rendendo le richieste leggibili dall'uomo e visualizzate nell'interfaccia utente. L'utente può visualizzare, modificare o riprodurre le richieste. Durante la riproduzione, i pacchetti HTTP costruiti dall'utente vengono riparati per garantirne la validità. Il motore Yak ha implementato manualmente una libreria HTTP, quindi gli utenti possono personalizzare pacchetti di richiesta e risposta malformati per sfruttare vulnerabilità in scenari speciali.
Il modulo Web Fuzzer consente all'utente di inviare richieste HTTP personalizzate in formato raw. Per rendere l'uso semplice e intuitivo, permettendo all'utente di preoccuparsi solo dei dati, il backend di Yakit fa molto lavoro. Alcune informazioni necessarie per la trasmissione e l'analisi dei dati nel raw HTTP vengono riparate e completate dal backend di Yakit, ad esempio la correzione di CRLF, il completamento di Content-Type, la trasmissione in chunk, il completamento di boundary, la correzione di Content-Length, ecc.