9 votos

¿Cómo puedo ver la caché de DNS en Big Sur?

Me gustaría poder ver la caché DNS en Big Sur. Intenté usando:

$ sudo dscacheutil -cachedump 

No se pueden obtener detalles del nodo de caché

Otro método que intenté fue enviar:

sudo killall -INFO mDNSResponder

mientras veía el registro con:

log stream --predicate 'process == "mDNSResponder"' --info

Según entiendo, esto solía hacer que mDNSResponder expulsara la información de caché. Sin embargo, lo que aparece en el registro es:

 Enviar SIGINFO al demonio mDNSResponder está obsoleto. Para desencadenar el volcado de estado, por favor use 'dns-sd -O', ingrese 'dns-sd -h' para más información

Si emito dns-sd -O, obtengo el siguiente error:

$ sudo dns-sd -O                                                                                                                                                                                                                                                                                  

El servicio XPC devuelve un error, descripción: El volcado de estado solo está habilitado en compilaciones internas

¿Cómo puedo ver la caché DNS?

0voto

2015 Puntos 118

Lo mejor que puedes hacer aquí es deshabilitar SIP, volcar la memoria del proceso mDNSResponder e intentar buscar cadenas de dns a través del volcado de memoria.

  1. Deshabilita SIP y arranca el sistema desprotegido.
  2. sudo lldb --attach-pid $(pgrep -f '^/usr/sbin/mDNSResponder$')
  3. process save-core
  4. ctrl-d para salir
  5. ejecuta el siguiente script en perl, pasándole el nombre de archivo 'core' para extraer el contenido apropiado (Algunas de las salidas serán palabras sin sentido, pero las entradas de dns deberían estar en la lista.)

    !/usr/bin/perl

    use strict; use warnings;

    Verifica si se proporcionó un archivo como argumento

    my $filename = $ARGV[0]; if (not defined $filename) { die "Uso: $0 nombre_de_archivo\n"; }

    Lee todo el archivo en una cadena.

    open(my $fh, '<:raw', $filename) or die "No se pudo abrir el archivo '$filename' $!"; my $data = do { local $/; <$fh> }; close($fh);

    Filtra caracteres no imprimibles, manteniendo los imprimibles incluyendo espacios y saltos de línea.

    $data =~ s/[^[:print:]\n\r\t]//g;

    Usa un hash para almacenar las coincidencias y asegurar la unicidad.

    my %matches;

    Ahora, filtra cadenas tipo dominio, evitando aquellas que terminen con .framework o .dylib y comiencen con com.apple.

    También evita puntos consecutivos.

    while ($data =~ m/(?

`

Si eso no es práctico, sugiero buscar soluciones que capturen las solicitudes de dns a medida que ocurren en la red. Zeek es una solución que sé que funciona bien. Al ejecutarlo, debería crear un archivo dns.log con las solicitudes. Hay otras soluciones de EDR pagas que pueden relacionar las solicitudes de dns con el proceso de origen.

`

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X