mirror of
https://github.com/nmap/nmap.git
synced 2026-08-04 06:40:48 +00:00
post 3.93 work
This commit is contained in:
parent
d187c68017
commit
2d8fd95bff
3 changed files with 29 additions and 15 deletions
|
|
@ -1,5 +1,11 @@
|
|||
# Nmap Changelog ($Id$)
|
||||
|
||||
o Version detection softmatches (when Nmap determines the service
|
||||
protocol such as smtp but isn't able to determine the app name such as
|
||||
Postfix) can now parse out the normal match line fields such as
|
||||
hostname, device type, and extra info. For example, we may not know
|
||||
what vendor created an sshd, but we can still parse out the protocol
|
||||
number. This was a patch from Doug Hoyte (doug(a)hcsw.org).
|
||||
|
||||
o Fixed a possible aliasing problem in tcpip.cc by applying a patch sent in by
|
||||
Gwenole Beauchesne (gbeauchesne(a)mandriva.com). This problem
|
||||
|
|
|
|||
|
|
@ -452,6 +452,8 @@ match ftp-proxy m|^220 ([\w-_.]+) \(NetCache\) .*\r\n| p/NetApp NetCache ftp pro
|
|||
#match ftp m|^421 Service not available \(The FTP server is not responding\.\)\n$| v/unknown FTP server//service not responding/
|
||||
match vdr m|^220 (\S+) SVDRP VideoDiskRecorder (\d[^\;]+);| p/VDR/ h/$1/ v/$2/ d/media device/
|
||||
|
||||
softmatch ftp m/^220 ([-.\w]+) [-.\w ]+ftp.*\r\n$/i h/$1/
|
||||
softmatch ftp m/^220-([-.\w]+) [-.\w ]+ftp.*\r\n220/i h/$1/
|
||||
softmatch ftp m/^220 [-.\w ]+ftp.*\r\n$/i
|
||||
softmatch ftp m/^220-[-.\w ]+ftp.*\r\n220/i
|
||||
softmatch ftp m/^220[- ].*ftp server.*\r\n/i
|
||||
|
|
@ -573,6 +575,7 @@ match imap m|^\* OK IMAP4rev1 server ready at \d\d/\d\d/\d\d \d\d:\d\d:\d\d \r\n
|
|||
match imap m|^\* OK IMAP4 Ready ([\w-_.]+) \w+\r\n| p/Perdition imapd/ h/$1/
|
||||
match imap m|^\* OK ([\w-_.]+) IMAP server ready\r\n| p/hMailServer imapd/ h/$1/ o/Windows/
|
||||
|
||||
softmatch imap m/^\* OK ([-.\w]+) [-.\w,:+ ]+imap[-.\w,:+ ]+\r\n$/i h/$1/
|
||||
softmatch imap m/^\* OK [-.\w,:+ ]+imap[-.\w,:+ ]+\r\n$/i
|
||||
|
||||
match imap-proxy m|^\* OK IMAP4 proxy ready\r\n| p/imap proxy/
|
||||
|
|
@ -1351,7 +1354,7 @@ match ssh m|^SSH-2\.0-RomCliSecure_([\d.]+)\r\n| p/Adtran Netvanta RomCliSecure
|
|||
match ssh m|^SSH-2\.0-([\d.]+) sshlib: GlobalScape\r\n| p/GlobalScape CuteFTP sshd/ v/$1/ o/Windows/
|
||||
match ssh m|^SSH-2\.0-APSSH_([\w.]+)\n| p/APSSHd/ v/$1/ i/protocol 2.0/
|
||||
|
||||
softmatch ssh m/^SSH-([.\d]+)-/
|
||||
softmatch ssh m/^SSH-([.\d]+)-/ i/protocol $1/
|
||||
|
||||
match soldat m|^Soldat Admin Connection Established\.\.\.\r\nAdmin connected\.\r\n| p/Soldat multiplayer-game server/
|
||||
match solproxy m|^The solproxy is used by [\d.]+\n\rThe client is closed!\n\r| p/Dell Serial Over LAN proxy/
|
||||
|
|
|
|||
|
|
@ -395,9 +395,6 @@ void ServiceProbeMatch::InitMatch(const char *matchtext, int lineno) {
|
|||
while(isspace(*matchtext)) matchtext++;
|
||||
if (*matchtext == '\0' || *matchtext == '\r' || *matchtext == '\n') break;
|
||||
|
||||
if (isSoft)
|
||||
fatal("ServiceProbeMatch::InitMatch: illegal trailing garbage on line %d of nmap-service-probes - note that softmatch lines cannot have a version specifier.", lineno);
|
||||
|
||||
modechar = *(matchtext++);
|
||||
if (*matchtext == 0 || *matchtext == '\r' || *matchtext == '\n')
|
||||
fatal("ServiceProbeMatch::InitMatch: parse error on line %d of nmap-service-probes", lineno);
|
||||
|
|
@ -2143,6 +2140,22 @@ void servicescan_read_handler(nsock_pool nsp, nsock_event nse, void *mydata) {
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
// This is used in processResults to determine whether a FP
|
||||
// should be printed based on type of match, version intensity, etc.
|
||||
|
||||
int shouldWePrintFingerprint(ServiceNFO *svc) {
|
||||
// Never print FP if hardmatched
|
||||
if (svc->probe_state == PROBESTATE_FINISHED_HARDMATCHED)
|
||||
return 0;
|
||||
|
||||
// If we were called with a version_intensity less than
|
||||
// the default, don't bother printing.
|
||||
if (o.version_intensity < 7) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// This is passed a completed ServiceGroup which contains the scanning results for every service.
|
||||
// The function iterates through each finished service and adds the results to Target structure for
|
||||
// Nmap to output later.
|
||||
|
|
@ -2151,7 +2164,7 @@ static void processResults(ServiceGroup *SG) {
|
|||
list<ServiceNFO *>::iterator svc;
|
||||
|
||||
for(svc = SG->services_finished.begin(); svc != SG->services_finished.end(); svc++) {
|
||||
if ((*svc)->probe_state == PROBESTATE_FINISHED_HARDMATCHED) {
|
||||
if ((*svc)->probe_state != PROBESTATE_FINISHED_NOMATCH) {
|
||||
(*svc)->port->setServiceProbeResults((*svc)->probe_state,
|
||||
(*svc)->probe_matched,
|
||||
(*svc)->tunnel,
|
||||
|
|
@ -2161,16 +2174,8 @@ list<ServiceNFO *>::iterator svc;
|
|||
*(*svc)->hostname_matched? (*svc)->hostname_matched : NULL,
|
||||
*(*svc)->ostype_matched? (*svc)->ostype_matched : NULL,
|
||||
*(*svc)->devicetype_matched? (*svc)->devicetype_matched : NULL,
|
||||
NULL);
|
||||
|
||||
} else if ((*svc)->probe_state == PROBESTATE_FINISHED_SOFTMATCHED) {
|
||||
(*svc)->port->setServiceProbeResults((*svc)->probe_state,
|
||||
(*svc)->probe_matched,
|
||||
(*svc)->tunnel,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
(*svc)->getServiceFingerprint(NULL));
|
||||
|
||||
} else if ((*svc)->probe_state == PROBESTATE_FINISHED_NOMATCH) {
|
||||
shouldWePrintFingerprint(*svc) ? (*svc)->getServiceFingerprint(NULL) : NULL);
|
||||
} else {
|
||||
if ((*svc)->getServiceFingerprint(NULL))
|
||||
(*svc)->port->setServiceProbeResults((*svc)->probe_state, NULL,
|
||||
(*svc)->tunnel, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue