1NCRACK(1) Ncrack Reference Guide NCRACK(1)
2
3
4
6 ncrack - Network authentication cracking tool
7
9 ncrack [Options] {target specification}
10
12 Ncrack is an open source tool for network authentication cracking. It
13 was designed for high-speed parallel cracking using a dynamic engine
14 that can adapt to different network situations. Ncrack can also be
15 extensively fine-tuned for special cases, though the default parameters
16 are generic enough to cover almost every situation. It is built on a
17 modular architecture that allows for easy extension to support
18 additional protocols. Ncrack is designed for companies and security
19 professionals to audit large networks for default or weak passwords in
20 a rapid and reliable way. It can also be used to conduct fairly
21 sophisticated and intensive brute force attacks against individual
22 services.
23
24 Warning
25 Ncrack is a project started in the Summer of 2009. While it is
26 already useful for some purposes, it is still unfinished, beta
27 quality software. You can help out by testing it and reporting any
28 problems as described in the section called “BUGS”.
29
30 The output from Ncrack is a list of found credentials, if any, for each
31 of the targets specified. Ncrack can also print an interactive status
32 report of progress so far and possibly additional debugging information
33 that can help track problems, if the user selected that option.
34
35 A typical Ncrack scan is shown in Example 1. The only Ncrack arguments
36 used in this example are the two target IP addresses along with the the
37 corresponding ports for each of them. The two example ports 21 and 22
38 are automatically resolved to the default services listening on them:
39 ftp and ssh.
40
41 Example 1. A representative Ncrack scan
42
43
44 $ ncrack 10.0.0.130:21 192.168.1.2:22
45
46 Starting Ncrack 0.6 ( http://ncrack.org ) at 2016-01-03 22:10 EEST
47
48 Discovered credentials for ftp on 10.0.0.130 21/tcp:
49 10.0.0.130 21/tcp ftp: admin hello1
50 Discovered credentials for ssh on 192.168.1.2 22/tcp:
51 192.168.1.2 22/tcp ssh: guest 12345
52 192.168.1.2 22/tcp ssh: admin money$
53
54 Ncrack done: 2 services scanned in 156.03 seconds.
55
56 Ncrack finished.
57
58
59
60 The latest version of Ncrack can be obtained from
61 http://nmap.org/ncrack. The latest version of this man page is
62 available at http://nmap.org/ncrack/man.html .
63
65 This options summary is printed when Ncrack is run with no arguments.
66 It helps people remember the most common options, but is no substitute
67 for the in-depth documentation in the rest of this manual.
68
69 Ncrack 0.6 ( http://ncrack.org )
70 Usage: ncrack [Options] {target and service specification}
71 TARGET SPECIFICATION:
72 Can pass hostnames, IP addresses, networks, etc.
73 Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
74 -iX <inputfilename>: Input from Nmap´s -oX XML output format
75 -iN <inputfilename>: Input from Nmap´s -oN Normal output format
76 -iL <inputfilename>: Input from list of hosts/networks
77 --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
78 --excludefile <exclude_file>: Exclude list from file
79 SERVICE SPECIFICATION:
80 Can pass target specific services in <service>://target (standard) notation or
81 using -p which will be applied to all hosts in non-standard notation.
82 Service arguments can be specified to be host-specific, type of service-specific
83 (-m) or global (-g). Ex: ssh://10.0.0.10,at=10,cl=30 -m ssh:at=50 -g cd=3000
84 Ex2: ncrack -p ssh,ftp:3500,25 10.0.0.10 scanme.nmap.org google.com:80,ssl
85 -p <service-list>: services will be applied to all non-standard notation hosts
86 -m <service>:<options>: options will be applied to all services of this type
87 -g <options>: options will be applied to every service globally
88 Misc options:
89 ssl: enable SSL over this service
90 path <name>: used in modules like HTTP (´=´ needs escaping if used)
91 db <name>: used in modules like MongoDB to specify the database
92 domain <name>: used in modules like WinRM to specify the domain
93 TIMING AND PERFORMANCE:
94 Options which take <time> are in seconds, unless you append ´ms´
95 (miliseconds), ´m´ (minutes), or ´h´ (hours) to the value (e.g. 30m).
96 Service-specific options:
97 cl (min connection limit): minimum number of concurrent parallel connections
98 CL (max connection limit): maximum number of concurrent parallel connections
99 at (authentication tries): authentication attempts per connection
100 cd (connection delay): delay <time> between each connection initiation
101 cr (connection retries): caps number of service connection attempts
102 to (time-out): maximum cracking <time> for service, regardless of success so far
103 -T<0-5>: Set timing template (higher is faster)
104 --connection-limit <number>: threshold for total concurrent connections
105 --stealthy-linear: try credentials using only one connection against each specified host
106 until you hit the same host again. Overrides all other timing options.
107 AUTHENTICATION:
108 -U <filename>: username file
109 -P <filename>: password file
110 --user <username_list>: comma-separated username list
111 --pass <password_list>: comma-separated password list
112 --passwords-first: Iterate password list for each username. Default is opposite.
113 --pairwise: Choose usernames and passwords in pairs.
114 OUTPUT:
115 -oN/-oX <file>: Output scan in normal and XML format, respectively, to the given filename.
116 -oA <basename>: Output in the two major formats at once
117 -v: Increase verbosity level (use twice or more for greater effect)
118 -d[level]: Set or increase debugging level (Up to 10 is meaningful)
119 --nsock-trace <level>: Set nsock trace level (Valid range: 0 - 10)
120 --log-errors: Log errors/warnings to the normal-format output file
121 --append-output: Append to rather than clobber specified output files
122 MISC:
123 --resume <file>: Continue previously saved session
124 --save <file>: Save restoration file with specific filename
125 -f: quit cracking service after one found credential
126 -6: Enable IPv6 cracking
127 -sL or --list: only list hosts and services
128 --datadir <dirname>: Specify custom Ncrack data file location
129 --proxy <type://proxy:port>: Make connections via socks4, 4a, http.
130 -V: Print version number
131 -h: Print this help summary page.
132 MODULES:
133 SSH, RDP, FTP, Telnet, HTTP(S), POP3(S), IMAP, SMB, VNC, SIP, Redis, PostgreSQL, MySQL, MSSQL, MongoDB, Cassandra, WinRM, OWA
134 EXAMPLES:
135 ncrack -v --user root localhost:22
136 ncrack -v -T5 https://192.168.0.1
137 ncrack -v -iX ~/nmap.xml -g CL=5,to=1h
138 SEE THE MAN PAGE (http://nmap.org/ncrack/man.html) FOR MORE OPTIONS AND EXAMPLES
139
141 Everything on the Ncrack command-line that isn´t an option (or an
142 option argument) is treated as a target host specification. The
143 simplest case is to specify a target IP address or a hostname. Note,
144 that you also need to specify a service to crack for the selected
145 targets. Ncrack is very flexible in host/service specification. While
146 hostnames and IP addresses can be defined with the flexibility that you
147 are probably used to from Nmap, services along with service-specific
148 options have a unique specification style that enables a combination of
149 features to be taken advantage of.
150
151 Sometimes you wish to crack a whole network of adjacent hosts. For
152 this, Ncrack supports CIDR-style addressing. You can append /numbits to
153 an IPv4 address or hostname and Ncrack will try to crack every IP
154 address for which the first numbits are the same as for the reference
155 IP or hostname given. For example, 192.168.10.0/24 would send probes to
156 the 256 hosts between 192.168.10.0 11000000 10101000 00001010 00000000)
157 and 192.168.10.255 (binary: 11000000 10101000 00001010 11111111),
158 inclusive. 192.168.10.40/24 would crack exactly the same targets. Given
159 that the host scanme.nmap.org is at the IP address 64.13.134.52, the
160 specification scanme.nmap.org/16 would send probes to the 65,536 IP
161 addresses between 64.13.0.0 and 64.13.255.255. The smallest allowed
162 value is /0, which targets the whole Internet. The largest value is
163 /32, which targets just the named host or IP address because all
164 address bits are fixed.
165
166 CIDR notation is short but not always flexible enough. For example, you
167 might want to send probes to 192.168.0.0/16 but skip any IPs ending
168 with .0 or .255 because they may be used as subnet network and
169 broadcast addresses. Ncrack supports this through octet range
170 addressing. Rather than specify a normal IP address, you can specify a
171 comma-separated list of numbers or ranges for each octet. For example,
172 192.168.0-255.1-254 will skip all addresses in the range that end in .0
173 or .255, and 192.168.3-5,7.1 will target the four addresses
174 192.168.3.1, 192.168.4.1, 192.168.5.1, and 192.168.7.1. Either side of
175 a range may be omitted; the default values are 0 on the left and 255 on
176 the right. Using - by itself is the same as 0-255, but remember to use
177 0- in the first octet so the target specification doesn´t look like a
178 command-line option. Ranges need not be limited to the final octets:
179 the specifier will send probes to all IP addresses on the Internet
180 ending in 13.37 This sort of broad sampling can be useful for Internet
181 surveys and research.
182
183 Ncrack accepts multiple host specifications on the command line, and
184 they don´t need to be the same type. The command ncrack scanme.nmap.org
185 192.168.0.0/8 10.0.0,1,3-7.- -p22 does what you would expect.
186
187 While targets are usually specified on the command lines, the following
188 options are also available to control target selection:
189
190 -iX inputfilename (Input from Nmap´s -oX XML output format) .
191 Reads target/service specifications from an Nmap XML output file.
192 The Nmap XML file is created by scanning any hosts and specifying
193 the Nmap -oX option. Ncrack will automatically parse the IP
194 addresses and the corresponding ports and services that are open
195 and will use these targets for authentication auditing. This is a
196 really useful option, since it lets you essentially combine these
197 two tools -Nmap and Ncrack- for cracking only those services that
198 are surely open. In addition, if version detection has been enabled
199 in Nmap (-sV option), Ncrack will use those findings to recognize
200 and crack those services that are supported but are listening on
201 non-default ports. For example, if a host is having a server
202 listening on port 41414 and Nmap has identified that it is a SSH
203 service, Ncrack will use that information to crack it using the SSH
204 module. Of course, Ncrack is going to ignore open ports/services
205 that are not supported for authentication cracking by its modules.
206
207 -iN inputfilename (Input from Nmap´s -oN Normal output format) .
208 Reads target/service specifications from an Nmap Normal output
209 file. The Nmap Normal file is created by scanning any hosts and
210 specifying the Nmap -oN option. This works exactly like Ncrack´s
211 -iX option, the only difference being the format of the input file.
212
213 -iL inputfilename (Input from list) .
214 Reads target specifications from inputfilename. Passing a huge list
215 of hosts is often awkward on the command line, yet it is a common
216 desire. For example, you might want to crack a list of very
217 specific servers that have been specified for penetration testing.
218 Simply generate the list of hosts to crack and pass that filename
219 to Ncrack as an argument to the -iL option. Entries can be in any
220 of the formats accepted by Ncrack on the command line (IP address,
221 hostname, CIDR, octet ranges or Ncrack´s special host-service
222 syntax. Each entry must be separated by one or more spaces, tabs,
223 or newlines. You can specify a hyphen (-) as the filename if you
224 want Ncrack to read hosts from standard input rather than an actual
225 file. Note, however, that if hosts are specified without any
226 service, you will have to also provide services/ports for the
227 targets using the -p option.
228
229 --exclude host1[, host2[, ...]] (Exclude hosts/networks) .
230 Specifies a comma-separated list of targets to be excluded from the
231 scan even if they are part of the overall network range you
232 specify. The list you pass in uses normal Ncrack syntax, so it can
233 include hostnames, CIDR netblocks, octet ranges, etc. This can be
234 useful when the network you wish to scan includes untouchable
235 mission-critical servers, systems that are known to react adversely
236 to heavy load, or subnets administered by other people.
237
238 --excludefile exclude_file (Exclude list from file) .
239 This offers the same functionality as the --exclude option, except
240 that the excluded targets are provided in a newline, space, or tab
241 delimited exclude_file rather than on the command line.
242
244 No cracking session can be carried out without targetting a certain
245 service to attack. Service specification is one of the most flexible
246 subsystems of Ncrack and collaborates with target-specification in a
247 way that allows different option combinations to be applied. For Ncrack
248 to start running, you will have to specify at least one target host and
249 one associated service to attack. Ncrack provides ways to specify a
250 service by its default port number, by its name (as extracted from the
251 ncrack-services file) or both. Normally, you need to define both name
252 and port number only in the special case where you know that a
253 particular service is listening on a non-default port.
254
255 Ncrack offers two distinct ways with which services will be applied to
256 your targets: per-host service specification and global specification.
257
258 Per-host service specification
259
260 Services specified in this mode are written next to the host and
261 apply to it only. Keep in mind, however, that target-specification
262 allows wildcards/netmasks, which essentially means that applying a
263 per-host service specification format to that particular target
264 will affect all of the expanded ones as a result. The general
265 format is:
266
267 [service-name]://target:[port-number]
268
269 where target is a hostname or IP address in any of the formats
270 described in the target-specification section, [service-name] is
271 one of the common service names as defined in the ncrack-services
272 file (e.g ssh, http) and [port-number] is what it obviously means.
273 Ncrack can determine the default port numbers for each of the
274 services it supports, as well as being able to deduce the service
275 name when a default port number has been specified. Specifying both
276 has meaning only when the user has a priori knowledge of a service
277 listening on a non-default port number. This can easily be
278 determined by using version detection like the one offered by
279 Nmap´s -sV option.
280
281 Example 2. Per-host service specification example
282
283
284 $ ncrack scanme.nmap.org:22 ftp://10.0.0.10 ssh://192.168.1.*:5910
285
286
287
288 The above command will try to crack hosts: scanme.nmap.org on SSH
289 service (default port 22), 10.0.0.10 on FTP service (default port
290 21) and 192.168.1.0 - 192.168.1.255 (all of this C subnet) on SSH
291 service on non-default port 5910 which has been explicitly
292 specified. In the last case, Ncrack wouldn´t be able to determine
293 that the subnet hosts are to be scanned against the SSH service on
294 that particular port without the user explicitly asking for it,
295 because there isn´t any mapping of port-number 5910 to service SSH.
296
297 Global service specification
298
299 Services specified in this mode are applied to all hosts that
300 haven´t been associated with the per-host service specification
301 format. This is done using the -p option. While this facility may
302 be similar to that of Nmap´s, you should try not to confuse it,
303 since the functionality is of a slightly different nature. Services
304 can be specified using comma separated directives of the general
305 format:
306
307 -p [service1]:[port-number1],[service2]:[port-number2],...
308
309 As usual, you need not specify both service name and port number
310 since Ncrack knows the mappings of default-services to default-port
311 numbers. Be careful though not to include any space between each
312 service-name and/or port number, because Ncrack will think that the
313 argument after the space is a host as per the rule "everything that
314 isn´t an option is a target specification".
315
316 Example 3. Global service specification example
317
318
319 $ ncrack scanme.nmap.org 10.0.0.120-122 192.168.2.0/24 -p 22,ftp:3210,telnet
320
321
322
323 The above command will try to crack all of the specified hosts
324 scanme.nmap.org, 10.0.0.120, 10.0.0.121, 10.0.0.122 and the C class
325 subnet of 192.168.2.0 against the following services: SSH service
326 (mapped from default port 22), FTP service on non-default port
327 3210, and TELNET service on default port 23.
328
329 Of course, Ncrack allows you to combine both modes of service
330 specification if you deem that as necessary. Normally, you will only
331 need to specify a couple of services but cracking a lot of hosts
332 against many different services might be a longterm project for large
333 networks that need to be consistently audited for weak passwords. If
334 you are in doubt, about which hosts and services are going to be
335 cracked with the current command, you can use the -sL option (see below
336 for explanation).
337
339 Apart from general service specification, Ncrack allows you to provide
340 a multitude of options that apply to each or a subset of your targets.
341 Options include timing and performance optimizations (which are
342 thoroughly analyzed in a seperate section), SSL enabling/disabling and
343 other module-specific parameters like the relative URL path for the
344 HTTP module. Options can be defined in a variety of ways which include:
345 per-host options, per-module options and global options. Since a
346 combination of these options may be used, there is a strict hierarchy
347 of precedence which will be discussed later.
348
349 Per-host Options
350
351 Options in this mode apply only to the host(s) they are referring
352 to and are written next to it according to the following format:
353
354 [service-name]://target:[port-number],opt1=optval1,opt2=optval,...
355
356 The format concerning the service specification which comes before
357 the options, has been explained in the previous section. optN is
358 referring to any of the option names that are available (a list
359 will follow below), while optvalN determines the value of that
360 option and depends on the nature of it. For example, most
361 timing-related options expect to receive numbers as values, while
362 the path option obviously needs a string argument.
363
364 Per-module Options
365
366 Options in this mode apply to all hosts that are associated with
367 the particular service/module. This is accomplished using the -m
368 which is defined with the format:
369
370 -m service-name:opt1=optval1,opt2=optval2,...
371
372 This option can be invoked multiple times, for as many different
373 services as you might need to define service-wide applicable
374 options. Each iteration of this option must refer to only one
375 service. However, to avoid confusion, this option had better not be
376 called more than one time for the same service, although this is
377 allowed and the last iteration will take precedence over the
378 previous ones for all redefined option values.
379
380 Global Options
381
382 Options in this mode apply to all hosts regardless of which service
383 they are associated with. This is accomplished using the -g as
384 follows:
385
386 -g opt1=optval1,opt2=optval2,...
387
388 This acts as a convenience option, where you can apply options to
389 all services globally. Everything else regarding the available
390 options and option values is the same as the previous modes.
391
392 List of available Service Options
393
394 Below follows a list of all the currently available service options.
395 You can apply them with any of the three modes described above. The
396 last six of the options are timing related and will be analyzed in
397 Section "Timing and Performance" of this manual.
398
399 ssl: enable SSL over this service
400 path: path-name used in modules like HTTP (´=´ needs escaping if used)
401 db: used in modules like MongoDB to specify the database
402 domain: used in modules like WinRM to specify the domain
403 cl (min connection limit): minimum number of concurrent parallel connections
404 CL (max connection limit): maximum number of concurrent parallel connections
405 at (authentication tries): authentication attempts per connection
406 cd (connection delay): delay time between each connection initiation
407 cr (connection retries): caps number of service connection attempts
408 to (time-out): maximum cracking time for service, regardless of success so far
409
410
411
412 ssl (Enable/Disable SSL over service)
413 By enabling SSL, Ncrack will try to open a TCP connection and then
414 negotiate a SSL session with the target. Everything will then be
415 transparently encrypted and decrypted. However, since Ncrack´s job
416 is to provide speed rather than strong crypto, the algorithms and
417 ciphers for SSL are chosen on an efficiency basis. Possible values
418 for this option are ´yes´ but just specifying ssl would be enough.
419 Thus, this is the only option that doesn´t need to be written in
420 the opt=optval format. By default, SSL is disabled for all services
421 except those that are stricly dependent on it like HTTPS.
422
423 path <name> (Path name for relative URLs)
424 Some services like HTTP or SVN usually require a specific path in
425 the URL. This option takes that pathname string as its value. The
426 path is always relative to the hostname or IP address, so if you
427 want to target something like http://foobar.com/login.php the path
428 must take the value path=login.php . The initial ´/´ is added if
429 you omit it. However, it is usually better if you explicitly
430 specify it at the end of pathnames that are directories. For
431 example, to crack the directory for
432 http://foobar.com/protected-dir/ , it would be better if you wrote
433 it as path=protected-dir/ . This is to avoid the (very) slight
434 probability of a false positive, because there are cases where Web
435 servers might reply with a "301 Moved Permanently" for a
436 non-successful attempt. They normally send that reply, when a
437 successful attempt is made for a requested password-protected path
438 which has omitted the ending ´/´ but the requested source is
439 actually a directory. Consequently, Ncrack regards that reply as
440 having succeeded in the authentication attempt.
441
442 Also be careful with the symbol ´=´, since it is used by Ncrack for
443 argument parsing and you will have to espace it if it is included
444 in the URL.
445
446 By default, the path-name is initialized to ´/´, but will be
447 ignored by services that do not require it.
448
449 db <name> (Database name)
450 Some services like MongoDB require a specific database name to
451 crack. This option allows you to specify the database.
452
453 By default, the db name for MongoDB is initialized to ´admin´ but
454 will be ignored by services that do not require it.
455
456 domain <name> (Domain name)
457 Some services like WinRM require a specific domain to crack. This
458 option allows you to specify the domain.
459
460 By default, the domain name for WinRM is initialized to
461 ´Workstation´ but will be ignored by services that do not require
462 it.
463
464 Service Option Hierarchy
465
466 As already noted, Ncrack allows a combination of the three different
467 modes of service option specification. In that case, there is a strict
468 hierarchy that resolves the order in which conflicting values for these
469 options take precedence over each other. The order is as follows,
470 leftmost being the highest priority and rightmost the lowest one:
471
472 Per-host options > Per-module options > Global options >
473 Timing-Template (for timing options only)
474
475 The concept of the "Timing-Template" will be explained in the Section
476 "Timing and Performance", but for now, just have in mind that its
477 values have the least prevalence over everything else and essentially
478 act as defaults for everything timing-related. Global options specified
479 with -g have the directly higher precedence, while -m per-module
480 options are immediately higher. In the top of the hierarcy reside the
481 per-host options which are essentially the most specific ones.
482 Consequently, you can see that the pattern is: the more specific the
483 higher the precedence.
484
485 Example 4. Service Option Hierarchy example
486
487
488 $ ncrack scanme.nmap.org:22,cl=10,at=1 10.0.0.120 10.0.0.20 -p 21 -m ftp:CL=1 -g CL=3
489
490
491
492 The example demonstrates the hierarchy precedence. The services that
493 are going to be cracked are SSH for scanme.nmap.org and FTP for hosts
494 10.0.0.120, 10.0.0.20. No particular timing-template has been specified
495 and thus the default will be used (Normal - 3). The per-host options
496 for scanme.nmap.org define that the minimum connection limit (cl) is 10
497 and that Ncrack should attempt only 1 authentication try (at) per
498 connection. These values would override any other for service SSH of
499 host scanme.nmap.org if there were conflicts with other modes. Since a
500 global option of -g CL=3 was defined and there is no other
501 higher-precedence for service SSH and scanme.nmap.org in particular,
502 this value will also be applied. As for the FTP targets, the per-module
503 -m ftp:CL=1 defined for all FTP services will override the equivalent
504 global one. All these can get quite complex if overused, but they are
505 not expected to be leveraged by the average Ncrack user anyway.
506 Complicated network scanning scenarios might require them, though. To
507 make certain the results are the ones you expect them to be, don´t
508 forget to use the -sL option that prints out details about what Ncrack
509 would crack if invoked normally. You can add the debugging -d option if
510 you want even more verbose output. For the above example, Ncrack would
511 print the following:
512
513 Example 5. Service Option Hierarchy Output example
514
515
516 $ ncrack scanme.nmap.org:22,cl=10,at=1 10.0.0.120 10.0.0.20 -p 21 -m ftp:CL=1 -g CL=3 -sL -d
517
518 Starting Ncrack 0.6 ( http://ncrack.org ) at 2017-10-12 01:13 CDT
519
520 ----- [ Timing Template ] -----
521 cl=7, CL=80, at=0, cd=0, cr=30, to=0
522
523 ----- [ ServicesTable ] -----
524 SERVICE cl CL at cd cr to ssl path db domain
525 ftp:21 N/A 1 N/A N/A N/A N/A no null null null
526 ssh:22 N/A N/A N/A N/A N/A N/A no null null null
527 telnet:23 N/A N/A N/A N/A N/A N/A no null null null
528 http:80 N/A N/A N/A N/A N/A N/A no null null null
529 pop3:110 N/A N/A N/A N/A N/A N/A no null null null
530 imap:143 N/A N/A N/A N/A N/A N/A no null null null
531 netbios-ssn:445 N/A N/A N/A N/A N/A N/A no null null null
532 smb:445 N/A N/A N/A N/A N/A N/A no null null null
533 smb:139 N/A N/A N/A N/A N/A N/A no null null null
534 https:443 N/A N/A N/A N/A N/A N/A yes null null null
535 owa:443 N/A N/A N/A N/A N/A N/A yes null null null
536 sip:5060 N/A N/A N/A N/A N/A N/A no null null null
537 pop3s:995 N/A N/A N/A N/A N/A N/A yes null null null
538 mssql:1443 N/A N/A N/A N/A N/A N/A no null null null
539 mysql:3306 N/A N/A N/A N/A N/A N/A no null null null
540 ms-wbt-server:3389 N/A N/A N/A N/A N/A N/A no null null null
541 rdp:3389 N/A N/A N/A N/A N/A N/A no null null null
542 psql:5432 N/A N/A N/A N/A N/A N/A no null null null
543 vnc:5801 N/A N/A N/A N/A N/A N/A no null null null
544 vnc:5900 N/A N/A N/A N/A N/A N/A no null null null
545 vnc:5901 N/A N/A N/A N/A N/A N/A no null null null
546 vnc:6001 N/A N/A N/A N/A N/A N/A no null null null
547 redis:6379 N/A N/A N/A N/A N/A N/A no null null null
548 winrm:5985 N/A N/A N/A N/A N/A N/A no null null Workstation
549 winrm:5986 N/A N/A N/A N/A N/A N/A no null null Workstation
550 cassandra:9160 N/A N/A N/A N/A N/A N/A no null null null
551 cassandra:9042 N/A N/A N/A N/A N/A N/A no null null null
552 mongodb:27017 N/A N/A N/A N/A N/A N/A no null admin null
553
554 ----- [ Targets ] -----
555 Host: 45.33.32.156 ( scanme.nmap.org )
556 ssh:22 cl=10, CL=10, at=1, cd=0, cr=30, to=0ms, ssl=no, path=/, db=admin, domain=Workstation
557 Host: 10.0.0.120
558 ftp:21 cl=3, CL=1, at=0, cd=0, cr=30, to=0ms, ssl=no, path=/, db=admin, domain=Workstation
559 Host: 10.0.0.20
560 ftp:21 cl=3, CL=1, at=0, cd=0, cr=30, to=0ms, ssl=no, path=/, db=admin, domain=Workstation
561
562
563 Ncrack done: 3 services would be scanned.
564 Probes sent: 0 | timed-out: 0 | prematurely-closed: 0
565
566 Ncrack finished.
567
568
569
570
571 The ServicesTable just lists the per-module options for all available
572 services. As you can see, the only defined option is in the FTP service
573 for the CL . The Targets table is the most important part of this
574 output and lists all targets and associated options according to the
575 command-line invocation. No network operation takes place in this mode,
576 apart from forward DNS resolution for hostnames (like scanme.nmap.org
577 in this example).
578
580 The timing engine is perhaps the most important part of any serious
581 network authentication cracking tool. Ncrack´s timing engine offers a
582 great many options for optimization and can be bended to serve
583 virtually any user need. As Ncrack is progressing, this subsystem is
584 going to evolve into a dynamic autonomous engine that will be able to
585 automatically adjust its behaviour according to the network feedback it
586 gets, in order to achieve maximum performance and precision without any
587 user intervention.
588
589 Some options accept a time parameter. This is specified in seconds by
590 default, though you can append ‘ms’, ‘m’, or ‘h’ to the value to
591 specify milliseconds, minutes, or hours (‘s’ for seconds is redundant).
592 So the cd (connection delay) arguments 900000ms, 900s, and 15m all do
593 the same thing.
594
595 cl num-minconnections; CL num-maxconnections (Adjust number of
596 concurrent parallel connections)
597
598 Connection Limit
599
600 These options control the total number of connections that may be
601 outstanding for any service at the same time. Normally, Ncrack
602 tries to dynamically adjust the number of connections for each
603 individual target by counting how many drops or connection failures
604 happen. If a strange network condition occurs, that signifies that
605 something may be going wrong, like the host dropping any new
606 connection attempts, then Ncrack will immediately lower the total
607 number of connections hitting the service. However, the caps number
608 of the minimum or maximum connections that will take place can be
609 overriden using these two options. By properly adjusting them, you
610 can essentially optimize performance, if you can handle the tricky
611 part of knowing or discovering your target´s own limits. The
612 convention here is that cl with lowercase letters is referring to
613 the minimum connection limit, while CL with uppercase letters is
614 referring to the maximum number of connections.
615
616 The most common usage is to set cl (minimum connection limit) for
617 targets that you are almost certain are going to withstand these
618 many connections at any given time. This is a risky option to play
619 with, as setting it too high might actually do more harm than good
620 by effectively DoS-attacking the target and triggering firewall
621 rules that will ban your IP address.
622
623 On the other hand, for more stealthy missions, setting the CL
624 (maximum connection limit) to a low value might be what you want.
625 However, setting it too low will surely have a great impact in
626 overall cracking speed. For maximum stealth, this can be combined
627 with the cd (connection delay) described below.
628
629 at num-attempts (Adjust authentication attempts per connection)
630
631 Authentication Tries
632
633 Using this option, you can order Ncrack to limit the authentication
634 attempts it carries out per connection. Ncrack initially sends a
635 reconnaisance probe that lets it calculate the maximum number of
636 such authentication tries and from thereon it always tries to use
637 that number. Most servicse pose an upper limit on the number of
638 authentication per connection and in most cases finding that
639 maximum leads to better performance.
640
641 Setting this option to lower values can give you some stealth
642 bonus, since services such as SSH tend to log failed attempts after
643 more than a certain number of authentication tries per connection.
644 They use that as a metric rather than counting the total number of
645 authentication attempts or connections per IP address (which is
646 usually done by a firewall). Consequently, a number of 1 or 2
647 authentication tries might circumvent logging in some cases.
648
649 Note that setting that option to a high value will not have any
650 effect if Ncrack realizes that the server doesn´t allow that many
651 attempts per connection. In this case, it will just use that
652 maximum number and ignore your setting.
653
654 cd time (Adjust delay time between each new connection)
655
656 Connection Delay
657
658 This option essentially defines the imposed time delay between each
659 new connection. Ncrack will wait the amount of time you specify in
660 this option value, before starting a new connection against the
661 given service. The higher you set it, the slower Ncrack will
662 perform, but the stealthier your attack will become.
663
664 Ncrack by default tries to initiate new connections as fast as
665 possible given that new probes are actually allowed to be sent and
666 are not restricted by parameters such as Connection Limit which can
667 dynamically increase or decrease. Although this approach achieves
668 blazing speed as long as the host remains responsive, it can lead
669 to a number of disasters such as a firewall being triggered, the
670 targets´ or your bandwidth to be diminished and even the tested
671 service to suffer a Denial of Service attack. By carefully
672 adjusting this option, you can potentially avoid these annoying
673 situations.
674
675 cr max-conattempts (Adjust the max number of connection retries)
676
677 Connection Retries
678
679 This option allows the user to specify the maximum amount of
680 consecutive failed attempts against that particular service. If at
681 any time, during the cracking session, Ncrack fails to connect
682 against that particular service, then it will stop cracking it
683 entirely.
684
685 to time (Adjust the maximum overall cracking time)
686
687 Timeout
688
689 Define how much time Ncrack is going to spend cracking the service,
690 before giving up regardless of whether it has found any credentials
691 so far. However, any authentication token discovered until that
692 time, will be stored and printed normally. Ncrack marks a service
693 as finished when the username/password lists iteration ends or when
694 it can no longer crack it for some serious reason. If Ncrack
695 finishes cracking a service before the time specified in this
696 option, then it will not be taken into account at all.
697
698 Sometimes, you have a limited time window to scan/crack your hosts.
699 This might occur for various reasons. A common one would be that
700 normal user activity mustn´t be interrupted and since Ncrack can
701 become very aggressive, it might be allowed to scan the hosts only
702 at during certain time period like the night hours. Scanning during
703 certain such hours is also likely to make an attack less
704 detectable.
705
706 Don´t forget that Ncrack allows you to specify the time unit of
707 measure by appending ‘ms’, ‘m’, or ‘h’ for milliseconds, minutes or
708 hours (seconds is the default time unit). Using them in this
709 particular option, is really convenient as you can specify
710 something like to=8h to give Ncrack a total of 8 hours to crack
711 that service. Setting up cronjobs for scheduled scans in
712 combination with this option, might also be a good idea.
713
714 -T paranoid|sneaky|polite|normal|aggressive|insane (Set a timing
715 template) .
716 While the fine-grained timing controls discussed in the previous
717 section are powerful and effective, some people find them
718 confusing. Moreover, choosing the appropriate values can sometimes
719 take more time than the scan you are trying to optimize. So Ncrack
720 offers a simpler approach, with six timing templates. You can
721 specify them with the -T option and their number (0–5) or their
722 name. The template names are paranoid (0), sneaky (1), polite (2),
723 normal (3), aggressive (4), and insane (5). The first two are for
724 IDS evasion. Polite mode slows down the scan to use less bandwidth
725 and target machine resources. Normal mode is the default and so -T3
726 does nothing. Aggressive mode speeds scans up by making the
727 assumption that you are on a reasonably fast and reliable network.
728 Finally insane mode assumes that you are on an extraordinarily fast
729 network or are willing to sacrifice some accuracy for speed.
730
731 These templates allow the user to specify how aggressive they wish
732 to be, while leaving Ncrack to pick the exact timing values. If you
733 know that the network service is going to withstand a huge number
734 of connections you might try using the aggressive template of -T4 .
735 Even then, this is mostly advised for services residing in the
736 local network. Going over to insane mode -T5 is not recommended,
737 unless you absolutely know what you are doing.
738
739 While -T0. and -T1. may be useful for avoiding IDS alerts, they
740 will take an extraordinarily long time to crack even a few
741 services. For such a long scan, you may prefer to set the exact
742 timing values you need rather than rely on the canned -T0 and -T1
743 values.
744
745 --connection-limit numprobes (Adjust the threshold of total concurrent
746 connections)
747 NOT IMPLEMENTED YET.
748
750 This section describes ways of specifying your own username and
751 password lists as well as the available modes of iterating over them.
752 Ncrack ships in with a variety of username and password lists which
753 reside under the directory ´lists´ of the source tarball and later
754 installed under Ncrack´s data directory which usually is
755 /usr/local/share/ncrack or /usr/share/ncrack . You can omit specifying
756 any lists and Ncrack is going to use the default ones which contain
757 some of the most common usernames and passwords. The password list is
758 frequency-sorted with the top most common passwords at the beginning of
759 the list so they will be tried out first. The lists have been derived
760 from a combination of sorting publicly leaked password files and other
761 techniques.
762
763 -U filename (Specify username list)
764 Specify your own username list by giving the path to the filename
765 as argument to this option.
766
767 Usernames for specific environments can be gathered in numerous
768 ways including harvesting for email-addresses in the company´s
769 website, looking up information in whois databases, using the SMTP
770 VRFY technique at vulnerable mail servers or through social
771 engineering.
772
773 -P filename (Specify password list)
774 Specify your own password list by giving the path to the filename
775 as argument to this option.
776
777 Common passwords are usually derived from leaked lists as a result
778 of successful intrusions in public sites such as forums or other
779 social networking places. A great deal of them have already been
780 publicly disclosed and some of these have been used to assemble
781 Ncrack´s own lists.
782
783 --user username_list (Specify command-line comma-separated username
784 list)
785 Specify your own usernames directly in the command-line as a
786 comma-separated list.
787
788 --pass password_list (Specify command-line comma-separated password
789 list)
790 Specify your own passwords directly in the command-line as a
791 comma-separated list.
792
793 --passwords-first (Reverse the way passwords are iterated)
794 Ncrack by default iterates the username list for each password.
795 With this option, you can reverse that. For example, given the
796 username list of -> "root, guest, admin" and the password list of
797 "test, 12345, q1w2e3r4" Ncrack will normally go over them like this
798 -> root:test, guest:test, admin:test, root:12345 etc. By enabling
799 this option it will go over them like this -> root:test,
800 root:12345, root:q1w2e3r4, guest:test etc.
801
802 Most network authentication cracking tools prefer by default to
803 iterate the password list for each username. This is, however,
804 ineffective compared to the opposite iteration in most cases. This
805 holds true for the simple reason that password lists are usually
806 sorted on a frequency basis, meaning that the more common a
807 password is, the closer to the beginning of the password list it
808 is. Thus, iterating over all usernames for the most common
809 passwords first has usually more chances to get a positive result.
810 With the --passwords-first iteration, very common passwords might
811 not even be tried out for certain usernames if the user chooses to
812 abort the session early. However, this option might prove valuable
813 for cases where the attacker knows and has already verified that
814 the username list contains real usernames, instead of blindly
815 bruteforcing through them.
816
817 --pairwise (Choose usernames and passwords in pairs)
818 Enabling this option will make Ncrack iterate the username and
819 password list by choosing them in pairs. For example, given the
820 username list of "root, guest, admin" and the password list of
821 "test, 12345, q1w2e3r4" Ncrack will go over them like this:
822 "root:test", "guest:12345", "admin:q1w2e3r4". This is particulary
823 useful when inside knowledge of the infrastructure tested is
824 available and special username and password lists have been made.
825
827 Any security tool is only as useful as the output it generates. Complex
828 tests and algorithms are of little value if they aren´t presented in an
829 organized and comprehensible fashion. Of course, no single format can
830 please everyone. So Ncrack offers several formats, including the
831 interactive mode for humans to read directly and XML for easy parsing
832 by software.
833
834 In addition to offering different output formats, Ncrack provides
835 options for controlling the verbosity of output as well as debugging
836 messages. Output types may be sent to standard output or to named
837 files, which Ncrack can append to or clobber.
838
839 Ncrack makes output available in three different formats. The default
840 is called interactive output, and it is sent to standard output
841 (stdout). There is also normal output, which is similar to interactive
842 except that it displays less runtime information and warnings since it
843 is expected to be analyzed after the scan completes rather than
844 interactively.
845
846 XML output is one of the most important output types, as it can be
847 converted to HTML, easily parsed by programs such as Ncrack graphical
848 user interfaces, or imported into databases. Currently, XML output
849 hasn´t been implemented.
850
851 While interactive output is the default and has no associated
852 command-line options, the other two format options use the same syntax.
853 They take one argument, which is the filename that results should be
854 stored in. Multiple formats may be specified, but each format may only
855 be specified once. For example, you may wish to save normal output for
856 your own review while saving XML of the same scan for programmatic
857 analysis. You might do this with the options -oX myscan.xml -oN
858 myscan.ncrack. While this chapter uses the simple names like myscan.xml
859 for brevity, more descriptive names are generally recommended. The
860 names chosen are a matter of personal preference. A scheme could be
861 using long filenames that incorporate the scan date and a word or two
862 describing the scan, placed in a directory named after the company that
863 is being scanned.
864
865 While these options save results to files, Ncrack still prints
866 interactive output to stdout as usual. For example, the command nmap
867 -oX myscan.xml [target] prints XML to myscan.xml and fills standard
868 output with the same interactive results it would have printed if -oX
869 wasn´t specified at all. You can change this by passing a hyphen
870 character as the argument to one of the format types. This causes
871 Ncrack to deactivate interactive output, and instead print results in
872 the format you specified to the standard output stream. So the command
873 nmap -oX - target will send only XML output to stdout. Serious errors
874 may still be printed to the normal error stream, stderr.
875
876 Unlike some Ncrack arguments, the space between the logfile option flag
877 (such as -oX) and the filename or hyphen is mandatory.
878
879 All of these arguments support strftime-like conversions in the
880 filename. %H, %M, %S, %m, %d, %y, and %Y are all exactly the same as
881 in strftime. %T is the same as %H%M%S, %R is the same as %H%M, and %D
882 is the same as %m%d%y. A % followed by any other character just yields
883 that character (%% gives you a percent symbol). So -oX ´scan-%T-%D.xml´
884 will use an XML file in the form of scan-144840-121307.xml.
885
886 Ncrack also offers options to control scan verbosity and to append to
887 output files rather than clobbering them. All of these options are
888 described below.
889
890 Ncrack Output Formats
891
892 -oN filespec (normal output) .
893 Requests that normal output be directed to the given filename. As
894 discussed above, this differs slightly from interactive output.
895
896 -oX filespec (XML output) .
897 Requests that XML output be directed to the given filename.
898 Currently this is not implemented.
899
900 -oA basename (Output to all formats) .
901 As a convenience, you may specify -oA basename to store scan
902 results in normal and XML formats at once. They are stored in
903 basename.ncrack, and basename.xml respectively. As with most
904 programs, you can prefix the filenames with a directory path, such
905 as ~/ncracklogs/foocorp/ on Unix or c:\hacking\sco on Windows.
906
907 Verbosity and debugging options
908
909 -v (Increase verbosity level) .
910 Increases the verbosity level, causing Ncrack to print more
911 information about the scan in progress. Credentials are shown as
912 they are found and more statistical information is printed in the
913 end. Use it twice or more for even greater verbosity.
914
915 -d [level] (Increase or set debugging level) .
916 When even verbose mode doesn´t provide sufficient data for you,
917 debugging is available to flood you with much more! As with the
918 verbosity option (-v), debugging is enabled with a command-line
919 flag (-d) and the debug level can be increased by specifying it
920 multiple times. Alternatively, you can set a debug level by giving
921 an argument to -d. For example, -d10 sets level ten. That is the
922 highest effective level and will produce thousands of lines, unless
923 your cracking session is going really slow.
924
925 Debugging output is useful when a bug is suspected in Ncrack, or if
926 you are simply confused as to what Ncrack is doing and why. As this
927 feature is mostly intended for developers, debug lines aren´t
928 always self-explanatory. If you don´t understand a line, your only
929 recourses are to ignore it, look it up in the source code, or
930 request help from the development list (nmap-dev). Some lines are
931 self explanatory, but the messages become more obscure as the debug
932 level is increased.
933
934 --nsock-trace level (Set nsock trace level) .
935 This option is meant mostly for developers as enabling it will
936 activate the Nsock´s library debugging output. Nsock is the
937 underlying library for parallel socket handling. You will have to
938 specify a certain level for this option. Valid range is 0 up to 10.
939 Usually, a level of 1 or 2 is enough to get a good overview of
940 network operations happening behind the scenes. Nsock prints that
941 information to stdout by default.
942
943 --log-errors (Log errors/warnings to normal mode output file) .
944 Warnings and errors printed by Ncrack usually go only to the screen
945 (interactive output), leaving any normal-format output files
946 (usually specified with -oN) uncluttered. When you do want to see
947 those messages in the normal output file you specified, add this
948 option. It is useful when you aren´t watching the interactive
949 output or when you want to record errors while debugging a problem.
950 The error and warning messages will still appear in interactive
951 mode too. This won´t work for most errors related to bad
952 command-line arguments because Ncrack may not have initialized its
953 output files yet.
954
955 An alternative to --log-errors is redirecting interactive output
956 (including the standard error stream) to a file. Most Unix shells
957 make this approach easy, though it can be difficult on Windows.
958
959 Miscellaneous output options
960
961 --append-output (Append to rather than clobber output files) .
962 When you specify a filename to an output format flag such as -oX or
963 -oN, that file is overwritten by default. If you prefer to keep the
964 existing content of the file and append the new results, specify
965 the --append-output option. All output filenames specified in that
966 Ncrack execution will then be appended to rather than clobbered.
967 This doesn´t work well for XML (-oX) scan data as the resultant
968 file generally won´t parse properly until you fix it up by hand.
969
971 This section describes some important (and not-so-important) options
972 that don´t really fit anywhere else.
973
974 --resume file (Continue previously saved session) .
975 Whenever the user cancels a running session (usually by pressing
976 Ctrl+C), Ncrack saves the current state into a file which it can
977 later use to continue from where it had stopped. This file is saved
978 in subdirectory .ncrack/ of the user´s home path with a filename
979 format of "restore.YY-MM-DD_hh-mm". An example would be:
980 "/home/ithilgore/.ncrack/restore.2010-05-18_04-42". You can then
981 continue your session, by specifying this file as argument to the
982 --resume option.
983
984 -f (Quit cracking service after one found credential) .
985 This option will force Ncrack to quit cracking a service as soon as
986 it finds a valid username/password combination for it. Assuming
987 many parallel services are being cracked at the same time, this
988 option is applied on each of them separately. This means that
989 Ncrack will stop cracking each individual service after finding a
990 pair of credentials for it, but will not quit entirely. Supplying
991 the option two times, like -f -f will, however, make Ncrack exit
992 immediately as soon as it finds a valid credential for any service.
993
994 Frequently, attackers will try cracking several services in
995 parallel to maximize the chances of finding a pair of valid
996 credentials. Given that a network is no stronger than its weakest
997 link, this option and especially the -f -f counterpart will often
998 be used to lessen chances of detection and prevent network
999 resources from being wasted aimlessly.
1000
1001 -6 (Enable IPv6 scanning) .
1002 Warning: This option was just added and it is currently
1003 experimental, so please notify us for any problems and bugs related
1004 to it.
1005
1006 The command syntax is the same as usual except that you also add
1007 the -6 option. Of course, you must use IPv6 syntax if you specify
1008 an address rather than a hostname. An address might look like
1009 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, so hostnames are
1010 recommended. The output looks the same as usual, with the IPv6
1011 address on the “Discovered credentials” line being the only IPv6
1012 give away.
1013
1014 While IPv6 hasn´t exactly taken the world by storm, it gets
1015 significant use in some (usually Asian) countries and most modern
1016 operating systems support it. To use Ncrack with IPv6, both the
1017 source and target of your scan must be configured for IPv6. If your
1018 ISP (like most of them) does not allocate IPv6 addresses to you,
1019 free tunnel brokers are widely available and will probably work
1020 fine with Ncrack. A popular IPv6 tunnel broker service is at
1021 http://www.tunnelbroker.net. 6to4 tunnels are another popular, free
1022 approach.
1023
1024 -sL (List Scan) .
1025 The list scan simply lists each host and service that would be
1026 cracked if this option wasn´t specified. No packets are sent to the
1027 target hosts and the only network operation that might happen is
1028 DNS-resolution of any hostnames of targets. This option is really
1029 helpful in making sure that you have specified everything as you
1030 wanted. Service-specific options will also be printed so this acts
1031 as a good sanity check of potentially complex command-line
1032 arguments such as the advanced modes of Service Option
1033 Specification and the equivalent Hierarchy for sessions that
1034 require delicate timing handling. If list scan is called along with
1035 the -d debug option, then additional output, like the ServicesTable
1036 and the current Timing-Template´s parameters, is also going to be
1037 printed.
1038
1039 --datadir directoryname (Specify custom Ncrack data file location) .
1040 Ncrack needs a file called ncrack-services to load a lookup-table
1041 of supported services/ports. This file shouldn´t be changed, unless
1042 you know what you are doing (e.g extending Ncrack for additional
1043 modules). In addition, Ncrack is shipped with various username and
1044 password lists, some of which are used by default in case the user
1045 doesn´t specify ones of his own. All these files are normally
1046 copied during the installation procedure to a directory such as
1047 /usr/share/ncrack or /usr/local/share/ncrack . Using the --datadir
1048 option, will force Ncrack to start searching for these files in
1049 specified directory. If the files aren´t found, then it will
1050 continue searching in the directory specified by the NCRACKDIR
1051 environmental variable NCRACKDIR (if it is defined). Next comes
1052 ~/.ncrack directory for real and effective UIDs (POSIX systems
1053 only) or location of the Ncrack executable (Win32 only), and then a
1054 compiled-in location such as /usr/local/share/ncrack or
1055 /usr/share/ncrack. As a last resort, Ncrack will look in the
1056 current directory.
1057
1058 --proxy type://proxy:port (Make connections via socks4, 4a, http) .
1059 This will make Ncrack perform the authentication cracking session
1060 through the proxy host specified.
1061
1062 -V; --version (Print version number) .
1063 Prints the Ncrack version number and exits.
1064
1065 -h; --help (Print help summary page) .
1066 Prints a short help screen with the most common command flags.
1067 Running Ncrack without any arguments does the same thing.
1068
1070 During the execution of Ncrack, all key presses are captured. This
1071 allows you to interact with the program without aborting and restarting
1072 it. Certain special keys will change options, while any other keys will
1073 print out a status message telling you about the scan. The convention
1074 is that lowercase letters increase the amount of printing, and
1075 uppercase letters decrease the printing. You may also press ‘?’ for
1076 help.
1077
1078 v / V
1079 Increase / decrease the verbosity level
1080
1081 d / D
1082 Increase / decrease the debugging Level
1083
1084 p / P
1085 Display found credentials
1086
1087 ?
1088 Print a runtime interaction help screen
1089
1090 Anything else
1091 Print out a status message like this:
1092
1093 Stats: 0:00:20 elapsed; 0 services completed (1 total)
1094
1095 Rate: 6.26; Found: 1; About 13.27% done; ETC: 21:06 (0:02:17
1096 remaining)
1097
1099 Ncrack´s architecture is modular with each module corresponding to one
1100 particular service or protocol. Currently, Ncrack supports the
1101 protocols SSH, RDP, FTP, Telnet, HTTP(S), POP3(S), IMAP, SMB, VNC, SIP
1102 Redis, PostgreSQL, MySQL, MSSQL, MongoDB, Cassandra, WinRM, OWA. If you
1103 want to write and contribute your own Ncrack modules, be sure to read
1104 the Ncrack Developer´s Guide at http://nmap.org/ncrack/devguide.html
1105 Below we describe some key points for each of them.
1106
1107 FTP Module
1108
1109 FTP authentication is quite fast, since there is very little
1110 protocol negotiation overhead. Most FTP daemons allow 3 to 6
1111 authentication attempts but usually impose a certain delay before
1112 replying with the results of a failed attempt. Filezilla is one of
1113 the most characteristic examples of this case, where the time delay
1114 is so great, that it is usually faster to open more connections
1115 against it, with each of them doing only 1 authentication per
1116 connection.
1117
1118 Telnet Module
1119
1120 Telnet daemons have been largely substituded by their safer
1121 ´counterpart´ of SSH. However, there are many boxes, mainly routers
1122 or printers, that still rely on Telnet for remote access. Usually
1123 these are also easier to crack, since default passwords for them
1124 are publicly known. The drawback is that telnet is a rather slow
1125 protocol, so you shouldn´t be expecting really high rates against
1126 it.
1127
1128 SSH Module
1129
1130 SSH is one of the most prevalent protocols in today´s networks. For
1131 this reason, a special library, named opensshlib and based on code
1132 from OpenSSH, was specifically built and tailored for Ncrack´s
1133 needs. Opensshlib ships in with Ncrack, so SSH support comes out of
1134 the box. OpenSSL will have to be installed in Unix systems though.
1135 Windows OpenSSL dlls are included in Ncrack, so Windows users
1136 shouldn´t be worrying about it at all.
1137
1138 SSH bruteforcing holds many pitfalls and challenges, and you are
1139 well advised to read a paper that was written to explain them. The
1140 latest version of the "Hacking the OpenSSH library for Ncrack"
1141 document can be found under docs/openssh_library.txt or at
1142 http://sock-raw.org/papers/openssh_library
1143
1144 HTTP(S) Module
1145
1146 The HTTP Module currently supports basic and digest authentication.
1147 Ncrack tries to use the "Keepalive" HTTP option, whenever possible,
1148 which leads to really high speeds, since that allows dozens of
1149 attempts to be carried out per connection. The HTTP module can also
1150 be called over SSL.
1151
1152 SMB Module
1153
1154 The SMB module currently works over raw TCP. NetBIOS isn´t
1155 supported yet. This protocol allows for high parallelization, so
1156 users could potentially increase the number of concurrent probes
1157 against it. SMB is frequently used for file-sharing among other
1158 things and is one of the most ubiquitous protocols, being present
1159 in both Unix and Windows environments.
1160
1161 RDP Module
1162
1163 RDP (Remote Desktop Protocol) is a proprietary protocol developed
1164 by Microsoft for the purpose of providing remote terminal services
1165 by transfering graphics display information from the remote
1166 computer to the user and transporting input commands from the user
1167 to the remote computer. Fortunately, Microsoft recently decided to
1168 open the protocol´s internal workings to the public and has
1169 provided official documentation, which can be found at
1170 http://msdn.microsoft.com/en-us/library/cc240445%28v=PROT.10%29.aspx
1171
1172 RDP is one of the most complex protocols, requiring the exchange of
1173 many packets, even for just the authentication phase. For this
1174 reason, cracking it takes a lot of time and this is probably the
1175 slowest module. The connection phase is briefly described at
1176 http://msdn.microsoft.com/en-us/library/cc240452%28v=PROT.10%29.aspx
1177 where you can also see a diagram of the various packets involved.
1178 Care must be taken against RDP servers in Windows XP versions,
1179 since they can´t handle multiple connections at the same time. It
1180 is advised to use a very slow timing template or even better limit
1181 the maximum parallel connections using timing options such as CL
1182 (Connection Limit) or cd (connection delay) against Windows XP (and
1183 relevant) RDP servers. Windows Vista and above don´t suffer from
1184 the same limitation.
1185
1186 VNC Module
1187
1188 The VNC protocol has known widespread usage among Unix
1189 administrators and users for remote graphical access. VNC is
1190 perhaps one of the most vulnerable protocols in terms of
1191 brute-forcing, since it often requires a password without a
1192 corresponding username for authentication. In addition, some
1193 versions of VNC impose an 8-character limit in password length. You
1194 should consider adding the --passwords-first option when cracking
1195 VNC systems to exploit the fact that the username often has no
1196 actual importance in authentication.
1197
1198 POP3(S) Module
1199
1200 POP3 support is still experimental and hasn´t been thoroughly
1201 tested. You can expect it to work against common mail servers,
1202 nevertheless.
1203
1204 IMAP Module
1205
1206 The Internet Message Access Protocol (IMAP) is used by email
1207 clients to retrieve email messages from a mail server. The module
1208 sends the LOGIN command to authenticate. The LOGIN command is the
1209 simplest, fastest and most supported authentication mechanism for
1210 IMAP.
1211
1212 SIP Module
1213
1214 The Session Initiation Protocol is a text-based protocol, very
1215 similar to HTTP in its structure. The most common application of
1216 SIP is in Internet telephony for voice and video calls. Nearly all
1217 enterprises have infrastructure that supports conference calls and
1218 part of them are based on SIP, making the authentication part a
1219 significant threat vector.
1220
1221 Redis Module
1222
1223 Redis is one of the most widely used caching servers and the most
1224 popular NoSQL database. Despite its reputation, the authentication
1225 mechanism is very simple, only allowing for a password to protect
1226 remote access to the service. Due to the high performance of Redis
1227 and the fact that only 2 packets are needed for the authentication
1228 phase, Ncrack can try a lot of passwords in parallel (‐
1229 http://redis.io/commands/AUTH). Specifying a username list or
1230 single username will have no effect in this module, since Redis
1231 only deals with passwords.
1232
1233 PostgreSQL Module
1234
1235 PostgreSQL is often used as a backend database. The PostgreSQL
1236 module supports md5 authentication, which is the most frequent
1237 password authentication method.
1238
1239 MySQL Module
1240
1241 The MySQL module supports native authentication.
1242
1243 MySQL Module
1244
1245 The MSSQL module supports mixed authentication.
1246
1247 MongoDB Module
1248
1249 The MongoDB module supports MongoDB-CR and SCRAM-SHA-1
1250 authentication. The pairwise and passwords-first option will be
1251 ignored for the MongoDB module, due to them being inefficient
1252 against MongoDB. The optimal way of cracking MongoDB is to take
1253 advantage of a user-enumeration vulnerability inherent in its
1254 authentication mechanism, which Ncrack exploits.
1255
1256 Cassandra Module
1257
1258 Apache Cassandra is a popular NoSQL database often left unsecured
1259 with weak credentials or no authentication.
1260
1261 OWA Module
1262
1263 Outlook Web App allows users to access a Microsoft Exchange Server
1264 mailbox from a web browser and experience Microsoft Outlook without
1265 a mail client. The module supports Basic Authentication.
1266
1267 WinRM Module
1268
1269 Windows Remote Management (WinRM) is the Microsoft implementation
1270 of WS-Management Protocol, a standard Simple Object Access Protocol
1271 (SOAP)-based, firewall-friendly protocol that allows hardware and
1272 operating systems, from different vendors, to interoperate. It is
1273 often used to administer Windows machines. The module supports
1274 Basic and Negotiate authentication.
1275
1277 Like its authors, Ncrack isn´t perfect. But you can help make it better
1278 by sending bug reports or even writing patches. If Ncrack doesn´t
1279 behave the way you expect, first upgrade to the latest version
1280 available from http://nmap.org/ncrack. If the problem persists, do some
1281 research to determine whether it has already been discovered and
1282 addressed. Try searching for the error message on our search page at
1283 http://insecure.org/search.html or at Google. Also try browsing the
1284 nmap-dev archives at http://seclists.org/ . Read this full manual page
1285 as well. If you are developing your own Ncrack module, make sure you
1286 have first read the Ncrack Developer´s Guide at
1287 http://nmap.org/ncrack/devguide.html . If nothing comes of this, mail a
1288 bug report to nmap-dev@insecure.org . Please include everything you
1289 have learned about the problem, as well as what version of Ncrack you
1290 are running and what operating system version it is running on. Problem
1291 reports and Ncrack usage questions sent to nmap-dev@insecure.org are
1292 far more likely to be answered than those sent to Fyodor directly. If
1293 you subscribe to the nmap-dev list before posting, your message will
1294 bypass moderation and get through more quickly. Subscribe at
1295 http://cgi.insecure.org/mailman/listinfo/nmap-dev .
1296
1297 Code patches to fix bugs are even better than bug reports. Basic
1298 instructions for creating patch files with your changes are available
1299 at http://nmap.org/data/HACKING . Patches may be sent to nmap-dev
1300 (recommended) or to Fyodor directly.
1301
1303 ithilgore (Fotios (Fotis) Chantzis) ithilgore@sock-raw.org (‐
1304 http://sock-raw.org)
1305
1306 Fyodor fyodor@insecure.org (http://insecure.org)
1307
1309 While it isn´t distributed with Nmap, Ncrack is part of the Nmap
1310 project and falls under the same license and (non) warranty provisions,
1311 as described at http://nmap.org/book/man-legal.html.
1312
1313
1314
1315Ncrack 10/12/2017 NCRACK(1)