CS Unit 4
CS Unit 4
Used in Cybercrime
• 1. Introduction
• 2. Proxy Servers and Anonymizers,
• 3. Phishing
• 4. Password Cracking
• 5. Key loggers and Spywares
• 6. Virus and Worms
• 7. Trojan Horses and Backdoors
• 8. Steganography
• 9. DoS and DDoS Attacks
• 10. SQL Injection
• 11. Buffer Overflow
• 12. Attacks on Wireless Networks
• 13. Phishing and Identity Theft: Introduction - Phishing,
• 14. Identity Theft (ID Theft)
Introduction
As the Internet and computer networks are integral parts of information systems, attackers have in-depth
knowledge about the technology and/or they gain thorough knowledge about it.
• Proxy server is a computer on a network which acts as an intermediary for connections with
other computers on that network.
• The attacker first connects to a proxy server and establishes a connection with the target
system through existing connection with proxy.
• This enables an attacker to surf on the Web anonymously and/or hide the attack.
• A client connects to the proxy server and requests some services (such as a file, webpage)
available from a different server.
• The proxy server evaluates the request and provides the resource by establishing the
connection to the respective server and/or requests the required service on behalf of the
client.
• Using a proxy server can allow an attacker to hide ID (i.e., become anonymous on the
network).
A proxy server has following
purposes:
1. Keep the systems behind the curtain (mainly for security reasons).
2. Speed up access to a resource (through “caching”). It is usually used to cache the webpages
from a web server.
3. Specialized proxy servers are used to filter unwanted content such as advertisements.
4. Proxy server can be used as IP address multiplexer to enable to connect number of
computers on the Internet, whenever one has only one IP address
• One of the advantages of a proxy server is that its cache memory can serve all users.
• If one or more websites are requested frequently, may be by different users, it is likely to be
in the proxy’s cache memory, which will improve user response time.
• An anonymizer or an anonymous proxy is a tool that attempts to make activity on the
Internet untraceable. It accesses the Internet on the user’s behalf, protecting personal
information by hiding the source computer’s identifying information.
• Anonymizers are services used to make Web surfing anonymous by utilizing a website that
acts as a proxy server for the web client.
Phishing
• “Phishing” refers to an attack using mail programs to deceive Internet users into
disclosing confidential information that can be then exploited for illegal purposes.
• While checking electronic mail (E-Mail) one day a user finds a message from the bank
threatening to close the bank account if he/she does not reply immediately.
• Although the message seems to be suspicious from the contents of the message, it is
difficult to conclude that it is a fake/false E-Mail.
• This message and other such messages are examples of Phishing – in addition to stealing
personal and financial data – and can infect systems with viruses and also a method of
online ID theft in various cases.
• These messages look authentic and attempt to get users to reveal their personal
information.
How Phishing Works?
• 2. Cryptography:
• - Cryptography is the practice of securing communication by converting plaintext into
ciphertext using algorithms and keys.
• - The main goal of cryptography is to ensure the confidentiality, integrity, and authenticity of
the information being transmitted.
• - Cryptography techniques involve encryption and decryption processes, where the sender
encrypts the message using a key, and the recipient decrypts it using the corresponding key.
• DoS and DDoS Attacks
• A denial-of-service attack (DoS attack) or distributed denial-of-service attack (DDoS
attack) is an attempt to make a computer resource (i.e., information systems)
unavailable to its intended users.
• DoS Attacks
• In this attack the attacker floods the bandwidth of the victim’s network or fills his E-
Mail box with Spam mail depriving him of the services he is entitled to access or
provide.
• The attackers typically target sites or high-profile web servers such as banks, credit
card payment gateways, mobile phone networks and even root name servers
• Buffer overflow technique is employed to commit such kind of criminal attack known
as
• Spoofing.
• The term IP address Spoofing refers to the creation of IP packets with a forged
(spoofed) source IP address with the purpose of concealing the ID of the sender or
impersonating another computing system
• A packet is a formatted unit of data carried by a packet mode computer network.
• The attacker spoofs the IP address and floods the network of the victim with
repeated requests.
• As the IP address is fake, the victim machine keeps waiting for response from the
attacker’s machine for each request.
• This consumes the bandwidth of the network which then fails to serve the
legitimate requests and ultimately breaks down
• The United States Computer Emergency Response Team defines symptoms of DoS
attacks to include:
• 1. Unusually slow network performance (opening fi les or accessing websites);
• 2. unavailability of a particular website;
• 3. inability to access any website;
• 4. dramatic increase in the number of Spam E-Mails received (this type of DoS
attack is termed as an E-Mail bomb).
• The goal of DoS is not to gain unauthorized access to systems or data, but to
prevent intended users (i.e., legitimate users) of a service from using it.
• A DoS attack may do the following:
• 1. Flood a network with traffic, thereby preventing legitimate network traffic.
• 2. Disrupt connections between two systems, thereby preventing access to a
service.
• 3. Prevent a particular individual from accessing a service.
• 4. Disrupt service to a specific system or person
• Classification of DoS Attacks
• 1 Bandwidth attacks: Loading any website takes certain time. Loading
means complete webpage appearing on the screen and system is
awaiting user’s input.
• 2 Logic attacks: These kind of attacks can exploit vulnerabilities in
network software such as web server or TCP/IP stack.
• 3 Protocol attacks: Protocols here are rules that are to be followed
to send data over network.
• 4 Unintentional DoS attack : This is a scenario where a website ends
up denied not due to a attack by a single individual or group of
individuals, but simply due to a sudden enormous spike in popularity.
• Types or Levels of DoS Attacks
• There are several types or levels of DoS attacks as follows:
• 1. Flood attack: This is the earliest form of DoS attack and is also
known as ping food. It is based on an attacker simply sending the
victim overwhelming number of ping packets, usuallyby using the
“ping” command, which result into more traffic than the victim can
handle.
• 2. Ping of death attack: The ping of death attack sends oversized
Internet Control Message Protocol (ICMP) packets, and it is one of the
core protocols of the IP Suite. It is mainly used by networked
computers’ OSs to send error messages indicating (e.g., that a
requested service is not available or that a host or router could not be
reached) datagrams (encapsulated in IP packets) to the victim.
• 3. SYN attack: It is also termed as TCP SYN Flooding. In the TCP,
handshaking of network connections is done with SYN and ACK
messages.
• ▪ An attacker initiates a TCP connection to the server with an SYN.
• ▪ The server replies with an SYN-ACK.
• ▪ The client then does not send back an ACK, causing the server to
allocate memory for the pending connection and wait.
• ▪ This fills up the buffer space for SYN messages on the target system,
preventing other systems on the network from communicating with
the target system.
• 4. Teardrop attack: The teardrop attack is an attack where fragmented
packets are forged to overlap each other when the receiving host tries
to reassemble them. IP’s packet fragmentation algorithm is used to
send corrupted packets to confuse the victim and may hang the
system. This attack can crash various OSs due to a bug in their TCP/IP
fragmentation reassembly code.
• 5. Smurf attack: This is a type of DoS attack that floods a target system
via spoofed broadcast ping messages.
• This attack consists of a host sending an echo request (ping) to a
network broadcast address.
• 6. Nuke: Nuke is an old DoS attack against computer networks
consisting of fragmented or invalid packets sent to the target.
• Tools Used to Launch DoS Attack
• 1 Jolt2 : The vulnerability allows remote attackers to cause a DoS attack
against Windows-based machines – the attack causes the target
machine to consume of the CPU time on processing of illegal packets.
• 2 Nemesy : This program generates random packets of spoofed source
IP to enable the attacker to launch DoS attack.
• 3 Targa : It is a program that can be used to run eight diff erent DoS
attacks. Th e attacker has the option to launch either individual attacks
or try all the attacks until one is successful.
• 4 Crazy Pinger : This tool could send large packets of ICMP(Internet
Control Message Protocol) to a remote target network.
• 5 SomeTrouble: It is a remote flooder and bomber. It is developed in
Delhi.
• DDoS Attacks
• In a DDoS attack, an attacker may use your computer to attack another computer.
• By taking advantage of security vulnerabilities or weaknesses, an attacker could take control
of your computer.
• He/she could then force your computer to send huge amounts of data to a website or send
Spam to particular E-Mail addresses.
• The attack is “distributed” because the attacker is using multiple computers, including yours,
to launch the DoS attack.
• A DDoS attack is a distributed DoS wherein a large number of zombie systems are
synchronized to attack a particular system.
• The zombie systems are called “secondary victims” and the main target is called
“primaryvictim.”
• Malware can carry DDoS attack mechanisms – one of the better-known examples of this
isMyDoom
• Botnet is the popular medium to launch DoS/DDoS attacks.
• Attackers can also break into systems using automated tools that exploit flaws in
programsthat listen for connections from remote hosts.
• How to Protect from DoS/DDoS Attacks
• Computer Emergency Response Team Coordination Center (CERT/CC) offers many preventive
measures from being a victim of DoS attack.
• 1. Implement router filters. This will lessen your exposure to certain DoS attacks.
• 2. If such filters are available for your system, install patches to guard against TCP SYN
flooding.
• 3. Disable any unused or inessential network service.
• 4. Enable quota systems on your OS if they are available.
• 5. Observe your system’s performance and establish baselines for ordinary activity.
• 6. Routinely examine your physical security with regard to your current needs.
• 7. Use Tripwire or a similar tool to detect changes in configuration information or other files.
• 8. Invest in and maintain “hot spares” – machines that can be placed into service quickly if a
• similar machine is disabled.
• 9. Invest in redundant and fault-tolerant network configurations.
• 10. Establish and maintain regular backup schedules
• 11. Establish and maintain appropriate password policies
• SQL Injection
• Structured Query Language (SQL) is a database computer language designed
for managing data in relational database management systems (RDBMS).
• SQL injection is a code injection technique that exploits a security
vulnerability occurring in the database layer of an application.
• SQL injection attacks are also known as SQL insertion attacks.
• Attackers target the SQL servers – common database servers used by many
organizations to store confidential data.
• The prime objective behind SQL injection attack is to obtain the information
while accessing a database table that may contain personal information
such as credit card numbers, social security numbers or passwords.
• During an SQL injection attack, Malicious Code is inserted into a web form
field or the website’s code
• For example, when a user logs in with username and password, an
SQL query is sent to the
• database to check if a user has valid name and password.
• • With SQL injection, it is possible for an attacker to send crafted
username and/or password field that will change the SQL query.
• Steps for SQL Injection Attack
• Following are some steps for SQL injection attack:
• 1. The attacker looks for the webpages that allow submitting data, that is, login page, search page, feedback,
etc. The attacker also looks for the webpages that display the HTML commands such as POST or GET by
checking the site’s source code.
• 2. To check the source code of any website, right click on the webpage and click on “view source” – source
code is displayed in the notepad. The attacker checks the source code of the HTML, and look for “FORM” tag
in the HTML code.
• Everything between the <FORM> and </FORM> have potential parameters that might be useful
• to find the vulnerabilities.
• <FORM action=Search/search.asp method=post>
• <input type=hidden name=A value=C>
• </FORM>
• 3. The attacker inputs a single quote under the text box provided on the webpage to accept the username
and password. This checks whether the user-input variable is interpreted literally by the server. If the
response is an error message such as use “a” = “a” then the website is found to be susceptible to an SQL
injection attack.
• 4. The attacker uses SQL commands such as SELECT statement command to retrieve data from the database
or INSERT statement to add information to the database.
• Here are few examples of variable field text the attacker uses on a webpage to test for
SQL
• vulnerabilities:
• 1. Blah’ or 1=1--
• 2. Login:blah’ or 1=1--
• 3. Password::blah’ or 1=1--
• 4. http://search/index.asp?id=blah’ or 1=1--
• Similar SQL commands may allow bypassing of a login and may return many rows in a
table or even an entire database table because the SQL server is interpreting the terms
literally.
• The double dashes near the end of the command tell SQL to ignore the rest of the
command as a comment.
• Blind SQL Injection
• Blind SQL injection is used when a web application is vulnerable to an
SQL injection but the results of the injection are not visible to the
attacker.
• The page with the vulnerability may not be the one that displays data;
however, it willdisplay differently depending on the results of a logical
statement injected into the legitimate SQL statement called for that page.
• This type of attack can become time-intensive because a new statement
must be crafted for each bit recovered.
• There are several tools that can automate these attacks once the location
of the vulnerability and the target information have been established.
• How to Prevent SQL Injection Attacks
• SQL injection attacks occur due to poor website administration and coding. The following
steps can be taken to prevent SQL injection.
• 1. Input validation
• Replace all single quotes to two single quotes.
• Sanitize the input: User input needs to be checked and cleaned of any characters or strings
that could possibly be used maliciously. For example, character sequences such as ; , --,
select, insert and xp_ can be used to perform an SQL injection attack.
• Numeric values should be checked while accepting a query string value. Function –
• IsNumeric() for Active Server Pages (ASP) should be used to check these numeric values.
• Keep all text boxes and form fields as short as possible to limit the length of user input.
• 2. Modify error reports: SQL errors should not be displayed to outside users
• 3. Other preventions
• The default system accounts for SQL server 2000 should never be used.
• Isolate database server and web server.
• Buffer Overflow
• • Buffer overflow, or buffer overrun, is an anomaly where a process stores data in a
buffer outside the memory the programmer has set aside for it.
• This may result unreliable program behavior, including memory access errors, incorrect
results, program termination (a crash) or a breach of system security.
• Buffer overflows can be triggered by inputs that are designed to execute code or alter
the way the program operates.
• They are, thus, the basis of many software vulnerabilities and can be maliciously
exploited.
• Bounds checking can prevent buffer overflows.
• Programming languages commonly associated with buffer overflows include C and C++,
which provide no built-in protection against accessing or overwriting data in any part of
memory and do not automatically check that data written to an array.
• Buffer overflow occurs when a program or process tries to store more data in a buffer
(temporary data storage area) than it was intended to hold.
• Although it may occur accidentally through programming error, buffer overflow is an
• increasingly common type of security attack on data integrity.
• • The knowledge of C, C++ or any other high-level computer language (i.e., assembly
• language) is essential to understand buffer overflow.
• For example,
• int main () {
• int buffer[10];
• buffer[20] = 10;
• }
• • This C program is a valid program and every compiler can compile it without any errors.
• • However, the program attempts to write beyond the allocated memory for the buffer, which
• might result in an unexpected behavior.
• Types of Buffer Overflow
• Stack-Based Buffer Overflow
• Stack buffer overflow occurs when a program writes to a memory address on
the program’s call stack outside the intended data structure – usually a fixed
length buffer. Here are the
• characteristics of stack-based programming:
• 1. “Stack” is a memory space in which automatic variables (and often
function parameters) areallocated.
• 2. Function parameters are allocated on the stack and are not automatically
initialized by the
• system, so they usually have garbage in them until they are initialized.
• 3. Once a function has completed its cycle, the reference to the variable in
the stack is removed.
• The attacker may exploit stack-based buffer overflows to manipulate
the program in various ways by overwriting:
• 1. A local variable that is near the buffer in memory on the stack to
change the behavior of the program that may benefit the attacker.
• 2. The return address in a stack frame. Once the function returns,
execution will resume at the return address as specified by the
attacker, usually a user input-filled buffer.
• 3. A function pointer, or exception handler, which is subsequently
executed.
• The factors that contribute to overcome the exploits are
• 1. Null bytes in addresses;
• 2. Variability in the location of shell code;
• 3. Differences between environments.
• A shell code is a small piece of code used as a payload in the
exploitation of software vulnerability.
• It is called “shell code” because it starts with command shell from
which the attacker can control the compromised machine.
• NOPs
• NOP or NOOP (short form of no operation) is an assembly language
instruction/ command that effectively does nothing at all.
• Heap Buffer Overflow
• Heap buffer overflow occurs in the heap data area and may be introduced
accidentally by an application programmer, or it may result from a deliberate exploit.
• The characteristics of stack based and heap-based programming are as follows:
• 1. “Heap” is a “free store” that is a memory space, where dynamic objects are
allocated.
• 2. The heap is the memory space that is dynamically allocated new(), malloc() and
calloc() functions; it is different from the memory space allocated for stack and code.
• 3. Dynamically created variables (i.e., declared variables) are created on the heap
before the execution program is initialized to zero.
• Memory on the heap is dynamically allocated by the application at run-time and
normally contains program data. Exploitation is performed by corrupting this data in
specific ways tocause the application to overwrite internal structures such as linked
list pointers.
• How to Minimize Buffer Overflow
• Although it is difficult to prevent all possible attacks, the following methods will
definitely help to minimize such attacks:
• 1. Assessment of secure code manually: Buffer overflow occurs when a program or
process tries to store more data in a buffer than it was intended to hold.
Developers should be educated about minimizing the use of functions like strcpy(),
strcat(), sprintf() and vsprintf() in C Language.
• 2. Disable stack execution: Malicious Code causes input argument to the program,
and it resides in the stack and not in the code segment. Any code that attempts to
execute any other code residing in the stack will cause a segmentation violation.
• 3. Compiler tools: Over the years, compilers have become more and more
aggressive in optimizations and the checks they perform. Various compiler tools
already off er warnings on the use of unsafe constructs such as gets(), strcpy(), etc.
Developers should be educated to restructure the programming code if such
warnings are displayed
• 4. Dynamic run-time checks: In this scheme, an application has restricted access
to prevent attacks.
• This method primarily relies on the safety code being preloaded before an
application is executed.
• This preloaded component can either provide safer versions of the standard
unsafe functions or it can ensure that return addresses are not overwritten.
• One example of such a tool is libsafe.
• The libsafe library provides a way to secure calls to these functions, even if the
function is not available.