HostedDB - Dedicated UNIX Servers

-->
Internet Security Professional Reference:SATAN and the Internet
Previous Table of Contents Next


Getting SATAN

SATAN is available from the following sites:

  ftp://ftp.mcs.anl.gov/pub/security/satan-1.1.1.tar.Z
  ftp://coast.cs.purdue.edu/pub/tools/unix/satan
  ftp://vixen.cso.uiuc.edu/security/satan-1.1.1.tar.Z
  ftp://ftp.denet.dk/pub/security/tools/satan/satan-1.1.1.tar.Z
  ftp://ftp.luth.se/pub/unix/security/satan-1.1.1.tar.Z
  ftp://ftp.acsu.buffalo.edu/pub/security/satan-1.1.1.tar.Z
  ftp://ftp.acsu.buffalo.edu/pub/security/satan-1.1.1.tar.gz
  ftp://ftp.net.ohio-state.edu/pub/security/satan/satan-1.1.1.tar.Z
  ftp://ftp.cerf.net/pub/software/unix/security/satan/
  ftp://coombs.anu.edu.au/pub/security/satan/
  ftp://ftp.wi.leidenuniv.nl/pub/security/
  ftp://ftp.cs.ruu.nl/pub/SECURITY/satan-1.1.1.tar.Z
  ftp://ftp.cert.dfn.de/pub/tools/net/satan/satan-1.1.1.tar.gz
  ftp://cnit.nsk.su/pub/security/satan/satan-1.1.1.tar.Z
  ftp://ftp.orst.edu/pub/packages/satan/satan-1.1.1.tar.Z
  ftp://ciac.llnl.gov/pub/ciac/sectools/unix/satan/satan-1.1.1.tar.Z
  ftp://ftp.nvg.unit.no/pub/security/tue/satan-1.1.1.tar.Z
  ftp://ftp.win.tue.nl/pub/security/satan-1.1.1.tar.Z

After you have downloaded SATAN to your system via ftp, use uncompress satan-1.1.1.tar.Z (or compress -d) and then tar xvf satan-1.1.1.tar to extract all the SATAN files.

At this point, the SATAN directory should look like this:

Changes    TODO       html/      perllib/   rules/     satan.ps
Makefile*  bin/       include/   reconfig*  satan      src/
README     config/    perl/      repent*    satan.8

Examining the SATAN Files

A more detailed look at the files and directories included in the SATAN distribution provides an insight into how SATAN works and how it can be extended.

The satan-1.1.1 Directory

The top-level directory contains the following programs:

  Makefile: Compiles the C programs in the src directory
  satan: The master SATAN program, written in PERL
  README: A one-page guide to getting SATAN running
  TODO: Wish list for future enhancements
  satan.8: A man page for the command-line version of SATAN
  satan.ps: A drawing of the SATAN character
  reconfig: Fixes pathnames using file.paths, PERL location
  repent: Changes all occurrences of SATAN to SANTA
  Changes: List of changes to SATAN program

Note that SATAN creates a satan-1.1.1/results directory to store the results. This directory is only root searchable and readable.

The include Directory

The include directory is created only for Linux. Some distributions of Linux require the 44BSD /usr/include/netinet files to compile. SATAN creates the following two directories but does not put any files into them. If the top-level make for Linux is unable to find ip.h, it assumes that all the netinet files are missing and tells the user to put the netinet files from 44BSD into the following directory:

  include/netinet/

The rules Directory

The rules directory is critical to the functioning of SATAN. It includes the inference rules that govern the future actions of SATAN, based on previous results, as well as making assumptions based on information gathering. It includes the following files:

  rules/facts: Deduces new facts based on existing data
  rules/hosttype: Recognizes hosts based on banners
  rules/services: Classifies host by available services
  rules/todo: Specifies what rules to try next
  rules/trust: Classifies trust based on the database records
  rules/drop: Specifies which facts to ignore, such as NFS export cdroms

The config Directory

SATAN users need to customize the pathnames to system utilities in the appropriate files in the config directory. In addition, the SATAN configuration file, satan.cf, is located here. This configuration file controls the default behavior of SATAN, indicating the scan type, the content of each scan, the proximity search variables, and timeouts.

This directory includes the following files:

  config/paths.pl: Path variables for PERL files
  config/paths.sh: Path variables for shell execution
  config/satan.cf: SATAN configuration file
  config/version.pl: SATAN version file
  config/services: An /etc/services file, just in case

The PERLlib Directory

The PERLlib directory includes two files from the PERL5.000 distribution that are sometimes not included on all PERL5.000 FTP sites. Just in case, SATAN includes them in this directory. It includes the following files:

  PERLlib/ctime.pl: Includes time functions
  PERLlib/getopts.pl: Gets command-line options
  PERLlib/README: Explains why these PERL files are included

The bin Directory

The bin directory contains the actual executables used by SATAN to investigate remote systems. After the top-level make is executed, all the binaries resulting from builds in the src directory are deposited into this directory. All the distributed .satan files are PERL scripts, and many of them invoke the binaries resulting from src/ builds. Each .satan executable generates a SATAN database record if it finds a piece of information about the remote host.

SATAN refers to each .satan program as a tool. Users can execute each of these PERL scripts by hand to investigate the particular vulnerabilities. Many of them include verbose (-v) options to indicate exactly what they are doing. Users who wish to add extra security checks can create similar files and place them here with the .satan extension.


Previous Table of Contents Next