Virology – Understanding Computer Viruses
Virology – Understanding Computer Viruses
On contrary to popular belief,
Hacker’s own machines are often more vulnerable to attacks than the
average user. This is especially true of those who are new to the world
of hacking because of their more frequent access to remote machines,
dodgy forums, open administrative privileges on their own machines and
inexperience in covering their tracks etc. Further, those who are
experienced often take advantage of the ones who are in the learning
stage, trying to get into this field. So, for a newbie hacker, it is of
vital importance to learn how to protect themselves to avoid being
consumed by their own curiosity by Understanding Computer Viruses.
In this dog-eat-dog world, any kind of safety is an illusion unless proven otherwise.

Understanding Computer Viruses
Computer Viruses are the malware program
that, when executed, replicates by inserting copies of itself (possibly
modified) into other computer programs, data files, or the boot sector
of the hard drive; when this replication succeeds, the affected areas
are then said to be “infected”. Viruses are perhaps the
oldest form of malicious software (Malware). They’ve been around for a
long time and are still evolving and causing havoc all over the world.
At first sight, they seem to be innocent looking executable files, but
if opened, they can turn your world upside down in a second.
You need a basic arsenal of skills for
securing the executables on your system and coping with viruses on your
own. Here we discuss proactive methods you can use to defend yourself
against malicious executable code in files, resources, component
libraries, scripts and macros, as well as how to avoid a handful of
other potential vulnerabilities.
Depending on the destructiveness power
of the payload, Computer Viruses can result in a significant loss of
data, time, and money. In the best scenario, you may just lose the time
it takes to disinfect your computer. At worst, a mission-critical server
may be reduced to little more than an expensive door-stop.
Unfortunately, antivirus software isn’t perfect, and there’s always some
lag between the emergence of a new electronic predator and the
availability of virus definitions to protect against it. Moreover, many
coders of today’s more diverse and sophisticated computer viruses are
taking the preemptive step of disabling or even removing antivirus
software as part of their operation.
I’m not suggesting that you shouldn’t
rely on your antivirus programs for day-to-day virus protection,
especially since antivirus programs are very good at keeping you safe
but only from the known threats. However, if you’ve never had to fight a
virus without your antivirus software, then it’s only a matter of time
before you will. The main reason for this is newbie viruses. For an
antivirus to be able to guard against newbie viruses, it must first be
reported, the virus scanning code must be modified to include this
newbie virus, and finally the virus database copy on the client side
must be updated.
Because virus protection changes every
day, those annoying notifications that your antivirus probably gives
routinely are there to protect you. You must’ve noticed in the UPDATE menu of any antivirus an option to “Update Virus Database” or something like that. This is evidence of the ongoing war against viruses.
How do Viruses Works, In General ?
Well, first, the coder writes the
executable codes required to carry out the virus’s activation process
and then whatever nasty things it’s meant to do. What does
the coder want from his virus to accomplish? Should it reformat your
hard drive? Delete JPG files? Mail copies of itself to your friends and
co-workers? Making any of this happen requires “executable” code of some kind.
Second, in order for this code to
execute, the virus needs to be activated or opened. The usual way a
virus’s executable code will run is the direct method: some unwary user
receives an e-mail attachment called “Click-Here.exe”
or something equally enticing. This runs the program and the virus is
unleashed. As easily avoided as this result seems to be, it still works
far more often than it should.
Virus coders have discovered a number of
other, less obvious techniques for getting a virus to take over your
computer. Below we take a look at some of these techniques, beginning
with the question of what constitutes the executable code, then we’ll
examine several sneaky activation methods. These activation methods are
particularly important, as this is where you’ll understand how to
completely unhook viruses from your system in order to regain control of
it following an infection.
What Constitutes Executable Code ?
Of course, you know that .exe files are executable, as are other similar file formats such as .cmd and .com
etc. There are many other file types that may contain executable code,
and any executable code can be unsafe. In general, executable code falls
into three broad categories:
- Standalone Programs.
- The code included within resources or libraries.
- Script or macro code executed by an interpreter of some kind.
In a broad sense, a standalone program is pretty much any file type that relies on the operating system for it to execute. How do you know which ones these are?
The answer lies in the Windows registry. To battle against viruses on
their own turf, you’ll have to be very comfortable delving into the
registry. So let’s take a look at how executable programs are invoked:
- Launch the Registry Editor by opening “Run” and type “regedit”.
- Expand the “HKEY_CLASSES_ROOT (HKCR)” node – It’s the operating system’s repository for information on file associations and commands and Under this HKCR, you’ll find nodes representing all the file type extensions registered on your computer.
- Navigate down the tree until you locate the key named “.exe”.
- Select this “.exe” node and observe that its default value (shown in the right-hand pane) is “exefile” – This is a pointer to another node under HKCR (the exefile key).
- Scroll down and find the “exefile” folder. The exefile key contains a Shell Subkey. This is where a file type’s available actions are defined. In OS terminology, these actions are known as “Verbs”. For example, a Microsoft Word document might have a “print” verb defined, which allows you to right-click the file in Windows and choose Print from the context menu.
- Expand the shell subkey for the “exefile” node to view the available verbs for EXE files. You’ll probably see two or three different subkeys, depending on your system. The one to be concerned with is “open”. (HCKR >> exefile >> shell >> open) Expand this node and select its command subkey. Each verb has its own subkey, and each of those keys, in turn, has its own command subkey. The default value in this subkey dictates exactly what happens when that verb is executed.
Double-clicking the file icon in
Explorer has the same effect — it executes the default verb’s command
(open for EXE files). As you can see, for EXE files, the open command
verb has a value of %1 %* This is used in
MS-DOS batch file language. The basic idea is that the path and filename
of the EXE file you activated are substituted for the “%1” parameter while any switches or command-line parameters that go along with it are passed through the “%*” parameter. So it would stand to reason that any other file types whose open verb evaluates to some flavor of “%1”
would tend to pose a risk. There is a number of these, and they’re all
potentially dangerous. Considering that the virus coder knows that most
people won’t double-click a file with a .exe extension or a .bat file, there are several other options including : .cmd, .com, .pif, .vbs – All of these file types have a default open verb of %1. A virus writer could simply change the .exe extension of his virus executable to, .com,
and s/he probably just increased the chances that the unsuspecting
masses will run it. Particularly dangerous is (was, actually) the humble
Screen Saver file type (“.scr” extension). Close to the start of the 21st century, “.scr”
viruses were literally everywhere. They were widely believed to be
power-saving, which is so not true (Stand-by mode is much better).
People thought it couldn’t hurt, right? so what’s the harm? So Naive.
Again, extension hardly matters, everything a “.exe” virus can do, a “.scr” one can do equally as well. The days of “.scr”
might be gone, but viruses are probably here to stay, Whatever the
type, extension, purpose and payload – The core concepts are always the
same. So, let’s take a deeper look at the working of “.scr” viruses. The key to the future lies in the past between the shadows.
In the Registry Editor, compare the open verb’s command default value for “EXE” and “SCR” files, respectively. As you will notice, they’re pretty much identical— “%1” %* for EXEs and “%1″/s for Screen Saver files. Screen savers are, as it turns out, standalone executables. The only difference between these two default verbs is a “/S” switch for the SCR file type. The intended purpose of the screen saver’s “open” verb is to allow for testing a screen saver, and the screen saver executable interprets the “/S” switch accordingly. There’s nothing to stop a virus writer from giving their application a “.scr” extension and then simply ignoring the “/S”
switch passed to it when the user invokes the program. Exploiting the
popularity of screen savers was even easier because the caption of the
screen saver’s open verb is shown as “Test” in the
right-click menu. A user thinks he’s just testing a screen saver, but
what he’s actually doing is activating a virus. A particularly clever
virus might even display an actual screen saver, pre-occupying you with
pretty flowers while it destroys files on your hard drive in the
background. This caption is stored in the default value for the open key
itself. Meaning, just like you can simply find and change your “Recycle Bin’s” name to say “Dumpster” or “TrashCan”, you can also change the “Test” option to anything you like. On an unrelated note, you may also change the “Open” option for a word document to maybe “Do Belly Dance” or anything you like. Of course, this only changes the string and not what it does.(Try using the “CTRL + F”, find function to poke around and feel the power of “regedit”. Be warned, don’t change anything that you don’t know about. Changing text strings like “My Computer” is harmless, but changing some core functions code may wreck your computer before you can undo it.
Libraries Can Be Dangerous
Executable code can live inside
resources or component libraries of many different varieties. These may
not seem like obvious candidates for viruses, but they can certainly be
exploited in that way. These file types include Dynamic Link Libraries (DLL), Control Panel Applets (CPL), various Type Libraries (TLB, OLB, and so on). This code isn’t directly executable with a “%1” command verb like .exe,
but this doesn’t mean that the code can’t be run. Just about any
function exported from a DLL can be invoked using a helper application
called “RUNDLL32.exe”.
A virus could employ two possible
attacks. One would be to replace an existing DLL with a compromised
version, in which a particular function is replaced by one of the same
name but with altered functionality. Then, whenever the system invokes
this function, instead of having the desired result, the virus is
activated instead. The second approach is simply to write a DLL from
scratch and invoke its functions using RUNDLL32.EXE when needed. This
isn’t quite as straightforward as invoking the code in an EXE file, but a
DLL, OCX, TLB or another library file is more likely to be accepted by
an unsuspecting user or to be overlooked by an antivirus program, so it
may well be worth the greater effort on the virus coder’s part.
Scripts and Macros
Increased Flexibility Brings Increased
Risk, Script code requires a script engine to interpret and run, but it
can still be exploited. Scripts come in several forms, they may be used
to perform a repetitive task, modify documents, pretty much everything
that a “.exe” file can do. Microsoft has done a lot to
tighten the security of these macros and scripts, but it’s still easy
for a macro virus to do a lot of damage. A popular script category is Windows Script Host (WSH) files. These files, usually with .wsf, .js, or .vbs
extensions, carry a default file association which causes them to be
executed, no questions asked when users double-click them. As you might
imagine, this can be disastrous.
Web applications may also carry
dangerous scripts. Client-side scripts, for example, are fairly limited
in their access to the host system for security reasons, but there’s a
little-known file type, the HTML Application (with an HTA extension),
which works like a client-side Web application without the same security
restrictions. Its purpose is to allow developers to use their Web
development skills to build rich applications using the Web browser
metaphor. But again, the unsuspecting user can unleash all sorts of
chaos by downloading and executing such a file without first examining
its contents. All of these scripts and macros can be readily examined
before they’re executed, but clearly an average user won’t bother
reading some weird code.
Virus Activation Methods
The most common way for a virus to be
activated is for a user to directly execute, say an e-mail attachment.
Virus writers do just about anything to make you open the attachment
using this action, but most developers are savvy enough not to just run
an unknown executable. Of course, just about all of us have done it at
one time or another—particularly now that viruses can access address
books and can assemble a credible-looking e-mail message, ostensibly
from someone you know and trust. Be that as it may, as users have become
more aware, virus creators have gotten more devious, and there is now a
host of new methods for activating a virus on a computer that doesn’t
require any code to be explicitly executed (E-mail attachment viruses
are a rare sight nowadays, since most email services themselves check
emails for malicious files).
Registration Files
Files with an REG
extension, are system registration files that hold information to be
integrated into the system registry. The problem with them is that they
carry a default verb of “open”. This means that if any
registration file is double-clicked, it immediately dumps its contents
directly into the system registry, without any confirmation required
(depending on your OS). Since it has access to the registry, it is free
to modify anything it pleases. It may delete vital keys required for the
system to startup or even modify existing ones to make further file
types vulnerable. Also, it may create a new entry for a previously
unknown extension. A general antivirus may not recognize and hence
ignore a file extension of for example “.bobo”. But in the registry, there could be an entry to make the file’s default action to “Open” or “Run” – giving it all the powers of a .exe file. This could be potentially devastating.
Luckily, most antivirus software nowadays is adopting the “Sandboxing”
technique to run untested files. Basically, the antivirus gives the
file a test run in a secure and sealed environment (sandbox) and checks
if it tries to get out by, for example, trying to access something that
it’s not supposed to or changing system settings and variables without
asking the users explicitly. Inside the sandbox, it is denied anything
remotely suspicious and the antivirus raises a big red flag and moves
the file to the quarantine section (virus vault) or maybe even delete it
straight away.
Path Vulnerabilities
Another hazard is something called the PATH Environment Variable. Anyone who uses a computer is bound to have used a “shortcut” file at least once. Whether it’s the “Google Chrome” icon on your desktop or maybe “WinZip”
in your taskbar these shortcut files are simply links to the actual
files stored in the folder in which they were installed. It’s clearly a
little tedious to open “My Computer >> C: Drive >> Program Files >> Mozilla”. To open “Mozilla Firefox” every time. Hence, we have these shortcut files which simply stores the “Path” to the actual application. These files don’t exactly use the Path environment variable, but the concept is exactly the same.
The computer has certain files (example:
explorer.exe) that it may routinely need to open (example: at startup).
So, in the Registry, it has simply stored the name of the file it needs
to open, and it’s path (in a path variable). Whenever the OS needs to
open a particular system file it simply looks it up in the registry,
follows the path in the memory and opens it. What does this have to do
with viruses? With everything from phones to cars to houses getting
smarter every moment, our computer viruses are not behind. It’s just a
little too obvious and literally “on the nose” when a user clicks a file
and his computer goes berserk. Once infected, our victim, although
compromised is now a little wiser for he knows exactly where it went
wrong. If the victim downloaded something from a website that caused
damage to his system, s/he may report the website to the police. Clearly
jail time is not so appealing to anyone, let alone virus programmers.
This brings us back to path
vulnerabilities. Get this! The attacker needs to infect a system without
making it too obvious. To do so, s/he needs a time gap between the
actual infection and the attack so that it hits the victim out of the
blue. We have two ways to do this by exploiting the path variable.
Average users don’t really bother to sniff around system files like in
the “Windows” folder (you may find this in your C:
drive) and this much understandable carelessness can be exploited. The
attacker can simply take two systems, one with Windows 7 and the other
with XP and search for the location of (example) “winlogon.exe”
– A file that is used by the OS to maintain a user session. (You may
find this running in the task manager). Now in the virus file, the
attacker can simply write up code to create two copies of the virus and
send one to the path for Windows 7, and the other one to the path for
Windows XP. (The path for the “winlogon.exe” file, which s/he searched earlier). After this, the virus can be coded to delete the file “winlogon.exe” and simply rename itself “winlogon.exe”.
So, on the next startup when the OS looks up this file, it instead
unleashes the virus and we’ve got BOOM. Total stealth, total
annihilation and the victim have got no clue of what the hell just
happened. The other way to do this is to code the virus to edit the path
in the registry from its default value to where it (the virus) is
stored. It can then rename itself and in this case on the next startup,
the OS doesn’t even go to the actual file but instead to the virus and
starts it up. Equally effective.
The Best Offense is a Strong Defense
Understanding how viruses take hold is the first step in knowing how and
where to untangle them from your system once it has been compromised.
As viruses become more sophisticated, you can expect them to become more
aggressive toward your antivirus software. So what can we do about
these nefarious little beasties? We’ve come a long way. Even though the
end is not in sight, the roads that lie ahead of us are shorter than the
ones behind. Cyber Security today, is tighter than ever but that
doesn’t mean we are immune to attacks. If you do have the latest
antivirus software and keep your OS updated, you probably don’t need to
worry about 99% of all the malicious software out there, but the
remaining 1% is the reason why cyber security is a $100 billion market
today. Successful attacks are rarer today than ten years ago, but they
certainly make up for it in sheer intensity. More and more people each
day are relying more and more on their computers, not knowing that
simply entering their credit card information on a secure website could
be sending all those details to a hacker. Attacks and infections are
decreasing in number, but rising in destructiveness. Today, almost
nobody bothers to spread around a virus that simply causes reboots or
wipes data, since there’s no real gain for the hacker in it. The
malicious software today are much more targeted. Clearly, obtaining
someone’s social security number or bank pin is much more valuable to a
hacker than deleting some random person’s movies and pictures.
The only thing we can do is keep our
eyes open and turn around at the slightest hint of trouble. Avoid
downloading from unconfirmed sources and make sure your antivirus
software and OS is updated. Even if your system is compromised you may
never actually know it, but the hacker could have identified that you
are an easy target. If just once he could get valuable information from
your system, it’s very likely that he will keep the system compromised,
silently (make it a slave). Further, make sure to never ever store
sensitive or financial information on your computer. Keeping it on an
offline system or an external hard drive is much safer.
Note: – This
guide is only for knowledge purpose and shouldn’t be used for any
illegal activities as we are not responsible for anything happens with
this.
Comments