STROBE 1.05(1) STROBE 1.05(1)
NAME
strobe - Super optimised TCP port surveyor
SYNOPSIS
strobe [ -vVmdbepPAtnSilfsaM ] [host1 ... [hostn]]
DESCRIPTION
strobe is a network/security tool that locates and
describes all listening tcp ports on a (remote) host or on
many hosts in a bandwidth utilisation maximising, and pro-
cess resource minimising manner.
strobe approximates a parallel finite state machine inter-
nally. In non-linear multi-host mode it attempts to appor-
tion bandwidth and sockets among the hosts very effi-
ciently. This can reap appreciable gains in speed for
multiple distinct hosts/routes.
On a machine with a reasonable number of sockets, strobe
is fast enough to port scan entire Internet sub domains.
It is even possible to survey an entire small country in a
reasonable time from a fast machine on the network back-
bone, provided the machine in question uses dynamic socket
allocation or has had its static socket allocation
increased very appreciably (check your kernel options). In
this very limited application strobe is said to be faster
than ISS2.1 (a high quality commercial security scanner by
cklaus@iss.net and friends) or PingWare (also commercial).
OPTIONS
-v Verbose output.
-V Verbose statistical output.
-m Minimise output. Only print hostname, port tuples.
Implies -d. Useful for automated output parsing.
-d Delete duplicate entries for port descriptions. i.e
use only the first definition.
-g Disable usage of getpeername(2). On solaris 2.3
machines this causes a core dump, for reasons
unknown. This behaviour is fixed with solaris 2.4.
Under Linux, HP and perhaps other unix implementa-
tions, false tcp connection positives may occur
when this option is activated.
-s Statistical information describing the average of
all hosts surveyed is sent to stderr on completion.
-q Quiet mode. Don't print non-fatal errors or the (c)
message.
-d Display only the first description in the port
1
STROBE 1.05(1) STROBE 1.05(1)
services entry file (Cf. -B).
-o file
Direct output (but not any messages which can be
affected by -q) to file.
-b number
Beginning (starting) port number.
-e number
Ending port number.
-p number
Port number if you intend to scan a single port.
-P number
Local port to bind outgoing connection requests to.
(you will normally need super-user privileges to
bind ports smaller than 1024)
-A address
Interface address to send outgoing connection
requests from for multi-homed machines.
-t number
Time after which a connection attempt to a com-
pletely unresponsive host/port is aborted.
-n number
Use this number of sockets in parallel (defaults to
64). strobe attempts to figure out if number is
greater than the quantity of available sockets at
any point in time -- and if so, only use the amount
found. On some UNIX implementations such as
Solaris, this appears not to work correctly and you
may find yourself with unusual errors such as NO
ROUTE TO HOST when you hit the socket ceiling.
Remember that strobe probably isn't the only pro-
cess on the system desiring a socket or two. Having
strobe pilfer all the spare sockets away from
inetd(8) and other daemons and clients isn't such a
crash hot idea, unless you want to stop all new
incoming and outgoing connections.
-S file
Change the default port services description file
to file. Note that if -S is not specified port
services are loaded from one of strobe.services,
/usr/local/lib/strobe.services, or /etc/services.
-i file
Obtain hostnames to strobe from file rather than
from the command line. Note that only the first
white-space separated word in each line of file is
2
STROBE 1.05(1) STROBE 1.05(1)
used, so one can feed in files such as /etc/hosts.
If filename is '-' , stdin will be used.
-l Probe hosts linearly (sequentially) rather than in
parallel. The actual ports on each host are still
checked in a parallel manner (with a parallelism of
-n (defaults to 64)).
-f Fast mode, probe only the tcp ports detailed in the
port services file (see -S).
-a number
Abort and skip to the next host after ports upto to
number have been probed and still no connections
have occurred. Due to the parallel nature of the
probing, reply packets for n+m may return before
those relating to n. What this means is that ports
> number may be probed. If strobe see's a connec-
tion on any one of these higher ports before its
negated all possibility of a service listening on
ports <= number then despite the fact that all
ports up to and including number may turn out to be
connectionless, strobe will `abort the abort'. This
is considered optimal, if unusual behaviour.
-M Mail a bug report, or tcp/udp port description to
the current source maintainer.
EXAMPLES
strobe -n 120 -a 80 -i /etc/hosts -s -f -V -S services -o
out
strobe all entries in /etc/hosts (identical ip addresses
are skipped automagically) using 120 sockets in parallel,
but only check the individual tcp ports mentioned in ser-
vices. If we have probed up to port 80 on a host and have
still not yet evidenced a connection, then skip that host.
Display speed/time statistics for each host and for the
totality of hosts to stderr. Place the regular output in
out.
ypcat hosts | strobe -p 80 -t 2 -A 203.4.184.1 -P 53
strobe all hosts in your hosts YP/NIS-table for WWW-
servers. Use a timeout of two seconds. Set the source
address to the 203.4.184.1 interface. Make all connection
requests appear to come from port 53 (DNS).
BUGS
Strobe performs no other security functions (yet) and does
not verify route blocking against UDP or TCP handshake
sequence guessing one-way IP spoofing attacks.
3
STROBE 1.05(1) STROBE 1.05(1)
AUTHOR
Julian Assange
EMAIL:
strobe@suburbia.net
proff@suburbia.net
OFFICAL DISTRIBUTION
ftp://suburbia.net:/pub/strobe.tgz
COPYRIGHT
Copyright (c) Julian Assange 1995-1999, All rights
reserved.
This software has only three copyright restrictions.
Firstly, this copyright notice must remain intact and
unmodified. Secondly, the Author, Julian Assange, must be
appropriately and prominantly credited in any documenta-
tion associated with any derived work. Thirdly unless
otherwise negotiated with the author, you may not sell
this program commercially, reasonable distribution costs
excepted.
Use and or distribution of this software implies accep-
tance of the above.
So there.
SEE ALSO
nslookup(1), host(1), dig(1), socket(2), bind(2), con-
nect(2), iss(1).
4