El motivo user-set
se muestra si el motivo se establece en ER_USER
. (Esto se almacena en una enumeración en portreasons.cc del repositorio de github de nmap.
Esta asignación se establece en portreasons.cc
:
reason_map_type::reason_map_type(){
reason_map[ER_RESETPEER] = reason_string("reset","resets");
reason_map[ER_UNKNOWN] = reason_string("unknown-response","unknown-responses");
reason_map[ER_USER] = reason_string("user-set","user-sets");
Solo hay un punto en el proyecto NMAP cuando se establece el motivo ER_USER, y está en este fragmento de código:
...
if (pingtype == PINGTYPE_NONE && !arpping_done)
hs->hostbatch[i]->reason.reason_id = ER_USER;
else
hs->hostbatch[i]->reason.reason_id = ER_LOCALHOST;
...
Su indicador Pn
indica que no se debe usar ningún ping, por lo que el indicador pingtype == PINGTYPE_NONE
anterior se establece con este indicador, que valida la primera parte del condicional.
Ahora, solo queda !arpping_done
, que parece ser " false
" en su resultado, ya que la razón por la que se imprimió ER_USER al final.
La bandera se inicializa como false
Y el único código que lo establece en verdadero es:
/* First I'll do the ARP ping if all of the machines in the group are
directly connected over ethernet. I may need the MAC addresses
later anyway. */
if (hs->hostbatch[0]->ifType() == devt_ethernet &&
hs->hostbatch[0]->af() == AF_INET &&
hs->hostbatch[0]->directlyConnected() &&
o.sendpref != PACKET_SEND_IP_STRONG &&
(pingtype == PINGTYPE_ARP || o.implicitARPPing)) {
arpping(hs->hostbatch, hs->current_batch_sz);
arpping_done = true;
}
/* No other interface types are supported by ND ping except devt_ethernet
at the moment. */
if (hs->hostbatch[0]->ifType() == devt_ethernet &&
hs->hostbatch[0]->af() == AF_INET6 &&
hs->hostbatch[0]->directlyConnected() &&
o.sendpref != PACKET_SEND_IP_STRONG &&
(pingtype == PINGTYPE_ARP || o.implicitARPPing)) {
arpping(hs->hostbatch, hs->current_batch_sz);
arpping_done = true;
}
Lo que puede parecer confuso, pero se explica en el comentario:
Haré el ping ARP si todas las máquinas del grupo están
directamente conectado a través de Ethernet.
Source
Por lo tanto, ARP Scanning solo se realizará si se dirige a una máquina en la red local, lo que supongo que no es el caso.
También de los documentos, para explicar el código anterior un poco mejor que yo:
Para las máquinas en una red Ethernet local, el escaneo ARP aún se realizará (a menos que se especifique --disable-arp-ping o --send-ip) porque Nmap necesita direcciones MAC para escanear más los hosts de destino. En versiones anteriores de Nmap, -Pn era -P0 y -PN.
En cuanto a por qué no se muestran más resultados:
-Sn (Sin escaneo de puerto)
Esta opción le dice a Nmap que no realice una exploración de puertos después del descubrimiento del host, y que solo imprima los hosts disponibles que respondieron al host
sondas de descubrimiento Esto se conoce a menudo como un "escaneo de ping", pero puede
También solicite que se ejecuten los scripts traceroute y NSE del host. Esto es por
por defecto, un paso más intrusivo que el escaneo de la lista, y a menudo puede ser
Utilizado para los mismos fines. Permite el reconocimiento de luz de un objetivo.
Red sin atraer mucha atención. Sabiendo cuantos hosts hay
Es más valioso para los atacantes que la lista proporcionada por el análisis de lista.
de cada IP y nombre de host.
Por lo tanto, una breve conclusión:
Pn
hace que obtenga un verdadero pingtype == PINGTYPE_NONE
, la razón por la que ARP Ping se interpreta como false
es probable que el dispositivo de destino no esté en la LAN de yoru o que no responda a las consultas de ARP. sn
le dice a nmap que NO escanee puertos.