1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-09 22:21:29 +00:00

Closes #2541. Consolidate nmap-payloads and nmap-service-probes; use port scan responses in version scan.

This commit is contained in:
dmiller
2022-10-21 21:15:48 +00:00
parent 99c9e776c8
commit 2fcfac9329
12 changed files with 362 additions and 966 deletions

View File

@@ -1292,8 +1292,8 @@ UltraProbe *sendIPScanProbe(UltraScanInfo *USI, HostScanStats *hss,
}
}
} else if (pspec->type == PS_UDP) {
const char *payload;
size_t payload_length;
const u8 *payload;
int payload_length;
u8 numpayloads = udp_payload_count(pspec->pd.udp.dport);
// Even if no payloads, we can send with null payload
numpayloads = MAX(numpayloads, 1);
@@ -2166,6 +2166,14 @@ bool get_pcap_result(UltraScanInfo *USI, struct timeval *stime) {
newstate = PORT_OPEN;
current_reason = ER_UDPRESPONSE;
goodone = true;
/* Store the data response in case service_scan wants it later */
if (datalen > UDP_HDR_LEN) {
struct EarlySvcResponse *esr = (EarlySvcResponse *) safe_zalloc(sizeof(struct EarlySvcResponse) + datalen - UDP_HDR_LEN);
esr->pspec = *(probe->pspec());
esr->len = datalen - UDP_HDR_LEN;
memcpy(esr->data, (u8 *)data + UDP_HDR_LEN, esr->len);
hss->target->earlySvcResponses.push_back(esr);
}
}
} else continue; /* Unexpected protocol */
} while (!goodone && !timedout);