Difference between revisions of "SEC520/labs/Lab 3"
(Created page with "<h1> <span class="mw-headline">Scanning, Enumeration & Vulnerability Testing</span></h1> <a name="Introduction" id="Introduction"></a><h2> <span class="mw-headline">Introd...") |
m (Protected "SEC520/labs/Lab 3": OER transfer ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
<h1> <span class="mw-headline">Scanning, Enumeration & Vulnerability Testing</span></h1> | <h1> <span class="mw-headline">Scanning, Enumeration & Vulnerability Testing</span></h1> | ||
− | + | <h2> <span class="mw-headline">Introduction</span></h2> | |
This lab focuses on identifying and exploiteng a server's vulnerabilities in order to gain access to that system. Information assembled in the reconnaissance phase provides the data used in the <b>scanning & enumeration</b> phases. | This lab focuses on identifying and exploiteng a server's vulnerabilities in order to gain access to that system. Information assembled in the reconnaissance phase provides the data used in the <b>scanning & enumeration</b> phases. | ||
<br><br> | <br><br> | ||
Line 7: | Line 7: | ||
<dl><dd><ol><li>Students will first use the <b>nmap</b> utility to scan a | <dl><dd><ol><li>Students will first use the <b>nmap</b> utility to scan a | ||
− | + | server to determine that the server is active (running). Verifying | |
− | active servers can reduce the amount of scanning time to help avoid | + | active servers can reduce the amount of scanning time to help avoid |
− | detection. | + | detection. |
</li></ol> | </li></ol> | ||
</dd></dl> | </dd></dl> | ||
Line 19: | Line 19: | ||
</li></ol></dd></dl> | </li></ol></dd></dl> | ||
<dl><dd><ol><li value="5"> | <dl><dd><ol><li value="5"> | ||
− | Finally, once students sign a waiver form and receive authorization to perform penetration testing on Seneca's Tank server, they can apply what they have learned in this lab on the <b>Tank</b> server. Students will also receive accounts to access this server for penetration testing... | + | Finally, once students sign a waiver form and receive authorization to perform penetration testing on Seneca's Tank server, they can apply what they have learned in this lab on the <b>Tank</b> server. Students will also receive accounts to access this server for penetration testing... |
</li></ol></dd></dl> | </li></ol></dd></dl> | ||
<dl><dd><ol><li value="6">Once students have completed the <i>scanning</i> & <i>enumeration</i> phase, they will use that information to perform <i>vulnerability testing</i> (using <b>Nessus</b> and <b>Metasploit</b>) to gain access to that targeted server. | <dl><dd><ol><li value="6">Once students have completed the <i>scanning</i> & <i>enumeration</i> phase, they will use that information to perform <i>vulnerability testing</i> (using <b>Nessus</b> and <b>Metasploit</b>) to gain access to that targeted server. | ||
− | <br><br> | + | <br><br> |
</li> | </li> | ||
</ol></dd></dl> | </ol></dd></dl> | ||
<br> | <br> | ||
− | + | <h2> <span class="mw-headline">Objectives</span></h2> | |
<ol> | <ol> | ||
− | <li>Use the <b>nmap</b> utility to verify that a targeted server is active (running).</li> | + | <li>Use the <b>nmap</b> utility to verify that a targeted server is active (running).</li> |
− | <li>Learn various options of the nmap utility to perform <b>half-open scans</b>, <b>UDP scans</b>, and list <b>running ports</b>.</li> | + | <li>Learn various options of the nmap utility to perform <b>half-open scans</b>, <b>UDP scans</b>, and list <b>running ports</b>.</li> |
− | <li>Use the <b>nmap</b> utility to generate reports.</li> | + | <li>Use the <b>nmap</b> utility to generate reports.</li> |
− | <li>Use the <b>nmap</b> and <b>netcat</b> utilities to verify the type | + | <li>Use the <b>nmap</b> and <b>netcat</b> utilities to verify the type |
− | and version of the operating system (<b>finger-printing</b>), and verify the | + | and version of the operating system (<b>finger-printing</b>), and verify the |
− | version running services (<b>banner grabbing</b>).</li> | + | version running services (<b>banner grabbing</b>).</li> |
− | <li>Use the <b>nessus</b> and <b>Metasploit</b> frameworks to flag, exploit, and gain access to a vulnerable computer system.</li> | + | <li>Use the <b>nessus</b> and <b>Metasploit</b> frameworks to flag, exploit, and gain access to a vulnerable computer system.</li> |
− | <li>Practice scanning and enumeration on the <b>Tank</b> server at Seneca College (assuming permissions forms submitted, and permission granted by your instructor / ACS).</li> | + | <li>Practice scanning and enumeration on the <b>Tank</b> server at Seneca College (assuming permissions forms submitted, and permission granted by your instructor / ACS).</li> |
</ol> | </ol> | ||
<p><br> | <p><br> | ||
</p> | </p> | ||
− | + | <h2> <span class="mw-headline">Required Materials (Bring to All Labs)</span></h2> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<ul> | <ul> | ||
− | + | <li> <b>SATA Hard Disk</b> (in removable disk tray). | |
− | + | </li><li> <b>Lab Logbook (Lab3 Reference Sheet)</b> (to make notes and observations). | |
− | + | </li></ul> | |
− | <li> | + | <p><br> |
− | <li> | + | </p> |
− | <li> | + | <h2> <span class="mw-headline">Prerequisites</span></h2> |
− | <li> | + | <ul><li> [https://wiki.cdot.senecacollege.ca/wiki/SEC520/labs/Lab_2 SEC520 Lab 2] |
− | + | </li></ul> | |
− | </ul> | + | <p><br> |
− | + | </p> | |
− | <p><br> | + | <h2> <span class="mw-headline">Online Tools and References</span></h2> |
− | </p> | + | <table cellpadding="12"> |
− | + | <tr valign="top"> | |
− | + | <td><b>Scanning & Enumeration</b></td> | |
− | <br> | + | <td><b>Vulnerability Testing</b></td> |
− | After the <i>reconnaissance</i> phase, it is important to verify that | + | |
− | the target IP Address(es) are active (running). A great amount of time | + | </tr> |
− | can be saved during the scanning and enumeration process by simply | + | <tr valign="top"> |
− | confirming that your target exists. Wasting time while scanning invalid | + | <td> |
− | targets can also increase the chance of detection from a server's IDS (Instrusion Detection System).<br | + | <ul> |
− | In investigations 1 - 3, you will be learning to perform manual scans of targeted servers using the nmap utility. It is useful to learn how to use nmap, since other penetration testing software such as Nessus and Metasploit (discussed in later investigations) use the nmap utility. | + | <li>[http://www.howtoforge.com/useful-uses-of-netcat netcat]</li> |
− | <br><br> | + | </ul> |
− | + | </td> | |
− | + | <td> | |
− | + | <ul> | |
− | + | <li>[http://www.symantec.com/connect/articles/introduction-nessus nessus]</li> | |
− | enumeration at college or at home (on the basis of the student properly | + | <li>[http://www.ehacking.net/2011/10/metasploit-tutorials-from-beginner-to.html Metasploit Framework]</li> |
− | completing a signed permission form from ACS).</li></ul> | + | </ul> |
− | + | </td> | |
− | <br> | + | |
− | INSTRUCTIONS: | + | </tr> |
− | <ol> | + | </table> |
− | + | <p><br> | |
− | + | </p> | |
− | + | <h2> <span class="mw-headline">Course Notes / Resources</span></h2> | |
− | + | <ul> | |
+ | <li>[http://cs.senecac.on.ca/%7Efac/sec520/slides/sec520_w2_l1.odp odp] | [http://cs.senecac.on.ca/%7Efac/sec520/slides/sec520_w2_l1.pdf pdf] | [http://cs.senecac.on.ca/%7Efac/sec520/slides/sec520_w2_l1.ppt ppt ](Slides: Scanning & Enumeration)</li> | ||
+ | <li>[http://cs.senecac.on.ca/%7Efac/sec520/slides/sec520_w2_l2.odp odp] | [http://cs.senecac.on.ca/%7Efac/sec520/slides/sec520_w2_l2.pdf pdf] | [http://cs.senecac.on.ca/%7Efac/sec520/slides/sec520_w2_l2.ppt ppt ](Slides: Vulnerability Testing)</li> | ||
+ | <li>[http://www.youtube.com/watch?v=_Ch0RJlHFBo Scanning 1] | [http://www.youtube.com/watch?v=WKLNAAt57Wg Scanning 2] | [http://www.youtube.com/watch?v=_Ch0RJlHFBo Enumeration] |[https://www.youtube.com/watch?v=FMgAIfcPsyw Vulnerability Testing - Overview] (YouTube Videos)</li> | ||
+ | <li>[http://www.youtube.com/watch?v=BDTLdCllfr4 Installing Nessus in Kali Linux] (YouTube Video)</li> | ||
+ | <li>[http://www.youtube.com/watch?v=QjuyasD1aBE Using Nessus in Kali Linux] (YouTube Video)</li> | ||
+ | <li>[http://www.youtube.com/watch?v=WlZuq6Vj5AI Using Metasploit Pro in Kali Linux] (YouTube Video)</li> | ||
+ | <li>[http://www.youtube.com/watch?v=xErWWX2jllU Use Armitage to Exploit Multiple Machines in Kali Linux] (YouTube Video)</li> | ||
+ | </ul> | ||
+ | |||
+ | <p><br> | ||
+ | </p> | ||
+ | <h1> <span class="mw-headline">Performing Lab 3</span></h1> | ||
+ | <h2> <span class="mw-headline">Task #1: Verifying Server is Active</span></h2> | ||
+ | <br> | ||
+ | After the <i>reconnaissance</i> phase, it is important to verify that | ||
+ | the target IP Address(es) are active (running). A great amount of time | ||
+ | can be saved during the scanning and enumeration process by simply | ||
+ | confirming that your target exists. Wasting time while scanning invalid | ||
+ | targets can also increase the chance of detection from a server's IDS (Instrusion Detection System).<br><br> | ||
+ | In investigations 1 - 3, you will be learning to perform manual scans of targeted servers using the nmap utility. It is useful to learn how to use nmap, since other penetration testing software such as Nessus and Metasploit (discussed in later investigations) use the nmap utility. | ||
+ | <br><br> | ||
+ | {{Admon/caution|CAUTION!|To date, any reconnaissance activity is considered to be “safe” for the penetration tester. <b>The tester will “cross the line” when they start to <u>scan ports</u>, or use utilities that <u>scan ports</u> to identify vulnerabilities on a server (enumeration)</b>. If the tester does NOT have written permission to scan a server's ports, they may be subject to <b>legal action or account suspension from their ISP!</b><br><br><b>There are safe-guards that are available for performing scanning and enumeration at Seneca College:</b><ul><li>The <b>IFS lab</b> is designed for user to switch from the Internet to an internal network to practice authorized scanning & enumeration.</li><li>Students have created <b>Virtual Machines</b> (<i>Linux</i> and <i>Windows 2003 server</i>) in <i>lab1</i> to practice scanning & enumeration.</li><li>Seneca's <b>Tank</b> | ||
+ | server available for SEC520 students to practice scanning & | ||
+ | enumeration at college or at home (on the basis of the student properly | ||
+ | completing a signed permission form from ACS).</li></ul>|}} | ||
+ | <br> | ||
+ | INSTRUCTIONS: | ||
+ | <ol> | ||
+ | <li>Boot-up your <i>Kali Linux (host)</i>.</li> | ||
+ | <li>Prior to booting up your vulnerable Linux and Windows VMs, follow the steps in the message box below to changes the network settings for <u>each</u> VM.</li> | ||
+ | |||
+ | |||
+ | |||
− | + | <li value="3">After making the network settings changes (above for each VM), boot your vulnerable Linux and Windows VMs.</li> | |
− | + | <li>Determine the IP Addresses for your Linux VM (<b>/sbin/ifconfig</b> for LINUX_IP_ADDRESS) and your Windows 2003 Server VM (<b>ipconfig</b> for WINDOWS_IP_ADDRESS). Write this information in your lab log-book.</li> | |
− | + | <li>Take several minutes to review <b>class notes</b>, <b>YouTube vidoes</b>, and the <b>online man pages</b> to learn how to use the <b>nmap</b> utility before proceeding.</li> | |
− | + | <li>Switch to your Kali Linux (host) machine and open a shell terminal.</li> | |
− | + | <li>Issue the following command to verify that the virtual server is active:<br><br><b>nmap -v -sn LINUX_IP_ADDRESS</b><br><br></li> | |
− | + | <li>Is this server active?</li> | |
− | + | ||
− | </ | + | |
+ | {{Admon/tip|Paranoid of Making a Mistake with nmap?| | ||
+ | If you are worried about making a mistake when using nmap (eg. scanning a wrong network), you can <b>disconnect from the Seneca wireless or lan connection prior to scanning and enumeration</b>. In this way, you are disconnected from Seneca's computer network prior to experimenting with your own host machine and virtual machines. Remember to establish the wireless or lan connection after you have performed your scan...|}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <li value="9">Try to verify that the Windows 2003 Server is active (running nmap with your WINDOWS_IP_ADDRESS).</li> | |
− | + | <li>Can you detect this server? Write the result in your lab log-book.</li> | |
− | + | <li>Try performing a <b>UDP scan</b> for <b>both the Linux and Windows VMs</b> by issuing the following commands:<br><br><b>nmap -v -sU LINUX_IP_ADDRESS</b><br><b>nmap -v -sU WINDOWS_IP_ADRESS</b><br><br>This may take some time. Try to time how long this UDP scan takes, and compare it with the TCP ping scan you previously performed. Why do you think it is useful to perform a UDP scan in addition to a TCP scan?<br><br></li> | |
− | + | <li> Record your findings in your lab log-book.</li> | |
− | + | <li>Proceed to Task #2<br><br></li> | |
− | + | </ol> | |
− | |||
<p><b>Answer the Task #1 observations / questions in your lab log book.</b> | <p><b>Answer the Task #1 observations / questions in your lab log book.</b> | ||
</p> | </p> | ||
<br><br> | <br><br> | ||
− | + | <h2> <span class="mw-headline">Task #2: Various Scanning Techniques</span></h2> | |
<br> | <br> | ||
Now that we have verified that our targeted IP Addresses are active, we | Now that we have verified that our targeted IP Addresses are active, we | ||
can perform a scan to determine which services are running on those | can perform a scan to determine which services are running on those | ||
servers. We can also record this information in a report format | servers. We can also record this information in a report format | ||
− | + | (which can be inserted into a later Security Audit Report).<br><br> | |
<p> | <p> | ||
− | INSTRUCTIONS: | + | INSTRUCTIONS: |
− | </p><ol> | + | </p><ol> |
− | + | <li>Use the <b>nmap</b> command to perform a <b>stealthy scan</b> in order to list the ports for the Linux VM by issuing the following command:<br><br><b>nmap -sS LINUX_IP_ADDRESS</b><br><br></li> | |
− | + | <li>Record any running services (with associated port numbers) in your lab log-book.</li> | |
− | + | <li>Repeat step 2, but view course notes and add an <b>option</b> to record findings in report file(s) called <b>/root/linux_vm_scan</b></li> | |
− | + | <li>The reports are created in 3 different formats. List those formats, and give a reason how these can be incorporated into a Security Audit Report.</li> | |
− | + | <li>Repeat steps 2 and 3, generating similar reports for the Windows 2003 Server VM called <b>/root/windows_vm_scan</b>.</li> | |
− | + | <li>Use what you have learned in <i>task #2</i> to assemble a scanning report for your Linux and Windows VMs. These files must be available for your instructor to check when you have completed this lab.</li> | |
− | + | <li>Proceed to Task #3.<br><br></li> | |
− | + | </ol> | |
<p><b>Answer Task #2 observations / questions in your lab log book.</b> | <p><b>Answer Task #2 observations / questions in your lab log book.</b> | ||
− | </p><p><br> | + | </p><p><br> |
</p> | </p> | ||
− | + | <h2> <span class="mw-headline">Task #3: Enumeration Techniques</span></h2> | |
<br> | <br> | ||
<br> | <br> | ||
Line 178: | Line 164: | ||
INSTRUCTIONS: | INSTRUCTIONS: | ||
<ol> | <ol> | ||
− | + | <li>Issue the following command for the Linux VM:<br><br><b>nmap -O LINUX_IP_ADDRESS</b><br><br></li> | |
− | + | <li>Can you detect the type and version of the operating system? Record your findings in your log lab-book.</li> | |
− | + | <li>Perform the same scan, but for the Windows 2003 Server VM. Record your findings in your log lab-book.</li> | |
− | + | <li>Issue the following command to perform a <b>banner grab</b> for your vulnerable Linux VM:<br><br><b>nmap -sV LINUX_IP_ADDRESS</b><br><br></li> | |
− | + | <li>Take several minutes to review <b>class notes</b>, <b>YouTube vidoes</b>, and the <b>online man pages</b> to learn how to use the <b>netcat</b> utility before proceeding.</li> | |
− | + | <li>Use the <b>netcat</b> utility to verify the purpose of the running services on the Linux VM.</li> | |
− | + | <li>Record your findings in your lab log-book.</li> | |
− | + | <li>Repeat the 2 previous steps, but for the Windows 2003 Server.</li> | |
− | + | <li>Use what you have learned in task #2 to perform enumeration for | |
− | your Windows and Linux VMs. Incorporate this information into a file | + | your Windows and Linux VMs. Incorporate this information into a file |
− | called: <b>vm_security_audit_linux</b> and <b>vm_security_audit_windows</b> respectively.</li> | + | called: <b>vm_security_audit_linux</b> and <b>vm_security_audit_windows</b> respectively.</li> |
− | <li>Proceed to Task #4<br><br></li> | + | <li>Proceed to Task #4<br><br></li> |
</ol> | </ol> | ||
<p><b>Answer Task #3 observations / questions in your lab log book.</b> | <p><b>Answer Task #3 observations / questions in your lab log book.</b> | ||
− | </p><p><br> | + | </p><p><br> |
</p> | </p> | ||
− | + | <h2> <span class="mw-headline">Task #4: Identifying Server Vulnerabilities Using Nessus</span></h2> | |
This section will reap the benefits from the previous phases of penetration testing you have performed in the previous labs. You | This section will reap the benefits from the previous phases of penetration testing you have performed in the previous labs. You | ||
Line 205: | Line 191: | ||
INSTRUCTIONS: | INSTRUCTIONS: | ||
<ol> | <ol> | ||
− | + | <li>Make certain that your <b>Kali Linux system is running</b>, and that both of your <b>Windows and Linux VMs are running</b>.</li> | |
− | </ | + | |
+ | <br> | ||
+ | {{Admon/tip|Exploiting Local Systems: Nessus Server-Client|This | ||
+ | application is a server-client model that is run on the running server | ||
+ | to determine its vulnerabilities. This application has the <b>nmap</b> utility built into the application, and allows for plugins to be added to enhance vulnerability testing. The Nessus server | ||
+ | (<b>daemon</b>) must run first to allow the penetration test to graphically interface with the application (<b>client</b>).|}} | ||
+ | |||
+ | <br> | ||
+ | <li>First you should register a free account on the <b>Nessus Website</b> in order to download plugins (and run the nessus server). To register, go to the following URL, and select home use: [http://www.nessus.org/register/ http://www.nessus.org/register/]. Once you complete the registration form, an e-mail will be sent with a "one-time" ACTIVATION_CODE_# (you will need this in an up-coming step).<br><br></li> | ||
+ | <li>Next, in your host machine, open a shell terminal and issue the following command to install the <b>gdebi</b> application to allow you to automatically download and install debian packages by clicking on a .deb file link:<br><b>sudo apt-get install gdebi</b><br><br></li> | ||
+ | |||
+ | |||
+ | {{Admon/tip|Is There a Previous Version of Nessus?| | ||
+ | If there is already an older version of <b>nessus</b> that exists on your host, remove it by issuing the command: <br><b>sudo apt-get remove nessus</b><br> | ||
+ | |||
+ | |}} | ||
<br> | <br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | + | <li value="3">Next go to the following website: [http://www.tenable.com/products/nessus/nessus-download-agreement http://www.tenable.com/products/nessus/nessus-download-agreement]<br> (select to download a version for <b>Debian</b> for your appropriate OS: 32-bit or 64-bit).</li> |
− | < | + | <li>A dialog box will appear to allow you to save the file. Note the directory where you have saved the deb file.</li> |
− | < | + | <li>In the <b>Administration</b> menu, selec the <b>Gdebi Package Manager</b>. Click the <b>File</b> menu, and <b>open</b> and then select the downloaded deb file. Allow the program to install the Nessus package.</li> |
− | + | <li>Allow the installation to complete (it may take a long time to download the newest plugins).<br><br></li> | |
+ | <li>You need to create a username and password in order to access the Nessus server (from web-browser). Run the following command to create a username and password:<br><b>sudo /opt/nessus/sbin/nessus-adduser</b><br><br></li> | ||
+ | <li>Prior to starting the Nessus server, you need to register this application. <b>Use the registration/activiation code (provided from e-mail you received from above procedure)</b> by issuing the command:<br><b>sudo /opt/nessus/bin/nessus-fetch --register xxxx-xxxx-xxxx-xxxx</b><br><b> (i.e. xxxx-xxxx-xxxx-xxxx represents activation-code contained in received e-mail message)</b><br><br></li> | ||
+ | <li>Issue the following command to start the Nessus server: <b>sudo service nessusd start</b><br><br></li> | ||
+ | <li>You can run the Nessus client application in order to connect to the Nessus server (recommended) by web-browser. Simply launch a web-browser and type the following URL: <b>[https://127.0.0.1:8834/ https://127.0.0.1:8834/]</b></li> | ||
+ | |||
− | + | {{Admon/tip|Problems connecting to Future Nessus Sessions| | |
− | + | If you have installed and setup Nessus, yet cannot connect to the Nessus client, check to see if the Nessus server is running, and if no, start the service. It is recommended to make this service persistent. | |
+ | |}} | ||
<br> | <br> | ||
− | + | ||
− | + | <li value="11">When the application launches in the web-browser resource, you may have to indicate that you trust the connection, and to add an exception. It may take serveral minutes for the application to initialize. Login to your default user account (with the corresponding password).<br><br></li> | |
− | + | <li>Go to the <b>Policies</b> section, and create a new policy called <b>Basic</b> for a "Basic Scan". Select this policy for Windows, but you are NOT required to provide the Window's username and password.</li> | |
− | + | <li>Click the <b>Scan</b> section and add a new scan called <b>Windows 2003 Server</b> using the <b>Basic</b> policy, and adding the IP ADDRESS at the bottom target area. Click on the <b>Launch</b> button to begin the scan.</li> | |
− | + | <li>You will be able to view the status of the scan. When the scanning has been completed, view and note the vulnerabilities that are listed in the scanning report.</li> | |
− | <li> | + | <li>What vulnerabilities do you see? Which ones were the most severe? Record these observations in your lab log-book.</li> |
− | + | <li>How do you think that you can use the above-mentioned information that you have collected? | |
− | + | Note your observations in your lab log-book.<br></li> | |
+ | |||
+ | <li>Try creating other policies for the different types, and repeat scanning for the Windows target. What other vulnerabilities did you discover? Record your findings in your lab Log-book.</li> | ||
+ | <li>Repeat <b>steps 12 to 16</b>, but for your <b>Vulnerable Linux (Fedora) sever VM</b>. Make certain to use your <b>VULNERABLE_IP_ADDRESS (or range)</b> and name the report <b>Fedora 5 Linux</b>. Note your observations in your lab log-book.</li> | ||
+ | <li>Proceed to Task #5</li> | ||
</ol> | </ol> | ||
− | < | + | <p><b>Answer Task #4 observations / questions in your lab log book.</b></p> |
− | < | + | |
− | < | + | <h2> <span class="mw-headline">Task #5: Accessing Vulnerable Servers Using Metasploit</span></h2> |
− | + | ||
− | + | <b>Metasploit</b> is a framework (collection of utilities) for penetration testing. This framework acts as | |
− | + | a server-client model that is run on an <b>internal network</b> (unlike <b>Nessus</b> which can be run from a remote server). | |
− | + | This framework is ideal when working on your host/VM setup for penetration testing. Depending on the targeted server's vulnerability, the penetration tester may be able to access that system. | |
+ | |||
+ | |||
<ol> | <ol> | ||
− | + | <li>For <u>both</u> vulnerable machines, log-in as a regular-user.</li> | |
− | + | <li>To obtain the Proprietary version of Metasploit, you need to register first. Here is the link to Metasploit Pro website: <br>[https://www.rapid7.com/products/metasploit/metasploit-community-registration.jsp https://www.rapid7.com/products/metasploit/metasploit-community-registration.jsp]</li> | |
− | + | <li>You will presented with a form to fill-out your personal information, and then you are required to <b>create account</b>. Make certain to apply for the free (community edition). During that process, you will be required to fill out information (including e-mail) in order to get an activation code.</li> | |
− | + | <li>At some point, you will be redirected to another screen to download the file for Metaspoit Pro. Once downloaded, you need to add execution permissions for the downloaded file, and run the file from the shell.</li> | |
− | + | <li>After the file installs, you will be prompted to open a web interface (open it). Make certain to create a new user.</li> | |
− | + | <li>Once you check your e-mail to obtain the activation code, enter the product key (activation code) in the required field to obtain your account.</li> | |
− | + | <li>If all goes well, there will be an indication that the activation is successful.</li> | |
− | + | <li>Back in your e-mail message with the <b>activiation code</b>, there is a link to a <b>"Getting Started Guide (pdf)"</b>. Take a few minutes to read the pdf to get a sense of how to setup and use Metasploit to exploit your Window and Linux servers.</li> | |
− | + | <li>In your screen, click <b>New Project</b>. For this new project, give it a name of <b>Windows 2003 Sever</b>. Set the scan range for your Windows IP ADDRESS, then click to perform a scan, and then click on <b>Launch Scan</b>. The scanning process can take a few minutes to complete.</li> | |
− | |||
− | |||
− | < | + | <br> |
− | </ | + | {{Admon/tip|Scanning is Required Prior to Exploitation| |
− | </ | + | <br><br>Other than configuration there are generally three steps in using Metasploit:<ul><li><b>Scan the targeted server(s)</b> to detect vulnerabilities</li><li>If any vulnerabilities are discovered, <b>load the attack(s) to exploit the server</b>, thus hopefully gaining access to the targeted server</li><li><b>Collect evidence</b> to show employer or client proof of vulnerable server being penetrated</li></ul><br><br>After proving server penetration, then steps can be taken to make it harder for the server to be penetrated (referred to as system "hardening"). |
+ | |}} | ||
+ | <br> | ||
+ | <li value="10">Refer to the <b>YouTube Video</b> on how to use both <b>Nessus</b> and <b>Metasploit</b> to penetrate the target server(s):<br><br>[http://www.youtube.com/watch?v=WlZuq6Vj5AI Kali Linux - Security by Penetration Testing Tutorial: Metasploit Pro]<br><br></li> | ||
+ | <br> | ||
+ | {{Admon/tip|Upgrade to Pro Trial Version Required| | ||
+ | <br><br>When you start an exploit or "brute force" attack, you will be shown a webpage that allows you to upgrade to the Pro version (trial version). Click on that link to download activation code to install and register the trial version, then continue with your exploit. | ||
+ | |}} | ||
+ | <br> | ||
+ | <li value="10">Learn how to penetrate, and capture proof that you pentrated the Windows 2003 server. Make certain to record the procedures in your lab log-book.</li> | ||
+ | <li>Perform the same operations above, but for your vulnerable Linux server. Where you successful? If not, why do you think you were unsucessful? Perform a netsearch in Google to see if there are recommended approaches on how to penetrate the Fedora Core 5 system.</li> | ||
+ | <li>Do you think performing a <b>"Brute Force"</b> or <b>"Hail Mary"</b> attack is advised? If not, provide the reasons why an alternative should be used.<br><br></li> | ||
− | < | + | <br> |
+ | {{Admon/tip|Armitage is Open Source (free) GUI Alternative| | ||
+ | <br><br>The company <b>rapid7</b> has taken over ownership of Metasploit, and the the full version of this application costs approximately $1800! On the positive side, there is an open source (free) GUI for Metasploit client called <b>armitage</b>. If armitage does not appear to be present on your Kali Linux system, it has been added to the default repository for install.<br><br>You will be following instructions below to install and run armitage and compare the common scanning and exploit attacks to gain access. | ||
+ | |}} | ||
+ | <br> | ||
− | < | + | <li value="13">Open a shell terminal, and login as root.</li> |
− | + | <li>Issue the command: <b>which armitage</b> to confirm that this application exists on this server. If there is no pathname to that application, issue the command: <b>apt-get install armitage</b> (make certain application has been installed).</li> | |
− | + | <li>While logged on as root, issue the command: <b>armitage</b></li> | |
− | + | <li>Refer to the following YouTube video to learn how to use armitage to scan and run exploitation attacks:<br><br>[https://www.youtube.com/watch?v=j7uLBzULOE0&feature=youtu.be Use Armitage to Exploit Multiple Machines in Kali Linux]<br><br></li> | |
− | + | <li>Note the differences between using armitage and the proprietory application Metasploit Pro in your lab log-book.</li> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <li> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <li | ||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<br> | <br> | ||
− | + | {{Admon/important|Additional Practice with Metasploit (Optional)| | |
− | + | If you were not able to access the Fedora Core 5 machine, you can always perform a Google search to find out techniques to help to access the machine. You ca | |
− | + | n also create another VM using a more vulnerable Linux Distribution (like Metasploitable: [http://www.rapid7.com/resources/videos/test-metasploit-with-metasploitable.jsp Download Metasploitable OS]<br><br>Another thing to consider is to learn how to use the Metasploit command conso | |
− | If you were not able to access the Fedora Core 5 machine, you can always perform a Google search to find out techniques to help to access the machine. You ca | + | le to learn how to load and launch singluar attacks (resource: [http://www.offensive-security.com/metasploit-unleashed/Msfconsole_Commands MSF Console Commands] |
− | n also create another VM using a more vulnerable Linux Distribution (like Metasploitable: | + | |}} |
− | + | <br> | |
− | le to learn how to load and launch singluar attacks (resource: | + | <li value="18">After you have received authorization (i.e. "green light" from your instructor) try penetration testing on your <b>Tank</b> server accounts, login to confirm IP_ADDRESS, and start to perform penetration testing in this server. <b>WORD TO THE WISE: Don't do anything relating to penetration testing with the Tank server without "thinking it through" first!</b> (i.e. you have been warned)...</li> |
− | + | <br> | |
− | </ | + | {{Admon/tip|Preparing for Lab #4| |
− | < | + | Now that you have learned to pentrate a network server, you will learn now to protect (<i>harden</i>) the server. We will learn how to harden the Linux server first, and then learn how to harden the Windows 2003 server (in a later lab). |
+ | <br><br> | ||
+ | You will be creating a new virtual machine called <b>"Hardened Linux"</b> with the most recent version of Fedora. The reason why we do this is that <b>Fedora 5 is no longer supported</b>, and we want to learn the proper way to harden a Linux system (which involves constant upgrading). | ||
+ | <br><br> | ||
+ | In Virtualbox, you can install a downloaded Fedora image as a <b>virtual file</b>. You will learn how to perform this in lab4. In the meantime, you can download the most recent version of the Fedora install DVD image from (32-bit or 64-bit):<br> | ||
+ | [http://mirrors.fedoraproject.org/publiclist/Fedora/17/ https://getfedora.org/en/workstation/] | ||
+ | <br><br> | ||
+ | |}} | ||
<br> | <br> | ||
− | + | ||
− | + | <li value="19">Proceed to "Completing The Lab".</li> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</ol> | </ol> | ||
<p><b>Answer Task #5 observations / questions in your lab log book.</b> | <p><b>Answer Task #5 observations / questions in your lab log book.</b> | ||
− | </p><p><br> | + | </p><p><br> |
</p> | </p> | ||
− | + | <h1> <span class="mw-headline"> Completing the Lab </span></h1> | |
<p><b>Arrange evidence for each of these items on your screen, then ask | <p><b>Arrange evidence for each of these items on your screen, then ask | ||
your instructor to review them and sign off on the lab's completion:</b> | your instructor to review them and sign off on the lab's completion:</b> | ||
</p> | </p> | ||
<ol> | <ol> | ||
− | + | <li>File contents of your Linux and Windows system <b>enumeration</b> (both Nessus and Metasploit).</li> | |
− | + | <li>Completed Lab 3 notes (indicating scanning and enumeration techniques).</li> | |
</ol> | </ol> | ||
<p><br> | <p><br> | ||
</p> | </p> | ||
− | + | <h1> <span class="mw-headline"> Preparing for Quizzes </span></h1> | |
<ol> | <ol> | ||
− | + | <li>Explain the difference between <b>scanning</b> and <b>enumeration</b>.</li> | |
− | + | <li>What is the purpose of a <b>half-open scan</b> when using the <b>nmap</b> utility?</li> | |
− | + | <li>What is the purpose of a <b>UDP scan</b> when using the <b>nmap</b> utility?</li> | |
− | + | <li>List 3 unique methods and permitted methods of performing penetration-testing at Seneca College?</li> | |
− | + | <li>Explain how to issue the <b>nmap</b> command in order to save the results of the scan in a file. What is it useful to save results into a file?</li> | |
− | + | <li>Define the term <b>banner-grabbing</b>. How does this term differ from <b>fingerprinting</b>?</li> | |
− | + | <li>List and explain two types of utilities (frameworks) that can be used to exploit (gain access) to targetted servers?</li> | |
− | + | <li>In your opinion, how can successfully exploiting a targetted server be useful?</li> | |
− | + | <li>Try to instinctively guess 3 steps to take in order to help the targeted sever from being exploited.</li> | |
</ol> | </ol> |
Latest revision as of 14:59, 21 July 2023
Contents
Scanning, Enumeration & Vulnerability Testing
Introduction
This lab focuses on identifying and exploiteng a server's vulnerabilities in order to gain access to that system. Information assembled in the reconnaissance phase provides the data used in the scanning & enumeration phases.
Students will obtain information from reconnaissance of their vulnerable VMs (IP_ADDRESS) and use scanning & enumeration to better map and then exploit their vulnerable Linux and Windows servers. They will do this in the following manner:
- Students will first use the nmap utility to scan a server to determine that the server is active (running). Verifying active servers can reduce the amount of scanning time to help avoid detection.
- The nmap utility will then be used to list various services (ports) that are running on a server.
- The student will perform enumeration (via banner-grabbing) to identify running services, and will perform fingerprinting to determine the version and type of the operating system on that targetted server.
- Once students have completed the scanning & enumeration phase, they will use that information to perform vulnerability testing (using Nessus and Metasploit) to gain access to that targeted server.
- Finally, once students sign a waiver form and receive authorization to perform penetration testing on Seneca's Tank server, they can apply what they have learned in this lab on the Tank server. Students will also receive accounts to access this server for penetration testing...
- Once students have completed the scanning & enumeration phase, they will use that information to perform vulnerability testing (using Nessus and Metasploit) to gain access to that targeted server.
- Once students have completed the scanning & enumeration phase, they will use that information to perform vulnerability testing (using Nessus and Metasploit) to gain access to that targeted server.
Objectives
- Use the nmap utility to verify that a targeted server is active (running).
- Learn various options of the nmap utility to perform half-open scans, UDP scans, and list running ports.
- Use the nmap utility to generate reports.
- Use the nmap and netcat utilities to verify the type and version of the operating system (finger-printing), and verify the version running services (banner grabbing).
- Use the nessus and Metasploit frameworks to flag, exploit, and gain access to a vulnerable computer system.
- Practice scanning and enumeration on the Tank server at Seneca College (assuming permissions forms submitted, and permission granted by your instructor / ACS).
Required Materials (Bring to All Labs)
- SATA Hard Disk (in removable disk tray).
- Lab Logbook (Lab3 Reference Sheet) (to make notes and observations).
Prerequisites
Online Tools and References
Scanning & Enumeration | Vulnerability Testing |
Course Notes / Resources
- odp | pdf | ppt (Slides: Scanning & Enumeration)
- odp | pdf | ppt (Slides: Vulnerability Testing)
- Scanning 1 | Scanning 2 | Enumeration |Vulnerability Testing - Overview (YouTube Videos)
- Installing Nessus in Kali Linux (YouTube Video)
- Using Nessus in Kali Linux (YouTube Video)
- Using Metasploit Pro in Kali Linux (YouTube Video)
- Use Armitage to Exploit Multiple Machines in Kali Linux (YouTube Video)
Performing Lab 3
Task #1: Verifying Server is Active
After the reconnaissance phase, it is important to verify that
the target IP Address(es) are active (running). A great amount of time
can be saved during the scanning and enumeration process by simply
confirming that your target exists. Wasting time while scanning invalid
targets can also increase the chance of detection from a server's IDS (Instrusion Detection System).
In investigations 1 - 3, you will be learning to perform manual scans of targeted servers using the nmap utility. It is useful to learn how to use nmap, since other penetration testing software such as Nessus and Metasploit (discussed in later investigations) use the nmap utility.
INSTRUCTIONS:
- Boot-up your Kali Linux (host).
- Prior to booting up your vulnerable Linux and Windows VMs, follow the steps in the message box below to changes the network settings for each VM.
- After making the network settings changes (above for each VM), boot your vulnerable Linux and Windows VMs.
- Determine the IP Addresses for your Linux VM (/sbin/ifconfig for LINUX_IP_ADDRESS) and your Windows 2003 Server VM (ipconfig for WINDOWS_IP_ADDRESS). Write this information in your lab log-book.
- Take several minutes to review class notes, YouTube vidoes, and the online man pages to learn how to use the nmap utility before proceeding.
- Switch to your Kali Linux (host) machine and open a shell terminal.
- Issue the following command to verify that the virtual server is active:
nmap -v -sn LINUX_IP_ADDRESS - Is this server active?
- Try to verify that the Windows 2003 Server is active (running nmap with your WINDOWS_IP_ADDRESS).
- Can you detect this server? Write the result in your lab log-book.
- Try performing a UDP scan for both the Linux and Windows VMs by issuing the following commands:
nmap -v -sU LINUX_IP_ADDRESS
nmap -v -sU WINDOWS_IP_ADRESS
This may take some time. Try to time how long this UDP scan takes, and compare it with the TCP ping scan you previously performed. Why do you think it is useful to perform a UDP scan in addition to a TCP scan? - Record your findings in your lab log-book.
- Proceed to Task #2
Answer the Task #1 observations / questions in your lab log book.
Task #2: Various Scanning Techniques
Now that we have verified that our targeted IP Addresses are active, we
can perform a scan to determine which services are running on those
servers. We can also record this information in a report format
(which can be inserted into a later Security Audit Report).
INSTRUCTIONS:
- Use the nmap command to perform a stealthy scan in order to list the ports for the Linux VM by issuing the following command:
nmap -sS LINUX_IP_ADDRESS - Record any running services (with associated port numbers) in your lab log-book.
- Repeat step 2, but view course notes and add an option to record findings in report file(s) called /root/linux_vm_scan
- The reports are created in 3 different formats. List those formats, and give a reason how these can be incorporated into a Security Audit Report.
- Repeat steps 2 and 3, generating similar reports for the Windows 2003 Server VM called /root/windows_vm_scan.
- Use what you have learned in task #2 to assemble a scanning report for your Linux and Windows VMs. These files must be available for your instructor to check when you have completed this lab.
- Proceed to Task #3.
Answer Task #2 observations / questions in your lab log book.
Task #3: Enumeration Techniques
The process of enumeration places more emphasis on scanning information of a server's operating system (finger-printing), and on software versions of a server's running services (banner-grabbing).
INSTRUCTIONS:
- Issue the following command for the Linux VM:
nmap -O LINUX_IP_ADDRESS - Can you detect the type and version of the operating system? Record your findings in your log lab-book.
- Perform the same scan, but for the Windows 2003 Server VM. Record your findings in your log lab-book.
- Issue the following command to perform a banner grab for your vulnerable Linux VM:
nmap -sV LINUX_IP_ADDRESS - Take several minutes to review class notes, YouTube vidoes, and the online man pages to learn how to use the netcat utility before proceeding.
- Use the netcat utility to verify the purpose of the running services on the Linux VM.
- Record your findings in your lab log-book.
- Repeat the 2 previous steps, but for the Windows 2003 Server.
- Use what you have learned in task #2 to perform enumeration for your Windows and Linux VMs. Incorporate this information into a file called: vm_security_audit_linux and vm_security_audit_windows respectively.
- Proceed to Task #4
Answer Task #3 observations / questions in your lab log book.
Task #4: Identifying Server Vulnerabilities Using Nessus
This section will reap the benefits from the previous phases of penetration testing you have performed in the previous labs. You
will be using the information assembled in your previous labs to gain access into your vulnerable Windows VM (possibly Linux VM) by exploiting weaknesses of their running services. You will be using two common utilties (or frameworks) in order to achieve access: Nessus and Metasploit.
INSTRUCTIONS:
- Make certain that your Kali Linux system is running, and that both of your Windows and Linux VMs are running.
- First you should register a free account on the Nessus Website in order to download plugins (and run the nessus server). To register, go to the following URL, and select home use: http://www.nessus.org/register/. Once you complete the registration form, an e-mail will be sent with a "one-time" ACTIVATION_CODE_# (you will need this in an up-coming step).
- Next, in your host machine, open a shell terminal and issue the following command to install the gdebi application to allow you to automatically download and install debian packages by clicking on a .deb file link:
sudo apt-get install gdebi - Next go to the following website: http://www.tenable.com/products/nessus/nessus-download-agreement
(select to download a version for Debian for your appropriate OS: 32-bit or 64-bit). - A dialog box will appear to allow you to save the file. Note the directory where you have saved the deb file.
- In the Administration menu, selec the Gdebi Package Manager. Click the File menu, and open and then select the downloaded deb file. Allow the program to install the Nessus package.
- Allow the installation to complete (it may take a long time to download the newest plugins).
- You need to create a username and password in order to access the Nessus server (from web-browser). Run the following command to create a username and password:
sudo /opt/nessus/sbin/nessus-adduser - Prior to starting the Nessus server, you need to register this application. Use the registration/activiation code (provided from e-mail you received from above procedure) by issuing the command:
sudo /opt/nessus/bin/nessus-fetch --register xxxx-xxxx-xxxx-xxxx
(i.e. xxxx-xxxx-xxxx-xxxx represents activation-code contained in received e-mail message) - Issue the following command to start the Nessus server: sudo service nessusd start
- You can run the Nessus client application in order to connect to the Nessus server (recommended) by web-browser. Simply launch a web-browser and type the following URL: https://127.0.0.1:8834/
- When the application launches in the web-browser resource, you may have to indicate that you trust the connection, and to add an exception. It may take serveral minutes for the application to initialize. Login to your default user account (with the corresponding password).
- Go to the Policies section, and create a new policy called Basic for a "Basic Scan". Select this policy for Windows, but you are NOT required to provide the Window's username and password.
- Click the Scan section and add a new scan called Windows 2003 Server using the Basic policy, and adding the IP ADDRESS at the bottom target area. Click on the Launch button to begin the scan.
- You will be able to view the status of the scan. When the scanning has been completed, view and note the vulnerabilities that are listed in the scanning report.
- What vulnerabilities do you see? Which ones were the most severe? Record these observations in your lab log-book.
- How do you think that you can use the above-mentioned information that you have collected?
Note your observations in your lab log-book.
- Try creating other policies for the different types, and repeat scanning for the Windows target. What other vulnerabilities did you discover? Record your findings in your lab Log-book.
- Repeat steps 12 to 16, but for your Vulnerable Linux (Fedora) sever VM. Make certain to use your VULNERABLE_IP_ADDRESS (or range) and name the report Fedora 5 Linux. Note your observations in your lab log-book.
- Proceed to Task #5
Answer Task #4 observations / questions in your lab log book.
Task #5: Accessing Vulnerable Servers Using Metasploit
Metasploit is a framework (collection of utilities) for penetration testing. This framework acts as a server-client model that is run on an internal network (unlike Nessus which can be run from a remote server). This framework is ideal when working on your host/VM setup for penetration testing. Depending on the targeted server's vulnerability, the penetration tester may be able to access that system.
- For both vulnerable machines, log-in as a regular-user.
- To obtain the Proprietary version of Metasploit, you need to register first. Here is the link to Metasploit Pro website:
https://www.rapid7.com/products/metasploit/metasploit-community-registration.jsp - You will presented with a form to fill-out your personal information, and then you are required to create account. Make certain to apply for the free (community edition). During that process, you will be required to fill out information (including e-mail) in order to get an activation code.
- At some point, you will be redirected to another screen to download the file for Metaspoit Pro. Once downloaded, you need to add execution permissions for the downloaded file, and run the file from the shell.
- After the file installs, you will be prompted to open a web interface (open it). Make certain to create a new user.
- Once you check your e-mail to obtain the activation code, enter the product key (activation code) in the required field to obtain your account.
- If all goes well, there will be an indication that the activation is successful.
- Back in your e-mail message with the activiation code, there is a link to a "Getting Started Guide (pdf)". Take a few minutes to read the pdf to get a sense of how to setup and use Metasploit to exploit your Window and Linux servers.
- In your screen, click New Project. For this new project, give it a name of Windows 2003 Sever. Set the scan range for your Windows IP ADDRESS, then click to perform a scan, and then click on Launch Scan. The scanning process can take a few minutes to complete.
- Refer to the YouTube Video on how to use both Nessus and Metasploit to penetrate the target server(s):
Kali Linux - Security by Penetration Testing Tutorial: Metasploit Pro - Learn how to penetrate, and capture proof that you pentrated the Windows 2003 server. Make certain to record the procedures in your lab log-book.
- Perform the same operations above, but for your vulnerable Linux server. Where you successful? If not, why do you think you were unsucessful? Perform a netsearch in Google to see if there are recommended approaches on how to penetrate the Fedora Core 5 system.
- Do you think performing a "Brute Force" or "Hail Mary" attack is advised? If not, provide the reasons why an alternative should be used.
- Open a shell terminal, and login as root.
- Issue the command: which armitage to confirm that this application exists on this server. If there is no pathname to that application, issue the command: apt-get install armitage (make certain application has been installed).
- While logged on as root, issue the command: armitage
- Refer to the following YouTube video to learn how to use armitage to scan and run exploitation attacks:
Use Armitage to Exploit Multiple Machines in Kali Linux - Note the differences between using armitage and the proprietory application Metasploit Pro in your lab log-book.
- After you have received authorization (i.e. "green light" from your instructor) try penetration testing on your Tank server accounts, login to confirm IP_ADDRESS, and start to perform penetration testing in this server. WORD TO THE WISE: Don't do anything relating to penetration testing with the Tank server without "thinking it through" first! (i.e. you have been warned)...
- Proceed to "Completing The Lab".
Answer Task #5 observations / questions in your lab log book.
Completing the Lab
Arrange evidence for each of these items on your screen, then ask your instructor to review them and sign off on the lab's completion:
- File contents of your Linux and Windows system enumeration (both Nessus and Metasploit).
- Completed Lab 3 notes (indicating scanning and enumeration techniques).
Preparing for Quizzes
- Explain the difference between scanning and enumeration.
- What is the purpose of a half-open scan when using the nmap utility?
- What is the purpose of a UDP scan when using the nmap utility?
- List 3 unique methods and permitted methods of performing penetration-testing at Seneca College?
- Explain how to issue the nmap command in order to save the results of the scan in a file. What is it useful to save results into a file?
- Define the term banner-grabbing. How does this term differ from fingerprinting?
- List and explain two types of utilities (frameworks) that can be used to exploit (gain access) to targetted servers?
- In your opinion, how can successfully exploiting a targetted server be useful?
- Try to instinctively guess 3 steps to take in order to help the targeted sever from being exploited.