From 9fee7968f97967f228ce0ccc0a454872fba18c4c Mon Sep 17 00:00:00 2001 From: david Date: Fri, 5 Mar 2010 19:45:58 +0000 Subject: [PATCH] Make a slight change to the order in which ping probes are sent to match research. -PY should come after, not before -PU. -PM should be the last one. --- scan_engine.cc | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/scan_engine.cc b/scan_engine.cc index 234c92767..45d832fcc 100644 --- a/scan_engine.cc +++ b/scan_engine.cc @@ -2038,22 +2038,9 @@ static int get_next_target_probe(UltraScanInfo *USI, HostScanStats *hss, return 0; } } - if (USI->ptech.rawsctpscan && hss->next_sctpportpingidx < USI->ports->sctp_ping_count) { - pspec->type = PS_SCTP; - pspec->proto = IPPROTO_SCTP; - pspec->pd.sctp.dport = USI->ports->sctp_ping_ports[hss->next_sctpportpingidx++]; - pspec->pd.sctp.chunktype = SCTP_INIT; - return 0; - } if (USI->ptech.rawicmpscan) { pspec->type = PS_ICMP; pspec->proto = IPPROTO_ICMP; - if ((o.pingtype & PINGTYPE_ICMP_MASK) && !hss->sent_icmp_mask) { - hss->sent_icmp_mask = true; - pspec->pd.icmp.type = ICMP_MASK; - pspec->pd.icmp.code = 0; - return 0; - } if ((o.pingtype & PINGTYPE_ICMP_TS) && !hss->sent_icmp_ts) { hss->sent_icmp_ts = true; pspec->pd.icmp.type = ICMP_TSTAMP; @@ -2067,6 +2054,13 @@ static int get_next_target_probe(UltraScanInfo *USI, HostScanStats *hss, pspec->pd.udp.dport = USI->ports->udp_ping_ports[hss->next_udpportpingidx++]; return 0; } + if (USI->ptech.rawsctpscan && hss->next_sctpportpingidx < USI->ports->sctp_ping_count) { + pspec->type = PS_SCTP; + pspec->proto = IPPROTO_SCTP; + pspec->pd.sctp.dport = USI->ports->sctp_ping_ports[hss->next_sctpportpingidx++]; + pspec->pd.sctp.chunktype = SCTP_INIT; + return 0; + } if (USI->ptech.rawprotoscan) { pspec->type = PS_PROTO; pspec->proto = USI->ports->proto_ping_ports[hss->next_protoportpingidx++]; @@ -2079,6 +2073,16 @@ static int get_next_target_probe(UltraScanInfo *USI, HostScanStats *hss, pspec->pd.tcp.flags = TH_SYN; return 0; } + if (USI->ptech.rawicmpscan) { + pspec->type = PS_ICMP; + pspec->proto = IPPROTO_ICMP; + if ((o.pingtype & PINGTYPE_ICMP_MASK) && !hss->sent_icmp_mask) { + hss->sent_icmp_mask = true; + pspec->pd.icmp.type = ICMP_MASK; + pspec->pd.icmp.code = 0; + return 0; + } + } } assert(0); /* TODO: need to handle other protocols */ return -1;