Cautionary Tales: Stealth Coordinated Attack
HOWTO
by Dragos Ruiu <dr@netsentry.net>
Wed Aug 25 1999
This article was originally published in Digital
Mogul Volume 2-7, July 1999. Copyright 1999 uberbabe media inc.
All rights reserved.
A lot has been written in the popular media about the effects of hostile
coordinated traffic attacks (hacking), and, as a sysadmin, I find my
systems increasingly under attack by hostile sources. Two years ago,
we got mapped and port-scanned for vulnerabilities once a month. One
year ago the scan frequency was up to once a week, and these days we
get scanned several times a day with real attack attempts at least once
a week. The Internet is becoming an increasingly hostile place and the
traditional defenses and documentation of attack systems seems woefully
inadequate.
With this article, I hope to remedy some of the
false misconceptions of security that some admins have. Yes, I hope
that descriptions of these attack techniques scare you into beefing
up security on your home PC, at your office, everywhere. Over the last
fifteen or so years, as a sysadmin of network connected systems, I have
seen the knowledge of computer technologies propagate across the spectrum
of human population, bringing with it the traditional demographic including
the stupid people, the malicious people as well as the helpful and the
apathetic people.
With the burst of Internet technology over the last few years there
has also been a burst of new computer adoption, increasing pervasiveness
of computing and networks and increasing occurrences and danger/damage
caused by hostile computer use. While I don't believe for a second
the over-inflated, hyped-up estimates of the cost of these hacker intrusions
bandied in the media, I can vouch that the problem is real. As the chief
technical weenie of our company, NetSentry Technology, I've been
manning the front line defenses of our company net equipment.
I've also been documenting the increasingly
hostile nature of attacks on our network and would like to share some
of my experiences in this area. The technical level of the attacks is
increasing at an alarming pace, and I haven't seen any documentation
of these new attack techniques yet, so here are some cautionary tales
culled from our real-life experiences. My hope is that after reading
this you will re-examine your own network security. Most organizations
are woefully under-protected.
The ISPs are having increasing difficulties in responding to customer
requests for assistance in intrusion cases and the police are even further
under-staffed and out-gunned technologically. So increasingly, it leaves
companies to fend for themselves to secure their systems. Here is what
you have to worry about.
I wish I could take credit for all the techniques described here, but
a majority of them were derived from analysis of traffic used for hostile
attacks on us. Credit belongs to the anonymous hackers that have taken
a run at our defenses. I write the following from the point of view
of the attacker to emphasize the point that security is vastly neglected
at most sites and because I want to ask, what will you do when faced
with these attacks? And what can you do with your current defensive
equipment? Not much, I wager.
The phases of a successful attack are A) Reconnaissance, B) Vulnerability
identification, C) Penetration, D) Control, E) Embedding, F) Data extraction/modification,
and G) Attack relay.
A) Reconnaissance
The first part of a successful attack is to get to know the network
topology in the region surrounding your target and the parties it communicates
to. This is also an important part of the penetration of each successive
layer of your target's networks. Currently, the best publicly available
tool for net topology identification is Fyodor's excellent "nmap"
program and derivatives. The objective of the reconnaissance is to understand
as much about the target and to identify attack destinations defenses
and potential attack relay bases.
In private circulation, the following tools exist or will soon exist:
Attack Tool: Coordinated multi-site scanners. Mapping software that
distributes the mapping "probe" packets to be sent to the destination
addresses and nearby sites over a number of geographically dispersed
attack sites, and trickles them out at low rates to avoid detection
so that there never is a lot of traffic at any one time or from any
particular site (see stealth section). The results of the pokes and
probes at the target that these systems send is summed and collated
to build a picture of what equipment the target has installed.
There was a lot of noise in the press earlier
this year as some of the crude versions of these coordinated scan tools
were aimed at US military sites, but either the operators of these tools
have improved them to the point where the relatively immature military
defense systems no longer identify these scans, or the military has
found some other threat to highlight in the press and use to get funding.
Attack Tool: Sniffer Detectors. Sniffers produce unique traffic
patterns that may be detected. They also provide some interesting penetration
vulnerabilities, as their network interfaces are placed in promiscuous
mode, allowing all packets past the address filters to be processed
by network stacks and applications. Some attack methods directly target
security systems, which, ironically enough, are often notoriously insecure
themselves.
Once the security system is penetrated, all kinds
of nice information like traffic patterns and passwords may be gleaned,
and evidence of your attacks can be conveniently removed. And because
of promiscuous listening in the sniffer you can even take it out with
traffic destined for a different system.
Attack Tool: DNS Zone transfer. A DNS zone lists the externally
accessible points a company maintains. A nice map of the externally
visible systems that your target has put on the Internet and a great
attack point list. Not many sysadmins go over the name server records
closely enough to detect this, however the more advanced intrusion detection
systems are getting better at identifying these kinds of transfers as
pre-cursors to an attack.
The important information to gather is the DNS names and addresses of
the target's hosts and neighbors. Then you must further identify
the OS and open port configuration of each of your target's systems.
The latter is determined using site scanners and analyzing the responses
that a site delivers. Current tools such as "nmap" and "queso"
are getting very good at determining device, OS version and some network
application configuration information from careful analysis of the timing
and contents of responses to probing or mapping traffic. The OS and
port configuration are used to identify systems that could have software
packages with vulnerabilities and bugs open for exploits.
Knowing who your target's ISPs are by analysis of address use can
provide useful attack bases for your onslaught. Getting into their ISP's
equipment and servers first could enable you to get important information
about them and if you can subvert equipment installed on the same network
links as your target can let you glean important information such as
traffic patterns of your target. All without your target even suspecting.
It may also be easier to penetrate the ISP than a secure target. Some
ISPs such as @Home even keep extensive (but often out of date) databases
listing customer's hardware and software configurations as well
as other info, which if accessed can mitigate some of the dangers of
triggering intrusion detection systems with your site scanning traffic.
Once the traffic patterns of the target's external traffic are known,
a basic technique to take out a secure target is to first take over
a less secure target that your main target talks to, and then come in
to your main target under the cover of that site's usual traffic.
Any site your target talks to periodically, including popular web sites,
employee's dial-up accounts, and system traffic, such as network
time protocol (NTP) clocks, are all candidates for attack relays.
Sprinkling in your attack traffic with large web
downloads and ftp transfers will make it more difficult for security
personnel to use sniffing and detection tools to identify your attack,
as scrolling through reams of logs and captured data can often be more
time consuming than possible with most network staffing levels. Taking
out and controlling your target's conversation peers can provide
you with useful channels through your target's defensive firewalls
and detection systems. Your traffic will look on all the scanners like
that web-site the Joe in IT is surfing to, but will provide you with
a nice channel right past all the firewalls to a machine inside the
core of your target's net.
One useful target is the DNS caches and servers that your target uses
at your ISP. Accessing the DNS logs can give you the addresses of all
the sites that your target talks to, and furthermore, careful analysis
can even give indication of when the activity happened, or is happening,
offering excellent potential for cover.
As we'll talk about later, owning the DNS server can have many benefits.
In general the DNS servers are ripe with hacking opportunities.
Another useful target is the ISP DHCP server, which is used to dynamically
assign IP addresses to clients on connection, as it can be used to identify
periods of system activity from the logs, and also periodically establishes
connections to the client systems as the address leases expire. A common
DHCP vulnerability also allows client system takeover from this ISP
host. DHCP address lease expiry also provides a nice way to signal embedded
attack software at pre-determined times to do things like wake up in
the middle of the night and send data when no-one is looking.
An often available source of useful relay bases for attacks is other
systems in the same ISP client pool (on the same modem bank, other ADSL
users on the same DSLAM, or cablemodem users on the same segment), which
are in many cases default configuration, open like Swiss cheese, Windows
systems - typically with file-sharing turned on and personal web services
enabled, a combination that sports a plethora of available vulnerabilities
to exploit. After taking out the easy "marshmallow" soft client
PC, the adjacent main target can then be attacked using local subnet
attacks, offering again some potentially powerful techniques for hiding
from and exploiting your target's security systems.
In easy cases, the equipment rack will bridge
broadcast traffic between the "marshmallow" and the target,
allowing use of address resolution traffic such as ARP and DHCP to be
used for system attacks and control. For stealth, these kinds of attack
bases are excellent too, because the broadcast traffic is largely repetitive,
very voluminous, and mostly uninteresting, which, combined with a great
immaturity among the security tools for this kind of traffic, make it
a ripe vulnerability area. Local area broadcasts can also be used as
another "mapping" system too, even in passive listening to traffic
at the nearby "marshmallow". By recording the address lookup
broadcasts from your target, you can build up that traffic pattern information
so that you can sneak into the site undetected.
Another often overlooked source of mapping and reconnaissance information
(and break-ins) is the management systems the ISP may be maintaining.
The Simple Network Management Protocol (SNMP) that most of these systems
use is a bit too simple and is ripe with vulnerabilities, rich with
information (including complete remote sniffers useable to pick up passwords
in some RMON MIB equipment) and lame about security.
The most powerful relay base for attacks is the ISP's router system.
Once you control the paths of your target's packets, you really
have them at your mercy, as you can silently redirect any of their traffic
to your attack relay bases without them knowing, and other fun tricks.
However, most ISPs guard their Ciscos and other routers as the most
valuable resource with the most defenses, so this is really a target
for the most daring and brilliant attacks.
B) Vulnerability Identification
The objective of the mapping phase is to find externally accessible
traffic paths into your target's net systems. Over the last year
it has been easy to see what are the most popular scriptware for the
so called script-kiddies: the low-tech, mostly teen, hackers who
just download pre-compiled exploits and run it blindly against targets.
The standard script-kiddy technique is to set up a broad address sweep
broadcast of probe traffic, to the whole section of the Internet that
seeks some sort of response from the target, that would indicate that
software is installed with the vulnerability the exploit is using.
The classic vulnerabilities that we frequently see sweeps for are:
* FTP Server Exploits. Especially vulnerable are servers with
anonymous write access.
* NFS and SMB share vulnerabilities.
* Holes in POP and IMAP mail delivery servers.
* Vulnerabilities in the "bind" name daemon software.
* Web server CGI exploits (Apache, MS IIS).
* Installed control daemons such as BackOrifice.
The scans for these holes are so common these days that it is difficult
for most sites to even catalog origins of such scans. These kinds of
scans are so commonplace that, as long as traffic volume and frequency
is controlled, it is possible to conduct them with relative impunity.
But the attacker has to be prepared for the case of zealous sysadmins
who contact ISPs and complain about port-scans. Never port-scan from
a node you are not prepared to have disconnected, seized or otherwise
lost.
Here, the best policy is to use the least useful
and network connected systems in your attack fleet of controlled systems
as they may be lost or jammed and blocked by firewall software when
the hostile mapping probe traffic is detected. Mapping traffic stands
out like a sore thumb when pointed at systems not running the vulnerable
software - if the target has the tools to analyze this kind of attack
(i.e. Abacus Sentry). If attacking a net-savvy sysadmin, he will be
able to detect things like IMAP probes against servers not running mail
software. However, even these days, targets with effective intrusion
detection systems are few and far between. And sysadmins with enough
time to examine, properly and frequently, all their logging systems
are even fewer.
At the sites that have management and security systems, these are ripe
targets too. Penetrating the security system has the best advantage
of rendering the target effectively blind. I have seen experienced sysadmins
dismiss unquestionable, hard evidence of tampering because their beloved
and trusted, but thoroughly compromised, security sniffer shows them
that there is nothing to worry about - or doesn't even show that
kind of data at all. The other factors in the attacker's favor are
the egos of the network designer and IT group.
Every sysadmin thinks their defensive plan is
carefully thought out and "their" system couldn't possibly
be penetrated. Here at NetSentry we used to contact operators of systems
that had been compromised and were now being used for attacks against
us. But after many hours of fruitless attempts to convince maintenance
personnel, who, if you did reach them, often didn't even understand
the attack traffic their own site was launching, insisted that it "couldn't
possibly be our system, it must be your equipment or monitors that are
wrong."
I remember very vividly one ISP we contacted: when we were watching,
in pretty much real time, as the attackers were compromising system
by system at their site and using each as a base for attacks against
us, how their support person and security specialist looked at some
local system when we called and decided that we couldn't possibly
be correct.
An hour later, as the ISP's systems being
used as attack relays switched from probing to all out denial of service
flooding and attacks, we called back and everyone had happily gone home
for the night there. We never did bother to call them again and as far
as we know the attacker still owns all their systems. The only guys
who really took one of our attempts at warnings seriously was the security
department at a regional bank, who came in on a Saturday to put sniffers
on the line - but they were a notable exception.
The best targets are those that are the most widely known, used, and
difficult to take off-line or re-locate. Mail, DNS, Web and FTP servers
all fall into this category. With these servers, sites that notice suspicious
traffic will often not off-line them because they are critical to network
operations. And even if they take them off line and restore them from
backup, or otherwise keep you out, they are often forced to bring the
servers back with the same vulnerability as was available for initial
entry because user complaints about the unavailability of network resources
override the attempts to identify and close the hole.
Like penetrating the sniffer and management systems, the mail servers
also provide excellent opportunities at invisibility, by letting you
monitor internal conversations, what aspects of the intrusion have been
detected and what countermeasures are being mandated.
C) Penetration
The most successful hack is the one where the target doesn't even
know it has been penetrated. The next best thing is that when the intrusion
is detected, they won't know where it's coming from. Since the
source may be detected, it's better to use attack relays so the
attacker's anonymity can be maintained. The general technique is
to quickly find some clueless newbie who has put his home system or
office server on the net with major vulnerabilities, and use that as
a relay. Never use a system with your name or organization attached
to it to attack.
Use several levels of indirection and make sure you cross several geographical
and political boundaries to hide your trail. ISPs in the same country
often will not share log information and this gets even more difficult
across borders. I listened with sympathy when I heard a poor overworked
security colleague who works for the Canadian RCMP describe the nine
month process (!) for the paperwork to request log files from U.S. ISPs.
The police and ISP security departments often have their hands tied
by procedure and policy and general understaffing. The more organizational
and geographic boundaries that your attack redirection trail can cross,
the more safe and anonymous you will be.
People complain about the lack of anonymity on the net, but for those
that cross that line into unauthorized systems use, there is altogether
too much anonymity. It's often almost impossible to follow a chain
of connections through multiple ISPs and countries. The hidden are truly
anonymous on the net. Sysadmins should give up now on the romantic idea
that you will be able to track down who is attacking you - it's
just another bunch of random numeric addresses, and even if you trace
it down to an ISP, their logs will only point to another ISP and so
on.
If the attacker can knock out the target's intrusion and sniffing
facilities then you can proceed the rampage though their network with
relative impunity, but even if you don't have the technology to
compromise such systems, there are a number of techniques you can use
to make your attack more stealthy.
Attack Tools: Firewall tunnels. There are a wide variety of virtual
private network and proxy programs, which you can use to relay your
traffic to inside a protected network and not make the traffic appear
on an intrusion detection system. Literally dozens of such firewall
"borers", such as HTTPtunnel, are available now in source and
binary form. These tunnel programs relay your traffic through the firewall
and IDS systems by making it look like innocuous transfers to and from
your "mole" system to common web-sites and other forms of traffic
"chameleoning" to make it look unexceptional. These tunnels
embed your attack and control traffic inside this relatively innocent
looking traffic to seem like HTTP or partial TCP fragments. These tunnels
can also encrypt your traffic, making it more difficult for your target
to identify the penetration methods.
Most sites employ hard-shell, layered network security. That is to say
the links external to the organization have firewalls and net proxies
to restrict access to the inside network. The standard technique is
to have a hardened Demilitarized Zone (DMZ) made up of firewalls and
security IDS systems. The most secure sites will have multiple servers
and systems dedicated to these roles, but the majority of installations
often rely on one inadequate server for this gatekeeper function. And
once you are through this shell, which is checked most often by maintenance
personnel, you are usually into the internal network that has almost
no security.
Another often overlooked security breach is to
use floppy based Linux distributions such as the Trinux project, or
client software for common Windows and NT systems, to carry in such
a tunnel program physically into the organization where it can be surreptitiously
installed on a system inside the "hard" shell. This "mole"
or tunnel can then penetrate the security from the inside where vulnerabilities
are seldom checked. From this attack relay base, you can proceed to
scan the internal systems and take over other servers, further embedding
your control of their infrastructure.
Firewalls are hardened quite well these days. But even so, some firewall
operations can be predicted and broken, in areas like the port number
sequences of outbound connections. With predictable sequence number
connections, firewall connections can be hijacked and attack sequences
passed through the defenses. And while firewalls are often tough, many
sysadmins make mistakes and leave vulnerabilities open on the host the
firewall runs on (like running Microsoft IIS on the firewall), allowing
penetration and access to both the internal and external Ethernet interfaces
on the box for malicious software to bridge packets between the two.
Once the host with network interfaces on both segments is penetrated,
packet hijack software can grab the packet and relay it to the other
interface before the firewall software even sees it, essentially providing
you with an invisible back-door into the target.
Some forms of firewall penetration do not even involve bypassing the
firewall. One interesting attack technique it to identify frequently
visited sites by the target, taint the DNS database with a forged update
to their DNS server or cache so that the next time the target client
contacts the frequently visited site, the traffic is pointed to one
of your attack systems instead. This attack relay system can conveniently
embed your attack exploit in relayed copies of the original web site.
With modern Java enabled browsers, the client naively executes any code
the supposedly well known site, which is in reality your attack relay,
sends. The data is sent in response to a client's request through
the firewall and walks right past the intrusion detectors, virtually
indistinguishable from ordinary data. This attack mode is also available
by taking over the target ISP's router or DNS server.
Other forms of stealth involve penetrating SNMP traffic statistics or
nearby systems at their ISP or other peer clients to identify traffic
activity. The design flaw of the Internet that makes identifying forged
source addresses a difficult problem can also let you hide the origin
of the attacks (so called "spoofing"). If attack traffic is
sent from (or spoofed to look like) a source that is currently sending
a lot of data to the target, it makes it that much more difficult to
spot the attacks.
This buries the attack packet amongst reams of
other voluminous data. It quickly scrolls the attack packets off the
screen of sniffers and makes network security staff at the other end
go through the tedious "find the needle in the haystack" procedure
of sorting and filtering megabytes and megabytes of capture data if
they suspect the attack. Most of the time they will not have the patience
to exhaustively search for attacks by scrolling though the captures
and logs, again rendering you invisible.
After penetration, further attack software can be embedded in ordinary
traffic to transfer it into the target's systems. Patience is the
key here. The lower the data rate that can be used to get the information
in and out, the lower your chances of being detected are. Spreading
out your packets, so only a few per hour are transmitted, makes your
hack very difficult to detect with today's tools. (However, we have
developed some special tools to counter this kind of attack.)
One of the more devious penetration methods we observed was a system
that trickled data in and out in the normally unused padding at the
end of user data packets. On normal sniffers and detectors, the packets
looked completely innocent, as even those tools did not display the
padding "garbage" used for the hack. This padding was used to
install malicious software by trickling the attack executable into the
target a little bit at a time, a few bytes with every packet.
Another interesting stealthy attack system that will negate most firewalls
is to embed your hacking control channel for your attack bot software
and results and information back from the bot in addressing translation
requests, that by definition need to be passed on by firewalls. One
such clever system we experienced was an attacker who penetrated another
nearby client node on an ADSL system. They then penetrated one of our
systems (a sniffer of all things) and installed a key-stroke logger
that encoded the keystrokes typed at the console into the address field
of Address Resolution Protocol (ARP) lookup messages, which were happily
passed through the firewall and relayed to the attacker at the nearby
system outside the firewall on the same subnet that received the ARP
encoded keystrokes.
This key logger even delayed, encrypted and grouped
keystroke transmissions to make detection more difficult. We have also
seen keyboard loggers that were clever enough to store your keystrokes
on disk, in case the system was disconnected from the network (like
a laptop) for a while and then trickled them out later when the net
connection was re-established. Key loggers provide easy access to most
authentication tokens, scrambling keys and passwords.
The basic form of penetration is to use stack smashes which take advantage
of basic low level coding bugs in a piece of applications software or
an operating system component. The form of a stack smash exploit is
to utilize a data coding that allows variable length data that you send
to be erroneously copied into fixed length buffers or variables, and
writing into data past the end of the buffer. Since this data can overrun
the stack, you can overwrite a return address for the currently executing
function and make the processors CPU jump to and execute arbitrary code
of your choosing. If the bug exists in a privileged piece of software,
these instructions that you jump to are virtually unlimited, allowing
you to do literally anything with the penetrated computer.
The problem with this form of attack is that it often requires detailed
knowledge of the operating system and memory map of the target. Often
this form of attack will have to be coded in multiple ways to account
even for the version of OS and software package being penetrated. The
drawback for the attacker and the advantage for the defender is that
usually stack smashes involves "groping" around blindly, sending
multiple variants with different offsets and values until the appropriate
magic version number that works correctly and responds back is found.
In some cases an incorrect variant can crash software and systems, necessitating
lots of patience and long time delays between variants tried.
A common target for stack smashes are recent and older variants of the
"bind" name daemon that is in almost universal use to translate
from symbolic DNS names and URLs into numeric IP addresses. The code
and traffic structure of this program is very complicated, difficult
to debug and ripe with vulnerabilities and bugs. One 17 year-old hacker
managed to take over more than 12,000 systems over two years - before
he was caught with an automated "bind" takeover worm.
Another common form of attack is to exploit the increasingly complex
and powerful native data types of applications software (especially
Microsoft products that often contain several complete programming languages
in things like word processors and mail readers). Web server script
exploits also fall into this category. The basic technique here is to
either hijack an existing connection and inject malicious data or to
send unsolicited attack traffic that will take over the application
and eventually the system.
D) Control
Once you are into the system and have compromised a piece of software,
the next bit of work is to get control of the host. This is usually
a bootstrap process, where a piece of small code, "the exploit",
is first gotten into the target and the vulnerability is used to execute
the code. This code needs to contact one of your attack relay systems
and download further code and instructions. The simplest form of bootstrap
is to allow remote access to a command shell that can execute arbitrary
operating system commands.
There are many forms of bootstraps, as they are often linked to the
exploit itself, and some, like BackOrifice, include a whole command
interpreter. But those more advanced download a minimum of code and
use existing portions of the operating system code to build a remote
control system attack bot. These advanced exploits can, in object oriented
fashion, build whole parallel network stacks and control systems that
run invisibly in the background on the machines using software already
installed on the machine.
A portion of the bootstrap process during attack is to restart or patch
the application that was crashed so that the intrusion is not noticeable.
Other important parts of this process include cleaning up the log files
to remove intrusion messages and hiding the attack bot so that it isn't
listed in the task viewer or process list. "Scrubbing" the log
files can be easily accomplished by recording the file pointers to important
log files at exploit time, installing and bootstrapping your attack
bot and then "rewinding" the log files to their pre-attack positions
to erase any evidence of the installation by overwriting the operating
system file pointers in memory with your pre-attack copies. Subsequent
log entries will overwrite the evidence of the attack. Log files to
be cleaned up include sniffer capture files, system event logs, DNS
and other daemon diagnostic files, IDS systems files and file integrity
checkers like Tripwire. The good attack bots make log-files almost useless
for intrusion detection.
Your attack bot can control the machine up to the privilege level of
the software that has been penetrated. It can access any resource that
the original software could. In many cases, this will not include super-user
"root" or "administrator" privileges and you will need
to use another local exploit to break in further. One alternative approach
is to download a password cracker and dictionary to be stored in invisible
files or unused portions of the disk and let this cracker run in the
background on the machine (invisibly off any task list of course), using
a brute force search for the password on the same machine. This generates
little traffic, and is very difficult to detect by the target, as the
machine will work silently to crack the password for you when idle.
One such attack system that was used against us used a remarkably compact
word-list and a very patient brute force cracker - to good success.
Super-user privileges are not needed all the time. Even in cases where
the cracked software has been limited to accessing only a few resources,
it is often enough to use the system as an attack relay base. One of
our attackers used a "bind" exploit once on a firewall system
where we had purposefully confined the non-privileged version of "bind"
program to a "chroot" jail that limited filesystem access to
a very small subset of files. This didn't stop the sophisticated
attacker much, as even the ordinary user privilege "bind" already
had permission to access both internal and external Ethernet interfaces
and bridge packets between the two to bypass the firewall software.
With careful design, your attack bot can allow you to encrypt, hide,
download, remotely install and run arbitrary software packages, and
send traffic so that even sniffers installed on the target do not see
the packets. It is relatively straightforward to insert and remove packets
from the network card, transmit and receive queues, so that normal OS
security and logging measures on the penetrated host never even detect
the traffic (including bypassing low-level transmit and receive counters).
Similarly, it isn't a major technical feat to hide the bot tasks
so that they don't show up on system diagnostics. You can completely
remotely control a machine and run programs on it, upload and download
data, without any indication to the user other than occasional sporadic
slowness - which on Windows is almost indistinguishable from normal
performance, and Linux and NT aren't much better.
E) Embedding
After you have gotten in and have control of the target, the next step
is ensuring that you can retain control even if your actions are discovered.
You need to quickly map the local net and penetrate any other system
suspected of being a sniffer or key communications links, such as mail
servers, to observe any suspicion of intrusion on the part of the target's
IT staff.
The next portion of clean up is to trickle in any additional attack
code into the target and whatever is needed to make your controlling
attack bot install and hide itself on disk. The point here is to allow
your bot to survive a system re-boot and retain control so that you
do not have to go through the dangerous - and detectable - attack and
clean-up sequence again. Several techniques have been observed for doing
this. One is to overwrite existing and little used OS files that exist
in nice, known predictable places/paths, but are seldom used (the more
marginal games that come with OS distributions, and terminal definitions
for obscure terminals quickly come to mind for this purpose).
A sophisticated variation on this is to encrypt
and spread your binary over many files (sometimes called steganography).
Another alternative that requires more low level programming is to use
unused, empty portions of local disks. The system then has to be modified
to re-enable your bot after rebooting.
A variation on this hidden attack bot is to install a back-door that
will lie dormant on the disk and install a small, difficult to detect
bot that waits until receipt of a special traffic trigger which will
then set off re-assembly from code pieces spread out on disk files and
activation of the more powerful attack relay bot. This kind of traffic
trigger system could also be used to render the traffic invisible. One
attack system installed itself across multiple systems and suspended
normal OS operations and triggered execution of the loaded command in
the attack bot upon receipt of a multicast trigger.
The OS remained suspended until a time out or
reset trigger was received, allowing the exploit to run without any
normal security and logging active. By using a multicast trigger, multiple
systems can be triggered and momentarily suspended simultaneously, and
if the control bot is installed on any sniffer systems, data recording
was suspended while the attack bots execute their commands in this suspended
state and send their traffic, again rendering the whole attack invisible.
Multicast traffic also has the added advantage of being not reported
in the default configuration of most sniffers, so unless the IT staff
explicitly enables reporting, they will not usually be aware of it.
This kind of attack is very difficult to detect unless an operator is
paying very close attention to traffic LEDs.
One condition for the attacker to plan for is what happens to your bot
if it is discovered. One attacker once used a system that erased itself
if it lost contact with the attack relay base for more than a certain
period of time, or if the system was re-booted (as would happen when
a system gets off-lined because breaches are suspected). In this way
any evidence was erased whenever a penetration was suspected.
The Perl language, if installed on the target, provides a nice compact
way to download very powerful programs with a minimum of data transferred,
and the standard Perl kit includes routines for embedding (hiding) your
Perl script into other binaries.
Another clever exploit is to store a piece of your attack bot bootstrap
sequence on the network card itself. Most modern network cards have
64 bytes (or more) of EEPROM that are used to store the 6 byte hardware
MAC address, leaving the majority of the space unused. More sophisticated
server network cards even have more space for downloadable firmware.
The mostly unused network card EEPROM is typically loaded by OS drivers
in its entirety - usually to a fixed address static buffer. A small
segment of code could be programmed into the card and executed from
this buffer by an exploit.
The advantages to storing a portion of the attack
code in the NIC is that it makes tracing the activity of the exploit
difficult for someone trying to reverse engineer the code, and more
importantly, a short program installed here will survive a disk formatting
and OS re-install. This kind of exploit will lead to a lot of head scratching
and questions about "How the hell do they keep getting back in after
a disk wipe?" at the target.
F) Data extraction/modification
After you have established control, then you can get on with your nefarious
purposes. Typically this will be data extraction and modification on
the target system. On Microsoft systems, the registry and Microsoft's
own system information utility, enable rapid gathering and dense transmission
of key system configuration back to your attack relay. Under Linux,
the /proc filesystem provides the most rapid clues as to system configuration,
allowing your attack bot to build a summary of what it found on the
newly penetrated server and transmit it to the relay.
Important attributes of data extraction and control of modifications
for attack bots are to hide and encrypt this data stream. It will be
beneficial to spread these transmissions out over several relay destinations
and have them happen at low rates. One of the safer, stealthier data
extraction systems is to embed the data in HTTP web transfers that make
up a large percentage of most site traffic these days. Putting your
encrypted data deep into packets and disguising it as JPEG or GIF binary
data will help hide it. Most traffic loggers and sniffers usually capture
only the beginning of most packets, so embedding your data deep into
the packet will make it all that much more difficult to see, depending
on what security tools your target is equipped with.
As was mentioned above ARP and DNS also provide methods of hiding your
data transmissions. A key piece of information on the path to hiding
your attack bot data traffic amongst the target's traffic is understanding
your target's traffic patterns. You need to know when, how (what
protocol) and who the target is talking to. Both Linux/Unix and Windows
come with some pre-made system tools that you can use to record these
traffic patterns, without downloading much additional software.
The more sophisticated network cards under Windows
come with RMON and other MIBs that can be used to gather traffic pattern
information, so that your traffic can be spoofed and modified to look
like client traffic requested by users at the target site. RedHat Linux
contains many pre-installed mapping tools including arpwatch and SNMP
that can be used to monitor local traffic to see what kinds of traffic
will likely escape detection. Penetrations of the target's ISP to
get traffic stats can be a boon here too.
Another important kind of data hiding is to send your data in little
bursts, and follow that data with a burst of legitimate addressing or
ARP traffic to scroll your attack data off the display screen of any
sniffers in case you encounter a fairly quiet traffic level at the target's
system. Doing this kind of data transmission in the wee hours of the
morning will also lower the chances that there are any humans looking
at status screens at the network control center and noticing anomalies.
G) Attack Relay
The final step in attacking is to successfully use your new system as
a relay base for other attacks. Building up a large "fleet"
of attack bases is its own reward - with more systems to attack from
your subsequent conquests will be more stealthy and difficult to track.
But now your target relay site will likely notice if you start port-scanning
"trantor.army.mil" or other such contentious targets, so be
careful (this is another real-life example scenario used on us here).
Most sysadmins will not take kindly to the possibility of getting phone
calls from the U.S. military asking why their servers are attacking
them. But then again, most won't notice.
Attack-Tool: One clever exploit a hacker used on one of the "honey-pot"
decoy systems we use as hacker-bait for analysis was an SNMP triggered
attack reflector. This system used two SNMP triggers to effectively
hide the out-bound attacks. The first trigger put the system into listen
mode. After sending the trigger, the attacker quickly sends a spoofed
attack packet containing the attack to the relay system. The spoofed
attack packet is coded to look like a packet from the attack destination
to the relay.
Upon receipt of the second SNMP trigger and after
a delay, the recorded attack packet is sent back to the actual attack
target with the original source and destination reversed. In this way
the sequence of the attack is seemingly reversed, with the local relay
system responding with a single packet after receipt of the single packet
from the target. Unless you look carefully on most sniffers and IDS
systems, it looks like the target is attacking the relay system instead
of the other way around.
A good ploy to avoid detection is to use many different attack relay
or mapping systems and to avoid using the same attack relay system twice
in the same day or week with a particular target. An isolated packet
here and there destined for a strange system will not arouse many suspicions,
but repeated transmissions to the same target could possibly trigger
off alarms at the relay or target - however unlikely that may be with
most sysadmins asleep at the security wheel.
Conclusion
I hope the above attack techniques scare any sysadmins reading this.
As they should. Too may people these days feel that security is keeping
out the script-kiddies or installing a firewall. There are a lot of
nastier things out there on the net than the mindless script-hordes,
so beware. I hope you can use this article to justify better security
measures to your boss. This stuff is out there - it's been used
on us. Odds are these kinds of exploits have been used on you and you
have no knowledge of it. There are malicious minds developing new attack
bots, and communities of people dedicated to the breaching of security
measures. I would even surmise that there are now organized and funded
efforts on the part of military and intelligence agencies to further
develop such offensive software.
One of these days, organized crime may even wake
up to this. As we are discovering, it's the law of the jungle out
there on the Net, and there are few places to turn to for assistance
in case you get some malicious bozo attacking you. Often you are left
to your own devices, and with little support from your own organization,
that may be technically illiterate when it comes to network security.
The only defense seems to be to stay technologically ahead of the attackers
- a constant and resource intensive process. The good news is that it's
easier to play defense than offence. Good luck.
P.S. You do have good backups, don't you?