ISS(1) ISS(1)
NAME
iss - Internet Security Scanner
SYNOPSIS
iss [ -msrdyvpqefo ] #1 #2
DESCRIPTION
ISS Internet Security Scanner ( ISS ) is one of the first multi-level
security scanners available to the public. It was designed to be
flexible and easily portable to many unix platforms and do its job in
a reasonable amount of time. It provides information to the
administrator that will fix obvious security misconfigurations.
ISS does a multi-level scan of security, not just searching for one
weakness in the system. To provide this to the public or at least to
the security conscious crowd may cause people to think that it is too
dangerous for the public, but many of the (cr/h)ackers are already
aware of these security holes and know how to exploit them.
These security holes are not deep in some OS routines, but standard
misconfigurations that many domains on Internet tend to show. Many of
these holes are warned about in CERT and CIAC advisories. This is the
first release of ISS and there is still much room for improvement.
ISS is a project that I started as I became interested in security.
As I heard about (cr/h)ackers breaking into NASA and universities
around the world, I wanted to find out the deep secrets of security
and how these people were able to gain access to expensive machines
that I would think were secure. I searched Internet for relative
information, such as Phrack and CERT advisories.
Most information was vague and did not explain how intruders were able
to gain access to most systems. At most the information told
administrators to make password security tighter and to apply the
vendor's security patches. They lacked real information on how an
intruder would look at a site to try to gain access. Having talked
with security experts and reading CERT advisories, I started trying to
look for various security holes within my domain.
To my surprise, I noticed that many of machines were adequately
secured, but within a domain there remained enough machines with
obvious holes that anyone wanted into any machine could attack the
weak 'trusted' machine and from there could gain access to the rest of
the domain. From this project, I have not learned any new deep secret
to cracking systems, but with the right tools that most domains on
Internet are insecure. These holes will not be a surprise to any
advanced intruder, but with this tool administrators will be able to
quickly search for obvious holes and prepare to fix them.
OPTIONS
- 1 - Formatted: November 2, 2025
ISS(1) ISS(1)
-d Ignores Checking Default Logins such as sync.
-m Ignores checking for mail port.
-s xx number of seconds max to wait.
-r Ignores Checking for RPC calls.
-y Try to get pw via Ypx.
-v Ignores finding Mail Aliases for decode, guest, bbs, lp.
-p Scans one Host for all open TCP ports (disables all other
options).
-q Turns off Quick Scan so it finds hosts even with no name.
-e Only logs directories that can be mounted by everyone.
-f Ignores Checking FTP port for logging in as anonymous.
-o Changes logfile to something besides ISS.log.
#1 and #2 are the beginning and end of the domain address to scan.
ISS will scan a domain sequentially looking for connections. When it
finds a host it will try to connect to various ports. For starters,
it tries the telnet port. When it connects to the telnet port, it logs
any information that the host displays.
With the -d option, ISS ignores trying default accounts. By default,
ISS will then try to log in as 'sync' which is a common account name
for SunOS and other Unixes. It in itself is not a big hole other than
giving more information about type of OS, version number of OS, and
displaying the MOTD. But 'sync' with no password can become a
security hole as someone with a regular account on that host can
divert the 'sync' privileges and ultimately become root. The 'sync'
account should be passworded or disabled.
With the -m option, ISS ignores the mail port. By default, ISS tries
the mail port. Connecting to this provides information regarding the
hostname, type of OS it is, and even the version number of sendmail.
With the -v option, ISS wont check for mail aliases. By default, it
will check for various users and aliases. The obvious aliases to
search for is decode and uudecode. With these aliases, you are able
to send mail to decode@hostname with a file that has been uuencoded to
overwrite a systems file, such as .rhosts. Some of the users it looks
for is 'bbs','guest','lp', and the well known debug and wiz backdoors
within sendmail. 'bbs','guest', and 'lp' are known to have weak
passwords or no passwords at all.
- 2 - Formatted: November 2, 2025
ISS(1) ISS(1)
With the -f option, ISS wont check the FTP port. By default, it will
connect to the ftp port and check to see if a person can log into
anonymous. Many systems such as Macs let anyone log in and look around
other users' private information. If it succeeds logging in as
anonymous, it will then attempt to create a directory. If it does
that successfully, the main directory of the FTP site is writeable and
open to attack. Many anonymous ftp sites have security holes. Such
weaknesses is being able to write to the main directory of the ftp
directory, thus an intruder could write a .rhost file and log in as
ftp. Plus, the anonymous ftp site may contain the actual host's
password file and not just a dummy password file.
With the -r option, ISS ignores checking for rpc. By default, ISS will
look for holes that most systems are more prone to have open. It uses
rpc information to find security weaknesses. It will do a 'rpcinfo -p
hostname'. With this information gained, it finds which hosts are
running NIS, rexd, bootparam, whose on the host, selection_svc, and
NFS.
If a system shows YPServ, it is likely that it has not been patched
yet and with the proper domainname, ypserv will provide the password
file to any remote host asking for it. To fix this, apply the proper
ypserv patch from your vendor. ISS will attempt to guess the
domainname and that will provide information as to which machine is
the NIS server is. The domainname should be changed if it can easily
be guessed so that it will slow people from grabbing the password
file. Another attempt to fix this problem is to make sure that if the
password file does get out, none of the passwords can easily be
cracked. Crack (by Alec Muffett alecm@sun.com) does a fine job of
finding weak passwords. Also shadowing the password file will help
correct this weakness.
With the -y option and a program called Ypx (by Rob Nautu
rob@wzv.win.tue.nl), ISS will try to grab the password file from
ypserv.
If a system shows Select_svr, selection_svr is running on the machine
and there are known holes that let anyone remotely grab the password
file. Selection_svr should be disabled.
When Rexd is running on a remote system, anyone with a small C program
can emulate the 'on' command spoofing any user on the remote machine,
thus gaining access to the password file and adding .rhosts files.
Rexd should be disabled.
If a machine is running Bootparam, it is likely a server to diskless
clients. One problem with bootparam is that if it is running and
someone can guess which machines the client and servers are, they are
able to get the domainname from bootparam, which goes back to the
YPServ problem.
- 3 - Formatted: November 2, 2025
ISS(1) ISS(1)
The -e option will only log exports that everyone can mount. To
usually find out which machines are its clients, by default, log all
the exportable directories. 'showmount -e hostname' shows the exports
on a remote host. If the exported directories look like:
/usr (everyone)
/export/placebo placebo
/export/spiff spiff
Anyone can mount /usr and possible replace files and do other damage.
Placebo and spiff appear to be clients to this server.
ISS also does a 'rusers -l hostname' searching for users on the
system. That provides how busy is the machine and possible login
entries to try.
ISS with option -p will support scanning all the ports on a certain
host, thus looking for possible access entries, such as gophers, muds,
and other applications ran by local users. This has not been
implemented yet.
ISS will quickly scan the domain. It does not try to connect to every
address, but rather scans through doing a name lookup for each
address. And if that address has a name, it will then do a more
thorough lookup of information on that host. With the -q option, it
will try to connect to hosts even without names.
To sum it up, ISS will scan a domain grabbing essential information
for administrators to easily sort through and give him a chance to
secure the open machines on his network.
ACKNOWLEDGEMENTS
I would like to thank the following people for ideas, suggestions, and
help: Scott Miles, Dan Farmer, Wietse Venema, Alec Muffett, Scott
Yelich, Darren Reed, and Tim Newsham.
ENHANCEMENTS
Please send suggestions to
cklaus@hotsun.nersc.gov
or
coup@gnu.ai.mit.edu.
COPYRIGHT
Copyright (c) Christopher Klaus, 1992, 1993. (cklaus@hotsun.nersc.gov
or coup@gnu.ai.mit.edu)
BUGS
- 4 - Formatted: November 2, 2025
ISS(1) ISS(1)
May not be ready to compile on machines beside SunOs.
- 5 - Formatted: November 2, 2025