cached gcc checking whether the C compiler gcc I/usr/local/include L/usr/local/lib works.... -O2 -DHAVE_CONFIG_H -c version.c ar rc libpcap.a pcap-linux.o pcap.o inet.o gencode.o optimiz
Trang 1Directory and file names:
—prefix=PREFIX install architecture-independent files in
—bindir=DIR user executables in DIR [EPREFIX/bin]
—sbindir=DIR system admin executables in DIR
[EPREFIX/sbin]
—libexecdir=DIR program executables in DIR [EPREFIX/libexec]
—datadir=DIR read-only architecture-independent data in
—libdir=DIR object code libraries in DIR [EPREFIX/lib]
—includedir=DIR C header files in DIR [PREFIX/include]
—oldincludedir=DIR C header files for non-gcc in DIR
[/usr/include]
—infodir=DIR info documentation in DIR [PREFIX/info]
—mandir=DIR man documentation in DIR [PREFIX/man]
—srcdir=DIR find the sources in DIR [configure dir or ]
—program-prefix=PREFIX prepend PREFIX to installed program names
—program-suffix=SUFFIX append SUFFIX to installed program names
—program-transform-name=PROGRAM
run sed PROGRAM on installed program names Host type:
—build=BUILD configure for building on BUILD [BUILD=HOST]
—host=HOST configure for HOST [guessed]
—target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
—disable-FEATURE do not include FEATURE (same as
—enable-FEATURE=no)
—enable-FEATURE[=ARG] include FEATURE [ARG=yes]
—with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
—without-PACKAGE do not use PACKAGE (same as —with-PACKAGE=no)
—x-includes=DIR X include files are in DIR
—x-libraries=DIR X library files are in DIR
—enable and —with options recognized:
—with-libpcap[=DIR] Look for pcap include/libs in DIR
—with-libnbase=DIR Look for nbase include/libs in DIR
[root@NIX1 nmap-2.54BETA34]#
Complete this step by issuing the configure command, shown here:
Trang 2# /configure
[root@NIX1 nmap-2.54BETA34]# /configure
loading cache /config.cache
checking for gcc (cached) gcc
checking whether the C compiler (gcc I/usr/local/include L/usr/local/lib) works yes
checking whether the C compiler (gcc I/usr/local/include L/usr/local/lib) is a cross-compiler no
-checking whether we are using GNU C (cached) yes
checking whether gcc accepts -g (cached) yes
checking host system type i686-pc-linux-gnu
checking for main in -lm (cached) yes
checking for gethostent (cached) yes
checking for setsockopt (cached) yes
checking for nanosleep (cached) yes
checking how to run the C preprocessor (cached) gcc -E
checking for pcap.h (cached) no
checking for ANSI C header files (cached) yes
checking for string.h (cached) yes
checking for getopt.h (cached) yes
checking for strings.h (cached) yes
checking for memory.h (cached) yes
checking for sys/param.h (cached) yes
checking for sys/sockio.h (cached) no
checking for netinet/if_ether.h (cached) yes
checking for bstring.h (cached) no
checking for sys/time.h (cached) yes
checking for pwd.h (cached) yes
checking for unistd.h (cached) yes
checking whether time.h and sys/time.h may both be included (cached) yes
———————————— Snipped for brevity ————————————
checking for gcc (cached) gcc
checking whether the C compiler (gcc ) works yes
checking whether the C compiler (gcc ) is a cross-compiler no checking whether we are using GNU C (cached) yes
checking whether gcc accepts -g (cached) yes
checking for gtk-config (cached) /usr/bin/gtk-config
checking for GTK - version >= 1.0.0 yes
creating /config.status
creating Makefile
[root@NIX1 nmap-2.54BETA34]#
N OT E You’ll need root privileges to complete the installation If you’ve logged
in with a user account, simply issue the su command and enter the root word to grant these privileges.
Trang 3Step 6. Build and install the package by issuing the make command, shown here:
gcc -I -O2 -DHAVE_CONFIG_H -c /pcap-linux.c
gcc -I -O2 -DHAVE_CONFIG_H -c /pcap.c
gcc -I -O2 -DHAVE_CONFIG_H -c /inet.c
gcc -I -O2 -DHAVE_CONFIG_H -c /gencode.c
gcc -I -O2 -DHAVE_CONFIG_H -c /optimize.c
gcc -I -O2 -DHAVE_CONFIG_H -c /nametoaddr.c
gcc -I -O2 -DHAVE_CONFIG_H -c /etherent.c
gcc -I -O2 -DHAVE_CONFIG_H -c /savefile.c
rm -f bpf_filter.c
ln -s /bpf/net/bpf_filter.c bpf_filter.c
gcc -I -O2 -DHAVE_CONFIG_H -c bpf_filter.c
gcc -I -O2 -DHAVE_CONFIG_H -c /bpf_image.c
gcc -I -O2 -DHAVE_CONFIG_H -c /bpf_dump.c
gcc -I -O2 -DHAVE_CONFIG_H -c scanner.c
gcc -I -O2 -DHAVE_CONFIG_H -Dyylval=pcap_lval -c grammar.c
sed -e ‘s/.*/char pcap_version[] = “&”;/’ /VERSION > version.c
gcc -I -O2 -DHAVE_CONFIG_H -c version.c
ar rc libpcap.a pcap-linux.o pcap.o inet.o gencode.o optimize.o
nametoaddr.o etherent.o savefile.o bpf_filter.o bpf_image.o bpf_dump.o scanner.o grammar.o version.o
make[1]: Entering directory ’/home/nmap-2.54BETA34/nbase’
gcc I/usr/local/include Wall g DHAVE_CONFIG_H
-DNCRACK_VERSION=\”\” -DHAVE_CONFIG_H=1 -c -o snprintf.o snprintf.c
gcc I/usr/local/include Wall g DHAVE_CONFIG_H
-DNCRACK_VERSION=\”\” -DHAVE_CONFIG_H=1 -c -o nbase_str.o
nbase_str.c
gcc I/usr/local/include Wall g DHAVE_CONFIG_H
-DNCRACK_VERSION=\”\” -DHAVE_CONFIG_H=1 -c -o nbase_misc.o
make[1]: Leaving directory ’/home/nmap-2.54BETA34/nbase’
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” -
DNMAP_URL=\”www.insecure.org/nmap/\”
-DNMAP_PLATFORM=\”i686-pc-linux-gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o main.o main.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase
Trang 4-DNMAP_URL=\”www.insecure.org/nmap/\” gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\” -Ilibpcap-
-DNMAP_PLATFORM=\”i686-pc-linux-possiblymodified -c -o nmap.o nmap.c
nmap.c: In function ’parse_scanflags’:
nmap.c:69: warning: implicit declaration of function ’strcasestr’ gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o targets.o targets.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o tcpip.o tcpip.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o nmap_error.o nmap_error.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o utils.o utils.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o idle_scan.o idle_scan.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o osscan.o osscan.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o output.o output.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o scan_engine.o scan_engine.c gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” - DNMAP_URL=\”www.insecure.org/nmap/\” -DNMAP_PLATFORM=\”i686-pc-linux- gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o timing.o timing.c
Trang 5DHAVE_CONFIG_H DNMAP_VERSION=\”2.54BETA34\” DNMAP_NAME=\”nmap\”
-DNMAP_URL=\”www.insecure.org/nmap/\”
-DNMAP_PLATFORM=\”i686-pc-linux-gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o charpool.o charpool.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” -
DNMAP_URL=\”www.insecure.org/nmap/\”
-DNMAP_PLATFORM=\”i686-pc-linux-gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o services.o services.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” -
DNMAP_URL=\”www.insecure.org/nmap/\”
-DNMAP_PLATFORM=\”i686-pc-linux-gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o protocols.o protocols.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” -
DNMAP_URL=\”www.insecure.org/nmap/\”
-DNMAP_PLATFORM=\”i686-pc-linux-gnu\” -DNMAPDATADIR=\”/usr/local/share/nmap\”
-Ilibpcap-possiblymodified -c -o nmap_rpc.o nmap_rpc.c
gcc -g -I/usr/local/include -Wall -Ilibpcap-possiblymodified -Inbase -DHAVE_CONFIG_H -DNMAP_VERSION=\”2.54BETA34\” -DNMAP_NAME=\”nmap\” -
gcc -Llibpcap-possiblymodified -L/usr/local/lib -Lnbase -o nmap
main.o nmap.o targets.o tcpip.o nmap_error.o utils.o idle_scan.o
osscan.o output.o scan_engine.o timing.o charpool.o services.o
protocols.o nmap_rpc.o portlist.o -lm -lnbase -lpcap
FAILURES HERE ARE OK — THEY JUST MEAN YOU CANNOT USE nmapfe
cd nmapfe; test -f Makefile && make VERSION=0.2.54BETA34 STATIC=;
make[1]: Entering directory ’/home/nmap-2.54BETA34/nmapfe’
gcc g O2 I/usr/include/gtk1.2 I/usr/include/glib1.2
I/usr/lib/glib/include I/usr/X11R6/include Wall I /nbase
-DVERSION=\”0.2.54BETA34\” -DHAVE_CONFIG_H=1 -I -c nmapfe.c
gcc g O2 I/usr/include/gtk1.2 I/usr/include/glib1.2
I/usr/lib/glib/include I/usr/X11R6/include Wall I /nbase
-DVERSION=\”0.2.54BETA34\” -DHAVE_CONFIG_H=1 -I -c nmapfe_sig.c
gcc g O2 I/usr/include/gtk1.2 I/usr/include/glib1.2
I/usr/lib/glib/include I/usr/X11R6/include Wall I /nbase
-DVERSION=\”0.2.54BETA34\” -DHAVE_CONFIG_H=1 -I -c nmapfe_error.c
gcc g O2 I/usr/include/gtk1.2 I/usr/include/glib1.2
I/usr/lib/glib/include I/usr/X11R6/include Wall I /nbase
-DVERSION=\”0.2.54BETA34\” -DHAVE_CONFIG_H=1 -I -L /nbase -o
nmapfe nmapfe.o nmapfe_sig.o nmapfe_error.o L/usr/lib
L/usr/X11R6/lib lgtk lgdk rdynamic lgmodule lglib ldl lXi
-lXext -lX11 -lm -lnbase
make[1]: Leaving directory ’/home/nmap-2.54BETA34/nmapfe’
END OF SECTION WHERE FAILURES ARE OK
Trang 6N OT E Advanced users can optionally edit the makefile with vi Makefile.
Other Installations
To install the X86/RPM version, use the following syntax:
rpm -vhU http://download.insecure.org/nmap/dist/nmap-2.53-1.i386.rpm rpm -vhU http://download.insecure.org/nmap/dist/nmap-frontend-
0.2.53-1.i386.rpm
For Mac OS X Users
Before using some of the tools in this part, one of them being Nmap, you’ll have to enablethe root account on your Mac OS X operating system To do so, follow these simple steps:
Step 1. From Finder/Go, click Applications
Step 2. Click to open the Utilities folder
Step 3. Click to open the NetInfo Manager application
Step 4. From the menu, click to select Domain/Security/Authenticate and enter
an administrator’s name and password in the dialog; then click on the OK button
Step 5. Select from the menu Domain/Security/Enable Root User
N OT E You may be required to enter a password for the root user
Step 6. Modify the path so that some of the scanners can locate Nmap on yourMac OS X system The easiest way to view the current path on your system is
to issue the $PATH command at the terminal prompt, as shown here:
[] tiger1% $PATH
/Users/tiger1/bin/powerpc-apple-darwin:/Users/tiger1/bin:/usr/local /bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:
You should also see the path, along with other useful information, by issuing theset command:
Trang 7path (~/bin/powerpc-apple-darwin /Users/tiger1/bin
/usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin
Trang 8Among the easiest techniques for temporarily modifying your path to include thelocations for Nmap is to issue the set command, as follows:
set path=($path /Users/your-login-name/nmap-2.54BETA34 /Users /your-login-name/Netscape)
To verify the modification, issue the $PATH command once more, as shown here:
[] tiger1% $PATH /Users/tiger1/bin/powerpc-apple-darwin:/Users/tiger1/bin:/usr/local /bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/Users/tiger1 /nmap-2.54BETA34:/Users/tiger1/Netscape:
N OT E A Mac OS X front end for Nmap known as XNmap is available at
www.homepage.mac.com/natritmeyer According to that site, to enable features that require root privileges using XNmap, follow these steps:
1 Open the terminal and navigate inside xnmap.app to the Resources folder.
2 Type su
3 Type your root password.
4 Type chown root.wheel nmap.
5 Type chmod u+s nmap.
6 Type exit.
O N T H E C D The CD-ROM that accompanies this book contains hands-on simulations of the remaining sections in this chapter These simulations are found at CDDrive:\Simulations\UNIX\Nmap.
Using Nmap
Let’s further explore port scanning using Nmap with the most common probing niques With the different combinations of scan types and options, there are countlessuses of this product; we’ll look at those most popular basic uses here The followingsyntax is consistent for both the *NIX and the Windows version of Nmap:
tech-nmap V 2.53 Usage: tech-nmap [Scan Type(s)] [Options] <host or net list> Common Scan Types:
-sT TCP connect() port scan The default.
-sS TCP SYN stealth port scan Best all-around TCP scan.
-sU UDP port scan
382 Chapter 12
Team-Fly®
Trang 9-sP ping scan Find any reachable machines.
-sF,-sX,-sN Stealth FIN, Xmas, or Null scan For experts only.
-sR/-I RPC/Identd scan Use with other scan types.
Common Options (none is required; most can be combined):
-O Use TCP/IP fingerprinting to guess remote operating system.
-p <range> ports to scan Example range: 1-1024,1080,6666,31337.
-F Only scans ports listed in nmap-services.
-v Verbose Its use is recommended Use twice for greater effect.
-P0 Don’t ping hosts (needed to scan www.microsoft.com and others).
-Ddecoy_host1,decoy2[, ] Hide scan using many decoys.
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing
policy.
-n/-R Never do DNS resolution/Always resolve (default: sometimes
resolve).
-oN/-oM <logfile> Output normal/machine parseable scan logs to
<logfile>.
-iL <inputfile> Get targets from file; Use ‘-’ for stdin.
-S <your_IP>/-e <devicename> Specify source address or network
interface.
TCP Scanning
This method is the most basic form of scanning With it you attempt to open a full TCP port connection to determine whether that port is active or listening We’ll perform, by using Nmap, a typical TCP scan to illustrate this method’s output, as follows:
Syntax: nmap -sT -v 192.168.0.48
Host (192.168.0.48) appears to be up good.
Initiating Connect() Scan against (192.168.0.48)
Adding TCP port 1032 (state open).
Adding TCP port 53 (state open).
Adding TCP port 139 (state open).
Adding TCP port 135 (state open).
Adding TCP port 70 (state open).
Adding TCP port 42 (state open).
Adding TCP port 81 (state open).
Adding TCP port 21 (state open).
The Connect() Scan took 0 seconds to scan 1542 ports Interesting ports
on (192.168.0.48): (The 1534 ports scanned but not shown below are in
state: closed)
Port State Service
21/tcp open ftp
42/tcp open nameserver
53/tcp open domain
70/tcp open gopher
81/tcp open hosts2-ns
135/tcp open loc-srv
139/tcp open netbios-ssn
Trang 10UDP Scanning
Although less complex than TCP scanning, this method is actually much more diffi-cult Open ports don’t have to send an acknowledgment in response to your probe, and closed ports aren’t even required to send an error packet Fortunately, most hosts do send an ICMP_PORT_UNREACH error when you send a packet to a closed UDP port Thus you can determine whether a port is closed and, by exclusion, which ports are open The following is a typical UDP scan to illustrate this method’s output:
Syntax: nmap -sU -v 192.168.0.48
Host (192.168.0.48) appears to be up good.
Initiating UDP Scan against (192.168.0.48)
The UDP Scan took 4 seconds to scan 1453 ports.
Interesting ports on (192.168.0.48):
(The 1448 ports scanned but not shown below are in
state: closed)
Port State Service
42/udp open nameserver
53/udp open domain
135/udp open loc-srv
137/udp open netbios-ns
138/udp open netbios-dgm
Half-Open (Stealth) Scanning
This technique is called half-open, or stealth, scanning because it does not require you to
open a full TCP connection You send a SYN packet as if you were going to open a real connection; then you wait for a response A SYN-ACK indicates that the port is listen-ing Therefore, an RST response is indicative of a nonlistener If a SYN-ACK is received, you would immediately send an RST to tear down the connection The primary advan-tage of this scanning method is that fewer sites will log it We’ll perform a half-open scan to illustrate this method’s output:
Syntax: nmap -sS -v 192.168.0.48
Host (192.168.0.48) appears to be up good.
Initiating SYN Stealth Scan against (192.168.0.48)
Adding TCP port 21 (state open).
Adding TCP port 81 (state open).
Adding TCP port 139 (state open).
Adding TCP port 1032 (state open).
Adding TCP port 135 (state open).
Adding TCP port 42 (state open).
Adding TCP port 70 (state open).
Adding TCP port 53 (state open).
The SYN Stealth Scan took 0 seconds to scan 1542
ports.
Trang 11(The 1534 ports scanned but not shown below are in
state: closed)
Port State Service
21/tcp open ftp
42/tcp open nameserver
53/tcp open domain
70/tcp open gopher
81/tcp open hosts2-ns
135/tcp open loc-srv
139/tcp open netbios-ssn
1032/tcp open iad3
Operating System Fingerprinting
The main purpose of a site query, or operating system fingerprinting, is to take the guesswork out of additional target node discovery by using techniques to complete an information query based on a given address or hostname in regard to its operating sys-tem type The output should display current types and versions for a target’s operat-ing system, possibly savoperat-ing hours of information discovery Nmap includes routines for remote operating system detection via TCP/IP stack fingerprinting
An excellent paper on remote operating system detection, written by Fyodor of insecure.org, is available at www.insecure.org/nmap/nmap-fingerprinting-article.html The following is an extract on fingerprinting methodologies and Nmap:
There are many, many techniques that can be used to fingerprint
networking stacks Basically, you just look for things that differ
among operating systems and write a probe for the difference If you
combine enough of these, you can narrow down the OS very tightly For
example nmap can reliably distinguish Solaris 2.4 versus Solaris 2.5-2.51
versus Solaris 2.6 It can also tell Linux kernel 2.0.30 from 2.0.31-34
or 2.0.35 Here are some techniques:
The FIN Probe. Here we send a FIN packet (or any packet without an
ACK or SYN flag) to an open port and wait for a response The
correct RFC793 behavior is to not respond, but many broken
implementations such as MS Windows, BSDI, CISCO, HP/UX, MVS, and
IRIX send a RESET back Most current tools utilize this
technique.
The BOGUS Flag Probe. Queso is the first scanner I have seen to use
this clever test The idea is to set an undefined TCP “flag” (64
or 128) in the TCP header of a SYN packet Linux boxes prior to
2.0.35 keep the flag set in their response I have not found any
other OS to have this bug However, some operating systems seem
to reset the connection when they get a SYN+BOGUS packet This
behavior could be useful in identifying them.
Trang 12TCP ISN Sampling. The idea here is to find patterns in the initial
sequence numbers chosen by TCP implementations when responding to
a connection request These can be categorized in to many groups
such as the traditional 64K (many old UNIX boxes), random
increments (newer versions of Solaris, IRIX, FreeBSD, Digital
UNIX, Cray, and many others), True “random” (Linux 2.0.*, OpenVMS, newer AIX, etc) Windows boxes (and a few others) use a “time
dependent” model where the ISN is incremented by a small fixed
amount each time period Needless to say, this is almost as
easily defeated as the old 64K behavior Of course, my favorite
technique is “constant.” The machines always use the exact same
ISN) I’ve seen this on some 3Com hubs (uses 0x803) and Apple
LaserWriter printers (uses 0xC7001).
You can also subclass groups such as random incremental by
computing variances, greatest common divisors, and other functions
on the set of sequence numbers and the differences between the
numbers It should be noted that ISN generation has important security implications For more information on this, contact “security
expert” Tsutomu “Shimmy” Shimomura at SDSC and ask him how he was owned Nmap is the first program I have seen to use this for OS
identification.
Don’t Fragment Bit. Many operating systems are starting to set the
IP “Don’t Fragment” bit on some of the packets they send This
gives various performance benefits (though it can also be annoying— this is why nmap fragmentation scans do not work from Solaris
boxes) In any case, not all OSs do this, and some do it in
different cases, so by paying attention to this bit we can glean
even more information about the target OS I haven’t seen this
one before either.
TCP Initial Window. This simply involves checking the window size on returned packets Older scanners simply used a nonzero window on
a RST packet to mean “BSD 4.4 derived.” Newer scanners such as queso and nmap keep track of the exact window since it is actually
pretty constant by OS type This test actually gives us a lot of
information, since some operating systems can be uniquely
identified by the window alone (for example, AIX is the only OS I
have seen that uses 0x3F25) In their “completely rewritten”
TCP stack for NT5, Microsoft uses 0x402E Interestingly, that is
exactly the number used by OpenBSD and FreeBSD.
ACK Value. Although you would think this would be completely
standard, implementations differ in which value they use for the
ACK field in some cases For example, let’s say you send a
Trang 13FIN|PSH|URG to a closed TCP port Most implementations will set
the ACK to be the same as your initial sequence number, though
Windows and some stupid printers will send your seq + 1 If you
send a SYN|FIN|URG|PSH to an open port, Windows is very
inconsistent Sometimes it sends back your seq, other times it
sends S++, and still other times it sends back a seemingly random
value One has to wonder what kind of code MS is writing that
changes its mind like this.
ICMP Error Message Quenching. Some (smart) operating systems follow
the RFC1812 suggestion to limit the rate at which various error
messages are sent For example, the Linux kernel (in
net/ipv4/icmp.h) limits destination unreachable message generation
to 80 per 4 seconds, with a 1/4 second penalty if that is
exceeded One way to test this is to send a bunch of packets to
some random high UDP port and count the number of unreachables
received I have not seen this used before, and in fact I have
not added this to nmap (except for use in UDP port scanning).
This test would make the OS detection take a bit longer since you
need to send a bunch of packets and wait for them to return Also,
dealing with the possibility of packets dropped on the network
would be a pain.
ICMP Message Quoting. The RFCs specify that ICMP error messages
quote some small amount of an ICMP message that causes various
errors For a port unreachable message, almost all
implementations send only the required IP header + 8 bytes back.
However, Solaris sends back a bit more, and Linux sends back even
more than that The beauty of this is it allows nmap to
recognize Linux and Solaris hosts even if they don’t have any
ports listening.
ICMP Error Message Echoing Integrity. I got this idea from something
Theo De Raadt (lead OpenBSD developer) posted to
comp.security.unix As mentioned before, machines have to send
back part of your original message along with a port unreachable
error Yet some machines tend to use your headers as “scratch
space” during initial processing and so they are a bit warped by
the time you get them back For example, AIX and BSDI send back an
IP “total length” field that is 20 bytes too high Some BSDI,
FreeBSD, OpenBSD, ULTRIX, and VAXen f*** up the IP ID that you sent
them While the checksum is going to change due to the changed
TTL anyway, there are some machines (AIX, FreeBSD, etc.) that send
back an inconsistent or 0 checksum Same thing goes with the UDP
checksum All in all, nmap does nine different tests on the ICMP
errors to sniff out subtle differences like these.
Trang 14Type of Service. For the ICMP port unreachable messages I look at
the type of service (TOS) value of the packet sent back Almost
all implementations use 0 for this ICMP error, although Linux uses 0xC0 This does not indicate one of the standard TOS values, but instead is part of the unused (AFAIK) precedence field I do not know why
this is set, but if they change to 0, we will be able to keep
identifying the old versions and we will be able to identify
between old and new.
Fragmentation Handling. This is a favorite technique of Thomas
H Ptacek of Secure Networks, Inc (now owned by a bunch of Windows users at NAI) This takes advantage of the fact that different
implementations often handle overlapping IP fragments differently Some will overwrite the old portions with the new, and in other
cases the old stuff has precedence There are many different
probes you can use to determine how the packet was reassembled I did not add this capability since I know of no portable way to send
IP fragments For more information on overlapping fragments,
you can read their IDS paper (www.secnet.com).
TCP Options. These are truly a gold mine in terms of leaking
information The beauty of these options is that:
1. They are generally optional (duh!), so not all hosts implement them.
2. You know if a host implements them by sending a query with an option set The target generally shows support of the option by
setting it on the reply.
3. You can stuff a whole bunch of options on one packet to test
everything at once
Nmap sends these options along with almost every probe packet:
Window Scale = 10; NOP; Max Segment Size = 265;
Timestamp; End of Ops;
When you get your response, you take a look at which options were returned and thus are supported Some operating systems, such as recent FreeBSD boxes, support all of the above, while others, such
as Linux 2.0.X support very few The latest Linux 2.1.x kernels
do support all of the above On the other hand, they are more
vulnerable to TCP sequence prediction Go figure.
Even if several operating systems support the same set of options,
you can sometimes distinguish them by the values of the options.
For example, if you send a small MSS value to a Linux box, it will
Trang 15generally echo that MSS back to you Other hosts will give you
different values.
And even if you get the same set of supported options and the same
values, you can still differentiate via the order that the
options are given, and where padding is applied For example,
Solaris returns “NNTNWME,” which means:
<no op><no op><timestamp><no op><window scale><echoed MSS>
while Linux 2.1.122 returns MENNTNW Same options, same values,
but different order!
I have not seen any other OS detection tools utilize TCP options,
but it is very useful.
There are a few other useful options I might probe for at some point,
such as those that support T/TCP and selective acknowledgments
Exploit Chronology. Even with all the tests above, nmap is unable to
distinguish between the TCP stacks of Win95, WinNT, or Win98.
This is rather surprising, especially since Win98 came out about four
years after Win95 You would think they would have bothered to
improve the stack in some way (like supporting more TCP options)
and so we would be able to detect the change and distinguish the
operating systems Unfortunately, this is not the case The NT
stack is apparently the same crappy stack they put into ‘95 And
they didn’t bother to upgrade it for ‘98.
But do not give up hope, for there is a solution You can simply
start with early Windows DOS attacks (Ping of Death, Winnuke, etc.)
and move up a little further to attacks such as Teardrop and Land.
After each attack, ping them to see whether they have crashed.
When you finally crash them, you will likely have narrowed what
they are running down to one service pack or hotfix I have not added this
functionality to nmap, although I must admit it is very tempting.
SYN Flood Resistance. Some operating systems will stop accepting new
connections if you send too many forged SYN packets at them
(forging the packets avoids trouble with your kernel resetting the
connections) Many operating systems can only handle eight packets.
Recent Linux kernels (among other operating systems) allow
various methods such as SYN cookies to prevent this from being a
serious problem Thus you can learn something about your target
Trang 16OS by sending eight packets from a forged source to an open port and
then testing whether you can establish a connection to that port
yourself This was not implemented in nmap since some people get
upset when you SYN flood them Even explaining that you were
simply trying to determine which OS they are running might not help
calm them.
Let’s look at an example of operating system fingerprinting in which we’ll useNmap with the -O option We’ll also use the -sS argument to perform a SYN stealthscan; however, since our host filters ICMP echo requests, we’ll opt not to ping by using-P0 Figure 12.2 is a snapshot of the same scan using the front-end GUI:
Syntax: nmap -sS -O -P0 192.168.0.17
Starting nmap V 2.54BETA31 ( www.insecure.org/nmap/ )
Interesting ports on (192.168.0.17):
(The 1551 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
111/tcp open sunrpc
6000/tcp open X11
Remote operating system guess: Linux Kernel 2.4.0 - 2.4.17 (X86)
Uptime 0.004 days (since Fri Jun 7 10:25:58 2002)
Nmap run completed 1 IP address (1 host up) scanned in 7 seconds
Figure 12.2 Using the Nmap front end.
Trang 17Mixing It Up
Nmap also supports a number of performance and reliability features, such as dynamicdelay time calculations, packet time-out and retransmission, parallel port scanning, anddetection of down hosts via parallel pings Nmap also offers flexible target and portspecification, decoy scanning, determination of TCP sequence predictability, character-istics, and output to machine-perusable or human-readable log files
With that said, you can also mix and match the Nmap options For example, take alook at the following syntax:
nmap -v -v -sS -O 172.16.22.1-50
The above syntax will initiate Nmap with maximum output verbosity, in a stealthmode scan, plus operating system detection on all (live) systems between 172.16.22.1and 172.16.22.50
As another example, take a look at the following syntax:
nmap -sS -p 21,80 -oN webservices.log 172.16.22.1-50
The above syntax will have Nmap search for systems offering the Web services, FTPand HTTP, in stealth mode between IP addresses 172.16.22.1 and 172 What’s more, theoutput will be ported to a log file, webservices.log
Nmap has become a defacto standard for security auditing, especially with thenewest flavors for Windows and Mac OS X platforms For more information anddownload links on these, visit www.TigerTools.net on the Web
Trang 18TE AM
Team-Fly®
Trang 19SAINT Corporation describes its Security Administrator Integrated Network Tool(SAINT) (www.saintcorporation.com/saint/downloads/) as an updated,enhanced version of the Security Administrator Tool for Analyzing Networks(SATAN), a program written by Dan Farmer and Weite Vegema to recognize and reportcommon networking-related security problems SAINT is designed to assess the secu-rity of computer networks and features an intuitive, easy-to-use GUI Also, it candetect what the SANS Institute and the National Infrastructure Protection Center(NIPC) consider, based on research from thousands of companies and organizations,the most critical of Internet security vulnerabilities
N OT E Information Securitymagazine named SAINT network security products
among the finalists for its 2002 Information Security Excellence Awards, which
annually recognize the IT security industry’s leading products as voted by the
magazine’s subscribers
System Requirements
The following are the minimum system requirements for SAINT:
■■ SunOS 4.1.3_U1, SunOS 5.3 to 5.6 (Solaris 2.3 to 2.6), Irix 5.3 to 6.5.8, HP-UX
10.20 to 11.00, Linux, FreeBSD 4, OpenBSD, other SunOS versions, other Irix
versions, other HP-UX versions, other BSD types, AIX, System V Release 4,
Ultrix, or Tru64
SAINT
C H A P T E R
13
Trang 20■■ 3 MB to compile and run, 70 MB if you don’t already have Perl and Netscape.
■■ Memory, as follows, is dependent on the number of hosts being scanned:
■■ A scan comprising approximately 1,500 hosts, with approximately 18,000facts in the facts file, requires approximately 14 MB of memory on a SPARC4/75 running SunOS 4.1.3
■■ A scan comprising approximately 4,700 hosts, with about 150,000 facts inthe facts file, requires nearly 35 MB of memory on an Indigo 2 platform
■■ Perl version 5.xxx (ftp://ftp.perl.org//pub/perl/CPAN/src)
■■ Web browser (www.netscape.com)
Installation and Configuration
After downloading or copying file saint-3.5.tar.gz to a directory on your hard drive,follow these steps for *NIX systems:
Step 1. Open a terminal session and cd to the partition or directory to where youplaced the program file
Step 2. The file probably contains the gz extension and must be uncompressed
by using the gzip command Type: gzip -d saint-3.5.tar.gz
Step 3 The installation file will be uncompressed and the gz will be removed,
leaving only saint-3.5.tar Extract this tar archive by issuing the following tarcommand: tar xvf saint-3.5.tar
Step 4. The program files will be extracted and copied to a saint-3.5 directory.Change directories to the new directory by typing cd saint-3.5 In the sub-directory, you can issue the ls command to see its contents, shown here:
# ls
bin configure include old README rules scripts CHANGES configure.in install-sh perl READMEs saint src config html Makefile.in perllib reconfig saint.1
The following files are installed by SAINT:
bin/*. Programs in this directory are used by SAINT for data acquisition functions
config/*. Configuration files used by SAINT to locate needed supplemental programs These files also contain all SAINT default settings
html/*. Either HTML pages or Perl programs used by SAINT to generate thecomponents of the HTML interface
perl/*. Code modules used either by SAINT or the data acquisition tools
Trang 21results/<database name>. Directories containing all the SAINT databases Each
database is made up of four files:
■■ all-hosts, which contains a list of all the hosts that SAINT discovered during
the scan, including hosts that it did not scan
■■ facts, which contains a list of all the output records emitted by the *.saint
tools These records are processed by SAINT to generate the reports
■■ todo, which contains a list of all the probes that SAINT actually ran against
the target hosts SAINT uses this file to avoid duplicating probes if a SAINTscan is rerun against a target host
■■ cve, which contains a list of all the vulnerabilities found that either had a
corresponding Common Vulnerabilities and Exposures (CVE) (see http:
//cve.mitre.org) number or were on the list of SANS Institute’s Top 20
Internet Security Vulnerabilities
rules/*. Files used by SAINT to assess the situation and infer facts from the ing information These files comprise one of the most powerful features of the
exist-SAINT program This feature is known for its flexibility The underlying rules
were built using Perl and may be easily configured
src/*. Contains the source code to some of the SAINT support programs
Step 5. You’ll need to configure the software by issuing the /configure
command You can view help by typing /configure —help to see the
following notice:
# /configure —help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
—cache-file=FILE cache test results in FILE
—help print this message
—no-create do not create output files
—quiet, —silent do not print ’checking ’ messages
—version print the version of autoconf that created
configure
Directory and file names:
—prefix=PREFIX install architecture-independent files in
—bindir=DIR user executables in DIR [EPREFIX/bin]
—sbindir=DIR system admin executables in DIR
[EPREFIX/sbin]
—libexecdir=DIR program executables in DIR [EPREFIX/libexec]
—datadir=DIR read-only architecture-independent data in DIR
Trang 22—libdir=DIR object code libraries in DIR [EPREFIX/lib]
—includedir=DIR C header files in DIR [PREFIX/include]
—oldincludedir=DIR C header files for non-gcc in DIR
[/usr/include]
—infodir=DIR info documentation in DIR [PREFIX/info]
—mandir=DIR man documentation in DIR [PREFIX/man]
—srcdir=DIR find the sources in DIR [configure dir or ]
—program-prefix=PREFIX prepend PREFIX to installed program names
—program-suffix=SUFFIX append SUFFIX to installed program names
—program-transform-name=PROGRAM
run sed PROGRAM on installed program names Host type:
—build=BUILD configure for building on BUILD [BUILD=HOST]
—host=HOST configure for HOST [guessed]
—target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
—disable-FEATURE do not include FEATURE (same as FEATURE=no)
—enable-—enable-FEATURE[=ARG] include FEATURE [ARG=yes]
—with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
—without-PACKAGE do not use PACKAGE (same as —with-PACKAGE=no)
—x-includes=DIR X include files are in DIR
—x-libraries=DIR X library files are in DIR
Complete this step by issuing the configure command, shown here:
# /configure
creating cache /config.cache
checking for gcc gcc
checking whether the C compiler (gcc ) works yes
checking whether the C compiler (gcc ) is a cross-compiler no checking whether we are using GNU C yes
checking whether gcc accepts -g yes
checking for a BSD compatible install /usr/bin/install -c
checking whether make sets ${MAKE} yes
checking for main in -lX11_s no
checking for main in -lXm_s no
checking for main in -lXt_s no
checking for main in -lc_s no
checking for main in -lnsl yes
checking for main in -lresolv yes
checking for main in -lrpc no
Trang 23checking for main in -lrpcsvc yes
checking for main in -lsocket no
checking for getpwnam in -lsun no
checking for main in -lPW no
checking for +DAportable no
checking how to run the C preprocessor gcc -E
checking for asm/socket.h yes
checking for linux/limits.h yes
checking for ANSI C header files yes
checking for TIRPC compatibility no
checking for uid_t in sys/types.h yes
checking type of array argument to getgroups gid_t
checking if sys_errlist is declared yes
checking if system netinet headers work no
checking for glibc21 yes
checking for showmount yes
checking for rpcgen /usr/bin/rpcgen
updating cache /config.cache
creating /config.status
creating Makefile
Reconfiguring
Checking to make sure all the targets are here
Trying to find Perl /usr/bin/perl5.6.1
Changing the source in PERL scripts
Trying to find HTML/WWW browser /usr/bin/netscape
Looking for UNIX commands
Can’t find tftp
Can’t find rusers
Can’t find rup
Doing substitutions on the shell scripts
Changing paths in config/paths.pl
Changing paths in config/paths.sh
N OT E You’ll need to have root privileges to complete the installation If
you’ve logged in with a user account, simply issue the su command and enter
the root password to grant these privileges.
Step 6. Build and install the package by issuing the make command, shown here:
N OT E Advanced users can optionally edit the makefile with vi Makefile.
# make
make[1]: Entering directory ’/home/saint-3.5’
cd src/misc; make “LIBS=lnsl lresolv lrpcsvc” “XFLAGS=g O2
I/home/saint3.5/include I/home/saint3.5/include/glibc21
DSTDC_HEADERS=1 DGETGROUPS_T=gid_t DSYS_ERRLIST_DECLARED=1
Trang 24make[2]: Entering directory ’/home/saint-3.5/src/misc’
gcc -O -I -g -O2 3.5/include
I/home/saint3.5/include/glibc21 DSTDC_HEADERS=1 DGETGROUPS_T=gid_t
-DSYS_ERRLIST_DECLARED=1 -D_BSD_SOURCE=1 -c -o md5.o md5.c
gcc -O -I -g -O2 3.5/include
I/home/saint3.5/include/glibc21 DSTDC_HEADERS=1 DGETGROUPS_T=gid_t
-DSYS_ERRLIST_DECLARED=1 -D_BSD_SOURCE=1 -c -o md5c.o md5c.c
make[2]: Entering directory ’/home/saint-3.5/src/fping’
———————————— Snipped for brevity ————————————
gcc -g -O2 3.5/include
I/home/saint3.5/include/glibc21 DSTDC_HEADERS=1 DGETGROUPS_T=gid_t
DSYS_ERRLIST_DECLARED=1 D_BSD_SOURCE=1 c DDEFAULT_INTERVAL=25 DDEFAULT_TIMEOUT=2500 -DDEFAULT_RETRY=3 fping.c
-gcc fping.o -o / /bin/fping -lnsl -lresolv -lrpcsvc
make[2]: Leaving directory ’/home/saint-3.5/src/fping’
cd src/ddos_scan; make “LIBS=-lnsl -lresolv -lrpcsvc” “XFLAGS=-g -O2 -I/home/saint-3.5/include -I/home/saint-3.5/include/glibc21 -
DSTDC_HEADERS=1 DGETGROUPS_T=gid_t DSYS_ERRLIST_DECLARED=1
-D_BSD_SOURCE=1 “
make[2]: Entering directory ’/home/saint-3.5/src/ddos_scan’
gcc -g -O2 3.5/include
I/home/saint3.5/include/glibc21 DSTDC_HEADERS=1 DGETGROUPS_T=gid_t
-DSYS_ERRLIST_DECLARED=1 -D_BSD_SOURCE=1 -c dds.cgcc -o
/ /bin/ddos_scan dds.o -lnsl -lresolv -lrpcsvc
make[2]: Leaving directory ’/home/saint-3.5/src/ddos_scan’
make[1]: Leaving directory ’/home/saint-3.5’
O N T H E C D The CD-ROM that accompanies this book contains hands-on simulations of the remaining sections in this chapter These simulations are found at CDDrive:\Simulations\UNIX\SAINT.
Vulnerability Scanning with SAINT
In this section we’ll explore some common usage syntax and output from real-worldcase examples using the SAINT GUI, including some of the following options:usage: /saint [options] [targets ]
Enters interactive mode when no target host is specified.
Trang 25-A descent proximity descent (default 1)
-c list change variables (list format: “name=value;
name=value; ”)
-C level custom attack level
-d database data directory (default saint-data)
-f Enable firewall analysis
-F target_file scan targets listed in target_file
-g guesses number of passwords to guess (default 2)
-h hosts IP addresses that are allowed to connect using remote mode
-i ignore existing results
-k kill saint server in remote mode
-l proximity maximal proximity level (default 0)
-L login%passwd domain administrator login and password
-m threads max number of threads, 1 = disable multitasking (default
5)
-n netmask netmask(s) of targets
-o list scan only these (default ‘’)
-O list stay away from these (default ‘’)
-p port server port for remote mode
-q quiet mode suppress command-line output
-r remote mode
-R remote mode without password prompt
-s expand primary hosts to subnets
-S status_file pathname with scanning status file (default
status_file)
-t level timeout (0 = short, 1 = medium, 2 = long, default 1)
-u running from an untrusted host (for rsh/nfs tests)
-U running from a trusted host (for rsh/nfs tests)
-v turn on debugging output
-V print version number
-w interface with existing web server (implies -r)
-x extreme perform dangerous tests (Caution!)
-X don’t perform dangerous tests
-z when attack level becomes negative, continue at level 0
-Z stop at attack level 0
N OT E You should execute SAINT with superuser privileges.
To begin from a terminal, change to the SAINT directory (i.e., cd saint-3.5) and type./saintto call up the main screen in your Web browser, as shown in Figure 13.1.There are seven menu options to the left of the Web interface, as shown in the figure.Before you look at those, however, review this list of the security breach types thatSAINT will discover:
Trang 26Figure 13.1 SAINT main screen.
AIX lpd
AOL ICQ vulnerability
Alcatel ADSL modem
AnswerBook vulnerabilities
Apache authentication modules
Apache module vulnerabilities
Cisco Catalyst access
Cisco IOS SNMP access
Cisco developers’ shell
Cisco Web interface access Cobalt RaQ vulnerabilities Compaq Insight Manager http server Cross-site scripting (updated:
7/12/02) DNS resolver library (new: 6/28/02) DNS vulnerabilities (updated:6/5/02)
EFTP vulnerabilities Exim vulnerability FTP bounce FTP filename globbing FTP server directory traversal FTP vulnerabilities
Gauntlet WebShield cyberdaemon Guessable Read Community Guessable Write Community HPUX rlpdaemon
HP Openview vulnerabilities
Trang 27IMail vulnerabilities (updated:
Microsoft mail server vulnerabilities
Microsoft Site Server
Microsoft SQL Server (updated:
7/11/02)
Microsoft SQL Server default
pass-word (new: 5/23/02)
Microsoft Telnet Server
Microsoft Terminal Server
Microsoft Universal Plug and Play
Netscape vulnerabilities
Net Tools PKI Server
NetWare Remote Manager
NFS export to unprivileged programs
NFS export via portmapper
NIS password file access
NTP vulnerabilities
ODBC RDS OpenServer calserver Oracle TNS Listener (updated:
6/25/02) Oracle vulnerabiltiies Oracle Web Cache Performance Copilot PHP vulnerabilities POP server
RADIUS vulnerabilities REXD access
RWhois vulnerability SAINT password disclosure Samba vulnerabilities Sambar vulnerabilities Sendmail vulnerabilities Serv U vulnerabilities SGI fam vulnerability SMTP mail relay SNMP to DMI mapper SNMP vulnerabilities (updated:
6/12/02) SSH vulnerabilities (updated:
6/26/02) SpoonFTP vulnerabilities Squid vulnerabilities Sun Cluster vulnerabilities Sun lpd
TCP sequence number prediction(new: 5/30/02)
Tektronix printer TFTP file accessTivoli Storage Manager UnixWare i2odialogd Visual Interdev vulnerability VShell vulnerability
Trang 28Vulnerability Exploits Web Application Servers (new:
7/9/02)WebLogic vulnerabilities (updated:
7/12/02)Webmin vulnerabilities (new: 6/3/02)WebTrends vulnerabilities
Windows updates needed (updated:5/2/02)
WFTPD vulnerabilities Worm detected
WS FTP vulnerabilities XMail vulnerabilities Zope vulnerabilities
402 Chapter 13
amd buffer overflow backdoor foundbftpd vulnerabilities cachefsd vulnerability (new: 5/7/02) calendar manager
cfingerd vulnerability default router password dhcpd vulnerabilities (new: 5/9/02) distributed denial of service
espd vulnerability excessive finger info finger vulnerabilities gopher vulnerabilities groff vulnerability guessed account password hacker program found http Cmail access http Cold Fusion (updated: 6/12/02) http FrontPage
http IIS access (updated: 6/13/02) http IIS samples
http Website Pro http cgi access (updated: 6/25/02) http cgi info (updated: 6/4/02) http cgi shells
http potential problems (updated:6/25/02)
http put http server read access (updated:7/10/02)
iPlanet Messaging Server iPlanet vulnerabilities icecast vulnerability imap version (updated: 5/22/02) innd vulnerabilities
libgtop daemon vulnerability login vulnerability
mountd vulnerabilities netbios over the internet nisd vulnerability ntop server vulnerability objectserver vulnerability open SMB shares
packet flooding problems pop version
registry access remote login on the Internet remote shell access
remote shell on the Internet rexec on the Internet
Team-Fly®