SEC520/labs/Lab 2
Information Gathering
Introduction
- This lab teaches various methods of gathering information from a targeted computer system. Normally, an individual or a company can be hired to perform Penetration Testing in order to detect weaknesses in an organization's computer system. The first phase (called the "reconnaissance phase" is considered to be a "harmless activity", where a person can simply gather information to be used later in other aspects of penetration testing (network scanning and enumeration).
- Students will first learn how to gather various documents / information via a web-browser in order to obtain information regarding the structure, relationships and policies of a target company, as well as partners or servers that are associated with that target company (with emphasis on IP addresses). Once the relevant information has been collected, the student will then utilize open-source applications in order to perform link analysis to make connections between various IP addresses.
- Students will then learn how to use Interent-Based tools and technolgies to mine data that pertains more to the internal structure of the targeted organization's server(s), as well as it's specific IP Address ranges (subnets).
- Students will also learn how to use tools to gather information of the users of a targeted server, as well as verifying the targetted IP Addresses immediately prior to the scanning and enumeration phases.
Objectives
- Use the search engine website (google.ca) to obtain computer system information (including IP address).
- Use various open-source applications to perform IP address associations with IP address (Link Analysis).
- Understand the basic concepts of "footprintng" a targeted server with respect to the following open-source technologies:
- DNS Lookup
- WHOIS (Website Service)
- Domain Name Expansion
- HOST
- SMTP
- Using open-source tools in order to focus on technical aspects of the server, in order to be more successful in the scanning and enumeration phase.
- Use tools to gather user information such as e-mail addresses or other information via social networking sites.
- Verify (confirm and narrow-down) valid IP Addresses (and
ranges) to help reduce the time during the scanning and enumeration phases.
- Practice skills learned in this lab to gather information of an educational penetration-testing server at Seneca College (tank.senecac.on.ca).
Required Materials (Bring to All Labs)
- SATA Hard Disk (in removable disk tray).
- Lab Logbook (Lab2 Reference Sheet) (to make notes and observations).
Prerequisites
Online Tools and References
Information Gathering | Foot-printing | User Information | Verification | Other |
|
|
Course Notes
- odp| pdf| ppt(Slides: Reconnaissance)
- Reconnaissance (YouTube Video)
- Penetration Tester's Open Source Toolkit (E-book) (Chapter 2: Reconnaissance)
Performing Lab 2
Task #1: Using Search Engines to Obtain Target Server Information
With the "information gathering" phase of penetration testing, it is recommended to obtain as much data regarding a targeted organization. This would include viewing the website, noting contacts, following-up information from social media sites (eg. facebook, etc). In addition to the above-mentioned techniques, there are other techniques and tools to help gather useful server information of a targeted organization.
INSTRUCTIONS:
- Boot your Kali Linux (host) system, and start a graphical session.
- Open a web-browser and go to the Google website ( http://www.google.ca/ )
- Type in the following URL in the Google search box: sensepost.com
- Note the type of links that are associated with this type of search (i.e total number of links at the top of the search results), and record the total number of links for this type of search in your lab logbook.
- Now, enter the following directive in the Google search box: site:sensepost.com
- You should notice a change in the display of links. How does this search method differ from the previous search method using only the text: "sensepost.com"? Record your findings (including the new total number of links) in your lab log-book.
- We will now be narrowing our search in the sensepost.com website for specific types of files for pdf with the filename keyword hacking
Enter the following directive in the Google search box: site:sensepost.com filetype:pdf hacking - What are the total amount of links? Are all of the links contained in sensepost.com? Record your findings in your log lab-book.
- Issue directives to search for links in the sensepost.com website that contains MS Word documents (doc), and MS Word PowerPoint Presentations (ppt) that contain the pattern hacking. Record these findings in your lab log-book.
- Finally, the link directive is used to display links that are associated with a target website. In order to display all websites that link to the sensepost.com website, issue the following directive in the Google searchbox: link:sensepost.com
- Record the total number of links in your lab log-book. Are there any other links outside the sensepost.com domain that are associated? How do you think this is useful in terms of penetration testing?
- How do you think that you could use this information that you have just collected during this lab for penetration testing? (Record your answer in your lab log-book)
- Repeat the information-gathering process for the following URL: linux.senecac.on.ca for practice.
- Proceed to Task #2
Answer the Task #1 observations / questions in your lab log book.
Task #2: Server Detection, Link Analysis & Domain Name Expansion
In this section, we will use the site information (obtained from Task #1) to gain more detailed information regarding the targeted organization's server (eg. IP address, Type of operating system, History of uptimes, name server information , Related IP addresses of other servers).
INSTRUCTIONS:
- Assuming that your web-browser is still running, click on the following link (which should open in another browser window): http://www.netcraft.com.
NOTE: Do not worry if you are redirected to another URL (eg. news.netcraft.com) - it will provides the same information we require. - Let's find out additional information regarding the sensepost.com website. In the What's that site running? box, enter the following:
sensepost.com - Record the following server information for "sensepost.com" (and record in your lab log-book):
- IP Address
- Type of Operating System
- Name Server
- Country Origin
- Date First Noticed (Tracked)
- Frequency of Uptimes
- The next step in the reconnassaince phase involves Linux Analysis, which will list and
categorize relationships between other websites, and the "target" website
called "sensepost.com". You will be downloading, installing and running
serveral open-source tools (a series of packages packaged as BiLE (which stands for: "Bi-directional Link Extraction" tools) to asssist in obtaining this information.
- Issue the command: which httrack to confirm that this dependent application has been installed (refer to warning message above).
- In a web-browser, go to the following website (which will open in a separate browser window): http://github.com/sensepost/BiLE-suite
- Download the Perl Scripts called BiLE.pl, BiLE-Weigh.pl, and tld-expand.pl to your Kali Linux system.
- Run the following command: perl BiLE.pl sensepost.com output.sensepost.com (assuming BiLE.pl is located in the current directory).
Note: This process may take serveral minutes to complete. - When the process has completed, a report called "output.sensepost.com.mine" (contained in the current directory) will be created that display associated links with the sensepost.com website. Using a text editor, view the contents of that file. Write in your lab log-book the number of lines in the file "output.sensepost.com.mine".
- If there is not enough information in this file, run the BiLE.pl script for the URL: linux.senecac.on.ca to be sorted in the file called output.linux.senecac.on.ca
- Another Perl Script called BiLE-weigh.pl is used to rank the significance (relevance) of the related links with higher ranking links near the bottom of the file. This Perl Script requires the URL of the target website, as well as the output-file (generated by the BiLE.pl Perl Script.
- Issue the following command: perl BiLE-weigh.pl sensepost.com output.sensepost.com.mine (Assuming BiLE.pl Script and "output.sensepost.com" are contained in the current directory).
- View the contents of the file "output.sensepost.com.sorted" in your current directory. Notice the ranking of the relavance of links associated with "sensepost.com" website. Record the number of lines in this file in your lab log-book. What conclusions can you draw in terms of link analysis? Write this information down in your lab log-book.
- Run the BiLE-weigh.pl perl script for the URL: linux.senecac.on.ca and using the file: output.linux.senecac.on.ca.mine
- The final step in the information gathering process is to perform Domain Name Expansion. There are two parts to this process:
- Variations in the DNS Name (use host command)
- Variations in the Top Level Domain (use tld-expand.pl Perl Script)
- Open a shell terminal, and type the following command: host -t ns sensepost.com (If there is a long list of variations, you can redirect stdout to a text file).
- Record the various name servers that are listed in your lab log-book.
- Create an input file called sensepost.com.domains.txt, and place any domain names that you have discovered, and then save and exit editing session.
- Issue the command: perl tld-expand.pl sensepost.com.domains.txt sensepost.com.domains.variations.txt. What do these variations represent in terms of reconnaissance? Record your finds in your lab log-book.
- Proceed to Task #3
Answer Task #2 observations / questions in your lab log book.
Task #3: Foot-printing
As opposed to the Information Gathering phase (that collects information such as IP Addresses), the Foot-printing phase tends to gain a “clearer picture” of the structure of the organization's computer system. This can include relationships among servers, as well as noting IP Address ranges.
Footprinting (in simpler terms) means Network Mapping.
Note: You will be using information that you gathered from the server: sensepost.com in order to assist you with this lab.
INSTRUCTIONS:
- In a shell window, issue the following command: host sensepost.com
- Record the results in your lab log-book.
- Issue the same command with following options: host -t ns sensepost.com
- Record the results in your lab log-book.
- Issue the following command: nslookup sensepost.com
- How does this information differ from the other 2 commands previously issued?
- Issue the following command: whois sensepost.com
- List the additional general information that is provided from your all three previous commands.
- How do you think that this recently collected information can help you "map" the target computer's network?
- Proceed to Task #4
Answer the Task #3 observations / questions in your lab log book.
Task #4: Obtaining User Information
You will be using the information collected in Task #1 to assist with obtaining User information in this task.
INSTRUCTIONS:
- Issue the command theharvester --help, to learn how to run this script again with the following options:
- Domain: sensepost.com
- Number of limited results: 100
- Data Source: google
- Output filename: ~/sensepost.user
- Record any user information that you consider relevant (for penetration testing) in your lab log-book.
- For user information collected so far, use this information to see if you can access their profiles or other information on social media sites (eg. Facebook, Classmates, MySpace, Twitter, etc.).
- Finally, we will be obtaining documents from the targeted network (via Google) that may help provide more information regarding the users.
- Issue the following command: metagoofil --help to learn how to run this script again with the following options:
- Domain: sensepost.com
- Number of limited results: 10
- Number of files to download (-n option): 10
- Filetype: pdf,ppt
- output directory: sensepost.docs
- Check to see if any files were downloaded. If so, write the filenames in your lab log-book.
- Proceed to Task #5
Answer Task #4 observations / questions in your lab log book.
Task #5: Verification / The "Tank" Server
It is important to "double-check" the validity of your collected information - in particular, your IP addresses. If any servers are no longer running, this can waste a tremendous amount of time during the scanning process. Remember: the longer a scan takes to execute, the more vulnerable you are as the penetration tester to detection.
INSTRUCTIONS:
- Open a web-broswer and go to the website: www.bing.com
- Enter the IP addresses that you have gathered during your reconnaisance phase for sensepost.com. Verify that each IP address is valid, and it currently operational.
- For each of the related IP address information you have gathered regarding sensepost.com, use the nslookup command to verify it's existence.
- Change to the directory that contains dnsmap utility.
- Run the dnsmap utility with an input file containing your collected IP_ADDRESSES.
- Seneca College has a special server (called tank) that is used for penetration testing. No only is this server intended for educational purposeses only, but students are NOT
allowed to perform penetration testing unless that have completed a
form that is distributed and collected by your instructor to permit
students to perform testing on that server for the semester!
Once you have signed and given the tank server consent form your your instructor, try gathering information regarding this server called "tank", and record your findings in your lab log-book. - 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:
- Reconnaissance Information from sensepost.com:
- Basic information from sensepost.com website via the Netcraft utility site.
- Reports from running BiLE.pl and BiLE-Weigh.pl for sensepost.com
- Main DNS information (Footprint) for sensepost.com
- User information (e-mail addresses) for the sensepost.com site.
- Verification of DNS information for sensepost.com site.
- Completed Lab 2 notes (including common commands, etc).
Preparing for Quizzes
- List the major phases contained in penetration testing.
- Explain the difference between reconnaissance and footprinting.
- List 3 open-source tools to assist in the Footprinting phase of penetration testing.
- Briefly describe the process to obtain key documents from a server using google.ca
- Briefly describe the steps to obtain IP, operating system information from a website called linux.senecac.on.ca. Indicate how this information might be useful in future stages of penetration testing.
- Define the term link analysis. What open-source tools can be used to perform link analysis?
- Define the term Footprinting as it relates to penetration testing.
- List the steps (using open source tools) to obtrain user account information of a targeted server. Indicate how this information might be usedful in future stages of penetration testing.
- Why do you think that verification of gathered information (such as IP address (IP address ranges) is critical prior to proceeding to the scanning and enumeration phases?