Skip to content
Snippets Groups Projects
Commit 37727147 authored by Robert David Graham's avatar Robert David Graham
Browse files

top ports

parent 51da058b
No related branches found
No related tags found
No related merge requests found
...@@ -893,7 +893,7 @@ ARRAY(const char *rhs) ...@@ -893,7 +893,7 @@ ARRAY(const char *rhs)
} }
static void static void
config_top_ports(struct RangeList *ports, unsigned n) config_top_ports(struct Masscan *masscan, unsigned n)
{ {
unsigned i; unsigned i;
static const unsigned short top_tcp_ports[] = { static const unsigned short top_tcp_ports[] = {
...@@ -974,10 +974,17 @@ config_top_ports(struct RangeList *ports, unsigned n) ...@@ -974,10 +974,17 @@ config_top_ports(struct RangeList *ports, unsigned n)
52848,52869,54045,54328,55055,55056,55555,55600,56737,56738,57294, 52848,52869,54045,54328,55055,55056,55555,55600,56737,56738,57294,
57797,58080,60020,60443,61532,61900,62078,63331,64623,64680,65000, 57797,58080,60020,60443,61532,61900,62078,63331,64623,64680,65000,
65129,65389}; 65129,65389};
struct RangeList *ports = &masscan->ports;
if (masscan->scan_type.tcp) {
for (i=0; i<n && i<sizeof(top_tcp_ports)/sizeof(top_tcp_ports[0]); i++) for (i=0; i<n && i<sizeof(top_tcp_ports)/sizeof(top_tcp_ports[0]); i++)
rangelist_add_range(ports, top_tcp_ports[i], top_tcp_ports[i]); rangelist_add_range(ports, top_tcp_ports[i], top_tcp_ports[i]);
} }
if (masscan->scan_type.udp) {
for (i=0; i<n && i<sizeof(top_tcp_ports)/sizeof(top_tcp_ports[0]); i++)
rangelist_add_range(ports, top_tcp_ports[i], top_tcp_ports[i]);
}
}
/*************************************************************************** /***************************************************************************
* Called either from the "command-line" parser when it sees a --parm, * Called either from the "command-line" parser when it sees a --parm,
...@@ -1774,7 +1781,7 @@ masscan_set_parameter(struct Masscan *masscan, ...@@ -1774,7 +1781,7 @@ masscan_set_parameter(struct Masscan *masscan,
exit(1); exit(1);
} else if (EQUALS("top-ports", name)) { } else if (EQUALS("top-ports", name)) {
unsigned n = (unsigned)parseInt(value); unsigned n = (unsigned)parseInt(value);
config_top_ports(&masscan->ports, n); config_top_ports(masscan, n);
} else if (EQUALS("traceroute", name)) { } else if (EQUALS("traceroute", name)) {
fprintf(stderr, "nmap(%s): unsupported\n", name); fprintf(stderr, "nmap(%s): unsupported\n", name);
exit(1); exit(1);
...@@ -2168,12 +2175,14 @@ masscan_command_line(struct Masscan *masscan, int argc, char *argv[]) ...@@ -2168,12 +2175,14 @@ masscan_command_line(struct Masscan *masscan, int argc, char *argv[])
fprintf(stderr, "nmap(%s): IP proto scan not yet supported\n", argv[i]); fprintf(stderr, "nmap(%s): IP proto scan not yet supported\n", argv[i]);
exit(1); exit(1);
case 'S': /* TCP SYN scan - THIS IS WHAT WE DO! */ case 'S': /* TCP SYN scan - THIS IS WHAT WE DO! */
masscan->scan_type.tcp = 1;
break; break;
case 'T': /* TCP connect scan */ case 'T': /* TCP connect scan */
fprintf(stderr, "nmap(%s): connect() is too synchronous for cool kids\n", argv[i]); fprintf(stderr, "nmap(%s): connect() is too synchronous for cool kids\n", argv[i]);
fprintf(stderr, "WARNING: doing SYN scan anyway\n"); fprintf(stderr, "WARNING: doing SYN scan anyway\n");
break; break;
case 'U': /* UDP scan */ case 'U': /* UDP scan */
masscan->scan_type.udp = 1;
break; break;
case 'V': case 'V':
fprintf(stderr, "nmap(%s): unlikely this will be supported\n", argv[i]); fprintf(stderr, "nmap(%s): unlikely this will be supported\n", argv[i]);
...@@ -2187,8 +2196,8 @@ masscan_command_line(struct Masscan *masscan, int argc, char *argv[]) ...@@ -2187,8 +2196,8 @@ masscan_command_line(struct Masscan *masscan, int argc, char *argv[])
case 'Y': case 'Y':
break; break;
case 'Z': case 'Z':
fprintf(stderr, "nmap(%s): SCTP scan not yet supported\n", argv[i]); masscan->scan_type.sctp = 1;
exit(1); break;
default: default:
fprintf(stderr, "nmap(%s): unsupported option\n", argv[i]); fprintf(stderr, "nmap(%s): unsupported option\n", argv[i]);
exit(1); exit(1);
......
...@@ -96,6 +96,13 @@ struct Masscan ...@@ -96,6 +96,13 @@ struct Masscan
*/ */
enum Operation op; enum Operation op;
struct {
unsigned tcp:1;
unsigned udp:1;
unsigned sctp:1;
unsigned ping:1;
} scan_type;
/** /**
* One or more network adapters that we'll use for scanning. Each adapter * One or more network adapters that we'll use for scanning. Each adapter
* should have a separate set of IP source addresses, except in the case * should have a separate set of IP source addresses, except in the case
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
11126597197A086B00DC5987 /* out-unicornscan.c in Sources */ = {isa = PBXBuildFile; fileRef = 11126596197A086B00DC5987 /* out-unicornscan.c */; }; 11126597197A086B00DC5987 /* out-unicornscan.c in Sources */ = {isa = PBXBuildFile; fileRef = 11126596197A086B00DC5987 /* out-unicornscan.c */; };
112A871A1F9D8DF200D4D240 /* out-ndjson.c in Sources */ = {isa = PBXBuildFile; fileRef = 112A87191F9D8DF200D4D240 /* out-ndjson.c */; };
11420DD319A2D47A00DB5BFE /* proto-vnc.c in Sources */ = {isa = PBXBuildFile; fileRef = 11420DD219A2D47A00DB5BFE /* proto-vnc.c */; }; 11420DD319A2D47A00DB5BFE /* proto-vnc.c in Sources */ = {isa = PBXBuildFile; fileRef = 11420DD219A2D47A00DB5BFE /* proto-vnc.c */; };
11420DD819A8160500DB5BFE /* proto-ftp.c in Sources */ = {isa = PBXBuildFile; fileRef = 11420DD719A8160500DB5BFE /* proto-ftp.c */; }; 11420DD819A8160500DB5BFE /* proto-ftp.c in Sources */ = {isa = PBXBuildFile; fileRef = 11420DD719A8160500DB5BFE /* proto-ftp.c */; };
11420DDB19A84A9F00DB5BFE /* proto-smtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 11420DDA19A84A9E00DB5BFE /* proto-smtp.c */; }; 11420DDB19A84A9F00DB5BFE /* proto-smtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 11420DDA19A84A9E00DB5BFE /* proto-smtp.c */; };
...@@ -106,6 +107,7 @@ ...@@ -106,6 +107,7 @@
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
11126596197A086B00DC5987 /* out-unicornscan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "out-unicornscan.c"; sourceTree = "<group>"; }; 11126596197A086B00DC5987 /* out-unicornscan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "out-unicornscan.c"; sourceTree = "<group>"; };
112A87191F9D8DF200D4D240 /* out-ndjson.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "out-ndjson.c"; sourceTree = "<group>"; };
113AD3B818208A1900D5E067 /* masscan-status.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "masscan-status.h"; sourceTree = "<group>"; }; 113AD3B818208A1900D5E067 /* masscan-status.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "masscan-status.h"; sourceTree = "<group>"; };
11420DD219A2D47A00DB5BFE /* proto-vnc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "proto-vnc.c"; sourceTree = "<group>"; }; 11420DD219A2D47A00DB5BFE /* proto-vnc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "proto-vnc.c"; sourceTree = "<group>"; };
11420DD519A2D48C00DB5BFE /* proto-vnc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "proto-vnc.h"; sourceTree = "<group>"; }; 11420DD519A2D48C00DB5BFE /* proto-vnc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "proto-vnc.h"; sourceTree = "<group>"; };
...@@ -357,6 +359,7 @@ ...@@ -357,6 +359,7 @@
11B360C91F9016AD0020F3A3 /* out */ = { 11B360C91F9016AD0020F3A3 /* out */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
112A87191F9D8DF200D4D240 /* out-ndjson.c */,
11623F69191E0DB00075EEE6 /* out-certs.c */, 11623F69191E0DB00075EEE6 /* out-certs.c */,
11A868081816F3A7008E00B8 /* in-binary.c */, 11A868081816F3A7008E00B8 /* in-binary.c */,
11A868091816F3A7008E00B8 /* in-binary.h */, 11A868091816F3A7008E00B8 /* in-binary.h */,
...@@ -627,6 +630,7 @@ ...@@ -627,6 +630,7 @@
11BA29691890560C0064A759 /* script-ntp-monlist.c in Sources */, 11BA29691890560C0064A759 /* script-ntp-monlist.c in Sources */,
11BA296B189060220064A759 /* proto-ntp.c in Sources */, 11BA296B189060220064A759 /* proto-ntp.c in Sources */,
11B05EA618B9649F009C935E /* crypto-blackrock2.c in Sources */, 11B05EA618B9649F009C935E /* crypto-blackrock2.c in Sources */,
112A871A1F9D8DF200D4D240 /* out-ndjson.c in Sources */,
11B05EA718B9649F009C935E /* main-readrange.c in Sources */, 11B05EA718B9649F009C935E /* main-readrange.c in Sources */,
11A50CAE191C128F006D5802 /* out-json.c in Sources */, 11A50CAE191C128F006D5802 /* out-json.c in Sources */,
11623F6A191E0DB00075EEE6 /* out-certs.c in Sources */, 11623F6A191E0DB00075EEE6 /* out-certs.c in Sources */,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment